@@ -0,0 +1,569 @@ | |||
<template> | |||
<view class="selectCar-box"> | |||
<view class="details"> | |||
<view class="title"> 基础信息 </view> | |||
<view class="details-item"> | |||
<view> 订单编号: </view> | |||
<text>{{ orderInfos.orderId }}</text> | |||
</view> | |||
<view class="details-item"> | |||
<view> 用户名称: </view> | |||
<text>{{ orderInfos.ownerName }}</text> | |||
</view> | |||
<view class="details-item"> | |||
<view> 用户证件类型: </view> | |||
<text>{{ getCredentialType(orderInfos.ownerIdtype) }}</text> | |||
</view> | |||
<view class="details-item"> | |||
<view> 用户证件号: </view> | |||
<text>{{ orderInfos.ownerIdnum }}</text> | |||
</view> | |||
<view class="details-item"> | |||
<view> 订单车牌号: </view> | |||
<text style="color: #00b38b">{{ orderInfos.vehiclePlate }}</text> | |||
</view> | |||
<view class="details-item"> | |||
<view> 车牌颜色: </view> | |||
<text style="color: #00b38b">{{ | |||
orderInfos.vehiclePlateColorStr | |||
}}</text> | |||
</view> | |||
<view class="details-item"> | |||
<view> 收费车型: </view> | |||
<text>{{ orderInfos.vehicleType }}</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"> {{orderInfos.cardId}} </view> | |||
<view class="tips"> | |||
<text>储蓄卡</text> | |||
<text class="tips-card">{{getEtcCardStatus(orderInfos.cardStatus)}}</text> | |||
</view> | |||
<view class="choose-item"> 有效期:xxxx-xx-xx </view> | |||
</view> | |||
</view> | |||
</view> | |||
<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"> {{orderInfos.obuId}} </view> | |||
<view class="tips"> | |||
<!-- <text>储蓄卡</text> --> | |||
<text class="tips-card">{{getObuStatus(orderInfos.obuStatus)}}</text> | |||
</view> | |||
<view class="choose-item"> 有效期:xxxx-xx-xx </view> | |||
</view> | |||
</view> | |||
</view> | |||
<button class="submit" @click="toPage">再次激活</button> | |||
<view class="mask" v-show="state.showPopup"> | |||
<view class="main"> | |||
<view class="top"> | |||
<image class="icon-close" :src="`${$imgUrl}common/icon-close.png`" @click="cancel"></image> | |||
</view> | |||
<image class="icon-success" :src="`${$imgUrl}bluetooth/device-active-success.png`"></image> | |||
<view class="title">设备激活成功!</view> | |||
</view> | |||
</view> | |||
</view> | |||
</template> | |||
<script lang="ts" setup> | |||
import { | |||
reactive, | |||
ref | |||
} from "vue"; | |||
import { | |||
formatTime, | |||
expireDate, | |||
expireDate2, | |||
getFormatDate, | |||
msg, | |||
navTo | |||
} from "../../utils/utils"; | |||
import { | |||
onLoad,onShow | |||
} from '@dcloudio/uni-app' | |||
// import { | |||
// getItem | |||
// } from "../../utils/storage"; | |||
import { | |||
request | |||
} from "../../utils/network/request.js"; | |||
// import { | |||
// IntegerToHexString, | |||
// AsciToHexString, | |||
// } from "../../utils/util/fileData.js"; | |||
import { | |||
stringToJson | |||
} from "../../utils/network/encryption.js"; | |||
import activeSuccess from "./components/popup-device-active-success"; | |||
import * as IFCODE from "../../utils/network/api.js"; | |||
const cmd = require("../../static/etcUtil/cmdConfig.js"); | |||
const tools = require("../../static/etcUtil/tools.js"); | |||
const bluetoothUtil = require("../../static/etcUtil/index.js"); | |||
import { | |||
getCredentialType | |||
} from "@/datas/credentialType.js"; | |||
import { | |||
getEtcCardStatus | |||
} from "@/datas/etcCardStatus.js"; | |||
import { | |||
getObuStatus | |||
} from "@/datas/obuStatus.js"; | |||
const state = reactive({ | |||
showPopup:false | |||
}) | |||
//订单 | |||
const orderInfos = reactive({ | |||
orderId: "", | |||
ownerName: "", | |||
ownerIdtype: "", | |||
ownerIdnum: "", | |||
vehiclePlate: "", | |||
vehiclePlateColorStr: "", | |||
vehiclePlateColor:"", | |||
vehicleType: "", | |||
cardId: "", | |||
cardStatus: "", | |||
obuId: "", | |||
obuStatus: "", | |||
outlineL:0, | |||
outlineW:0, | |||
outlineH:0, | |||
type:0, | |||
axleCount:0, | |||
approvedCount:0, | |||
vehicleVin:"", | |||
vehicleEngineNum:"", | |||
}); | |||
//OBU | |||
const obu = reactive({ | |||
obuId: "", | |||
startTime: "", | |||
endTime: "", | |||
version: "", | |||
approvedCount: "", | |||
axleCount: "", | |||
axleDistance: "", | |||
engineNum: "", | |||
type: "", | |||
userType: "", | |||
contractNo: "", | |||
vehiclePlate: "", | |||
vehiclePlateColor: "", | |||
vin: "", | |||
wheelCount: "", | |||
isJH: "" | |||
}); | |||
onLoad((option) => { | |||
//请求订单详情 | |||
queryOrderDetail(option.id); | |||
}); | |||
onShow((option) => { | |||
uni.$on('bluetoothLink', res => { | |||
console.log(res); | |||
if (res.status) { | |||
// getCardRenewal() | |||
getObuId() | |||
} | |||
//移除监听 | |||
uni.$off('bluetoothLink') | |||
}) | |||
}) | |||
const cancel = ()=>{ | |||
state.showPopup = false; | |||
navTo("/pages/service/service") | |||
}; | |||
const toPage = () => { | |||
navTo("/pages/bluetooth/bluetooth?routeType=5"); | |||
}; | |||
//获取订单详情 | |||
const queryOrderDetail = (id: string) => { | |||
const options = { | |||
type: 2, | |||
data: { | |||
id: id, | |||
}, | |||
method: "POST", | |||
showLoading: true, | |||
}; | |||
request(IFCODE.orderDetail, options).then((res) => { | |||
let orderInfo = JSON.parse(res.bizContent); | |||
console.log(orderInfo); | |||
orderInfos.orderId = orderInfo.orderId; | |||
orderInfos.ownerName = orderInfo.ownerName; | |||
orderInfos.ownerIdtype = orderInfo.ownerIdtype; | |||
orderInfos.ownerIdnum = orderInfo.ownerIdnum; | |||
orderInfos.vehiclePlate = orderInfo.vehiclePlate; | |||
orderInfos.vehiclePlateColorStr = orderInfo.vehiclePlateColorStr; | |||
orderInfos.vehiclePlateColor = orderInfo.vehiclePlateColor; | |||
orderInfos.vehicleType = orderInfo.vehicleType; | |||
orderInfos.cardId = orderInfo.cardId; | |||
orderInfos.cardStatus = orderInfo.cardStatus; | |||
orderInfos.obuId = orderInfo.obuId; | |||
orderInfos.obuStatus = orderInfo.obuStatus; | |||
let arr = orderInfo.vehicleDimensions.split("x"); | |||
orderInfos.outlineL = parseInt(arr[0]); //外廓 长 | |||
orderInfos.outlineW = parseInt(arr[1]); //外廓 宽 | |||
orderInfos.outlineH = parseInt(arr[2].substring(0, arr[2].length - 2)); //外廓 高 | |||
orderInfos.type=orderInfo.type; | |||
orderInfos.axleCount=orderInfo.vehicleAxleCount; | |||
orderInfos.approvedCount=orderInfo.vehicleApprovedCount; | |||
orderInfos.vehicleVin=orderInfo.vehicleVin; | |||
orderInfos.vehicleEngineNum=orderInfo.vehicleEngineNum; | |||
}); | |||
}; | |||
/** | |||
* 获取OBU号 读OBU | |||
*/ | |||
const getObuId = () => { | |||
console.log('======获取OBU号======') | |||
let cmdArray = [cmd.HOME_DIRECTORY, cmd.OBU_SYSTEM_FILE, cmd.RANDOM_NUMBER]; | |||
tools.showLoadingAlert("正在执行指令"); | |||
bluetoothUtil.transCmd(cmdArray, "20", function(res) { | |||
tools.hideLoadingAlert(); | |||
var status = res[1].substring(res[1].length - 4, res[1].length); | |||
console.log('获取OBU号执行结果' + status) | |||
//第一次获取随机数 | |||
if (status == "9000") { | |||
obu.obuId = res[1].substring(20, 36); | |||
obu.vin = res[1].substring(18, 20); | |||
obu.version = res[1].substring(18, 19) >= 4 ? "4x" : "2x"; | |||
getInstallApply() | |||
// cmdRandNum = res[2].substring(0, res[2].length - 4); | |||
} | |||
}); | |||
}; | |||
/** | |||
* BDS-安装申请 请求 | |||
*/ | |||
const getInstallApply = () => { | |||
console.log('======安装申请======') | |||
tools.showLoadingAlert("加载中"); | |||
let options = { | |||
type: 2, //type: 2,JSON格式提交数据(默认表单形式提交) | |||
data: { | |||
obuId: obu.obuId, | |||
vehicleId: orderInfos.vehiclePlate + "_" + orderInfos.vehiclePlateColor, | |||
orderId: orderInfos.orderId, | |||
agentId: "52010106004", | |||
channelId: "5201010200601130001", | |||
channelType: "1", | |||
staffId: "opId", | |||
terminalId: "999999999", | |||
}, //请求参数 | |||
method: "POST", //提交方式(默认POST) | |||
showLoading: true, //是否显示加载中(默认显示) | |||
}; | |||
//调用方式 | |||
request(IFCODE.installApply, options) | |||
.then(() => { | |||
tools.hideLoadingAlert(); | |||
// //再次获取随机数 | |||
// let cmdArr = [cmd.HOME_DIRECTORY, cmd.RANDOM_NUMBER]; | |||
// bluetoothUtil.transCmd(cmdArr, '20', function(res) { | |||
// var str = res[1].substring(res[1].length - 4, res[1].length); | |||
// if (str == "9000") { | |||
// cmdRandNum = res[1].substring(0, res[1].length - 4); | |||
// getObuActivation(cmdRandNum); | |||
// } else { | |||
// tools.alertF("RANDOM_NUMBER指令长度不符" + res[1]); | |||
// } | |||
// }) | |||
//再次获取随机数 | |||
let cmdArr = [cmd.HOME_DIRECTORY, cmd.RANDOM_NUMBER]; | |||
bluetoothUtil.transCmd(cmdArr, '20', function(res) { | |||
var str = res[1].substring(res[1].length - 4, res[1].length); | |||
if (str == "9000") { | |||
let cmdRandNum = res[1].substring(0, res[1].length - 4); | |||
getObuActivation(cmdRandNum); | |||
} else { | |||
tools.alertF("RANDOM_NUMBER指令长度不符" + res[1]); | |||
} | |||
}) | |||
}) | |||
}; | |||
/** | |||
* VFJ-OBU在线激活 请求 | |||
*/ | |||
const getObuActivation = (cmdRandNum:string) => { | |||
console.log('======VFJ-OBU在线激活======') | |||
tools.showLoadingAlert("加载中"); | |||
let options = { | |||
type: 2, //type: 2,JSON格式提交数据(默认表单形式提交) | |||
data: { | |||
random: cmdRandNum, | |||
obuSerailNo: obu.obuId, | |||
orderId: orderInfos.orderId, | |||
}, //请求参数 | |||
method: "POST", //提交方式(默认POST) | |||
showLoading: true, //是否显示加载中(默认显示) | |||
}; | |||
//调用方式 | |||
request(IFCODE.obuActivation, options) | |||
.then((res) => { | |||
tools.hideLoadingAlert(); | |||
console.log("在线激活 请求"); | |||
console.log(stringToJson(res.bizContent)); | |||
const datas = stringToJson(res.bizContent); | |||
tools.showLoadingAlert("执行指令"); | |||
bluetoothUtil.transCmd([datas.data.APDU], "20", function(res) { | |||
tools.hideLoadingAlert(); | |||
console.log(res); | |||
if (res[0] == "9000") { | |||
console.log("在线激活执行指令88888 请求", res); | |||
getObuInstall(0, ""); //status 0 - 安装成功 || 1 - 安装失败 | |||
} | |||
}); | |||
}) | |||
.catch((err) => { | |||
console.log(err); | |||
}); | |||
}; | |||
/** | |||
* BDS-安装确认 请求 | |||
*/ | |||
const getObuInstall = (status:number, reason:string) => { | |||
console.log('======OBU安装确认======') | |||
tools.showLoadingAlert("加载中"); | |||
let options = { | |||
type: 2, //type: 2,JSON格式提交数据(默认表单形式提交) | |||
data: { | |||
installStatus: status, | |||
failReason: reason, | |||
installType: "1", | |||
installChannelId: "5201010200601130001", | |||
obuId: obu.obuId, | |||
orderId: orderInfos.orderId | |||
}, //请求参数 | |||
method: "POST", //提交方式(默认POST) | |||
showLoading: true, //是否显示加载中(默认显示) | |||
}; | |||
//调用方式 | |||
request(IFCODE.obuInstall, options) | |||
.then(() => { | |||
tools.hideLoadingAlert(); | |||
state.showPopup = true; | |||
// uni.navigateTo({ | |||
// url: "/orders/order-details-new?id=" + | |||
// state.id + | |||
// "&orderId=" + | |||
// state.orderId, | |||
// }); | |||
// uni.navigateTo({ | |||
// url: "/after-sale/deviceInfo/deviceInfo", | |||
// }); | |||
}); | |||
}; | |||
</script> | |||
<style> | |||
page { | |||
width: 100%; | |||
height: 100%; | |||
background-color: #fff; | |||
} | |||
</style> | |||
<style lang="scss" scoped> | |||
.mask{ | |||
background: rgba(0, 0, 0, .35); | |||
position: fixed; | |||
left: 0; | |||
top: 0; | |||
bottom: 0; | |||
right: 0; | |||
} | |||
.main{ | |||
width: 560rpx; | |||
padding: 25rpx 20rpx 55rpx; | |||
text-align: center; | |||
background: #fff; | |||
position: absolute; | |||
left: 50%; | |||
top: 50%; | |||
transform: translate(-50%,-50%); | |||
border-radius: 20rpx; | |||
.top{ | |||
text-align: right; | |||
.icon-close{ | |||
width: 48rpx; | |||
height: 48rpx; | |||
} | |||
} | |||
.icon-success{ | |||
width: 500rpx; | |||
height: 320rpx; | |||
margin-top: 22rpx; | |||
} | |||
.title{ | |||
color: #333333; | |||
font-size: 40rpx; | |||
font-weight: 600; | |||
text-align: center; | |||
margin-top: 55rpx; | |||
} | |||
} | |||
.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; | |||
} | |||
} | |||
</style> |
@@ -0,0 +1,40 @@ | |||
<template> | |||
<view class="main"> | |||
<view class="top"> | |||
<image class="icon-close" :src="`${$imgUrl}common/icon-close.png`" @click="emit('cancel')"></image> | |||
</view> | |||
<image class="icon-success" :src="`${$imgUrl}bluetooth/device-active-success.png`"></image> | |||
<view class="title">设备激活成功!</view> | |||
</view> | |||
</template> | |||
<script setup lang="ts"> | |||
const emit = defineEmits(['cancel']) | |||
</script> | |||
<style lang="scss" scoped> | |||
.main{ | |||
width: 560rpx; | |||
padding: 25rpx 20rpx 55rpx; | |||
text-align: center; | |||
.top{ | |||
text-align: right; | |||
.icon-close{ | |||
width: 48rpx; | |||
height: 48rpx; | |||
} | |||
} | |||
.icon-success{ | |||
width: 500rpx; | |||
height: 320rpx; | |||
margin-top: 22rpx; | |||
} | |||
.title{ | |||
color: #333333; | |||
font-size: 40rpx; | |||
font-weight: 600; | |||
text-align: center; | |||
margin-top: 55rpx; | |||
} | |||
} | |||
</style> |
@@ -0,0 +1,171 @@ | |||
<template> | |||
<view class="selectCar-box"> | |||
<view v-if="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 class="flex"> | |||
暂无车辆订单信息 | |||
</view> | |||
</view> | |||
</template> | |||
<script lang="ts" setup> | |||
import { | |||
reactive, | |||
ref | |||
} from "vue" | |||
import { | |||
navTo | |||
} from "@/utils/utils" | |||
import { | |||
onLoad, | |||
onShow | |||
} from "@dcloudio/uni-app"; | |||
import { | |||
orderList | |||
} from "@/utils/network/api.js"; | |||
import { | |||
request | |||
} from "@/utils/network/request.js"; | |||
import { | |||
msg | |||
} from "@/utils/utils"; | |||
import { | |||
getItem, | |||
StorageKeys, | |||
setItem | |||
} from "@/utils/storage"; | |||
import { | |||
stringToJson | |||
} from "@/utils/network/encryption"; | |||
const state = reactive({ | |||
list: [] | |||
}); | |||
onLoad(() => { | |||
quanCheckActionTrue().then((item: any) => { | |||
state.list = item.data | |||
console.log(item) | |||
}) | |||
}); | |||
const quanCheckActionTrue = () => { | |||
var data = { | |||
opId: getItem(StorageKeys.OpenId), | |||
source: 'WECHAT', | |||
tabIndex: '0', | |||
orderStep: '11', | |||
isValueCard: '2' | |||
}; | |||
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 list = reactive([{ | |||
name: "A12345" | |||
}, | |||
{ | |||
name: "B12345" | |||
}, | |||
{ | |||
name: "C12345" | |||
}, | |||
]) | |||
const flag = ref('0') | |||
const choose = (i, item) => { | |||
console.log(item.cardId) | |||
navTo(`/after-sale/activation-once-again/activation-once-again?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> |
@@ -1,248 +1,429 @@ | |||
<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="`${$imgUrl}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> | |||
<view class="selectCar-box"> | |||
<view class="details"> | |||
<view class="title"> 基础信息 </view> | |||
<view class="details-item"> | |||
<view> 订单编号: </view> | |||
<text>{{ orderInfos.orderId }}</text> | |||
</view> | |||
<view class="details-item"> | |||
<view> 用户名称: </view> | |||
<text>{{ orderInfos.ownerName }}</text> | |||
</view> | |||
<view class="details-item"> | |||
<view> 用户证件类型: </view> | |||
<text>{{ getCredentialType(orderInfos.ownerIdtype) }}</text> | |||
</view> | |||
<view class="details-item"> | |||
<view> 用户证件号: </view> | |||
<text>{{ orderInfos.ownerIdnum }}</text> | |||
</view> | |||
<view class="details-item"> | |||
<view> 订单车牌号: </view> | |||
<text style="color: #00b38b">{{ orderInfos.vehiclePlate }}</text> | |||
</view> | |||
<view class="details-item"> | |||
<view> 车牌颜色: </view> | |||
<text style="color: #00b38b">{{ | |||
orderInfos.vehiclePlateColorStr | |||
}}</text> | |||
</view> | |||
<view class="details-item"> | |||
<view> 收费车型: </view> | |||
<text>{{ orderInfos.vehicleType }}</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"> {{orderInfos.cardId}} </view> | |||
<view class="tips"> | |||
<text>储蓄卡</text> | |||
<text class="tips-card">{{getEtcCardStatus(orderInfos.cardStatus)}}</text> | |||
</view> | |||
<view class="choose-item"> 有效期:xxxx-xx-xx </view> | |||
</view> | |||
</view> | |||
</view> | |||
<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"> {{orderInfos.obuId}} </view> | |||
<view class="tips"> | |||
<!-- <text>储蓄卡</text> --> | |||
<text class="tips-card">{{getObuStatus(orderInfos.obuStatus)}}</text> | |||
</view> | |||
<view class="choose-item"> 有效期:xxxx-xx-xx </view> | |||
</view> | |||
</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 = () => { | |||
navTo("/pages/bluetooth/bluetooth"); | |||
// if (flag.length == 0) { | |||
// uni.showToast({ | |||
// title: '请至少勾选一项', | |||
// }); | |||
// } else { | |||
// // wx.showModal({ | |||
// // title: '设备挂失', | |||
// // content: '请确认是否执行挂失操作', | |||
// // success: function(res) { | |||
// // if (res.confirm) { | |||
// // console.log('用户点击确定'); | |||
// // navTo('/after-sale/card-loss-reporting/cardloss') | |||
// // } else if (res.cancel) { | |||
// // console.log('用户点击取消'); | |||
// // } | |||
// // } | |||
// // }); | |||
// } | |||
}; | |||
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); | |||
} | |||
}; | |||
import { | |||
reactive, | |||
ref | |||
} from "vue"; | |||
import { | |||
navTo,msg | |||
} from "@/utils/utils"; | |||
import { | |||
onLoad, | |||
onUnload, | |||
onShow | |||
} from "@dcloudio/uni-app"; | |||
import { | |||
request | |||
} from "@/utils/network/request.js"; | |||
import { | |||
orderDetail, | |||
cardRenewal, | |||
cardStopOrStart, | |||
deviceUpgrade | |||
} from "@/utils/network/api.js"; | |||
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 tools = require("../../static/etcUtil/tools.js"); | |||
const bluetoothUtil = require("../../static/etcUtil/index.js"); | |||
const orderInfos = reactive({ | |||
orderId: "", | |||
ownerName: "", | |||
ownerIdtype: "", | |||
ownerIdnum: "", | |||
vehiclePlate: "", | |||
vehiclePlateColorStr: "", | |||
vehiclePlateColor:"", | |||
vehicleType: "", | |||
cardId: "", | |||
cardStatus: "", | |||
obuId: "", | |||
obuStatus: "", | |||
}); | |||
onLoad((option) => { | |||
//请求订单详情 | |||
queryOrderDetail(option.id); | |||
}); | |||
onShow((option) => { | |||
uni.$on('bluetoothLink', res => { | |||
console.log(res); | |||
if (res.status) { | |||
getCardRenewal() | |||
} | |||
//移除监听 | |||
uni.$off('bluetoothLink') | |||
}) | |||
}) | |||
const toPage = () => { | |||
// getCardStopOrStart() | |||
getDeviceUpgrade() | |||
// | |||
// navTo("/pages/bluetooth/bluetooth?routeType=5"); | |||
// if (flag.length == 0) { | |||
// uni.showToast({ | |||
// title: '请至少勾选一项', | |||
// }); | |||
// } else { | |||
// // wx.showModal({ | |||
// // title: '设备挂失', | |||
// // content: '请确认是否执行挂失操作', | |||
// // success: function(res) { | |||
// // if (res.confirm) { | |||
// // console.log('用户点击确定'); | |||
// // navTo('/after-sale/card-loss-reporting/cardloss') | |||
// // } else if (res.cancel) { | |||
// // console.log('用户点击取消'); | |||
// // } | |||
// // } | |||
// // }); | |||
// } | |||
}; | |||
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); | |||
} | |||
}; | |||
//获取订单详情 | |||
const queryOrderDetail = (id: string) => { | |||
const options = { | |||
type: 2, | |||
data: { | |||
id: id, | |||
}, | |||
method: "POST", | |||
showLoading: true, | |||
}; | |||
request(orderDetail, options).then((res) => { | |||
let orderInfo = JSON.parse(res.bizContent); | |||
console.log(orderInfo); | |||
orderInfos.orderId = orderInfo.orderId; | |||
orderInfos.ownerName = orderInfo.ownerName; | |||
orderInfos.ownerIdtype = orderInfo.ownerIdtype; | |||
orderInfos.ownerIdnum = orderInfo.ownerIdnum; | |||
orderInfos.vehiclePlate = orderInfo.vehiclePlate; | |||
orderInfos.vehiclePlateColorStr = orderInfo.vehiclePlateColorStr; | |||
orderInfos.vehiclePlateColor = orderInfo.vehiclePlateColor; | |||
orderInfos.vehicleType = orderInfo.vehicleType; | |||
orderInfos.cardId = orderInfo.cardId; | |||
orderInfos.cardStatus = orderInfo.cardStatus; | |||
orderInfos.obuId = orderInfo.obuId; | |||
orderInfos.obuStatus = orderInfo.obuStatus; | |||
}); | |||
}; | |||
//卡签续期 请求 | |||
const getCardRenewal = () => { | |||
const options = { | |||
type: 2, | |||
data: { | |||
cardId: orderInfos.cardId, | |||
}, | |||
method: "POST", | |||
showLoading: true, | |||
}; | |||
request(cardRenewal, options).then((res) => { | |||
let result = stringToJson(res.bizContent); | |||
console.log(result); | |||
let cmdArray = []; | |||
tools.showLoadingAlert("正在执行指令"); | |||
bluetoothUtil.transCmd(cmdArray, "10", function(res: any) { | |||
tools.hideLoadingAlert(); | |||
console.log(res); | |||
}) | |||
}) | |||
} | |||
//卡停用/启用 请求 | |||
const getCardStopOrStart = () => { | |||
const options = { | |||
type: 2, | |||
data: { | |||
cardId: orderInfos.cardId, | |||
operation: 1,//1停用2启用 | |||
}, | |||
method: "POST", | |||
showLoading: true, | |||
}; | |||
request(cardStopOrStart, options).then((res) => { | |||
let result = stringToJson(res.bizContent); | |||
console.log(result); | |||
// let cmdArray = []; | |||
// tools.showLoadingAlert("正在执行指令"); | |||
// bluetoothUtil.transCmd(cmdArray, "10", function(res: any) { | |||
// tools.hideLoadingAlert(); | |||
// console.log(res); | |||
// }) | |||
}) | |||
}; | |||
//设备升级 请求 | |||
const getDeviceUpgrade = () => { | |||
const options = { | |||
type: 2, | |||
data: { | |||
cardId: orderInfos.cardId, | |||
vehiclePlate: orderInfos.vehiclePlate, | |||
expireTime:"", | |||
customerName:orderInfos.ownerName, | |||
customerIdNum:orderInfos.ownerIdnum, | |||
vehiclePlateColor:orderInfos.vehiclePlateColor, | |||
}, | |||
method: "POST", | |||
showLoading: true, | |||
}; | |||
request(deviceUpgrade, options).then((res) => { | |||
let result = stringToJson(res.bizContent); | |||
console.log(result); | |||
// let cmdArray = []; | |||
// tools.showLoadingAlert("正在执行指令"); | |||
// bluetoothUtil.transCmd(cmdArray, "10", function(res: any) { | |||
// tools.hideLoadingAlert(); | |||
// console.log(res); | |||
// }) | |||
}) | |||
} | |||
</script> | |||
<style> | |||
page { | |||
width: 100%; | |||
height: 100%; | |||
background-color: #fff; | |||
} | |||
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; | |||
} | |||
} | |||
.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; | |||
} | |||
} | |||
</style> |
@@ -85,7 +85,7 @@ import { reactive, ref } from "vue"; | |||
import { navTo } from "@/utils/utils"; | |||
const toPage = () => { | |||
console.log(11); | |||
navTo("/pages/bluetooth/bluetooth"); | |||
navTo("/pages/bluetooth/bluetooth?routeType=5"); | |||
// wx.showModal({ | |||
// title: '提示', | |||
// content: '检测到当前只有ETC卡,需要办理obu设备才可以通行,是否前往办理,无需办理点击继续注销', |
@@ -1,75 +1,81 @@ | |||
export const credentialType = [{ | |||
id: 101, | |||
type: '身份证(含临时身份证)' | |||
title: '身份证(含临时身份证)' | |||
}, | |||
{ | |||
id: 102, | |||
type: '护照(限外籍人士)' | |||
title: '护照(限外籍人士)' | |||
}, | |||
{ | |||
id: 103, | |||
type: '港澳居民来往内地通行证' | |||
title: '港澳居民来往内地通行证' | |||
}, | |||
{ | |||
id: 104, | |||
type: '台湾居民来往大陆通行证' | |||
title: '台湾居民来往大陆通行证' | |||
}, | |||
{ | |||
id: 105, | |||
type: '军官证' | |||
title: '军官证' | |||
}, | |||
{ | |||
id: 106, | |||
type: '武警警察身份证' | |||
title: '武警警察身份证' | |||
}, | |||
{ | |||
id: 113, | |||
type: '澳门永久/非永久居民身份证' | |||
title: '澳门永久/非永久居民身份证' | |||
}, | |||
{ | |||
id: 114, | |||
type: '香港永久/非永久居民身份证' | |||
title: '香港永久/非永久居民身份证' | |||
}, | |||
{ | |||
id: 201, | |||
type: '统一社会信用代码证书' | |||
title: '统一社会信用代码证书' | |||
}, | |||
{ | |||
id: 202, | |||
type: '组织机构代码证' | |||
title: '组织机构代码证' | |||
}, | |||
{ | |||
id: 203, | |||
type: '营业执照' | |||
title: '营业执照' | |||
}, | |||
{ | |||
id: 204, | |||
type: '事业单位法人证书' | |||
title: '事业单位法人证书' | |||
}, | |||
{ | |||
id: 205, | |||
type: '社会团体法人登记证书' | |||
title: '社会团体法人登记证书' | |||
}, | |||
{ | |||
id: 206, | |||
type: '律师事务所执业许可证' | |||
title: '律师事务所执业许可证' | |||
}, | |||
{ | |||
id: 217, | |||
type: '公司商业登记副本(3个月内)' | |||
title: '公司商业登记副本(3个月内)' | |||
}, | |||
{ | |||
id: 218, | |||
type: '公司营业税单M8副本' | |||
title: '公司营业税单M8副本' | |||
}, | |||
{ | |||
id: 219, | |||
type: '公司营业税开业/更改M1副本' | |||
title: '公司营业税开业/更改M1副本' | |||
} | |||
]; | |||
//获取证件类型名称 | |||
export const getCredentialType = (id) => { | |||
export const getCredentialType = (id=101) => { | |||
let types = credentialType.filter(item => item.id == id); | |||
return types[0].type | |||
console.log(types); | |||
if(types.length>0){ | |||
return types[0].title | |||
}else{ | |||
return "" | |||
} | |||
} |
@@ -41,7 +41,7 @@ export const vehiclePlateColor = [{ | |||
] | |||
//获取车牌颜色 | |||
export const getVehiclePlateColor = (id) => { | |||
export const getVehiclePlateColor = (id=0) => { | |||
let colors = vehiclePlateColor.filter(item => item.id == id); | |||
return colors[0].color | |||
} |
@@ -42,7 +42,7 @@ export const vehicleType = [ | |||
} | |||
]; | |||
//获取车辆类型 | |||
export const getVehicleType = (id) => { | |||
export const getVehicleType = (id=1) => { | |||
let types = vehicleType.filter(item => item.id == id); | |||
return types[0].title | |||
} |
@@ -94,6 +94,18 @@ | |||
"navigationBarTitleText": "操作提示" | |||
} | |||
}, | |||
{ | |||
"path": "activation-once-again/activation-once-again", | |||
"style": { | |||
"navigationBarTitleText": "OBU重新激活" | |||
} | |||
}, | |||
{ | |||
"path": "activation-once-again/select-car", | |||
"style": { | |||
"navigationBarTitleText": "选择车辆" | |||
} | |||
}, | |||
{ | |||
"path": "reportLossCard", | |||
"style": { |
@@ -517,9 +517,13 @@ const connectSuccess = (res) => { | |||
}); | |||
} | |||
else if(routeType.value == "5"){ | |||
uni.navigateTo({ | |||
url: "/after-sale/card-Renewal/renewal-confirm", | |||
}); | |||
// uni.navigateTo({ | |||
// url: "/after-sale/card-Renewal/renewal-confirm", | |||
// }); | |||
uni.$emit('bluetoothLink',{status:true}) | |||
uni.navigateBack({ | |||
delta:1 | |||
}) | |||
}else { | |||
return; | |||
} |
@@ -122,7 +122,7 @@ | |||
</view> | |||
<view class="text">卡签解除挂起</view> | |||
</view> | |||
<view class="item-box"> | |||
<view class="item-box" @click="toNext('/after-sale/activation-once-again/select-car')"> | |||
<view class="item bg-blue" :style="{'--background':bgBlue}"> | |||
<image :src="`${$imgUrl}service/imgs/obucxjh.png`" /> | |||
</view> |
@@ -105,6 +105,7 @@ export const quanXf = "71"; //圈存修复V (写指令) | |||
export const quanConfirm = "72"; //圈存确认 | |||
//卡操作 | |||
//卡签操作 | |||
export const cardRenewal = "891" //ASS-卡续期 | |||
export const cardStopOrStart ="892" //ASS-卡停/启用 | |||
export const cardStopOrStart ="892" //ASS-卡停/启用 | |||
export const deviceUpgrade = "893"//BDS-设备升级接口 |