<view class="item item-5"> | <view class="item item-5"> | ||||
<image :src="fileURL + 'image/index/item-5.png'" mode="aspectFill" /> | <image :src="fileURL + 'image/index/item-5.png'" mode="aspectFill" /> | ||||
</view> | </view> | ||||
<view class="text">设备遗失</view> | |||||
<view class="text">挂失解挂</view> | |||||
</view> | </view> | ||||
<!-- <view class="item-box" @click="$util.navTo('/subpackage/after-sale/rescind-carId/rescind-carId-select',true)"> --> | <!-- <view class="item-box" @click="$util.navTo('/subpackage/after-sale/rescind-carId/rescind-carId-select',true)"> --> | ||||
<view class="item-box" @click="cardRecharge(2)"> | <view class="item-box" @click="cardRecharge(2)"> |
<view class="account-text"> | <view class="account-text"> | ||||
<view class="balance"> | <view class="balance"> | ||||
<text class="balance-tit">账户余额</text> | <text class="balance-tit">账户余额</text> | ||||
<text class="balance-val">0元</text> | |||||
<text class="balance-val">{{card.money}}元</text> | |||||
</view> | </view> | ||||
<view class="right-box"> | <view class="right-box"> | ||||
<view class="no">账户编号:000100</view> | <view class="no">账户编号:000100</view> | ||||
}; | }; | ||||
/*读卡*/ | /*读卡*/ | ||||
const getCardId = () => { | |||||
const getCardId = (readMoney) => { | |||||
console.log("======获取卡信息======"); | console.log("======获取卡信息======"); | ||||
let cmdArr = [ | let cmdArr = [ | ||||
cmd.HOME_DIRECTORY, | cmd.HOME_DIRECTORY, | ||||
card.cardType = res[2].substring(28, 29) == 23 ? 1 : 2; | card.cardType = res[2].substring(28, 29) == 23 ? 1 : 2; | ||||
card.vehiclePlateColor = parseInt(res[2].substring(82, 84), 16); | card.vehiclePlateColor = parseInt(res[2].substring(82, 84), 16); | ||||
(card.money = parseInt(parseInt(res[3].substring(0, 8), 16), 10)), | (card.money = parseInt(parseInt(res[3].substring(0, 8), 16), 10)), | ||||
console.log("======卡信息======", card); | |||||
console.log("======卡信息======", card, card.money); | |||||
if (card.cardId !== state.cardId) { | if (card.cardId !== state.cardId) { | ||||
msg("设备卡信息与当前充值卡号不匹配,请核对卡号"); | msg("设备卡信息与当前充值卡号不匹配,请核对卡号"); | ||||
}); | }); | ||||
} | } | ||||
} | } | ||||
// state.isShowBlue=true; | |||||
console.log(data); | console.log(data); | ||||
}); | }); | ||||
}; | }; |
<view class="from"> | <view class="from"> | ||||
<u-form-item v-if="(form.type==='2'||form.type==='3')" prop="equipmentState"> | <u-form-item v-if="(form.type==='2'||form.type==='3')" prop="equipmentState"> | ||||
<view class="from_item"> | <view class="from_item"> | ||||
<text><text style="color: red">*</text>是否有设备注销:</text> | |||||
<!-- <u-radio-group v-model="form.equipmentStateName"> | |||||
<u-radio :customStyle="{ marginBottom: '8px' }" activeColor="#2CE242" | |||||
v-for="(item, index) in radiolist" :key="index" :label="item.disabled" :name="item.name" | |||||
@change="radioChange(item)"> | |||||
{{ item.name }} | |||||
</u-radio> | |||||
</u-radio-group> --> | |||||
<text><text style="color: red">*</text>设备注销:</text> | |||||
<radio-group @change="radioChange" class="radios"> | <radio-group @change="radioChange" class="radios"> | ||||
<block v-for="(item, index) in radiolist" :key="item.val"> | <block v-for="(item, index) in radiolist" :key="item.val"> | ||||
// 单选数据列表 | // 单选数据列表 | ||||
const radiolist = reactive([{ | const radiolist = reactive([{ | ||||
name: "是", | |||||
name: "连接设备注销", | |||||
val: 1, | val: 1, | ||||
}, | }, | ||||
{ | { | ||||
name: "否", | |||||
name: "无设备注销", | |||||
val: 2, | val: 2, | ||||
}, | }, | ||||
]); | ]); |
<script setup lang="ts"> | <script setup lang="ts"> | ||||
import { onLoad, onShow } from "@dcloudio/uni-app"; | import { onLoad, onShow } from "@dcloudio/uni-app"; | ||||
import { reactive } from "vue"; | import { reactive } from "vue"; | ||||
import { etcQYAction, getOpenidApi } from "@/utils/network/api.js"; | |||||
import { getOpenidApi } from "@/utils/network/api.js"; | |||||
import { request } from "@/utils/network/request.js"; | import { request } from "@/utils/network/request.js"; | ||||
import { stringToJson } from "@/utils/network/encryption"; | import { stringToJson } from "@/utils/network/encryption"; | ||||
const imgURL = `${fileURL}image/`; | const imgURL = `${fileURL}image/`; | ||||
const savaHandle = () => { | const savaHandle = () => { | ||||
// var data = { | |||||
// orderId: state.orderId, | |||||
// subOpenId: state.openid | |||||
// } | |||||
// const options = { | |||||
// type: 2, | |||||
// data: data, | |||||
// method: 'POST', | |||||
// showLoading: true, | |||||
// } | |||||
// request(etcQYAction, options).then((res) => { | |||||
// const data = stringToJson(res.bizContent); | |||||
// uni.navigateToMiniProgram({ | |||||
// appId: data.appId, | |||||
// path: data.path, | |||||
// extraData: { | |||||
// appid: data.appid, | |||||
// sub_appid: data.subAppid, | |||||
// mch_id: data.mchId, | |||||
// sub_mch_id: data.subMchId, | |||||
// nonce_str: data.nonceStr, | |||||
// sign_type: "HMAC-SHA256", | |||||
// sign: data.sign, | |||||
// trade_scene: data.tradeScene, | |||||
// plate_number: data.plateNum, | |||||
// sub_openid: data.subOpenId, | |||||
// channel_type: data.channelType, | |||||
// }, | |||||
// success(res) { | |||||
// console.log(res); | |||||
// }, | |||||
// complete(res) { | |||||
// }, | |||||
// fail(res) { | |||||
// // 未成功跳转到车主小程序 | |||||
// }, | |||||
// }); | |||||
// }) | |||||
}; | }; | ||||
const state = reactive({ | const state = reactive({ | ||||
openid: "", | openid: "", |
<view class="cell-left">版本号</view> | <view class="cell-left">版本号</view> | ||||
<view class="cell-right">{{ card.version }}</view> | <view class="cell-right">{{ card.version }}</view> | ||||
</view> | </view> | ||||
<view class="cell"> | |||||
<view class="cell-left">卡状态</view> | |||||
<view class="cell-right">{{getCodeName('CARD_STATE_TYPE',state.cardStatus)}}</view> | |||||
</view> | |||||
<view class="cell"> | |||||
<view class="cell-left">卡类型</view> | |||||
<view class="cell-right">{{state.cardTypeName}}</view> | |||||
</view> | |||||
</view> | </view> | ||||
<view class="info-card"> | <view class="info-card"> | ||||
<view class="title">OBU信息</view> | <view class="title">OBU信息</view> | ||||
<view class="cell-left">版本号</view> | <view class="cell-left">版本号</view> | ||||
<view class="cell-right">{{ obu.version }}</view> | <view class="cell-right">{{ obu.version }}</view> | ||||
</view> | </view> | ||||
<view class="cell"> | |||||
<view class="cell-left">签状态</view> | |||||
<view class="cell-right">{{getCodeName('OBU_STATE_TYPE',state.obuStatus)}}</view> | |||||
</view> | |||||
</view> | </view> | ||||
<view class="btn" @click="back">返回订单列表</view> | <view class="btn" @click="back">返回订单列表</view> | ||||
</view> | </view> | ||||
</template> | </template> | ||||
<script setup> | <script setup> | ||||
import { | |||||
getCodeName | |||||
} from "@/datas/queryKey.js"; | |||||
import { | import { | ||||
reactive | reactive | ||||
} from "vue"; | } from "vue"; | ||||
} from "@/utils/network/request"; | } from "@/utils/network/request"; | ||||
import { | import { | ||||
obuDecrypt, | obuDecrypt, | ||||
orderDetail | |||||
orderDetail, | |||||
cardList, | |||||
searchObuInfo | |||||
} from "@/utils/network/api"; | } from "@/utils/network/api"; | ||||
import { | import { | ||||
stringToJson | stringToJson | ||||
isJH: "", | isJH: "", | ||||
outsideDimensions: "", | outsideDimensions: "", | ||||
}) | }) | ||||
const state = reactive({ | |||||
vehicleId: "", | |||||
obuStatus: "", | |||||
cardStatus: "", | |||||
cardTypeName: "" | |||||
}) | |||||
onLoad((option) => { | onLoad((option) => { | ||||
getCardId() | getCardId() | ||||
}) | }) | ||||
// card.vehiclePlateColor = parseInt(res[2].substring(82, 84), 16); | // card.vehiclePlateColor = parseInt(res[2].substring(82, 84), 16); | ||||
card.color = getVehiclePlateColor(parseInt(res[2].substring(82, 84), 16)) | card.color = getVehiclePlateColor(parseInt(res[2].substring(82, 84), 16)) | ||||
} | } | ||||
state.vehicleId = card.vehiclePlate + "_" + parseInt(res[2].substring(82, 84), 16) | |||||
console.log("card.color===========", card.vehiclePlate, parseInt(res[2].substring(82, 84), | |||||
16)) | |||||
// 读卡信息 | |||||
getCardList() | |||||
//执行0016文件 | //执行0016文件 | ||||
let arr = [cmd.HOME_DIRECTORY, cmd.PERSONAL_INFORMATION] | let arr = [cmd.HOME_DIRECTORY, cmd.PERSONAL_INFORMATION] | ||||
bluetoothUtil.transCmd(arr, '10', function(res) { | bluetoothUtil.transCmd(arr, '10', function(res) { | ||||
obu.outsideDimensions = HexToInt(res.substring(32, 36)) + "x" + | obu.outsideDimensions = HexToInt(res.substring(32, 36)) + "x" + | ||||
HexToInt(res.substring(36, 38)) + "x" + HexToInt(res | HexToInt(res.substring(36, 38)) + "x" + HexToInt(res | ||||
.substring(38, 40)) | .substring(38, 40)) | ||||
getObuList(); | |||||
tools.hideLoadingAlert(); | tools.hideLoadingAlert(); | ||||
//提交设备信息 | //提交设备信息 | ||||
//提示对话框 | //提示对话框 | ||||
tools.showModalAlert(msg); | tools.showModalAlert(msg); | ||||
} | } | ||||
const getCardList = () => { | |||||
var data = { | |||||
vehicleId: state.vehicleId | |||||
}; | |||||
const options = { | |||||
type: 2, | |||||
data: data, | |||||
method: "POST", | |||||
showLoading: true, | |||||
}; | |||||
request(cardList, options).then((res) => { | |||||
let result = stringToJson(res.bizContent); | |||||
state.cardStatus = result.data[0].cardStatus | |||||
if (result.data[0].cardType == 1 && result.data[0].debitType == 1) { | |||||
state.cardTypeName = "预存卡" | |||||
} else if (result.data[0].cardType == 2) { | |||||
state.cardTypeName = "储值卡" | |||||
} else { | |||||
state.cardTypeName = "记账卡" | |||||
} | |||||
console.log("152", result) | |||||
}) | |||||
} | |||||
const getObuList = () => { | |||||
var data = { | |||||
obuId: obu.num | |||||
}; | |||||
const options = { | |||||
type: 2, | |||||
data: data, | |||||
method: "POST", | |||||
showLoading: true, | |||||
}; | |||||
request(searchObuInfo, options).then((res) => { | |||||
let result = stringToJson(res.bizContent); | |||||
state.obuStatus = result.data[0].obuStatus | |||||
console.log("153", result) | |||||
}) | |||||
} | |||||
</script> | </script> | ||||
<style scoped> | <style scoped> |
<script setup lang="ts"> | <script setup lang="ts"> | ||||
import { onLoad, onShow } from "@dcloudio/uni-app"; | import { onLoad, onShow } from "@dcloudio/uni-app"; | ||||
import { reactive } from "vue"; | import { reactive } from "vue"; | ||||
import { etcQYAction, getOpenidApi } from "@/utils/network/api.js"; | |||||
import { getOpenidApi } from "@/utils/network/api.js"; | |||||
import { request } from "@/utils/network/request.js"; | import { request } from "@/utils/network/request.js"; | ||||
import { stringToJson } from "@/utils/network/encryption"; | import { stringToJson } from "@/utils/network/encryption"; | ||||
const imgURL = `${fileURL}image/`; | const imgURL = `${fileURL}image/`; | ||||
const savaHandle = () => { | const savaHandle = () => { | ||||
// var data = { | |||||
// orderId: state.orderId, | |||||
// subOpenId: state.openid | |||||
// } | |||||
// const options = { | |||||
// type: 2, | |||||
// data: data, | |||||
// method: 'POST', | |||||
// showLoading: true, | |||||
// } | |||||
// request(etcQYAction, options).then((res) => { | |||||
// const data = stringToJson(res.bizContent); | |||||
// uni.navigateToMiniProgram({ | |||||
// appId: data.appId, | |||||
// path: data.path, | |||||
// extraData: { | |||||
// appid: data.appid, | |||||
// sub_appid: data.subAppid, | |||||
// mch_id: data.mchId, | |||||
// sub_mch_id: data.subMchId, | |||||
// nonce_str: data.nonceStr, | |||||
// sign_type: "HMAC-SHA256", | |||||
// sign: data.sign, | |||||
// trade_scene: data.tradeScene, | |||||
// plate_number: data.plateNum, | |||||
// sub_openid: data.subOpenId, | |||||
// channel_type: data.channelType, | |||||
// }, | |||||
// success(res) { | |||||
// console.log(res); | |||||
// }, | |||||
// complete(res) { | |||||
// }, | |||||
// fail(res) { | |||||
// // 未成功跳转到车主小程序 | |||||
// }, | |||||
// }); | |||||
// }) | |||||
}; | }; | ||||
const state = reactive({ | const state = reactive({ | ||||
openid: "", | openid: "", |
/*下一步*/ | /*下一步*/ | ||||
const nextACtion = () => { | const nextACtion = () => { | ||||
queryCckChangejzCardAction().then(val => { | queryCckChangejzCardAction().then(val => { | ||||
// // navTo( | |||||
// // `/subpackage/after-sale/to-bookkeeping-card/mailing_information?orderId=${state.data.orderId}&&applyId=${val.applyId}` | |||||
// // ) | |||||
navTo( | navTo( | ||||
`/subpackage/after-sale/to-bookkeeping-card/choice-product-new?orderId=${state.data.orderId}&&applyId=${val.applyId}&&type=${state.data.type}&&userType=${state.data.userType}` | `/subpackage/after-sale/to-bookkeeping-card/choice-product-new?orderId=${state.data.orderId}&&applyId=${val.applyId}&&type=${state.data.type}&&userType=${state.data.userType}` | ||||
) | ) | ||||
}) | }) | ||||
// navTo( | |||||
// `/subpackage/after-sale/to-bookkeeping-card/choice-product-new?orderId=1&&applyId=2&&type=2` | |||||
// ) | |||||
} | } | ||||
//申请 | //申请 |
name: "邮寄", | name: "邮寄", | ||||
val: "1", | val: "1", | ||||
}, | }, | ||||
{ | |||||
name: "不邮寄", | |||||
val: "0", | |||||
}, | |||||
// { | |||||
// name: "不邮寄", | |||||
// val: "0", | |||||
// }, | |||||
]); | ]); | ||||
let show = ref(false); | let show = ref(false); |
<script setup lang="ts"> | <script setup lang="ts"> | ||||
import { onLoad, onShow } from "@dcloudio/uni-app"; | import { onLoad, onShow } from "@dcloudio/uni-app"; | ||||
import { reactive } from "vue"; | import { reactive } from "vue"; | ||||
import { etcQYAction, getOpenidApi } from "@/utils/network/api.js"; | |||||
import { getOpenidApi } from "@/utils/network/api.js"; | |||||
import { request } from "@/utils/network/request.js"; | import { request } from "@/utils/network/request.js"; | ||||
import { stringToJson } from "@/utils/network/encryption"; | import { stringToJson } from "@/utils/network/encryption"; | ||||
const imgURL = `${fileURL}image/`; | const imgURL = `${fileURL}image/`; | ||||
const savaHandle = () => { | const savaHandle = () => { | ||||
// var data = { | |||||
// orderId: state.orderId, | |||||
// subOpenId: state.openid | |||||
// } | |||||
// const options = { | |||||
// type: 2, | |||||
// data: data, | |||||
// method: 'POST', | |||||
// showLoading: true, | |||||
// } | |||||
// request(etcQYAction, options).then((res) => { | |||||
// const data = stringToJson(res.bizContent); | |||||
// uni.navigateToMiniProgram({ | |||||
// appId: data.appId, | |||||
// path: data.path, | |||||
// extraData: { | |||||
// appid: data.appid, | |||||
// sub_appid: data.subAppid, | |||||
// mch_id: data.mchId, | |||||
// sub_mch_id: data.subMchId, | |||||
// nonce_str: data.nonceStr, | |||||
// sign_type: "HMAC-SHA256", | |||||
// sign: data.sign, | |||||
// trade_scene: data.tradeScene, | |||||
// plate_number: data.plateNum, | |||||
// sub_openid: data.subOpenId, | |||||
// channel_type: data.channelType, | |||||
// }, | |||||
// success(res) { | |||||
// console.log(res); | |||||
// }, | |||||
// complete(res) { | |||||
// }, | |||||
// fail(res) { | |||||
// // 未成功跳转到车主小程序 | |||||
// }, | |||||
// }); | |||||
// }) | |||||
}; | }; | ||||
const state = reactive({ | const state = reactive({ | ||||
openid: "", | openid: "", | ||||
provider: "weixin", | provider: "weixin", | ||||
success: function (e) { | success: function (e) { | ||||
getOpenid(e.code) | getOpenid(e.code) | ||||
// uni.request({ | |||||
// url: `https://api.weixin.qq.com/sns/jscode2session?appid=${wechatAppID}&secret=${wechatSecret}&js_code=${e.code}&grant_type=authorization_code`, | |||||
// success: (res: any) => { | |||||
// state.openid = res.data.openid; | |||||
// }, | |||||
// }); | |||||
}, | }, | ||||
}); | }); | ||||
}; | }; | ||||
request(getOpenidApi, options).then((res) => { | request(getOpenidApi, options).then((res) => { | ||||
const result = stringToJson(res.bizContent); | const result = stringToJson(res.bizContent); | ||||
console.log("获取微信小程序openid", result); | console.log("获取微信小程序openid", result); | ||||
// setItem("QYorder", result.data); | |||||
const openidData = stringToJson(result.data); | const openidData = stringToJson(result.data); | ||||
state.openid = openidData.openid | state.openid = openidData.openid | ||||
}); | }); |
showLoading: true, | showLoading: true, | ||||
}; | }; | ||||
console.log("提交数据", options); | console.log("提交数据", options); | ||||
// return; | |||||
request(orderExchange, options).then((res) => { | request(orderExchange, options).then((res) => { | ||||
confirm( | confirm( | ||||
"您申办的ETC订单已申请换货", | "您申办的ETC订单已申请换货", |
<view class="numberplate" v-for="(item,index) in state.numberplateColorList" | <view class="numberplate" v-for="(item,index) in state.numberplateColorList" | ||||
@click="checkNumberplateColor(item)" :key="index"> | @click="checkNumberplateColor(item)" :key="index"> | ||||
<image :src="`${fileURL}/image/issueActivation/${item.src}.png`" class="numberplate-bg"></image> | <image :src="`${fileURL}/image/issueActivation/${item.src}.png`" class="numberplate-bg"></image> | ||||
<view class="numberplate-name" :style="`color:${item.color}`">{{numberplate}}</view> | |||||
<view class="numberplate-name" :style="`color:${item.color}`">{{item.title}}</view> | |||||
<image :src="`${fileURL}image/issueActivation/${item.checkSrc}.png`" class="numberplate-icon-check" | <image :src="`${fileURL}image/issueActivation/${item.checkSrc}.png`" class="numberplate-icon-check" | ||||
v-if="item.id === state.curCheckId"></image> | v-if="item.id === state.curCheckId"></image> | ||||
</view> | </view> |
<template> | <template> | ||||
<view class="as-layout-horizontal as-gravity-center-start" v-if="!hide"> | <view class="as-layout-horizontal as-gravity-center-start" v-if="!hide"> | ||||
<text class="label">{{label}}</text> | <text class="label">{{label}}</text> | ||||
<text class="value">{{value}}</text> | |||||
<text class="value" @click="copy(value,label)">{{value}}</text> | |||||
</view> | </view> | ||||
</template> | </template> | ||||
<script setup lang="ts"> | <script setup lang="ts"> | ||||
defineProps({ | defineProps({ | ||||
label:{ | |||||
type:String, | |||||
default:'' | |||||
label: { | |||||
type: String, | |||||
default: '' | |||||
}, | }, | ||||
value:{ | |||||
type:String, | |||||
default:'' | |||||
value: { | |||||
type: String, | |||||
default: '' | |||||
}, | }, | ||||
hide:{ | |||||
type:Boolean, | |||||
default:false | |||||
hide: { | |||||
type: Boolean, | |||||
default: false | |||||
} | } | ||||
}) | }) | ||||
const copy = (value, lable) => { | |||||
console.log(value, lable) | |||||
if (lable == "物流单号:") { | |||||
uni.setClipboardData({ | |||||
data: value, | |||||
success(res) { | |||||
uni.getClipboardData({ | |||||
success(res) { | |||||
console.log(res.data) // data | |||||
} | |||||
}) | |||||
} | |||||
}) | |||||
} | |||||
} | |||||
</script> | </script> | ||||
<style lang="scss" scoped> | <style lang="scss" scoped> | ||||
.label{ | |||||
.label { | |||||
font-size: 26rpx; | font-size: 26rpx; | ||||
color: #999999; | color: #999999; | ||||
min-width: 112rpx; | min-width: 112rpx; | ||||
} | } | ||||
.value{ | |||||
.value { | |||||
font-size: 26rpx; | font-size: 26rpx; | ||||
color: #333333; | color: #333333; | ||||
padding: 0 30rpx | padding: 0 30rpx |
<!-- 订单详情-查看物流 --> | <!-- 订单详情-查看物流 --> | ||||
<template> | <template> | ||||
<view class="main"> | <view class="main"> | ||||
<view class="card-box padding-all"> | |||||
<!-- <view class="card-box padding-all"> | |||||
<view class="as-layout-horizontal as-gravity-center-start"> | <view class="as-layout-horizontal as-gravity-center-start"> | ||||
<image :src="`${$imgUrl}order/logistics.png`" class="icon"></image> | <image :src="`${$imgUrl}order/logistics.png`" class="icon"></image> | ||||
<view class="as-layout-horizontal"> | <view class="as-layout-horizontal"> | ||||
<view class="logistics-layout"> | <view class="logistics-layout"> | ||||
<order-logistics :options="state.logisticsList" @more="state.popupVisible = true"></order-logistics> | <order-logistics :options="state.logisticsList" @more="state.popupVisible = true"></order-logistics> | ||||
</view> | </view> | ||||
</view> | |||||
</view> --> | |||||
<view class="card-box padding-top-bottom"> | <view class="card-box padding-top-bottom"> | ||||
<view class="as-layout-horizontal as-gravity-center-start title"> | <view class="as-layout-horizontal as-gravity-center-start title"> | ||||
<image :src="`${$imgUrl}order/icon-star-green.png`" class="icon"></image> | <image :src="`${$imgUrl}order/icon-star-green.png`" class="icon"></image> | ||||
<text class="txt-title">某产品A</text> | |||||
<text class="txt-title">{{state.orderInfo.productName}}</text> | |||||
</view> | </view> | ||||
<view style="border-bottom: 1px solid #DCDCDC;" /> | <view style="border-bottom: 1px solid #DCDCDC;" /> | ||||
</view> | </view> | ||||
<view class="d-row" v-if="state.orderInfo.orderStep == OrderStatus.审核不通过"> | <view class="d-row" v-if="state.orderInfo.orderStep == OrderStatus.审核不通过"> | ||||
<text class="d-label">不通过原因:</text> | <text class="d-label">不通过原因:</text> | ||||
<text class="d-value">{{state.orderInfo.XXX ?state.orderInfo.XXX: ''}}</text> | |||||
<text | |||||
class="d-value">{{state.orderInfo.orderInfoExt.auditReason ?state.orderInfo.orderInfoExt.auditReason: ''}}</text> | |||||
</view> | </view> | ||||
</view> | </view> | ||||
<view class="content_2"> | <view class="content_2"> | ||||
本次将为贵州黔通智联科技股份有限公司开启免密支付服务,后续相关的费用将通过微信车主服务从你的微信支付账户扣除 | 本次将为贵州黔通智联科技股份有限公司开启免密支付服务,后续相关的费用将通过微信车主服务从你的微信支付账户扣除 | ||||
</view> | </view> | ||||
<view class="content_3"> | |||||
注:签约成功后请返回本页面,再次点击开通服务 | |||||
</view> | |||||
</view> | </view> | ||||
<view class="as-layout-horizontal agreement"> | <view class="as-layout-horizontal agreement"> | ||||
<checkbox-group @change="checkboxChange"> | <checkbox-group @change="checkboxChange"> | ||||
<checkbox :checked="state.checked" style="transform: scale(0.8)" />我已阅读并同意 | <checkbox :checked="state.checked" style="transform: scale(0.8)" />我已阅读并同意 | ||||
var data = { | var data = { | ||||
orderId: state.orderId, | orderId: state.orderId, | ||||
subOpenId: state.openid, | subOpenId: state.openid, | ||||
// orderId: "20231213200339195365136", | |||||
// subOpenId: "o_Ucm45wcKKt1W2Ah0OSVco81G_4", | |||||
}; | }; | ||||
const options = { | const options = { | ||||
type: 2, | type: 2, | ||||
line-height: 58rpx; | line-height: 58rpx; | ||||
} | } | ||||
.content_3 { | |||||
margin-top: 50rpx; | |||||
font-size: 30rpx; | |||||
font-family: Microsoft YaHei; | |||||
font-weight: 400; | |||||
color: #ff0000; | |||||
line-height: 58rpx; | |||||
} | |||||
.agreement { | .agreement { | ||||
font-size: 30rpx; | font-size: 30rpx; | ||||
display: flex; | display: flex; |
<template> | <template> | ||||
<view class='content'> | <view class='content'> | ||||
<!-- <view class='search_wrap'> | |||||
<input type="text" v-model='state.value' placeholder='搜索ETC卡号' @confirm="doSearch"/><button size='mini' @click='search()'>搜索</button> | |||||
</view> --> | |||||
<view class='item' v-for="(item,index) in state.newList"> | <view class='item' v-for="(item,index) in state.newList"> | ||||
<view>ETC卡号:{{item.cardId}}<text class="payStatus">{{item.payStatusC}}</text></view> | <view>ETC卡号:{{item.cardId}}<text class="payStatus">{{item.payStatusC}}</text></view> | ||||
<view>充值金额:¥{{item.rechargeMoney/100}}</view> | <view>充值金额:¥{{item.rechargeMoney/100}}</view> | ||||
<view>申请时间:{{item.insertTime}}</view> | <view>申请时间:{{item.insertTime}}</view> | ||||
<!-- <view class='time'><text>时间:{{item.tradeConfirmTime}}</text><text>¥{{item.fee}}</text></view> --> | |||||
</view> | </view> | ||||
</view> | </view> | ||||
<view style="text-align: center;margin: 20rpx;" v-if="state.flags">我是有底线的</view> | <view style="text-align: center;margin: 20rpx;" v-if="state.flags">我是有底线的</view> | ||||
<view class="noContent" v-if="!state.newList.length">暂无消费明细</view> | |||||
</template> | </template> | ||||
<script lang="ts" setup> | <script lang="ts" setup> | ||||
import { reactive } from "vue"; | import { reactive } from "vue"; | ||||
import {request} from "@/utils/network/request.js"; | |||||
import {queryCardRecord} from "@/utils/network/api.js"; | |||||
import {stringToJson} from "@/utils/network/encryption.js"; | |||||
import { onLoad,onReachBottom} from "@dcloudio/uni-app"; | |||||
import {getItem} from "@/utils/storage"; | |||||
import {getCodeName} from "@/datas/queryKey.js"; | |||||
import { request } from "@/utils/network/request.js"; | |||||
import { queryCardRecord } from "@/utils/network/api.js"; | |||||
import { stringToJson } from "@/utils/network/encryption.js"; | |||||
import { onLoad, onReachBottom } from "@dcloudio/uni-app"; | |||||
import { getItem } from "@/utils/storage"; | |||||
import { getCodeName } from "@/datas/queryKey.js"; | |||||
const state = reactive({ | const state = reactive({ | ||||
list:'', //所有数据 | |||||
newList:'', //最终展示的 | |||||
cardId:'', | |||||
value:'',//input框里的值 | |||||
pageNo:1, | |||||
list: '', //所有数据 | |||||
newList: '', //最终展示的 | |||||
cardId: '', | |||||
value: '',//input框里的值 | |||||
pageNo: 1, | |||||
pageSize: 16, | pageSize: 16, | ||||
flags:false, | |||||
flags: false, | |||||
}) | }) | ||||
onLoad((option : any) => { | onLoad((option : any) => { | ||||
console.log("option",option) | |||||
state.cardId=option.cardId; | |||||
console.log("option", option) | |||||
state.cardId = option.cardId; | |||||
getList(); | getList(); | ||||
}) | }) | ||||
const getList=()=>{ | |||||
const getList = () => { | |||||
const options = { | const options = { | ||||
type: 2, | type: 2, | ||||
data: { | data: { | ||||
showLoading: true, | showLoading: true, | ||||
}; | }; | ||||
request(queryCardRecord, options).then((res) => { | request(queryCardRecord, options).then((res) => { | ||||
state.newList=[...stringToJson(res.bizContent).data,...state.newList] | |||||
// getCodeName('VCR_ORDER_PAY_STATUS',payStatus) | |||||
for(var i=0;i<state.newList.length;i++){ | |||||
console.log("getCodeName",getCodeName('VCR_ORDER_STATUS',state.newList[i]['status'])) | |||||
state.newList[i]['payStatusC']=getCodeName('VCR_ORDER_PAY_STATUS',state.newList[i]['payStatus']) | |||||
// if(getCodeName('VCR_ORDER_PAY_STATUS',state.newList[i]['payStatus'])) | |||||
state.newList = [...stringToJson(res.bizContent).data, ...state.newList] | |||||
for (var i = 0; i < state.newList.length; i++) { | |||||
console.log("getCodeName", getCodeName('VCR_ORDER_STATUS', state.newList[i]['status'])) | |||||
state.newList[i]['payStatusC'] = getCodeName('VCR_ORDER_PAY_STATUS', state.newList[i]['payStatus']) | |||||
} | } | ||||
console.log("交易记录",state.newList) | |||||
console.log("交易记录", state.newList) | |||||
}) | }) | ||||
} | } | ||||
// 触底加载 | // 触底加载 | ||||
onReachBottom(()=>{ | |||||
if(state.newList.length<state.pageNo*16) return state.flags = true | |||||
onReachBottom(() => { | |||||
if (state.newList.length < state.pageNo * 16) return state.flags = true | |||||
console.log("触底了") | console.log("触底了") | ||||
state.pageNo++ | state.pageNo++ | ||||
getList() | getList() | ||||
}) | }) | ||||
// const search=()=>{ | |||||
// state.newList=[]; | |||||
// for (var i = 0; i < state.list.length; i++) { | |||||
// if (state.list[i].cardId.indexOf(state.value) >= 0) { | |||||
// state.newList.push(state.list[i]); | |||||
// } | |||||
// } | |||||
// console.log("state.newList",state.newList) | |||||
// } | |||||
// const doSearch=()=>{ | |||||
// search(); | |||||
// } | |||||
</script> | </script> | ||||
<style scoped> | <style scoped> | ||||
.content{ | |||||
.noContent { | |||||
text-align: center; | |||||
margin-top: 100rpx; | |||||
} | |||||
.content { | |||||
background-color: #EEF7F7; | background-color: #EEF7F7; | ||||
min-height:100vh; | |||||
padding: 0 30rpx; | padding: 0 30rpx; | ||||
overflow: hidden; | overflow: hidden; | ||||
font-size: 32rpx; | font-size: 32rpx; | ||||
} | } | ||||
.search_wrap{ | |||||
display:flex; | |||||
margin:20rpx 0; | |||||
.search_wrap { | |||||
display: flex; | |||||
margin: 20rpx 0; | |||||
} | } | ||||
.search_wrap>input{ | |||||
background-color:white; | |||||
.search_wrap>input { | |||||
background-color: white; | |||||
width: 76%; | width: 76%; | ||||
height: 40rpx; | height: 40rpx; | ||||
line-height: 40rpx; | line-height: 40rpx; | ||||
padding: 10rpx 10rpx; | padding: 10rpx 10rpx; | ||||
border-radius: 10rpx 0 0 10rpx; | border-radius: 10rpx 0 0 10rpx; | ||||
} | } | ||||
.item{ | |||||
width:100%; | |||||
border-radius:10rpx; | |||||
.item { | |||||
width: 100%; | |||||
border-radius: 10rpx; | |||||
box-sizing: border-box; | box-sizing: border-box; | ||||
padding: 30rpx 20rpx; | padding: 30rpx 20rpx; | ||||
margin-top:30rpx; | |||||
margin-top: 30rpx; | |||||
/* background:linear-gradient(-90deg, #43a1e0 0%, #13e7c1 100%); */ | /* background:linear-gradient(-90deg, #43a1e0 0%, #13e7c1 100%); */ | ||||
background:white; | |||||
color:black; | |||||
background: white; | |||||
color: black; | |||||
} | } | ||||
.time{ | |||||
display:flex; | |||||
.time { | |||||
display: flex; | |||||
margin-bottom: 16rpx; | margin-bottom: 16rpx; | ||||
justify-content: space-between; | justify-content: space-between; | ||||
} | } | ||||
.payStatus{ | |||||
.payStatus { | |||||
color: red; | color: red; | ||||
float: right; | float: right; | ||||
} | } |
const choose = (i, item) => { | const choose = (i, item) => { | ||||
console.log(item, i) | console.log(item, i) | ||||
console.log(item.vehicleId); | console.log(item.vehicleId); | ||||
// getCardList(item.vehicleId) | |||||
navTo(`/subpackage/personal-center/search/etcFlowingWater?cardId=${item.cardId}`) | navTo(`/subpackage/personal-center/search/etcFlowingWater?cardId=${item.cardId}`) | ||||
} | } | ||||
}; | }; | ||||
const selectConfirm = (item : any) => { | const selectConfirm = (item : any) => { | ||||
// item.map((val, index) => { | |||||
// state.form.useUserType = val.value; | |||||
// state.form.useUserTypeName = val.label; | |||||
// }); | |||||
console.log(item); | console.log(item); | ||||
if (state.form.vehicleId) { | if (state.form.vehicleId) { | ||||
state.showCaridCorlor = item[0].label | state.showCaridCorlor = item[0].label |
onShow(() => { | onShow(() => { | ||||
getDataList() | getDataList() | ||||
}) | }) | ||||
// //选择图片 | |||||
// const chooseImage = (type: number) => { | |||||
// uni.chooseImage({ | |||||
// count: 1, | |||||
// sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图,默认二者都有 | |||||
// //sourceType: ['album','camera'], | |||||
// success: function(res) { | |||||
// console.log(res.tempFilePaths); | |||||
// if (type === 1) { | |||||
// state.headstockImg = res.tempFilePaths[0]; | |||||
// } else { | |||||
// state.installImg = res.tempFilePaths[0]; | |||||
// } | |||||
// } | |||||
// }); | |||||
// } | |||||
// //下一步 | |||||
// const saveHandle = () => { | |||||
// if (!state.headstockImg || !state.installImg) { | |||||
// msg('请按照要求上传图片!'); | |||||
// return; | |||||
// } | |||||
// msg('保存成功') | |||||
// } | |||||
</script> | </script> | ||||
<style> | <style> |
}); | }); | ||||
} | } | ||||
} else { | } else { | ||||
uni.showModal({ | |||||
title: '提示', | |||||
content: res.data.errorMsg, | |||||
success: function(res) { | |||||
if (res.confirm) { | |||||
console.log('用户点击确定2'); | |||||
} else if (res.cancel) { | |||||
console.log('用户点击取消2'); | |||||
// 当前车辆已存在订单,无法再次创建订单 | |||||
if (code == 6 && res.data.statusCode == 704) { | |||||
console.log(code == 6, res.data.statusCode == 704) | |||||
uni.showModal({ | |||||
title: '提示', | |||||
content: res.data.errorMsg, | |||||
cancelText: '解除车牌', //前往解除车牌占用 | |||||
success: function(res) { | |||||
if (res.confirm) { | |||||
console.log('用户点击确定2'); | |||||
} else if (res.cancel) { | |||||
uni.redirectTo({ | |||||
url: "/subpackage/after-sale/rescind-carId/rescind-carId-select" | |||||
}) | |||||
} | |||||
} | } | ||||
} | |||||
}); | |||||
}); | |||||
} else { | |||||
uni.showModal({ | |||||
title: '提示', | |||||
content: res.data.errorMsg, | |||||
success: function(res) { | |||||
if (res.confirm) { | |||||
console.log('用户点击确定2'); | |||||
} else if (res.cancel) { | |||||
console.log('用户点击取消2'); | |||||
} | |||||
} | |||||
}); | |||||
} | |||||
} | } | ||||
reject(res.data.errorMsg) | reject(res.data.errorMsg) | ||||
return | return |