|
|
@@ -1,9 +1,9 @@ |
|
|
|
<template>
|
|
|
|
<view class="oderPage">
|
|
|
|
<view v-for="(item,index) in state.list" class="details">
|
|
|
|
<view v-if="state.list&&state.list.length>0" v-for="(item,index) in state.list" class="details">
|
|
|
|
<view class="header">
|
|
|
|
<image :src="`${$imgUrl}order/no1.png`" mode=""></image>
|
|
|
|
<text>{{item.id}}</text>
|
|
|
|
<text>{{item.orderId}}</text>
|
|
|
|
</view>
|
|
|
|
<view class="hr">
|
|
|
|
|
|
|
@@ -29,9 +29,12 @@ |
|
|
|
<view class="line">
|
|
|
|
</view>
|
|
|
|
|
|
|
|
<button @click="refundTypeAction(item)">余额补领</button>
|
|
|
|
<button v-if="item.refundType === 'GLYQR'" @click="refundTypeAction(item)"> 补领申请</button>
|
|
|
|
<button v-if="item.refundType === 'BALSUP'" @click="refundTypeAction(item)"> 圈层</button>
|
|
|
|
</view>
|
|
|
|
<view v-else>
|
|
|
|
<empty title='暂无找到该车牌相关余额补领信息' />
|
|
|
|
</view>
|
|
|
|
|
|
|
|
</view>
|
|
|
|
|
|
|
|
</template>
|
|
|
@@ -46,7 +49,8 @@ |
|
|
|
} from "@/utils/utils"
|
|
|
|
import {
|
|
|
|
onLoad,
|
|
|
|
onShow
|
|
|
|
onShow,
|
|
|
|
onUnload
|
|
|
|
} from "@dcloudio/uni-app";
|
|
|
|
import {
|
|
|
|
queryRefund,
|
|
|
@@ -63,56 +67,79 @@ |
|
|
|
stringToJson
|
|
|
|
} from "@/utils/network/encryption";
|
|
|
|
|
|
|
|
//-----蓝牙模块
|
|
|
|
const bluetoothUtil = require("../../static/etcUtil/index.js");
|
|
|
|
const cmd = require("../../static/etcUtil/cmdConfig.js");
|
|
|
|
const tools = require("../../static/etcUtil/tools.js");
|
|
|
|
const card = reactive({
|
|
|
|
/*卡相关信息*/
|
|
|
|
cardId: "",
|
|
|
|
netId: "",
|
|
|
|
cardType: "",
|
|
|
|
startTime: "",
|
|
|
|
endTime: "",
|
|
|
|
userName: "",
|
|
|
|
idNum: "",
|
|
|
|
vehiclePlate: "",
|
|
|
|
vehiclePlateColor: "",
|
|
|
|
color: "",
|
|
|
|
version: "",
|
|
|
|
type: "",
|
|
|
|
favourable: "",
|
|
|
|
money: undefined,
|
|
|
|
v_userType: "",
|
|
|
|
});
|
|
|
|
const state = reactive({
|
|
|
|
vehicleId: '',
|
|
|
|
list: []
|
|
|
|
list: [],
|
|
|
|
id: ''
|
|
|
|
});
|
|
|
|
|
|
|
|
/*视图进入后操作*/
|
|
|
|
onLoad((option) => {
|
|
|
|
state.vehicleId = option.vehicleId
|
|
|
|
//根据车牌查询信息
|
|
|
|
queryRefundAction().then(val => {
|
|
|
|
state.list = val.data
|
|
|
|
})
|
|
|
|
/*监听蓝牙回调*/
|
|
|
|
uni.$on('bluetoothLink', function(status) {
|
|
|
|
getCardId()
|
|
|
|
})
|
|
|
|
});
|
|
|
|
const reason = ref('')
|
|
|
|
|
|
|
|
// 单选数据列表
|
|
|
|
const radiolist1 = reactive([{
|
|
|
|
name: '退货原因1',
|
|
|
|
disabled: false
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: '退货原因2',
|
|
|
|
disabled: false
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: '退货原因3',
|
|
|
|
disabled: false
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: '退货原因4',
|
|
|
|
disabled: false
|
|
|
|
},
|
|
|
|
{
|
|
|
|
name: '退货原因5',
|
|
|
|
disabled: false
|
|
|
|
},
|
|
|
|
], )
|
|
|
|
|
|
|
|
const refundTypeAction = (val) => {
|
|
|
|
|
|
|
|
onUnload(() => {
|
|
|
|
/*移除监听*/
|
|
|
|
uni.$off('bluetoothLink')
|
|
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
//功能跳转入口
|
|
|
|
const refundTypeAction = (val: any) => {
|
|
|
|
|
|
|
|
if (val.refundType === 'GLYQR') {
|
|
|
|
queryRefundApplyAction(val.id).then(value => {
|
|
|
|
console.log(value)
|
|
|
|
/*余额补领申请*/
|
|
|
|
queryRefundApplyAction(val.id).then((value: any) => {
|
|
|
|
state.id = value.id
|
|
|
|
/*查询完刷新状态*/
|
|
|
|
queryRefundAction().then((result: any) => {
|
|
|
|
state.list = result.data
|
|
|
|
})
|
|
|
|
})
|
|
|
|
|
|
|
|
} else if (val.refundType === 'BALSUP') {
|
|
|
|
/*圈层*/
|
|
|
|
//链接蓝牙
|
|
|
|
uni.navigateTo({
|
|
|
|
url: `/pages/bluetooth/bluetooth?routeType=5`,
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// 单选
|
|
|
|
const radioChange = (n) => {
|
|
|
|
console.log('radioChange', n);
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//储值卡注销退费查询接口
|
|
|
|
const queryRefundAction = () => {
|
|
|
|
|
|
|
|
var data = {
|
|
|
|
vehicleId: state.vehicleId
|
|
|
|
};
|
|
|
@@ -131,6 +158,8 @@ |
|
|
|
reject(error);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
//储值卡注销余额补领申请接口
|
|
|
|
const queryRefundApplyAction = (id) => {
|
|
|
|
var data = {
|
|
|
|
id: id
|
|
|
@@ -150,26 +179,72 @@ |
|
|
|
reject(error);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
/*读卡*/
|
|
|
|
const getCardId = () => {
|
|
|
|
console.log("======获取卡信息======");
|
|
|
|
let cmdArr = [
|
|
|
|
cmd.HOME_DIRECTORY,
|
|
|
|
//选择主目
|
|
|
|
cmd.APPLICATION_DIRECTORY,
|
|
|
|
//选择文件1001--DF01联网收费应用目录
|
|
|
|
cmd.CMD_READBINARY,
|
|
|
|
//15文件--卡片发行基本数据文件
|
|
|
|
cmd.CMD_GETBALANCE,
|
|
|
|
//钱包
|
|
|
|
];
|
|
|
|
tools.showLoadingAlert("正在执行指令");
|
|
|
|
//10:写卡 20:写OBU
|
|
|
|
bluetoothUtil.transCmd(cmdArr, "10", function(res) {
|
|
|
|
tools.hideLoadingAlert();
|
|
|
|
let str = res[2].substring(res[2].length - 4, res[2].length);
|
|
|
|
let str3 = res[3].substring(res[3].length - 4, res[3].length);
|
|
|
|
if (str == "9000" || str3 == "9000") {
|
|
|
|
if (res[2].length > 86 || res[3] >= 12) {
|
|
|
|
card.cardId = res[2].substring(20, 40); //卡号
|
|
|
|
card.startTime = res[2].substring(40, 48);
|
|
|
|
card.endTime = res[2].substring(48, 56);
|
|
|
|
card.version = res[2].substring(18, 19) >= 4 ? "4x" : "2x";
|
|
|
|
card.netId = res[2].substring(20, 24);
|
|
|
|
card.cardType = res[2].substring(28, 29) == 23 ? 1 : 2;
|
|
|
|
card.vehiclePlateColor = parseInt(res[2].substring(82, 84), 16);
|
|
|
|
(card.money = parseInt(parseInt(res[3].substring(0, 8), 16), 10)),
|
|
|
|
console.log("======卡信息======", card);
|
|
|
|
|
|
|
|
if (card.cardId !== state.cardId) {
|
|
|
|
msg("设备卡信息与当前充值卡号不匹配,请核对卡号");
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
quanCheckActionTrue().then((val) => {
|
|
|
|
checkQuanCengEvent(val);
|
|
|
|
});
|
|
|
|
} else {
|
|
|
|
console.error("CMD_READBINARY指令长度不符" + res[2]);
|
|
|
|
tools.hideLoadingAlert();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
console.error("CMD_READBINARY指令长度不符" + res[2]);
|
|
|
|
tools.hideLoadingAlert();
|
|
|
|
});
|
|
|
|
};
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
|
|
<style>
|
|
|
|
page {
|
|
|
|
/* width: 100%;
|
|
|
|
height: 100%; */
|
|
|
|
width: 100%;
|
|
|
|
height: 100%;
|
|
|
|
display: flex;
|
|
|
|
flex-direction: column;
|
|
|
|
background-color: #F3F3F3;
|
|
|
|
background-color: #EEF7F7;
|
|
|
|
box-sizing: border-box;
|
|
|
|
}
|
|
|
|
</style>
|
|
|
|
<style lang="scss" scoped>
|
|
|
|
.oderPage {
|
|
|
|
background-color: #EEF7F7;
|
|
|
|
margin: 30rpx;
|
|
|
|
|
|
|
|
.details {
|
|
|
|
margin-top: 30rpx;
|
|
|
|
margin: 30rpx;
|
|
|
|
position: relative;
|
|
|
|
background: #fff;
|
|
|
|
border-radius: 20rpx;
|