@@ -1,290 +1,310 @@ | |||
<template> | |||
<view class="selectCar-box"> | |||
<view class="details"> | |||
<view class="title"> | |||
基础信息 | |||
</view> | |||
<view class="details-item"> | |||
<view> | |||
订单编号: | |||
</view> | |||
<text>123234350000001</text> | |||
</view> | |||
<view class="details-item"> | |||
<view> | |||
用户名称: | |||
</view> | |||
<text>xxxxx</text> | |||
</view> | |||
<view class="details-item"> | |||
<view> | |||
用户证件类型: | |||
</view> | |||
<text>居民身份证</text> | |||
</view> | |||
<view class="details-item"> | |||
<view> | |||
用户证件号: | |||
</view> | |||
<text>44504049343434001</text> | |||
</view> | |||
<view class="details-item"> | |||
<view> | |||
订单车牌号: | |||
</view> | |||
<text style="color: #00B38B;;">贵A12345</text> | |||
</view> | |||
<view class="details-item"> | |||
<view> | |||
收费车型: | |||
</view> | |||
<text>客车</text> | |||
</view> | |||
</view> | |||
<view class="title"> | |||
卡信号 | |||
</view> | |||
<view class="card"> | |||
<view class="card-left"> | |||
<image :src="`${$imgUrl}card2.png`" mode=""></image> | |||
<view class="card-center"> | |||
<view class="card-center-head"> | |||
2023022700012 | |||
</view> | |||
<view class="tips"> | |||
<text>储蓄卡</text> | |||
<text class="tips-card">正常</text> | |||
</view> | |||
</view> | |||
</view> | |||
<view class="choose-item"> | |||
<!-- 有效期:xxxx-xx-xx --> | |||
</view> | |||
</view> | |||
<!-- <view class="title"> | |||
OBU设备信息 | |||
</view> | |||
<view class="card"> | |||
<view class="card-left"> | |||
<image src="../../static/image/card1.png" mode=""></image> | |||
<view class="card-center"> | |||
<view class="card-center-head"> | |||
2023022700012 | |||
</view> | |||
<view class="tips"> | |||
<text>储蓄卡</text> | |||
<text class="tips-card">正常</text> | |||
</view> | |||
</view> | |||
</view> | |||
<view class="choose-item"> | |||
有效期:xxxx-xx-xx | |||
</view> | |||
</view> --> | |||
<!-- <view class="title"> | |||
注意事项 | |||
</view> | |||
<view class="remark"> | |||
<view> | |||
1.xxxxxxxx | |||
</view> | |||
<view> | |||
2.xxxxxxxx | |||
</view> | |||
<view> | |||
3.xxxxxxxx | |||
</view> | |||
<view> | |||
4.xxxxxxxx | |||
</view> | |||
</view> --> | |||
<button class="submit" @click="toPage">下一步</button> | |||
</view> | |||
</template> | |||
<script lang="ts" setup> | |||
import { | |||
reactive, | |||
ref | |||
} from "vue" | |||
import { | |||
navTo | |||
} from "@/utils/utils" | |||
const toPage = () => { | |||
console.log(11); | |||
navTo('/after-sale/additional-equipment/additional-equipment-verification') | |||
// wx.showModal({ | |||
// title: '提示', | |||
// content: '检测到当前只有ETC卡,需要办理obu设备才可以通行,是否前往办理,无需办理点击继续注销', | |||
// confirmText: '继续注销', | |||
// cancelText: '前往办理', | |||
// success: function(res) { | |||
// if (res.confirm) { | |||
// console.log('用户点击确定'); | |||
// navTo('/after-sale/ETC-log-off/etc-log-off') | |||
// } else if (res.cancel) { | |||
// console.log('用户点击取消'); | |||
// // navTo('/after-sale/card-loss-reporting/cardloss') | |||
// } | |||
// } | |||
// }); | |||
} | |||
const flag = reactive([]) | |||
const choose = (data) => { | |||
if (!flag.includes(data)) { | |||
flag.push(data) | |||
console.log(flag); | |||
} else { | |||
flag.splice(flag.indexOf(data), 1) | |||
console.log(flag); | |||
} | |||
} | |||
</script> | |||
<style> | |||
page { | |||
width: 100%; | |||
height: 100%; | |||
background-color: #fff; | |||
} | |||
</style> | |||
<style lang="scss" scoped> | |||
.selectCar-box { | |||
// width: 100%; | |||
// height: 100%; | |||
padding: 30rpx; | |||
.title { | |||
font-size: 30rpx; | |||
font-family: Microsoft YaHei UI; | |||
font-weight: 400; | |||
color: #333333; | |||
margin-bottom: 30rpx; | |||
} | |||
.details { | |||
.title { | |||
font-size: 30rpx; | |||
font-family: Microsoft YaHei UI; | |||
font-weight: 400; | |||
color: #333333; | |||
margin-bottom: 30rpx; | |||
} | |||
.details-item { | |||
display: flex; | |||
font-size: 26rpx; | |||
font-family: Noto Sans S Chinese; | |||
font-weight: 400; | |||
color: #999999; | |||
margin-bottom: 30rpx; | |||
text { | |||
font-size: 26rpx; | |||
font-family: Noto Sans S Chinese; | |||
font-weight: 400; | |||
color: #333333; | |||
} | |||
} | |||
} | |||
.card { | |||
height: 150rpx; | |||
background: #FFFFFF; | |||
box-shadow: 0rpx 4rpx 13rpx 3rpx rgba(223, 223, 223, 0.8); | |||
border-radius: 20rpx; | |||
padding: 30rpx; | |||
display: flex; | |||
justify-content: space-between; | |||
align-items: center; | |||
margin-bottom: 60rpx; | |||
.card-left { | |||
display: flex; | |||
align-items: center; | |||
image { | |||
width: 100rpx; | |||
height: 90rpx; | |||
} | |||
.card-center { | |||
margin-left: 30rpx; | |||
.card-center-head { | |||
font-size: 32rpx; | |||
font-family: Noto Sans S Chinese; | |||
font-weight: 400; | |||
color: #333333; | |||
} | |||
.tips { | |||
font-size: 26rpx; | |||
font-family: Noto Sans S Chinese; | |||
font-weight: 400; | |||
color: #666666; | |||
.tips-card { | |||
width: 70rpx; | |||
height: 40rpx; | |||
background: #D3F2EF; | |||
border-radius: 6rpx; | |||
font-size: 20rpx; | |||
font-family: Noto Sans S Chinese; | |||
font-weight: 400; | |||
color: #0A8F8A; | |||
padding: 5rpx 10rpx; | |||
margin-left: 20rpx; | |||
} | |||
} | |||
} | |||
} | |||
.choose-item { | |||
margin-right: 20rpx; | |||
/* width: 50rpx; */ | |||
height: 50rpx; | |||
/* border: 1rpx solid #00B38B; */ | |||
border-radius: 50%; | |||
display: flex; | |||
justify-content: center; | |||
align-items: center; | |||
font-size: 25rpx; | |||
align-self: end; | |||
.active { | |||
width: 38rpx; | |||
height: 38rpx; | |||
background: #00B38B; | |||
border-radius: 50%; | |||
} | |||
} | |||
} | |||
.remark { | |||
font-size: 26rpx; | |||
font-family: Microsoft YaHei UI; | |||
font-weight: 400; | |||
color: #666666; | |||
text-indent: 30rpx; | |||
margin-bottom: 30rpx; | |||
} | |||
.submit { | |||
margin-top: 100rpx; | |||
width: 670rpx; | |||
height: 80rpx; | |||
background: linear-gradient(-90deg, #43A1E0 0%, #13E7C1 100%); | |||
border-radius: 40rpx; | |||
font-size: 32rpx; | |||
font-family: Noto Sans S Chinese; | |||
font-weight: 400; | |||
color: #FFFFFF; | |||
line-height: 80rpx; | |||
} | |||
} | |||
<template> | |||
<view class="selectCar-box"> | |||
<view class="details"> | |||
<view class="title"> | |||
基础信息 | |||
</view> | |||
<view class="details-item"> | |||
<view> | |||
订单编号: | |||
</view> | |||
<text>{{state.data.orderId}}</text> | |||
</view> | |||
<view class="details-item"> | |||
<view> | |||
用户名称: | |||
</view> | |||
<text>{{state.data.customerName}}</text> | |||
</view> | |||
<view class="details-item"> | |||
<view> | |||
用户证件类型: | |||
</view> | |||
<text>{{getCredentialType(state.data.customerIdtype)}}</text> | |||
</view> | |||
<view class="details-item"> | |||
<view> | |||
用户证件号: | |||
</view> | |||
<text>{{state.data.customerIdnum}}</text> | |||
</view> | |||
<view class="details-item"> | |||
<view> | |||
订单车牌号: | |||
</view> | |||
<text style="color: #00B38B;;">{{state.data.vehiclePlate}}</text> | |||
</view> | |||
<view class="details-item"> | |||
<view> | |||
收费车型: | |||
</view> | |||
<text>{{state.data.vehicleType}}</text> | |||
</view> | |||
</view> | |||
<view class=""> | |||
<view class="title"> | |||
卡信息 | |||
</view> | |||
<view class="card"> | |||
<view class="card-left"> | |||
<image :src="`${$imgUrl}card2.png`" mode=""></image> | |||
<view class="card-center"> | |||
<view class="card-center-head"> | |||
{{state.data.cardId}} | |||
</view> | |||
<view class="tips"> | |||
<text>储蓄卡</text> | |||
<text class="tips-card">{{getEtcCardStatus(state.data.cardStatus)}}</text> | |||
</view> | |||
</view> | |||
</view> | |||
</view> | |||
</view> | |||
<view class=""> | |||
<view class="title"> | |||
OBU设备信息 | |||
</view> | |||
<view class="card"> | |||
<view class="card-left"> | |||
<image :src="`${$imgUrl}card1.png`" mode=""></image> | |||
<view class="card-center"> | |||
<view class="card-center-head"> | |||
{{state.data.obuId}} | |||
</view> | |||
<view class="tips"> | |||
<!-- <text>储蓄卡</text> --> | |||
<text class="tips-card">{{getObuStatus(state.data.obuStatus)}}</text> | |||
</view> | |||
</view> | |||
</view> | |||
</view> | |||
</view> | |||
<button class="submit" @click="nextACtion">下一步</button> | |||
</view> | |||
</template> | |||
<script lang="ts" setup> | |||
import { | |||
reactive, | |||
ref | |||
} from "vue" | |||
import { | |||
navTo | |||
} from "@/utils/utils" | |||
import { | |||
onLoad, | |||
onUnload | |||
} from "@dcloudio/uni-app"; | |||
import { | |||
request | |||
} from "@/utils/network/request.js"; | |||
import { | |||
orderDetail, | |||
CardlossStatus, | |||
cckChangejzCard | |||
} from "@/utils/network/api.js"; | |||
import { | |||
msg | |||
} from "@/utils/utils"; | |||
import { | |||
getCredentialType | |||
} from "@/datas/credentialType.js"; | |||
import { | |||
getEtcCardStatus | |||
} from "@/datas/etcCardStatus.js"; | |||
import { | |||
getObuStatus | |||
} from "@/datas/obuStatus.js"; | |||
import { | |||
stringToJson | |||
} from "@/utils/network/encryption"; | |||
const state = reactive({ | |||
data: { | |||
cardStatus: undefined, | |||
obuStatus: undefined, | |||
}, | |||
type: undefined | |||
}); | |||
/*视图进入后操作*/ | |||
onLoad((option) => { | |||
queryOrderDetail(option.id).then((val: any) => { | |||
state.data = val | |||
}) | |||
}); | |||
onUnload(() => { | |||
}); | |||
/*下一步*/ | |||
const nextACtion = () => { | |||
navTo( | |||
`/after-sale/additional-equipment/additional-equipment-verification?orderId=${state.data.orderId}&&cardId=${state.data.cardId}&&mobile=${state.data.customerTel}` | |||
) | |||
} | |||
const queryOrderDetail = (id) => { | |||
return new Promise(async (resolve, reject) => { | |||
const res = await request(orderDetail, { | |||
type: 2, | |||
data: { | |||
id: id | |||
}, | |||
method: "POST", | |||
showLoading: true, | |||
}); | |||
const data = stringToJson(res.bizContent); | |||
resolve(data); | |||
}).catch((error) => { | |||
reject(error); | |||
}); | |||
} | |||
</script> | |||
<style> | |||
page { | |||
width: 100%; | |||
height: 100%; | |||
background-color: #fff; | |||
} | |||
</style> | |||
<style lang="scss" scoped> | |||
.selectCar-box { | |||
// width: 100%; | |||
// height: 100%; | |||
padding: 30rpx; | |||
.title { | |||
font-size: 30rpx; | |||
font-family: Microsoft YaHei UI; | |||
font-weight: 400; | |||
color: #333333; | |||
margin-bottom: 30rpx; | |||
} | |||
.details { | |||
.title { | |||
font-size: 30rpx; | |||
font-family: Microsoft YaHei UI; | |||
font-weight: 400; | |||
color: #333333; | |||
margin-bottom: 30rpx; | |||
} | |||
.details-item { | |||
display: flex; | |||
font-size: 26rpx; | |||
font-family: Noto Sans S Chinese; | |||
font-weight: 400; | |||
color: #999999; | |||
margin-bottom: 30rpx; | |||
text { | |||
font-size: 26rpx; | |||
font-family: Noto Sans S Chinese; | |||
font-weight: 400; | |||
color: #333333; | |||
} | |||
} | |||
} | |||
.card { | |||
height: 150rpx; | |||
background: #FFFFFF; | |||
box-shadow: 0rpx 4rpx 13rpx 3rpx rgba(223, 223, 223, 0.8); | |||
border-radius: 20rpx; | |||
padding: 30rpx; | |||
display: flex; | |||
justify-content: space-between; | |||
align-items: center; | |||
margin-bottom: 60rpx; | |||
.card-left { | |||
display: flex; | |||
align-items: center; | |||
image { | |||
width: 100rpx; | |||
height: 90rpx; | |||
} | |||
.card-center { | |||
margin-left: 30rpx; | |||
.card-center-head { | |||
font-size: 32rpx; | |||
font-family: Noto Sans S Chinese; | |||
font-weight: 400; | |||
color: #333333; | |||
} | |||
.tips { | |||
font-size: 26rpx; | |||
font-family: Noto Sans S Chinese; | |||
font-weight: 400; | |||
color: #666666; | |||
.tips-card { | |||
width: 70rpx; | |||
height: 40rpx; | |||
background: #D3F2EF; | |||
border-radius: 6rpx; | |||
font-size: 20rpx; | |||
font-family: Noto Sans S Chinese; | |||
font-weight: 400; | |||
color: #0A8F8A; | |||
padding: 5rpx 10rpx; | |||
margin-left: 20rpx; | |||
} | |||
} | |||
} | |||
} | |||
.choose-item { | |||
margin-right: 20rpx; | |||
width: 50rpx; | |||
height: 50rpx; | |||
border: 1rpx solid #00B38B; | |||
border-radius: 50%; | |||
display: flex; | |||
justify-content: center; | |||
align-items: center; | |||
.active { | |||
width: 38rpx; | |||
height: 38rpx; | |||
background: #00B38B; | |||
border-radius: 50%; | |||
} | |||
} | |||
} | |||
.remark { | |||
font-size: 26rpx; | |||
font-family: Microsoft YaHei UI; | |||
font-weight: 400; | |||
color: #666666; | |||
text-indent: 30rpx; | |||
margin-bottom: 30rpx; | |||
} | |||
.submit { | |||
margin-top: 100rpx; | |||
width: 670rpx; | |||
height: 80rpx; | |||
background: linear-gradient(-90deg, #43A1E0 0%, #13E7C1 100%); | |||
border-radius: 40rpx; | |||
font-size: 32rpx; | |||
font-family: Noto Sans S Chinese; | |||
font-weight: 400; | |||
color: #FFFFFF; | |||
line-height: 80rpx; | |||
} | |||
} | |||
</style> |
@@ -1,107 +1,523 @@ | |||
<template> | |||
<view class="formBox"> | |||
<view class="from_item"> | |||
<text class="label">账号验证</text> | |||
<input type="text" placeholder="输入验证码" v-model="model1.uname" placeholder-style="color:#000"> | |||
</view> | |||
<view class="from_item"> | |||
<text class="label">手机号码</text> | |||
<input type="text" placeholder="" v-model="model1.phone" placeholder-style="color:#000" disabled="true"> | |||
</view> | |||
<view class="from_item"> | |||
<text class="label">验证码</text> | |||
<input type="text" placeholder="请输入验证码" placeholder-style="color:#000"> | |||
<text class="btn" @click="getCode">获取验证码</text> | |||
</view> | |||
<button class="submit" @click="submit" >验证</button> | |||
</view> | |||
</template> | |||
<script setup lang="ts"> | |||
import { | |||
reactive | |||
} from "vue"; | |||
import { | |||
navTo | |||
} from "@/utils/utils" | |||
let model1 = reactive({ | |||
uname: '输入验证码', | |||
phone: '135****9090', | |||
code: '' | |||
}) | |||
const getCode = () => { | |||
console.log(123); | |||
} | |||
const submit=()=>{ | |||
console.log("111"); | |||
navTo('/after-sale/additional-equipment/base-change-people') | |||
} | |||
</script> | |||
<style> | |||
page { | |||
width: 100%; | |||
height: 100%; | |||
} | |||
</style> | |||
<style lang="scss" scoped> | |||
.formBox { | |||
height: 90%; | |||
width: 100%; | |||
// background-color: red; | |||
.from_item { | |||
padding: 30rpx; | |||
padding-top: 60rpx; | |||
position: relative; | |||
.label { | |||
font-size: 28rpx; | |||
font-family: Microsoft YaHei; | |||
font-weight: 400; | |||
color: #777777; | |||
} | |||
input { | |||
font-size: 32rpx; | |||
font-family: Microsoft YaHei; | |||
font-weight: 400; | |||
color: #333333; | |||
line-height: 58rpx; | |||
border-bottom: 1rpx solid #DCDCDC; | |||
margin-top: 50rpx; | |||
padding-bottom: 10rpx; | |||
} | |||
.btn { | |||
position: absolute; | |||
right: 45rpx; | |||
bottom: 48rpx; | |||
background: transparent; | |||
font-size: 30rpx; | |||
color: #15E5C1; | |||
z-index: 999; | |||
} | |||
} | |||
.submit{ | |||
background: linear-gradient(to left, #43A1E0 0%, #13E7C1 100%); | |||
width: 670rpx; | |||
height: 80rpx; | |||
line-height: 80rpx; | |||
color: #fff; | |||
border-radius: 100rpx; | |||
position: fixed; | |||
bottom: 100rpx; | |||
left:50%; | |||
transform: translate(-50%); | |||
font-size: 32rpx; | |||
font-family: Microsoft YaHei; | |||
font-weight: 400; | |||
color: #FFFFFF; | |||
line-height: 80rpx; | |||
} | |||
} | |||
<template> | |||
<view class="oderPage"> | |||
<view v-if="form.receiveMethodName==='邮寄'" class="addr-box"> | |||
<view class="addr-box-left"> | |||
<view class="text-image">{{form.customerName.charAt(0)}} </view> | |||
<view class="content"> | |||
<view class=""> | |||
<text class="item1">{{form.customerName}}</text> | |||
<text class="item2">{{form.customerTel}}</text> | |||
<text class="item3">默认</text> | |||
</view> | |||
<view class=""> {{form.area +form.address}}</view> | |||
</view> | |||
</view> | |||
<view class="edit"> | |||
<image :src="`${$imgUrl}applyCard/edit.png`" mode=""></image> | |||
</view> | |||
</view> | |||
<u-form :model="form" ref="myForm" :error-type="errorType"> | |||
<view class="from"> | |||
<u-form-item prop="cardState"> | |||
<view class="from_item"> | |||
<text><text style="color: red">*</text>是否邮寄:</text> | |||
<u-radio-group v-model="form.receiveMethodName"> | |||
<u-radio :customStyle="{ marginBottom: '8px' }" activeColor="#2CE242" | |||
v-for="(item, index) in radiolist1" :key="index" :label="item.disabled" | |||
:name="item.name"> | |||
{{ item.name }} | |||
</u-radio> | |||
</u-radio-group> | |||
</view> | |||
</u-form-item> | |||
<u-form-item prop="phone"> | |||
<view class="from_item" style="background-color: #f7f7f7"> | |||
<text><text style="color: red"></text>手机号:</text> | |||
<u-input v-model="form.mobile" :disabled="true" class="input" /> | |||
</view> | |||
</u-form-item> | |||
<u-form-item prop="code"> | |||
<view class="from_item"> | |||
<text><text style="color: red"></text>验证码:</text> | |||
<u-input v-model="form.code" placeholder="请输入验证码" class="input" /> | |||
<view class="hint2"> | |||
<view class="green">{{ codeDuration === 0 ? "" : codeDuration }}</view> | |||
<view class="grey" @click="getCode">{{ | |||
codeDuration === 0 ? "发送验证码" : "秒后可重发" | |||
}}</view> | |||
</view> | |||
</view> | |||
</u-form-item> | |||
</view> | |||
</u-form> | |||
<button style="margin-top: 50rpx;" class="submit" @click="toPage()">OBU增补申请</button> | |||
</view> | |||
</template> | |||
<script setup lang="ts"> | |||
import navBar from "./components/nav-bar.vue"; | |||
import { | |||
checkStr | |||
} from "@/utils/utils"; | |||
import { | |||
ref, | |||
reactive | |||
} from "vue"; | |||
import { | |||
navTo | |||
} from "../../utils/utils"; | |||
import { | |||
onReady, | |||
onLoad | |||
} from "@dcloudio/uni-app"; | |||
import { | |||
request | |||
} from "../../utils/network/request.js"; | |||
import { | |||
getItem, | |||
StorageKeys | |||
} from "@/utils/storage"; | |||
import { | |||
sendCode, | |||
checkCode, | |||
addressQuery, | |||
queryOBUAdd, | |||
wechatPayConfigId | |||
} from "@/utils/network/api.js"; | |||
import { | |||
stringToJson | |||
} from "@/utils/network/encryption"; | |||
import { | |||
msg | |||
} from "@/utils/utils"; | |||
// 表单数据 | |||
const form = reactive({ | |||
receiveMethod: "0", | |||
receiveMethodName: '不邮寄', | |||
customerName: '', | |||
customerTel: '', | |||
mobile: "", | |||
code: '', | |||
address: '', | |||
area: '', | |||
postCode: '' | |||
}); | |||
const apply = reactive({ | |||
data: { | |||
status: undefined, | |||
id: '' | |||
} | |||
}); | |||
//入参 | |||
const params = reactive({ | |||
cardId: '', | |||
obuId: '', | |||
orderId: '' | |||
}); | |||
// 单选数据列表 | |||
const radiolist1 = reactive([{ | |||
name: "不邮寄", | |||
disabled: false, | |||
}, | |||
{ | |||
name: "邮寄", | |||
disabled: false, | |||
}, | |||
]); | |||
// 单选数据列表 | |||
const radiolist2 = reactive([{ | |||
name: "人为损坏", | |||
disabled: false, | |||
}, | |||
{ | |||
name: "自然损坏", | |||
disabled: false, | |||
} | |||
]); | |||
// 验证规则 | |||
const rules = { | |||
code: [{ | |||
required: true, | |||
message: "请输入验证码", | |||
trigger: ["change", "blur"], | |||
}], | |||
}; | |||
// 验证提示类型(toast要版本为1.3.5才支持) | |||
const errorType = ["toast"]; | |||
// 设置验证规则 | |||
const myForm = ref(null); | |||
//倒计时时常 | |||
const codeDuration = ref(0); | |||
let interval = null; | |||
const address = reactive({ | |||
list: [] | |||
}); //地址list | |||
/* 验证码倒计时 */ | |||
const codeInterval = () => { | |||
codeDuration.value = 60; | |||
interval = setInterval(() => { | |||
codeDuration.value--; | |||
if (codeDuration.value === 0) { | |||
if (interval) { | |||
clearInterval(interval); | |||
interval = null; | |||
} | |||
} | |||
}, 1000); | |||
}; | |||
onReady(() => { | |||
myForm.value.setRules(rules); | |||
}); | |||
onLoad((option) => { | |||
form.mobile = option.mobile | |||
params.cardId = option.cardId | |||
params.orderId = option.orderId | |||
getAddressList() | |||
}); | |||
const getAddressList = () => { | |||
var data = { | |||
openId: getItem(StorageKeys.OpenId), | |||
}; | |||
const options = { | |||
type: 2, | |||
data: data, | |||
method: "POST", | |||
showLoading: true, | |||
}; | |||
request(addressQuery, options).then((res) => { | |||
const data = stringToJson(res.bizContent); | |||
address.list = data.data; | |||
if (address.list.length > 0) { | |||
var defaultAddress = address.list[0] | |||
form.customerName = defaultAddress.consignee | |||
form.customerTel = defaultAddress.consigneeTel | |||
form.address = defaultAddress.address | |||
form.area = defaultAddress.region | |||
form.postCode = defaultAddress.postalCode | |||
} | |||
}); | |||
}; | |||
const getCode = () => { | |||
if (codeDuration.value !== 0) { | |||
return; | |||
} | |||
const options = { | |||
type: 2, | |||
data: { | |||
mobile: form.mobile | |||
}, | |||
method: "POST", | |||
showLoading: true, | |||
}; | |||
request(sendCode, options) | |||
.then((res) => { | |||
codeInterval(); | |||
msg("验证码发送成功!"); | |||
}) | |||
.catch((err) => { | |||
console.log(err); | |||
}); | |||
} | |||
//申请 | |||
const queryOBUAddAction = () => { | |||
if (form.receiveMethodName === '不邮寄') { | |||
form.receiveMethod = '0' | |||
} else { | |||
form.receiveMethod = '1' | |||
} | |||
var data = { | |||
orderId: params.orderId, | |||
openId: getItem(StorageKeys.OpenId), | |||
configId: wechatPayConfigId, | |||
receiveMethod: form.receiveMethod, | |||
customerName: form.customerName, | |||
customerTel: form.customerTel, | |||
address: form.address, | |||
area: form.area, | |||
postCode: form.postCode | |||
}; | |||
const options = { | |||
type: 2, | |||
data: data, | |||
method: "POST", | |||
showLoading: true, | |||
}; | |||
return new Promise(async (resolve, reject) => { | |||
const res = await request(queryOBUAdd, options); | |||
const data = stringToJson(res.bizContent); | |||
resolve(data); | |||
}).catch((error) => { | |||
reject(error); | |||
}); | |||
} | |||
//下一步 | |||
const toPage = () => { | |||
myForm.value.validate((valid) => { | |||
if (valid) { | |||
const options = { | |||
type: 2, | |||
data: { | |||
mobile: form.mobile, | |||
code: form.code | |||
}, | |||
method: "POST", | |||
showLoading: true, | |||
}; | |||
request(checkCode, options) | |||
.then(() => { | |||
queryOBUAddAction().then(val => { | |||
navTo( | |||
`/after-sale/additional-equipment/result` | |||
) | |||
}) | |||
}) | |||
.catch((err) => { | |||
console.log(err); | |||
}); | |||
} else { | |||
console.log("验证未通过"); | |||
} | |||
}); | |||
}; | |||
</script> | |||
<style> | |||
page { | |||
width: 100%; | |||
height: 100%; | |||
display: flex; | |||
flex-direction: column; | |||
background-color: ##eef7f7; | |||
} | |||
</style> | |||
<style lang="scss" scoped> | |||
.hint2 { | |||
display: flex; | |||
.green { | |||
font-size: 28rpx; | |||
color: #00b38b; | |||
} | |||
.grey { | |||
font-size: 24rpx; | |||
color: #000000; | |||
margin-left: 16rpx; | |||
} | |||
} | |||
.addr-box { | |||
margin-top: 20rpx; | |||
display: flex; | |||
background: #fff; | |||
padding: 30rpx; | |||
justify-content: space-between; | |||
align-items: center; | |||
.addr-box-left { | |||
display: flex; | |||
.text-image { | |||
width: 68rpx; | |||
height: 68rpx; | |||
background: #00b38b; | |||
border-radius: 50%; | |||
text-align: center; | |||
font-size: 26rpx; | |||
font-family: Microsoft YaHei; | |||
font-weight: 400; | |||
color: #ffffff; | |||
line-height: 68rpx; | |||
margin-right: 30rpx; | |||
} | |||
.content { | |||
view { | |||
font-size: 26rpx; | |||
font-family: Microsoft YaHei; | |||
font-weight: 400; | |||
color: #333333; | |||
.item1 { | |||
font-size: 30rpx; | |||
font-family: Microsoft YaHei; | |||
font-weight: 400; | |||
color: #333333; | |||
} | |||
.item2 { | |||
font-size: 24rpx; | |||
font-family: Microsoft YaHei; | |||
font-weight: 400; | |||
color: #999999; | |||
margin-left: 10rpx; | |||
} | |||
.item3 { | |||
width: 71rpx; | |||
height: 37rpx; | |||
background: #ffffff; | |||
border: 1px solid #ff8000; | |||
border-radius: 6rpx; | |||
font-size: 22rpx; | |||
font-family: Microsoft YaHei; | |||
font-weight: 400; | |||
color: #ff8000; | |||
padding: 3rpx 6rpx; | |||
margin-left: 10rpx; | |||
} | |||
} | |||
} | |||
} | |||
.edit { | |||
image { | |||
width: 50rpx; | |||
height: 50rpx; | |||
} | |||
} | |||
} | |||
.oderPage { | |||
flex: 1; | |||
width: 100%; | |||
.from1 { | |||
background-color: #fff; | |||
margin-top: 30rpx; | |||
padding: 0 30rpx; | |||
::v-deep .uni-forms-item { | |||
border-bottom: 1rpx solid #ccc; | |||
padding: 15rpx 0; | |||
margin-bottom: 0; | |||
.uni-forms-item__label { | |||
font-size: 28rpx; | |||
height: 50rpx; | |||
} | |||
.uni-forms-item__content { | |||
display: flex; | |||
} | |||
.uni-easyinput__content-input { | |||
font-size: 28rpx; | |||
height: 50rpx; | |||
} | |||
} | |||
.btn { | |||
line-height: 38rpx; | |||
font-size: 24rpx; | |||
font-family: Microsoft YaHei; | |||
font-weight: 400; | |||
color: #ffffff; | |||
background: #00b38b; | |||
border-radius: 10rpx; | |||
padding: 10rpx 15rpx; | |||
} | |||
} | |||
.from { | |||
background-color: #fff; | |||
margin-top: 30rpx; | |||
padding: 0 30rpx; | |||
::v-deep .u-form-item { | |||
padding: 0; | |||
line-height: normal; | |||
.u-form-item__message { | |||
margin-bottom: 12rpx; | |||
} | |||
} | |||
.from_item { | |||
display: flex; | |||
flex-wrap: nowrap; | |||
justify-content: space-between; | |||
align-items: center; | |||
height: 80rpx; | |||
border-bottom: 1rpx solid #dcdcdc; | |||
.btn { | |||
font-size: 24rpx; | |||
font-family: Microsoft YaHei; | |||
font-weight: 400; | |||
color: #ffffff; | |||
background: #00b38b; | |||
border-radius: 10rpx; | |||
padding: 10rpx 15rpx; | |||
} | |||
::v-deep .input { | |||
text-align: left; | |||
flex: 1; | |||
input { | |||
text-align: left; | |||
} | |||
} | |||
} | |||
.from_item1 { | |||
display: flex; | |||
flex-wrap: nowrap; | |||
flex-direction: column; | |||
justify-content: space-between; | |||
padding: 30rpx; | |||
border-bottom: #dcdcdc 1px solid; | |||
input { | |||
text-align: right; | |||
} | |||
.textarea { | |||
background-color: #f1f1f1; | |||
width: 100%; | |||
border-radius: 20rpx; | |||
margin-top: 10rpx; | |||
text-indent: 1rem; | |||
height: 180rpx; | |||
padding: 20rpx; | |||
box-sizing: border-box; | |||
} | |||
} | |||
} | |||
} | |||
.submit { | |||
background: linear-gradient(to left, #43a1e0 0%, #13e7c1 100%); | |||
width: 670rpx; | |||
height: 80rpx; | |||
color: #fff; | |||
border-radius: 100rpx; | |||
font-size: 32rpx; | |||
} | |||
</style> |
@@ -1,101 +1,83 @@ | |||
<template> | |||
<view class="oderPage"> | |||
<view class="content"> | |||
<image :src="`${$imgUrl}ETCcancellation/bg1.png`" mode=""></image> | |||
<view class="title"> | |||
办理成功 | |||
</view> | |||
<view class=""> | |||
您办理的增补设备业务已生成订单 | |||
</view> | |||
</view> | |||
</view> | |||
<button class="submit" @click="submit">查看订单</button> | |||
</template> | |||
<script setup lang="ts"> | |||
import navBar from "./components/nav-bar.vue" | |||
import { | |||
ref, | |||
reactive | |||
} from "vue"; | |||
import { | |||
navTo | |||
} from "@/utils/utils" | |||
let model1 = reactive({ | |||
uname: '输入验证码', | |||
phone: '135****9090', | |||
code: '' | |||
}) | |||
const getCode = () => { | |||
console.log(123); | |||
} | |||
const submit=()=>{ | |||
console.log(11); | |||
uni.reLaunch({ | |||
url: '/pages/service/service' | |||
}); | |||
} | |||
</script> | |||
<style> | |||
page { | |||
width: 100%; | |||
height: 100%; | |||
display: flex; | |||
flex-direction: column; | |||
} | |||
</style> | |||
<style lang="scss" scoped> | |||
.oderPage { | |||
flex: 1; | |||
width: 100%; | |||
.content { | |||
display: flex; | |||
flex-direction: column; | |||
justify-content: center; | |||
align-items: center; | |||
padding: 130rpx; | |||
image { | |||
width: 390rpx; | |||
height: 307rpx; | |||
margin-bottom: 20rpx; | |||
} | |||
.title { | |||
font-size: 38rpx; | |||
font-weight: 600; | |||
font-size: 40rpx; | |||
font-family: Microsoft YaHei UI; | |||
color: #2A2A2A; | |||
} | |||
view { | |||
margin: 15rpx 0; | |||
font-size: 28rpx; | |||
font-family: Microsoft YaHei UI; | |||
font-weight: 400; | |||
color: #717171; | |||
} | |||
} | |||
} | |||
.submit { | |||
background: linear-gradient(to left, #43A1E0 0%, #13E7C1 100%); | |||
width: 670rpx; | |||
height: 80rpx; | |||
line-height: 80rpx; | |||
font-size: 32rpx; | |||
color: #fff; | |||
border-radius: 100rpx; | |||
position: fixed; | |||
bottom: 60rpx; | |||
left: 50%; | |||
transform: translate(-50%); | |||
} | |||
<template> | |||
<view class="oderPage"> | |||
<view class="content"> | |||
<image :src="`${$imgUrl}ETCcancellation/bg1.png`" mode=""></image> | |||
<view class="title"> | |||
办理成功 | |||
</view> | |||
<view class=""> | |||
您办理的增补OBU设备业务已完成 | |||
</view> | |||
</view> | |||
</view> | |||
<button class="submit" @click="submit">返回</button> | |||
</template> | |||
<script setup lang="ts"> | |||
const submit = () => { | |||
let routes = getCurrentPages(); | |||
uni.navigateBack({ | |||
delta: routes.length - 2 | |||
}); | |||
} | |||
</script> | |||
<style> | |||
page { | |||
width: 100%; | |||
height: 100%; | |||
display: flex; | |||
flex-direction: column; | |||
} | |||
</style> | |||
<style lang="scss" scoped> | |||
.oderPage { | |||
flex: 1; | |||
width: 100%; | |||
.content { | |||
display: flex; | |||
flex-direction: column; | |||
justify-content: center; | |||
align-items: center; | |||
padding: 130rpx; | |||
image { | |||
width: 390rpx; | |||
height: 307rpx; | |||
margin-bottom: 20rpx; | |||
} | |||
.title { | |||
font-size: 38rpx; | |||
font-weight: 600; | |||
font-size: 40rpx; | |||
font-family: Microsoft YaHei UI; | |||
color: #2A2A2A; | |||
} | |||
view { | |||
margin: 15rpx 0; | |||
font-size: 28rpx; | |||
font-family: Microsoft YaHei UI; | |||
font-weight: 400; | |||
color: #717171; | |||
} | |||
} | |||
} | |||
.submit { | |||
background: linear-gradient(to left, #43A1E0 0%, #13E7C1 100%); | |||
width: 670rpx; | |||
height: 80rpx; | |||
line-height: 80rpx; | |||
font-size: 32rpx; | |||
color: #fff; | |||
border-radius: 100rpx; | |||
position: fixed; | |||
bottom: 60rpx; | |||
left: 50%; | |||
transform: translate(-50%); | |||
} | |||
</style> |
@@ -0,0 +1,159 @@ | |||
<template> | |||
<view class="selectCar-box"> | |||
<view v-if="state.list&&state.list.length>0" @click="choose(i,item)" class="item" v-for="(item,i) in state.list" | |||
:key="i"> | |||
<view class="iten-left"> | |||
<image :src="`${$imgUrl}che.png`" mode=""></image> | |||
<text>{{item.vehiclePlate}}</text> | |||
</view> | |||
<view class="choose-item"> | |||
<view class="active" v-if="flag==i"> | |||
</view> | |||
</view> | |||
</view> | |||
<view v-else> | |||
<empty title='暂无找到相关车辆信息' /> | |||
</view> | |||
</view> | |||
</template> | |||
<script lang="ts" setup> | |||
import empty from "@/components/empty/empty.vue"; | |||
import { | |||
reactive, | |||
ref | |||
} from "vue" | |||
import { | |||
navTo | |||
} from "@/utils/utils" | |||
import { | |||
onLoad, | |||
} from "@dcloudio/uni-app"; | |||
import { | |||
orderList | |||
} from "@/utils/network/api.js"; | |||
import { | |||
request | |||
} from "@/utils/network/request.js"; | |||
import { | |||
getItem, | |||
StorageKeys, | |||
} from "@/utils/storage"; | |||
import { | |||
stringToJson | |||
} from "@/utils/network/encryption"; | |||
const state = reactive({ | |||
list: [] //车辆list | |||
}); | |||
const flag = ref('0') //默认选择0 | |||
onLoad(() => { | |||
quanCheckActionTrue().then((item: any) => { | |||
state.list = item.data | |||
}) | |||
}); | |||
const quanCheckActionTrue = () => { | |||
var data = { | |||
opId: getItem(StorageKeys.OpenId), | |||
source: 'WECHAT', //渠道为小程序 | |||
tabIndex: '0', //0全部 | |||
orderStep: '11', //11 为已完成” | |||
}; | |||
const options = { | |||
type: 2, | |||
data: data, | |||
method: "POST", | |||
showLoading: true, | |||
}; | |||
return new Promise(async (resolve, reject) => { | |||
const res = await request(orderList, options); | |||
const data = stringToJson(res.bizContent); | |||
resolve(data); | |||
}).catch((error) => { | |||
reject(error); | |||
}); | |||
} | |||
const choose = (i, item) => { | |||
flag.value = i | |||
navTo(`/after-sale/additional-equipment/additional-equipment-confirm?id=${item.id}`) | |||
} | |||
</script> | |||
<style> | |||
page { | |||
width: 100%; | |||
height: 100%; | |||
background-color: #EEF7F7; | |||
} | |||
</style> | |||
<style lang="scss" scoped> | |||
.flex { | |||
display: flex; | |||
justify-content: center; | |||
} | |||
.selectCar-box { | |||
// width: 100%; | |||
height: 100%; | |||
padding: 30rpx; | |||
.item { | |||
padding: 20rpx; | |||
display: flex; | |||
justify-content: space-between; | |||
align-items: center; | |||
height: 130rpx; | |||
background: #FFFFFF; | |||
box-shadow: 0rpx 2rpx 6rpx 0rpx rgba(223, 223, 223, 0.8); | |||
border-radius: 20rpx; | |||
margin-bottom: 30rpx; | |||
.iten-left { | |||
display: flex; | |||
align-items: center; | |||
image { | |||
width: 150rpx; | |||
height: 90rpx; | |||
} | |||
text { | |||
margin-left: 20rpx; | |||
font-size: 32rpx; | |||
font-family: Noto Sans S Chinese; | |||
font-weight: 400; | |||
color: #333333; | |||
} | |||
} | |||
.choose-item { | |||
width: 44rpx; | |||
height: 44rpx; | |||
background: #FFFFFF; | |||
border: 2rpx solid #00B38B; | |||
border-radius: 50%; | |||
margin-right: 20rpx; | |||
display: flex; | |||
justify-content: center; | |||
align-items: center; | |||
box-sizing: content-box; | |||
} | |||
.active { | |||
width: 34rpx; | |||
height: 34rpx; | |||
background: #00B38B; | |||
border-radius: 50%; | |||
} | |||
} | |||
} | |||
</style> |
@@ -49,7 +49,8 @@ | |||
</u-form> | |||
<button style="margin-top: 50rpx;" class="submit" v-if="apply.data.status === 'APPLY'||!apply.data.status" | |||
@click="toPage()">下一步填写资料</button> | |||
<button style="margin-top: 30rpx;" class="submit" v-if="apply.data.status" @click="changeCardQueryCancleAction()">撤回申请</button> | |||
<button style="margin-top: 30rpx;" class="submit" v-if="apply.data.status" | |||
@click="changeCardQueryCancleAction()">撤回申请</button> | |||
</view> | |||
</template> | |||
@@ -181,11 +182,7 @@ | |||
changeCardQueryAction().then(val => { | |||
apply.data = val | |||
apply.data.status = val.status; | |||
}) | |||
}); | |||
const getCode = () => { | |||
@@ -290,30 +287,30 @@ | |||
}; | |||
request(checkCode, options) | |||
.then(() => { | |||
if (apply.data.status === 'APPLY') { | |||
navTo( | |||
`/after-sale/replace-equipment/form?orderId=${params.orderId}&&id=${apply.data.id}` | |||
) | |||
} else { | |||
if (form.applyTypeName === '卡') { | |||
form.applyType = 'EXCHANGE_CARD' | |||
} else if (form.applyTypeName === 'OBU') { | |||
form.applyType = 'EXCHANGE_OBU' | |||
} else if (form.applyTypeName === '卡和OBU') { | |||
form.applyType = 'EXCHANGE_ALL' | |||
} | |||
if (form.damageModeName === '人为损坏') { | |||
form.damageMode = '0' | |||
} else if (form.damageModeName === '自然损坏') { | |||
form.damageMode = '1' | |||
} | |||
queryCckChangejzCardAction().then(val => { | |||
navTo( | |||
`/after-sale/replace-equipment/form?orderId=${params.orderId}&&id=${val.id}` | |||
) | |||
}) | |||
} | |||
if (apply.data.status === 'APPLY') { | |||
navTo( | |||
`/after-sale/replace-equipment/form?orderId=${params.orderId}&&id=${apply.data.id}` | |||
) | |||
} else { | |||
if (form.applyTypeName === '卡') { | |||
form.applyType = 'EXCHANGE_CARD' | |||
} else if (form.applyTypeName === 'OBU') { | |||
form.applyType = 'EXCHANGE_OBU' | |||
} else if (form.applyTypeName === '卡和OBU') { | |||
form.applyType = 'EXCHANGE_ALL' | |||
} | |||
if (form.damageModeName === '人为损坏') { | |||
form.damageMode = '0' | |||
} else if (form.damageModeName === '自然损坏') { | |||
form.damageMode = '1' | |||
} | |||
queryCckChangejzCardAction().then(val => { | |||
navTo( | |||
`/after-sale/replace-equipment/form?orderId=${params.orderId}&&id=${val.id}` | |||
) | |||
}) | |||
} | |||
}) | |||
.catch((err) => { |
@@ -75,8 +75,6 @@ | |||
state.orderId = option.orderId; | |||
state.clientFee = option.clientFee; | |||
state.id = option.id; | |||
state.data | |||
var data = {}; | |||
const options = { | |||
type: 2, |
@@ -305,18 +305,25 @@ | |||
"navigationBarTitleText": "ETC注销-支付", | |||
"enablePullDownRefresh": false | |||
} | |||
}, | |||
{ | |||
"path": "additional-equipment/select-car", | |||
"style": { | |||
"navigationBarTitleText": "增补OBU-选车", | |||
"enablePullDownRefresh": false | |||
} | |||
}, | |||
{ | |||
"path": "additional-equipment/additional-equipment-confirm", | |||
"style": { | |||
"navigationBarTitleText": "设备补增", | |||
"navigationBarTitleText": "增补OBU-确认", | |||
"enablePullDownRefresh": false | |||
} | |||
}, | |||
{ | |||
"path": "additional-equipment/additional-equipment-verification", | |||
"style": { | |||
"navigationBarTitleText": "设备补增-验证", | |||
"navigationBarTitleText": "增补OBU-验证", | |||
"enablePullDownRefresh": false | |||
} | |||
}, |
@@ -104,7 +104,7 @@ | |||
class="item-box" | |||
@click=" | |||
toNext( | |||
'/after-sale/additional-equipment/additional-equipment-confirm' | |||
'/after-sale/additional-equipment/select-car' | |||
) | |||
" | |||
> |
@@ -115,28 +115,27 @@ export const cckChangejzCardInfo = '95' //8.107.ASS-储值卡转记账卡填写 | |||
export const changeCardApply = '888' //换货/换卡签申请接口 | |||
export const changeCardQuery = '885' //换货/换卡签查询接口 | |||
export const changeCardQueryCancle = '884' //换货/换卡签取消查询接口 | |||
export const changeCardInfo = '887' //换货/换卡/填写信息接口 | |||
export const queryRefund= '924' //储值卡注销退费查询接口 | |||
export const queryRefundApply= '918' //储值卡注销余额补领申请接口 | |||
export const queryGuoHu= '47631d58945642afa053e07c306e99e6' //8.311.MTS-ASS-过户接口 | |||
export const queryGuoHuJianCe = '54dafed574f5475ea88b50eed9c58486'//8.312.ASS-过户检测接口 | |||
export const queryGuoHuCaoZuo = 'b1e66d22fb6f400f915458f5c50c7118'//8.312.ASS-过户检测接口 | |||
export const upLoadImg = "4a95e1d90e824ee8a50aa9826617e736"//CSMSN-激活照片上传 | |||
export const upLoadImg = "4a95e1d90e824ee8a50aa9826617e736"//CSMSN-激活照片上传 | |||
export const queryOBUAdd = "837c22e80fa34506a0855306d9cbb6f7"//增补OBU | |||
// 资金服务 | |||
export const CardBillQuery= '917' //通行流水欠费补缴信息查询接口 | |||
export const CardBillPlaceOrder= '916' //通行流水欠费补缴支付下单接口 | |||
export const CardBillPayStatus= '915' //通行流水欠费补缴支付查询接口 | |||
export const passBills= "925"//BDS-车辆通行流水分页查询接口 | |||
export const passBillCount= "db62a6c55461498ab2f412868eea6d24"//BDS-账单合计接口 | |||
export const downloadBills= "558c8a96265445c78b59b4473ad01d42"//BDS-明细下载接口 | |||
// 资金服务 | |||
export const CardBillQuery= '917' //通行流水欠费补缴信息查询接口 | |||
export const CardBillPlaceOrder= '916' //通行流水欠费补缴支付下单接口 | |||
export const CardBillPayStatus= '915' //通行流水欠费补缴支付查询接口 | |||
export const passBills= "925"//BDS-车辆通行流水分页查询接口 | |||
export const passBillCount= "db62a6c55461498ab2f412868eea6d24"//BDS-账单合计接口 | |||
export const downloadBills= "558c8a96265445c78b59b4473ad01d42"//BDS-明细下载接口 | |||
export const cardList= "152"//BDS-卡信息查询接口 | |||
//圈层 | |||
export const quanCheck = "69"; //圈层检测 | |||
export const quanApply = "70"; //圈层申请 |