不甘寂寞 пре 2 година
родитељ
комит
e16dc9a90b

+ 4
- 10
after-sale/activation-once-again/activation-once-again.vue Прегледај датотеку

@@ -189,7 +189,10 @@
const cancel = ()=>{
state.showPopup = false;
navTo("/pages/service/service")
// navTo("/pages/service/service")
uni.navigateBack({
delta:2
})
};

const toPage = () => {
@@ -369,15 +372,6 @@
.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",
// });
});
};

+ 496
- 239
after-sale/pin-code-deblocking/pin-code-confirm.vue Прегледај датотеку

@@ -1,255 +1,512 @@
<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="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="../../static/image/card1.png" mode=""></image>
<image :src="`${$imgUrl}card2.png`" mode=""></image>
<view class="card-center">
<view class="card-center-head">
2023022700012
</view>
<view class="card-center-head"> {{orderInfos.cardId}} </view>
<view class="tips">
<text class="tips-card">正常</text>
<text>储蓄卡</text>
<text class="tips-card">{{getEtcCardStatus(orderInfos.cardStatus)}}</text>
</view>
<view class="choose-item"> 有效期:{{orderInfos.cardEnableTime }}</view>
</view>
</view>
<view class="choose-item">
有效期:xxxx-xx-xx
</view>
<button class="submit" @click="toPage" v-show="!state.flag" :disabled="state.disabled">卡PIN码解锁</button>
<button class="submit" @click="toBack" v-show="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/device-active-success.png`"></image>
<view class="title">设备升级成功!</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>
</view>
</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);
}
};
<script setup>
import {
reactive
} from "vue";
import {
navTo,
getFormatDate
} from "@/utils/utils";
import {
onLoad,
onUnload,
onShow
} from "@dcloudio/uni-app";
import {
request
} from "@/utils/network/request.js";
import {
orderDetail,
pinCodeUnlock,
writeCardBack,
cardModifyConfirm
} 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 state = reactive({
showPopup: false,
flag: false,
disabled:false,
})
const orderInfos = reactive({
orderId: "",
ownerName: "",
ownerIdtype: "",
ownerIdnum: "",
vehiclePlate: "",
vehiclePlateColorStr: "",
vehiclePlateColor: "",
vehicleType: "",
cardId: "",
cardStatus: "",
obuId: "",
obuStatus: "",
cardEnableTime: "",
obuEnableTime: "",
});

onLoad((option) => {
//请求订单详情
queryOrderDetail(option.id);
});

onShow((option) => {
uni.$on('bluetoothLink', res => {
console.log(res);
if (res.status) {
tools.showLoadingAlert("正在执行指令");
state.disabled = true;
getPinCodeUnlock()
}
})
})
onUnload(() => {
//移除监听
uni.$off('bluetoothLink')
})
//获取订单详情
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);
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.cardEnableTime = orderInfo.cardEnableTime.substring(0, 10);
orderInfos.obuEnableTime = orderInfo.obuEnableTime.substring(0, 10);
});
};
//PIN解锁 请求
const getPinCodeUnlock = (command=null,cosResponse=null,pinType=null) => {
const options = {
type: 2,
data: {
cardId: orderInfos.cardId,
command:command,
cosResponse:cosResponse,
pinType: pinType,
},
method: "POST",
showLoading: true,
};
request(pinCodeUnlock, options).then((res) => {
tools.hideLoadingAlert();
let result = stringToJson(res.bizContent);
console.log("&&&&&&&&&&&&",result);

let cmdArray = result.command ? result.command.split(",") : "";

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=null,cosResponse=null,pinType=null) => {
const options = {
type: 2,
data: {
cardId: orderInfos.cardId,
command:command,
cosResponse:cosResponse,
pinType: pinType,
},
method: "POST",
showLoading: true,
};
request(pinCodeUnlock, options).then((res) => {
tools.hideLoadingAlert();
let result = stringToJson(res.bizContent);
console.log("&&&&&&&&&&&&",result);
let cmdArray = result.command ? result.command.split(",") : "";
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") {
state.showPopup = true;
// 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: 4,
// cosRecordId: cosRecordId
// },
// method: "POST",
// showLoading: true,
// };
// request(cardModifyConfirm, options).then((res) => {
// console.log(res);
// state.showPopup = true;
// })
// };

//去连接蓝牙
const toPage = () => {
// getPinCodeUnlock()
navTo("/pages/bluetooth/bluetooth?routeType=5"); //去连接蓝牙
};

//返回列表
const toBack = () => {
// navTo("/pages/service/service")
uni.navigateBack({
delta:2
})
}


//关闭弹窗
const cancel = () => {
state.flag = true;
state.showPopup = false;
}
</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;
}
}
.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: start;
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;
}
.submit::after{
border: 0;
}
.submit[disabled] {
background: #f0f0f0;
color: #333;
}
}
</style>

+ 1
- 1
manifest.json Прегледај датотеку

@@ -52,7 +52,7 @@
"quickapp" : {},
/* 小程序特有相关 */
"mp-weixin" : {
"appid" : "wx214b4f8de36a0181",
"appid" : "wx008c60533388527a",
"setting" : {
"urlCheck" : false,
"checkSiteMap" : false,

+ 2
- 2
utils/network/request.js Прегледај датотеку

@@ -35,8 +35,8 @@ export function request(code, options = {}) {
}
//Url 地址
//options.url = envs[process.env.NODE_ENV].baseUrl || '' + options.url
// options.url = 'http://192.168.100.63:8087/ifzt/api/interfaceMidGroundIn'
options.url = 'http://222.85.144.89:19002/ifzt/api/interfaceMidGroundIn'
options.url = 'http://192.168.100.63:8087/ifzt/api/interfaceMidGroundIn'
// options.url = 'http://222.85.144.89:19002/ifzt/api/interfaceMidGroundIn'
//判断baseUri是否为空
if (options.baseUrl) {
options.url = options.baseUrl

Loading…
Откажи
Сачувај