|
|
@@ -1,824 +0,0 @@ |
|
|
|
<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>{{ getCodeName('CERTIFICATE_TYPE',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">{{getCodeName('CARD_STATE_TYPE',orderInfos.cardStatus)}}</text> |
|
|
|
</view> |
|
|
|
<view class="choose-item1"> 有效期:{{orderInfos.cardExpireTime }}</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<view class="choose-item" @click="choose(1)"> |
|
|
|
<view class="active" v-if="flag.includes(1)"> |
|
|
|
|
|
|
|
</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 class="tips-card">{{getCodeName('OBU_STATE_TYPE',orderInfos.obuStatus)}}</text> |
|
|
|
</view> |
|
|
|
<view class="choose-item1"> 有效期:{{orderInfos.obuExpireTime }} </view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<view class="choose-item" @click="choose(2)"> |
|
|
|
<view class="active" v-if="flag.includes(2)"> |
|
|
|
|
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
|
|
|
|
<button class="submit" @click="toPage" v-if="!state.flag">卡签续期</button> |
|
|
|
<button class="submit" @click="toBack" v-else="state.flag">返回服务中心</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/card-success.png`"></image> |
|
|
|
<view class="title">{{state.successName}}续期成功!</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</template> |
|
|
|
|
|
|
|
<script setup> |
|
|
|
import { |
|
|
|
getCodeName |
|
|
|
} from "@/datas/queryKey.js"; |
|
|
|
|
|
|
|
import { |
|
|
|
reactive, |
|
|
|
ref |
|
|
|
} from "vue"; |
|
|
|
import { |
|
|
|
navTo |
|
|
|
} from "@/utils/utils"; |
|
|
|
import { |
|
|
|
onLoad, |
|
|
|
onUnload, |
|
|
|
onShow |
|
|
|
} from "@dcloudio/uni-app"; |
|
|
|
import { |
|
|
|
request |
|
|
|
} from "@/utils/network/request.js"; |
|
|
|
import { |
|
|
|
orderDetail, |
|
|
|
cardRenewal, |
|
|
|
writeCardBack, |
|
|
|
cardModifyConfirm, |
|
|
|
obuRenewal, |
|
|
|
modifyObuVehicleInfo, |
|
|
|
obuActivation, |
|
|
|
renewalTimeApi |
|
|
|
} from "@/utils/network/api.js"; |
|
|
|
import { |
|
|
|
getVehiclePlateColor |
|
|
|
} from "@/datas/vehiclePlateColor"; |
|
|
|
import { |
|
|
|
searchVehicleInfoQuery |
|
|
|
} from "@/utils/publicRequest"; |
|
|
|
const cmd = require("../../../static/etcUtil/cmdConfig.js"); |
|
|
|
import { |
|
|
|
IntegerToHexString, |
|
|
|
AsciToHexString, |
|
|
|
} from "@/utils/util/fileData.js"; |
|
|
|
|
|
|
|
import { |
|
|
|
stringToJson |
|
|
|
} from "@/utils/network/encryption"; |
|
|
|
const tools = require("../../../static/etcUtil/tools.js"); |
|
|
|
const bluetoothUtil = require("../../../static/etcUtil/index.js"); |
|
|
|
const state = reactive({ |
|
|
|
showPopup: false, |
|
|
|
flag: false, |
|
|
|
successName: "" |
|
|
|
|
|
|
|
}) |
|
|
|
const flag = reactive([]) |
|
|
|
const type = ref('') |
|
|
|
const fileDataStrings = reactive({ |
|
|
|
approvedCount: 0, //核载人数 |
|
|
|
cardId: "", //卡号 |
|
|
|
obuId: "", //obu号 |
|
|
|
obuId: "", //obu号 |
|
|
|
packageNum: "", //套餐编号 |
|
|
|
axleCount: 0, //轴数 |
|
|
|
axleDistance: "", //轴距 |
|
|
|
engineNum: "", //发动机 |
|
|
|
vehicleVin: "", |
|
|
|
vehicleEngineNum: "", |
|
|
|
cardStatus: "", |
|
|
|
obuStatus: "", |
|
|
|
type: 0, //类型 |
|
|
|
userType: 0, //用户类型 |
|
|
|
vehiclePlate: "", //车牌 |
|
|
|
vehiclePlateColor: 0, //车牌颜色 |
|
|
|
vehicleDimensions: "", |
|
|
|
outlineL: 0, //外廓 长 |
|
|
|
outlineW: 0, //外廓 宽 |
|
|
|
outlineH: 0, //外廓 高 |
|
|
|
wheelCount: "", //车轮数 |
|
|
|
vehicleIdNo: "", //车牌号 |
|
|
|
vehiclePlateColorStr: "", |
|
|
|
customerTel: "", |
|
|
|
customerId: "", |
|
|
|
orderId: "" |
|
|
|
}); |
|
|
|
let cmdRandNum = ''; |
|
|
|
const orderInfos = reactive({ |
|
|
|
orderId: "", |
|
|
|
ownerName: "", |
|
|
|
ownerIdtype: "", |
|
|
|
ownerIdnum: "", |
|
|
|
vehiclePlate: "", |
|
|
|
vehiclePlateColorStr: "", |
|
|
|
vehiclePlateColor: "", |
|
|
|
vehicleType: "", |
|
|
|
cardId: "", |
|
|
|
cardStatus: "", |
|
|
|
obuId: "", |
|
|
|
obuStatus: "", |
|
|
|
cardEnableTime: "", |
|
|
|
obuEnableTime: "", |
|
|
|
cardExpireTime: "", |
|
|
|
obuExpireTime: "" |
|
|
|
}); |
|
|
|
let orderInfo = {}; |
|
|
|
onLoad((option) => { |
|
|
|
//请求订单详情 |
|
|
|
queryOrderDetail(option.id); |
|
|
|
getOrderDetails(option.id) |
|
|
|
}); |
|
|
|
|
|
|
|
onShow((option) => { |
|
|
|
uni.$on('bluetoothLink', res => { |
|
|
|
console.log(res); |
|
|
|
if (res.status) { |
|
|
|
// 分别写 |
|
|
|
if (flag.length == 1) { |
|
|
|
for (var i = 0; i < flag.length; i++) { |
|
|
|
if (flag[i] == 1) { |
|
|
|
state.successName = '卡' |
|
|
|
getCardRenewal() |
|
|
|
} else { |
|
|
|
state.successName = '签' |
|
|
|
getObuRenewal() |
|
|
|
} |
|
|
|
} |
|
|
|
} else { |
|
|
|
state.successName = '卡签' |
|
|
|
// 两个都要写, |
|
|
|
getCardRenewal() |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
}) |
|
|
|
|
|
|
|
}) |
|
|
|
onUnload(() => { |
|
|
|
//移除监听 |
|
|
|
uni.$off('bluetoothLink') |
|
|
|
}) |
|
|
|
const choose = (data) => { |
|
|
|
if (!flag.includes(data)) { |
|
|
|
flag.push(data) |
|
|
|
console.log(flag); |
|
|
|
|
|
|
|
} else { |
|
|
|
flag.splice(flag.indexOf(data), 1) |
|
|
|
console.log(flag); |
|
|
|
} |
|
|
|
|
|
|
|
if (flag.length == 2) { |
|
|
|
type.value = '3' |
|
|
|
} else if (flag[0] == 1) { |
|
|
|
type.value = '1' |
|
|
|
} else { |
|
|
|
type.value = '2' |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
//获取订单详情 |
|
|
|
const queryOrderDetail = (id) => { |
|
|
|
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", 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; |
|
|
|
orderInfos.cardExpireTime = orderInfo.cardExpireTime; |
|
|
|
orderInfos.obuExpireTime = orderInfo.obuExpireTime; |
|
|
|
console.log("orderInfos.cardExpiretime", orderInfos.cardExpiretime, orderInfo.cardExpiretime) |
|
|
|
}); |
|
|
|
}; |
|
|
|
|
|
|
|
//卡续期 请求 |
|
|
|
const getCardRenewal = () => { |
|
|
|
const options = { |
|
|
|
type: 2, |
|
|
|
data: { |
|
|
|
cardId: orderInfos.cardId, |
|
|
|
}, |
|
|
|
method: "POST", |
|
|
|
showLoading: true, |
|
|
|
}; |
|
|
|
request(cardRenewal, options).then((res) => { |
|
|
|
let result = stringToJson(res.bizContent); |
|
|
|
let cmdArray = result.command.split(","); |
|
|
|
console.log(cmdArray); |
|
|
|
console.log(result.cosRecordId); |
|
|
|
if (cmdArray.length > 0) { |
|
|
|
tools.showLoadingAlert("正在执行指令"); |
|
|
|
bluetoothUtil.transCmd(cmdArray, "10", function(res) { |
|
|
|
tools.hideLoadingAlert(); |
|
|
|
let status = res[cmdArray.length - 1].substring(res[cmdArray.length - 1].length - |
|
|
|
4, res[cmdArray.length - 1].length); |
|
|
|
if (status == "9000") { |
|
|
|
getCommandBack(result.command, result.cosRecordId, res.toString()); |
|
|
|
} |
|
|
|
}) |
|
|
|
} |
|
|
|
}) |
|
|
|
}; |
|
|
|
|
|
|
|
/** |
|
|
|
* 写卡指令返回 请求 |
|
|
|
*/ |
|
|
|
const getCommandBack = (command, cosRecordId, response) => { |
|
|
|
console.log('======循环写卡指令中======') |
|
|
|
tools.showLoadingAlert("加载中"); |
|
|
|
let options = { |
|
|
|
type: 2, //type: 2,JSON格式提交数据(默认表单形式提交) |
|
|
|
data: { |
|
|
|
cardId: orderInfos.cardId, |
|
|
|
orderId: orderInfos.orderId, |
|
|
|
command: command, |
|
|
|
response: response, |
|
|
|
cosRecordId: cosRecordId, |
|
|
|
cosType: 2 |
|
|
|
}, //请求参数 |
|
|
|
method: "POST", //提交方式(默认POST) |
|
|
|
showLoading: true, //是否显示加载中(默认显示) |
|
|
|
}; |
|
|
|
|
|
|
|
//调用方式 |
|
|
|
request(writeCardBack, options) |
|
|
|
.then((res) => { |
|
|
|
tools.hideLoadingAlert(); |
|
|
|
let result = JSON.parse(res.bizContent); |
|
|
|
if (result.orderStatus == 1 || result.orderStatus == "1") { |
|
|
|
tools.showLoadingAlert("执行指令中"); |
|
|
|
bluetoothUtil.transCmd(result.command.split(","), "10", function(res) { |
|
|
|
tools.hideLoadingAlert(); |
|
|
|
let response = res.toString(); |
|
|
|
getCommandBack(result.command, cosRecordId, response); |
|
|
|
}); |
|
|
|
} else { |
|
|
|
getCardModifyConfirm(cosRecordId) |
|
|
|
} |
|
|
|
}) |
|
|
|
}; |
|
|
|
|
|
|
|
//卡信息变更确认 |
|
|
|
const getCardModifyConfirm = (cosRecordId) => { |
|
|
|
const options = { |
|
|
|
type: 2, |
|
|
|
data: { |
|
|
|
cardId: orderInfos.cardId, |
|
|
|
operation: 1, |
|
|
|
cosRecordId: cosRecordId |
|
|
|
}, |
|
|
|
method: "POST", |
|
|
|
showLoading: true, |
|
|
|
}; |
|
|
|
request(cardModifyConfirm, options).then((res) => { |
|
|
|
// 只写卡 |
|
|
|
if (flag.length == 1) { |
|
|
|
sure(1) |
|
|
|
state.showPopup = true; |
|
|
|
} else { |
|
|
|
// 为2要写签 |
|
|
|
getObuRenewal() |
|
|
|
} |
|
|
|
}) |
|
|
|
} |
|
|
|
|
|
|
|
//去连接蓝牙 |
|
|
|
const toPage = () => { |
|
|
|
console.log("flag.length", flag, type) |
|
|
|
if (flag.length == 0) { |
|
|
|
uni.showToast({ |
|
|
|
title: '请至少勾选一项', |
|
|
|
icon: 'none' |
|
|
|
}); |
|
|
|
} else { |
|
|
|
console.log("getCurrentPages()", getCurrentPages()) |
|
|
|
navTo("/pages/bluetooth/bluetooth?routeType=5"); //去连接蓝牙 |
|
|
|
} |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
//返回列表 |
|
|
|
const toBack = () => { |
|
|
|
uni.redirectTo({ |
|
|
|
url: "/pages/service/service" |
|
|
|
}) |
|
|
|
} |
|
|
|
|
|
|
|
//关闭弹窗 |
|
|
|
const cancel = () => { |
|
|
|
state.flag = true; |
|
|
|
state.showPopup = false; |
|
|
|
uni.navigateTo({ |
|
|
|
url: `/subpackage/after-sale/deviceInfo/deviceInfo` |
|
|
|
}) |
|
|
|
} |
|
|
|
|
|
|
|
//签续期 请求 |
|
|
|
const getObuRenewal = () => { |
|
|
|
let cmdArray1 = [cmd.HOME_DIRECTORY, cmd.OBU_SYSTEM_FILE, cmd.RANDOM_NUMBER]; |
|
|
|
tools.showLoadingAlert("正在执行指令"); |
|
|
|
bluetoothUtil.transCmd(cmdArray1, "20", function(res) { |
|
|
|
tools.hideLoadingAlert(); |
|
|
|
var str = res[2].substring(res[2].length - 4, res[2].length); |
|
|
|
if (str == "9000") { |
|
|
|
cmdRandNum = res[2].substring(0, res[2].length - 4); |
|
|
|
const options = { |
|
|
|
type: 2, |
|
|
|
data: { |
|
|
|
obuId: orderInfos.obuId, |
|
|
|
random: cmdRandNum |
|
|
|
}, |
|
|
|
method: "POST", |
|
|
|
showLoading: true, |
|
|
|
}; |
|
|
|
request(obuRenewal, options).then((res) => { |
|
|
|
let datas = stringToJson(res.bizContent); |
|
|
|
console.log("899", datas, datas.data.APDU); |
|
|
|
if (datas.data.APDU) { |
|
|
|
tools.showLoadingAlert("正在执行指令"); |
|
|
|
bluetoothUtil.transCmd([datas.data.APDU], "20", function(res) { |
|
|
|
tools.hideLoadingAlert(); |
|
|
|
console.log("res=====", res, res[0]) |
|
|
|
let cmdArr = [cmd.HOME_DIRECTORY, cmd.OBU_DF01, cmd.OBU_EF01, cmd |
|
|
|
.RANDOM_NUMBER |
|
|
|
]; |
|
|
|
bluetoothUtil.transCmd(cmdArr, "20", function(res) { |
|
|
|
console.log("chelaing======", res) |
|
|
|
var str = res[3].substring(res[3].length - 4, res[3] |
|
|
|
.length); |
|
|
|
if (str == "9000") { |
|
|
|
cmdRandNum = res[3].substring(0, res[3].length - |
|
|
|
4); |
|
|
|
console.log("0000000000000000000000000") |
|
|
|
getFileData((demos) => { |
|
|
|
modifyVehicle(demos); |
|
|
|
}) |
|
|
|
} else { |
|
|
|
tools.alertF("RANDOM_NUMBER指令长度不符" + res[1]); |
|
|
|
} |
|
|
|
}) |
|
|
|
|
|
|
|
}) |
|
|
|
} |
|
|
|
}) |
|
|
|
} else { |
|
|
|
tools.alertF("RANDOM_NUMBER指令长度不符" + res[1]); |
|
|
|
} |
|
|
|
}) |
|
|
|
}; |
|
|
|
//获取fileData |
|
|
|
const getFileData = (fun) => { |
|
|
|
searchVehicleInfoQuery(orderInfo.vehiclePlate + "_" + orderInfo.vehiclePlateColor,cmdRandNum).then((orderInfo) => { |
|
|
|
console.log("orderInfo==",orderInfo,orderInfo.fileData) |
|
|
|
fun(orderInfo.fileData); |
|
|
|
}) |
|
|
|
}; |
|
|
|
/** |
|
|
|
* 修改车辆信息 请求 |
|
|
|
*/ |
|
|
|
const modifyVehicle = (ites) => { |
|
|
|
tools.showLoadingAlert("加载中"); |
|
|
|
console.log('======修改车辆信息======', ites) |
|
|
|
let options = { |
|
|
|
type: 2, //type: 2,JSON格式提交数据(默认表单形式提交) |
|
|
|
data: { |
|
|
|
Status: "0", |
|
|
|
random: cmdRandNum, |
|
|
|
obuSerailNo: orderInfos.obuId, |
|
|
|
fileData: ites, |
|
|
|
orderId: orderInfos.orderId, |
|
|
|
}, //请求参数 |
|
|
|
method: "POST", //提交方式(默认POST) |
|
|
|
showLoading: true, //是否显示加载中(默认显示) |
|
|
|
}; |
|
|
|
//调用方式 |
|
|
|
request(modifyObuVehicleInfo, options) |
|
|
|
.then((res) => { |
|
|
|
tools.hideLoadingAlert(); |
|
|
|
const datas = stringToJson(res.bizContent); |
|
|
|
console.log("modifyObuVehicleInfo", modifyObuVehicleInfo, datas) |
|
|
|
tools.showLoadingAlert("正在执行指令"); |
|
|
|
if (datas.data.APDU) { |
|
|
|
bluetoothUtil.transCmd([datas.data.APDU], "20", function(res) { |
|
|
|
console.log('执行指令结果', res) |
|
|
|
tools.hideLoadingAlert(); |
|
|
|
if (res[0] == "9000") { |
|
|
|
//再次获取随机数 |
|
|
|
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(); |
|
|
|
} else { |
|
|
|
tools.alertF("RANDOM_NUMBER指令长度不符" + res[1]); |
|
|
|
} |
|
|
|
}) |
|
|
|
} |
|
|
|
}); |
|
|
|
} |
|
|
|
}) |
|
|
|
}; |
|
|
|
/** |
|
|
|
* VFJ-OBU在线激活 请求 |
|
|
|
*/ |
|
|
|
const getObuActivation = () => { |
|
|
|
console.log('======VFJ-OBU在线激活======') |
|
|
|
tools.showLoadingAlert("加载中"); |
|
|
|
let options = { |
|
|
|
type: 2, //type: 2,JSON格式提交数据(默认表单形式提交) |
|
|
|
data: { |
|
|
|
random: cmdRandNum, |
|
|
|
obuSerailNo: orderInfos.obuId, |
|
|
|
orderId: orderInfos.orderId, |
|
|
|
}, //请求参数 |
|
|
|
method: "POST", //提交方式(默认POST) |
|
|
|
showLoading: true, //是否显示加载中(默认显示) |
|
|
|
}; |
|
|
|
//调用方式 |
|
|
|
request(obuActivation, options) |
|
|
|
.then((res) => { |
|
|
|
tools.hideLoadingAlert(); |
|
|
|
console.log("在线激活 请求"); |
|
|
|
console.log(stringToJson(res.bizContent)); |
|
|
|
const datas = stringToJson(res.bizContent); |
|
|
|
tools.showLoadingAlert("执行指令"); |
|
|
|
console.log("在线激活 请求==========================", datas, datas.data.APDU); |
|
|
|
bluetoothUtil.transCmd([datas.data.APDU], "20", function(res) { |
|
|
|
tools.hideLoadingAlert(); |
|
|
|
console.log("在线激活 请求", res); |
|
|
|
if (res[0] == "9000") { |
|
|
|
sure(2) |
|
|
|
state.showPopup = true; |
|
|
|
} |
|
|
|
}); |
|
|
|
}) |
|
|
|
.catch((err) => { |
|
|
|
console.log(err); |
|
|
|
}); |
|
|
|
}; |
|
|
|
//获取订单详情 |
|
|
|
const getOrderDetails = (id) => { |
|
|
|
console.log('======获取订单信息======') |
|
|
|
const options = { |
|
|
|
type: 2, |
|
|
|
data: { |
|
|
|
id: id, |
|
|
|
}, |
|
|
|
method: "POST", |
|
|
|
showLoading: true, |
|
|
|
}; |
|
|
|
request(orderDetail, options).then((res) => { |
|
|
|
orderInfo = JSON.parse(res.bizContent); |
|
|
|
console.log("orderInfo", orderInfo); |
|
|
|
console.log("orderInfores", res); |
|
|
|
if (orderInfo) { |
|
|
|
fileDataStrings.userType = orderInfo.userType; //用户类型 |
|
|
|
fileDataStrings.cardId = orderInfo.cardId; |
|
|
|
fileDataStrings.packageNum = orderInfo.packageNum; |
|
|
|
fileDataStrings.obuId = orderInfo.obuId; |
|
|
|
fileDataStrings.customerTel = orderInfo.customerTel; |
|
|
|
fileDataStrings.customerId = orderInfo.customerId; |
|
|
|
fileDataStrings.orderId = orderInfo.orderId; |
|
|
|
let vehicleId = orderInfo.vehiclePlate + "_" + orderInfo.vehiclePlateColor |
|
|
|
searchVehicleInfoQuery(vehicleId).then((orderInfo) => { |
|
|
|
fileDataStrings.approvedCount = parseInt(orderInfo.approvedCount); //核载人数 |
|
|
|
fileDataStrings.vehicleVin = orderInfo.vin; |
|
|
|
fileDataStrings.vehicleEngineNum = orderInfo.engineNum; |
|
|
|
fileDataStrings.axleCount = parseInt(orderInfo.axleCount); //轴数 |
|
|
|
fileDataStrings.engineNum = orderInfo.engineNum; //发动机 |
|
|
|
fileDataStrings.type = parseInt(orderInfo.type); //类型 |
|
|
|
fileDataStrings.vehiclePlate = orderInfo.vehiclePlate; //车牌 |
|
|
|
fileDataStrings.vehiclePlateColor = orderInfo.vehiclePlateColor; //车牌颜色 |
|
|
|
console.log("车辆信息", orderInfo) |
|
|
|
fileDataStrings.vehicleDimensions = orderInfo.vehicleDimensions; |
|
|
|
let arr = orderInfo.vehicleDimensions.split("X"); |
|
|
|
console.log("orderInfo.vehicleDimensions", orderInfo.vehicleDimensions.split("X")) |
|
|
|
fileDataStrings.outlineL = parseInt(arr[0]); //外廓 长 |
|
|
|
fileDataStrings.outlineW = parseInt(arr[1]); //外廓 宽 |
|
|
|
if(arr[2].indexOf('mm')){ |
|
|
|
fileDataStrings.outlineH = parseInt(arr[2].substring(0, arr[2].length - 2)); //外廓 高 |
|
|
|
}else{ |
|
|
|
fileDataStrings.outlineH = arr[2] //外廓 高 |
|
|
|
} |
|
|
|
fileDataStrings.vehicleIdNo = orderInfo.vehicleEngineNum; //车编号 |
|
|
|
fileDataStrings.vehiclePlateColorStr = getVehiclePlateColor(orderInfo |
|
|
|
.vehiclePlateColor); |
|
|
|
console.log("fileDataStrings", fileDataStrings); |
|
|
|
}) |
|
|
|
} |
|
|
|
}); |
|
|
|
}; |
|
|
|
const sure = (val) => { |
|
|
|
var data = {} |
|
|
|
if (val == 1) { |
|
|
|
data = { |
|
|
|
type: "1", |
|
|
|
cardId: fileDataStrings.cardId, |
|
|
|
} |
|
|
|
} else { |
|
|
|
data = { |
|
|
|
type: "2", |
|
|
|
obuId: fileDataStrings.obuId, |
|
|
|
} |
|
|
|
} |
|
|
|
const options = { |
|
|
|
type: 2, |
|
|
|
data: data, |
|
|
|
method: "POST", |
|
|
|
showLoading: true, |
|
|
|
}; |
|
|
|
request(renewalTimeApi, options).then((res) => { |
|
|
|
|
|
|
|
}) |
|
|
|
} |
|
|
|
</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-item1 { |
|
|
|
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%; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
.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> |