{ | { | ||||
"path": "card-loss-reporting/select-car", | "path": "card-loss-reporting/select-car", | ||||
"style": { | "style": { | ||||
"navigationBarTitleText": " 卡签挂失/解除挂失-选择车辆", | |||||
"navigationBarTitleText": "卡签挂失/解除挂失-选择车辆", | |||||
"enablePullDownRefresh": false | "enablePullDownRefresh": false | ||||
} | } | ||||
}, | }, | ||||
{ | { | ||||
"path": "card-loss-reporting/cardloss-confirm", | "path": "card-loss-reporting/cardloss-confirm", | ||||
"style": { | "style": { | ||||
"navigationBarTitleText": " 卡签挂失/解除挂失-确认", | |||||
"navigationBarTitleText": "卡签挂失/解除挂失-确认", | |||||
"enablePullDownRefresh": false | "enablePullDownRefresh": false | ||||
} | } | ||||
}, | }, | ||||
{ | { | ||||
"path": "card-loss-reporting/card-result", | "path": "card-loss-reporting/card-result", | ||||
"style": { | "style": { | ||||
"navigationBarTitleText": " 卡签挂失/解除挂失-结果", | |||||
"navigationBarTitleText": "卡签挂失/解除挂失-结果", | |||||
"enablePullDownRefresh": false | "enablePullDownRefresh": false | ||||
} | } | ||||
}, | }, | ||||
{ | { | ||||
"path": "transfer-ownership/select-car-transfer", | "path": "transfer-ownership/select-car-transfer", | ||||
"style": { | "style": { | ||||
"navigationBarTitleText": " ETC过户-选择车辆", | |||||
"navigationBarTitleText": "ETC过户-选择车辆", | |||||
"enablePullDownRefresh": false | "enablePullDownRefresh": false | ||||
} | } | ||||
}, | }, | ||||
{ | { | ||||
"path": "transfer-ownership/card-result", | "path": "transfer-ownership/card-result", | ||||
"style": { | "style": { | ||||
"navigationBarTitleText": " ETC过户-结果", | |||||
"navigationBarTitleText": "ETC过户-结果", | |||||
"enablePullDownRefresh": false | "enablePullDownRefresh": false | ||||
} | } | ||||
}, | }, | ||||
{ | { | ||||
"path": "transfer-ownership/transfer-confirm", | "path": "transfer-ownership/transfer-confirm", | ||||
"style": { | "style": { | ||||
"navigationBarTitleText": " ETC过户-确认", | |||||
"navigationBarTitleText": "ETC过户-确认", | |||||
"enablePullDownRefresh": false | "enablePullDownRefresh": false | ||||
} | } | ||||
}, | }, | ||||
{ | { | ||||
"path": "transfer-ownership/transfer-verification", | "path": "transfer-ownership/transfer-verification", | ||||
"style": { | "style": { | ||||
"navigationBarTitleText": " ETC过户-验证", | |||||
"navigationBarTitleText": "ETC过户-验证", | |||||
"enablePullDownRefresh": false | "enablePullDownRefresh": false | ||||
} | } | ||||
}, | }, | ||||
{ | { | ||||
"path": "card-supplement/reissueForm", | "path": "card-supplement/reissueForm", | ||||
"style": { | "style": { | ||||
"navigationBarTitleText": " 补办ETC卡-填写", | |||||
"navigationBarTitleText": "补办ETC卡-填写", | |||||
"enablePullDownRefresh": false | "enablePullDownRefresh": false | ||||
} | } | ||||
}, | }, | ||||
{ | { | ||||
"path": "additional-equipment/result", | "path": "additional-equipment/result", | ||||
"style": { | "style": { | ||||
"navigationBarTitleText": "设备补增", | |||||
"navigationBarTitleText": "设备补增-结果", | |||||
"enablePullDownRefresh": false | "enablePullDownRefresh": false | ||||
} | } | ||||
}, | }, |
<image class="icon" :src="fileURL + 'image/index/icon-notice.png'" lazy-load="false" | <image class="icon" :src="fileURL + 'image/index/icon-notice.png'" lazy-load="false" | ||||
mode="aspectFill"> | mode="aspectFill"> | ||||
</image> | </image> | ||||
<uni-notice-bar style="width: 100%;" scrollable single :text="state.notice"> | |||||
<uni-notice-bar style="width: 100%;" scrollable single :text="state.notice" @click="tip()"> | |||||
</uni-notice-bar> | </uni-notice-bar> | ||||
</view> | </view> | ||||
</view> | </view> | ||||
<view class="item item-3"> | <view class="item item-3"> | ||||
<image :src="fileURL + '20230511/24e179d44e2d4e5687339bff_obucxjh.png'" mode="aspectFill" /> | <image :src="fileURL + '20230511/24e179d44e2d4e5687339bff_obucxjh.png'" mode="aspectFill" /> | ||||
</view> | </view> | ||||
<view class="text">二次激活</view> | |||||
<view class="text">OBU重新激活</view> | |||||
</view> | </view> | ||||
<view class="item-box" | <view class="item-box" | ||||
@click="$util.navTo('/subpackage/personal-center/install-activation-order',true)"> | @click="$util.navTo('/subpackage/personal-center/install-activation-order',true)"> | ||||
</view> | </view> | ||||
<view class="text">设备注销</view> | <view class="text">设备注销</view> | ||||
</view> | </view> | ||||
<view class="item-box" @click="cardRecharge(2)"> | |||||
<!-- <view class="item-box" @click="cardRecharge(2)"> | |||||
<view class="item item-6"> | <view class="item item-6"> | ||||
<image :src="fileURL + 'image/index/item-6.png'" mode="aspectFill" /> | <image :src="fileURL + 'image/index/item-6.png'" mode="aspectFill" /> | ||||
</view> | </view> | ||||
<view class="text">通行费补缴</view> | |||||
</view> | |||||
<view class="text">解除车牌占用</view> | |||||
</view> --> | |||||
<!-- <view class="item-box" | <!-- <view class="item-box" | ||||
@click="$util.navTo(`/subpackage/personal-center/setting/personal-information/corrections`,true)"> | @click="$util.navTo(`/subpackage/personal-center/setting/personal-information/corrections`,true)"> | ||||
<view class="item item-7"> | <view class="item item-7"> | ||||
</view> | </view> | ||||
</view> | </view> | ||||
<!-- 消息滚动显示 --> | |||||
<!-- <view v-if="false" class="backlog-notice"> | |||||
<notice-bar :noticeList="state.noticeList" @noticeClick="goOrder(3)"></notice-bar> | |||||
</view> --> | |||||
<!--快速办理通道 --> | <!--快速办理通道 --> | ||||
<view class="express-lane"> | <view class="express-lane"> | ||||
<view class="title">快速办理</view> | <view class="title">快速办理</view> | ||||
onReachBottom(() => { | onReachBottom(() => { | ||||
highMsg(); //高速快讯 | highMsg(); //高速快讯 | ||||
}) | }) | ||||
const tip = () => { | |||||
const params = encodeURIComponent(JSON.stringify("https://webzeus.hltgz.com/throughBilManager/index")) | |||||
tools.toUrl(`/subpackage/personal-center/webview?url=` + params); | |||||
} | |||||
//获取轮播 | //获取轮播 | ||||
const getSwiper = () => { | const getSwiper = () => { | ||||
}); | }); | ||||
} | } | ||||
const goOrder = (index) => { | |||||
uni.reLaunch({ | |||||
url: `../order/order?index=${index}` | |||||
}) | |||||
} | |||||
const cardRecharge = (val) => { | const cardRecharge = (val) => { | ||||
// #ifdef MP-ALIPAY | // #ifdef MP-ALIPAY | ||||
if (val == 1 || val == 2 || val == 3) { | if (val == 1 || val == 2 || val == 3) { |
tools.hideLoadingAlert(); | tools.hideLoadingAlert(); | ||||
} | } | ||||
} | } | ||||
console.error("CMD_READBINARY指令长度不符" + res[2]); | |||||
tools.hideLoadingAlert(); | tools.hideLoadingAlert(); | ||||
} | } | ||||
function getCardIdReturn(res : any) { | function getCardIdReturn(res : any) { | ||||
const result = stringToJson(res.bizContent); | const result = stringToJson(res.bizContent); | ||||
console.log("获取微信小程序openid", result); | console.log("获取微信小程序openid", result); | ||||
const openidData = stringToJson(result.data); | const openidData = stringToJson(result.data); | ||||
// setItem("QYorder", result.data); | |||||
state.openid = openidData.openid | state.openid = openidData.openid | ||||
}); | }); | ||||
// #endif | // #endif |
const quanCheckActionTrue = () => { | const quanCheckActionTrue = () => { | ||||
let source = "" | let source = "" | ||||
// #ifdef MP-ALIPAY | // #ifdef MP-ALIPAY | ||||
source ="ALI" | |||||
source = "ALI" | |||||
// #endif | // #endif | ||||
// #ifdef MP-WEIXIN | // #ifdef MP-WEIXIN | ||||
source ="WECHAT" | |||||
source = "WECHAT" | |||||
// #endif | // #endif | ||||
var data = { | var data = { | ||||
opId: getItem(StorageKeys.OpenId), | opId: getItem(StorageKeys.OpenId), | ||||
} | } | ||||
.selectCar-box { | .selectCar-box { | ||||
// width: 100%; | |||||
height: 100%; | height: 100%; | ||||
padding: 30rpx; | padding: 30rpx; | ||||
} | } | ||||
} | } | ||||
} | } | ||||
</style> | </style> |
reject("指令执行失败!"); | reject("指令执行失败!"); | ||||
} | } | ||||
}).catch((error) => { | }).catch((error) => { | ||||
console.log('指令执行失败', error) | |||||
reject(error); | reject(error); | ||||
}); | }); | ||||
}); | }); |
if (data.hasData) { | if (data.hasData) { | ||||
uni.showModal({ | uni.showModal({ | ||||
title: '提示', | title: '提示', | ||||
content: '重复购买此产品', | |||||
content: '重复购买此权益', | |||||
success: function (res) { | success: function (res) { | ||||
if (res.confirm) { | if (res.confirm) { | ||||
console.log('用户点击确定'); | console.log('用户点击确定'); |
if (data.hasData) { | if (data.hasData) { | ||||
uni.showModal({ | uni.showModal({ | ||||
title: '提示', | title: '提示', | ||||
content: '重复购买此产品', | |||||
content: '重复购买此权益', | |||||
success: function (res) { | success: function (res) { | ||||
if (res.confirm) { | if (res.confirm) { | ||||
console.log('用户点击确定'); | console.log('用户点击确定'); |
</style> | </style> | ||||
<style lang="scss" scoped> | <style lang="scss" scoped> | ||||
.selectCar-box { | .selectCar-box { | ||||
// width: 100%; | |||||
// height: 100%; | |||||
padding: 30rpx; | padding: 30rpx; | ||||
.title { | .title { |
let result = stringToJson(res.bizContent); | let result = stringToJson(res.bizContent); | ||||
let cmdArray = result.command ? result.command.split(",") : []; | let cmdArray = result.command ? result.command.split(",") : []; | ||||
console.log(result); | console.log(result); | ||||
// console.log(result.cosRecordId); | |||||
if (cmdArray.length > 0) { | if (cmdArray.length > 0) { | ||||
tools.showLoadingAlert("正在执行指令"); | tools.showLoadingAlert("正在执行指令"); | ||||
bluetoothUtil.transCmd(cmdArray, "10", function(res) { | bluetoothUtil.transCmd(cmdArray, "10", function(res) { |
</style> | </style> | ||||
<style lang="scss" scoped> | <style lang="scss" scoped> | ||||
.selectCar-box { | .selectCar-box { | ||||
// width: 100%; | |||||
// height: 100%; | |||||
padding: 30rpx; | padding: 30rpx; | ||||
.title { | .title { |
const quanCheckActionTrue = () => { | const quanCheckActionTrue = () => { | ||||
let source = "" | let source = "" | ||||
// #ifdef MP-ALIPAY | // #ifdef MP-ALIPAY | ||||
source ="ALI" | |||||
source = "ALI" | |||||
// #endif | // #endif | ||||
// #ifdef MP-WEIXIN | // #ifdef MP-WEIXIN | ||||
source ="WECHAT" | |||||
source = "WECHAT" | |||||
// #endif | // #endif | ||||
var data = { | var data = { | ||||
opId: getItem(StorageKeys.OpenId), | opId: getItem(StorageKeys.OpenId), | ||||
} | } | ||||
.selectCar-box { | .selectCar-box { | ||||
// width: 100%; | |||||
height: 100%; | height: 100%; | ||||
padding: 30rpx; | padding: 30rpx; | ||||
background: #00B38B; | background: #00B38B; | ||||
border-radius: 50%; | border-radius: 50%; | ||||
} | } | ||||
} | } | ||||
} | } | ||||
</style> | </style> |
<view class="content"> | <view class="content"> | ||||
<view class="top-content"> | <view class="top-content"> | ||||
<view class="example-body"> | <view class="example-body"> | ||||
<!-- <uni-datetime-picker v-model="state.range" type="daterange" /> --> | |||||
<text>请选择月份:</text> | <text>请选择月份:</text> | ||||
<picker mode="date" @change="bindDateChange" fields="month"> | <picker mode="date" @change="bindDateChange" fields="month"> | ||||
<view class="uni-input">{{state.date}}</view> | <view class="uni-input">{{state.date}}</view> | ||||
<view class="uni-container" v-if="state.listData.length>0"> | <view class="uni-container" v-if="state.listData.length>0"> | ||||
<view class="list-item" v-for="(item,index) in state.listData"> | |||||
<view class="list-item" v-for="(item,index) in state.listData" | |||||
@click="query(item.handleDate,item.vehicleId)"> | |||||
<view><text>姓名:</text><text>{{item.customerName}}</text></view> | <view><text>姓名:</text><text>{{item.customerName}}</text></view> | ||||
<view><text>证件号码:</text><text>{{item.customerIdNum}}</text></view> | <view><text>证件号码:</text><text>{{item.customerIdNum}}</text></view> | ||||
<view><text>通行次数:</text><text>{{item.num}}</text></view> | <view><text>通行次数:</text><text>{{item.num}}</text></view> | ||||
</view> | </view> | ||||
<view class="bottom-line" v-if="state.flags">我是有底线的~~~</view> | <view class="bottom-line" v-if="state.flags">我是有底线的~~~</view> | ||||
</view> | </view> | ||||
<!-- <view v-else class="uni-container" style="text-align: center;"> | |||||
暂无数据 | |||||
</view> --> | |||||
</view> | </view> | ||||
import { request } from "@/utils/network/request.js"; | import { request } from "@/utils/network/request.js"; | ||||
import { getItem, StorageKeys } from "@/utils/storage"; | import { getItem, StorageKeys } from "@/utils/storage"; | ||||
import { getVehiclePlateColor } from "@/datas/vehiclePlateColor"; | import { getVehiclePlateColor } from "@/datas/vehiclePlateColor"; | ||||
import { msg } from "@/utils/utils"; | |||||
import { msg, navTo } from "@/utils/utils"; | |||||
const state = reactive({ | const state = reactive({ | ||||
startTime: Date.now(), //日期 | startTime: Date.now(), //日期 | ||||
listData: [], | listData: [], | ||||
console.log("option", option.vehicleId) | console.log("option", option.vehicleId) | ||||
state.vehicleId = option.vehicleId; | state.vehicleId = option.vehicleId; | ||||
state.vehicleNum = option.vehicleId.split('_')[0]; | state.vehicleNum = option.vehicleId.split('_')[0]; | ||||
console.log("option.vehicleId.split('_')[1]", getVehiclePlateColor(option.vehicleId.split('_')[1])) | |||||
state.vehicleColor = getVehiclePlateColor(option.vehicleId.split('_')[1]); | state.vehicleColor = getVehiclePlateColor(option.vehicleId.split('_')[1]); | ||||
getUserinfo() | getUserinfo() | ||||
}) | }) | ||||
console.log("业务完成日志", state.listData,) | console.log("业务完成日志", state.listData,) | ||||
}); | }); | ||||
} | } | ||||
const query = (handleDate, vehicleId) => { | |||||
navTo(`/subpackage/personal-center/search/select-card?vehicleId=${vehicleId}&&handleDate=${handleDate}`) | |||||
} | |||||
</script> | </script> | ||||
<style scoped> | <style scoped> |
const quanCheckActionTrue = () => { | const quanCheckActionTrue = () => { | ||||
let source = "" | let source = "" | ||||
// #ifdef MP-ALIPAY | // #ifdef MP-ALIPAY | ||||
source ="ALI" | |||||
source = "ALI" | |||||
// #endif | // #endif | ||||
// #ifdef MP-WEIXIN | // #ifdef MP-WEIXIN | ||||
source ="WECHAT" | |||||
source = "WECHAT" | |||||
// #endif | // #endif | ||||
var data = { | var data = { | ||||
opId: getItem(StorageKeys.OpenId), | opId: getItem(StorageKeys.OpenId), | ||||
reject(error); | reject(error); | ||||
}); | }); | ||||
}; | }; | ||||
const list = reactive([ | |||||
{ | |||||
name: "A12345", | |||||
}, | |||||
{ | |||||
name: "B12345", | |||||
}, | |||||
{ | |||||
name: "C12345", | |||||
}, | |||||
]); | |||||
const flag = ref("0"); | const flag = ref("0"); | ||||
const choose = (i, item) => { | const choose = (i, item) => { |
checkQuanCengEvent(val); | checkQuanCengEvent(val); | ||||
}); | }); | ||||
} else { | } else { | ||||
console.error("CMD_READBINARY指令长度不符" + res[2]); | |||||
tools.hideLoadingAlert(); | tools.hideLoadingAlert(); | ||||
} | } | ||||
} | } |
</view> | </view> | ||||
<view class="bottomTip"> 到底啦!敬请期待其他产品! </view> | <view class="bottomTip"> 到底啦!敬请期待其他产品! </view> | ||||
</view> | </view> | ||||
<!-- <view class="content-value"> | |||||
<view @click="savaHandle(item)" class="ul-item" v-for="(item, index) in state.dataArray" :key="index"> | |||||
<image style="width: 100%; height: 170rpx; border-radius: 20rpx" | |||||
:src="`${$imgUrl}applyCard/product-bg.png`"></image> | |||||
<view class="item-value"> | |||||
<image class="icon-tip" | |||||
:src="state.sysType === 'WECHAT'?`${$imgUrl}applyCard/wechat.png` : `${$imgUrl}applyCard/alibaba.png`"> | |||||
</image> | |||||
<view class="content"> | |||||
<view class="title"> | |||||
{{ item.promoteName }} | |||||
</view> | |||||
<view style="margin-top: 15rpx" class="tip"> | |||||
{{ item['releaseProductStandards']['productStandards']['cardTypeArr'] }} | |||||
</view> | |||||
</view> | |||||
<view class="money"> | |||||
¥:{{ item.fee * 0.01 }} | |||||
</view> | |||||
</view> | |||||
</view> | |||||
<view class="bottomTip"> 到底啦!敬请期待其他产品! </view> | |||||
</view> --> | |||||
</template> | </template> | ||||
<script setup lang="ts"> | <script setup lang="ts"> |
</style> | </style> | ||||
<style lang="scss" scoped> | <style lang="scss" scoped> | ||||
.selectCar-box { | .selectCar-box { | ||||
// width: 100%; | |||||
// height: 100%; | |||||
padding: 30rpx; | padding: 30rpx; | ||||
.title { | .title { |
onLoad(() => { | onLoad(() => { | ||||
quanCheckActionTrue().then((item : any) => { | quanCheckActionTrue().then((item : any) => { | ||||
console.log("过户", item) | |||||
let data = item.data | let data = item.data | ||||
for (var k = 0; k < data.length; k++) { | for (var k = 0; k < data.length; k++) { | ||||
if (data[k]['orderStatus'] != "99999") { | if (data[k]['orderStatus'] != "99999") { |
<u-form-item prop="cardState"> | <u-form-item prop="cardState"> | ||||
<view class="from_item"> | <view class="from_item"> | ||||
<text><text style="color: red">*</text>是否保留卡签:</text> | <text><text style="color: red">*</text>是否保留卡签:</text> | ||||
<!-- <u-radio-group v-model="form.serviceTypeName"> | |||||
<u-radio :customStyle="{ marginBottom: '8px' }" activeColor="#2CE242" | |||||
v-for="(item, index) in radiolist1" :key="index" :label="item.disabled" | |||||
:name="item.name"> | |||||
{{ item.name }} | |||||
</u-radio> | |||||
</u-radio-group> --> | |||||
<radio-group @change="radioChange" class="radios"> | <radio-group @change="radioChange" class="radios"> | ||||
<block v-for="(item, index) in radiolist1" :key="item.val"> | <block v-for="(item, index) in radiolist1" :key="item.val"> | ||||
<view class="radio-box"> | <view class="radio-box"> | ||||
</radio-group> | </radio-group> | ||||
</view> | </view> | ||||
</u-form-item> | </u-form-item> | ||||
<!-- <u-form-item prop="phone"> | |||||
<view class="from_item" style="background-color: #f7f7f7"> | |||||
<text><text style="color: red"></text>手机号:</text> | |||||
<u-input v-model="form.mobile" :disabled="true" class="input" /> | |||||
</view> | |||||
</u-form-item> | |||||
<u-form-item prop="code"> | |||||
<view class="from_item"> | |||||
<text><text style="color: red"></text>验证码:</text> | |||||
<u-input v-model="form.code" placeholder="请输入验证码" class="input" /> | |||||
<view class="hint2"> | |||||
<view class="green">{{ codeDuration === 0 ? "" : codeDuration }}</view> | |||||
<view class="grey" @click="getCode">{{ | |||||
codeDuration === 0 ? "发送验证码" : "秒后可重发" | |||||
}}</view> | |||||
</view> | |||||
</view> | |||||
</u-form-item> --> | |||||
</view> | </view> | ||||
</u-form> | </u-form> | ||||
<button class="submit" @click="toPage()">下一步</button> | <button class="submit" @click="toPage()">下一步</button> | ||||
ref, | ref, | ||||
reactive | reactive | ||||
} from "vue"; | } from "vue"; | ||||
import { | |||||
navTo | |||||
} from "@/utils/utils"; | |||||
import { | import { | ||||
onLoad | onLoad | ||||
} from "@dcloudio/uni-app"; | } from "@dcloudio/uni-app"; | ||||
import { | |||||
request | |||||
} from "@/utils/network/request.js"; | |||||
import { | |||||
sendCode, | |||||
checkCode, | |||||
changeCardApply | |||||
} from "@/utils/network/api.js"; | |||||
import { | |||||
stringToJson | |||||
} from "@/utils/network/encryption"; | |||||
import { | |||||
msg | |||||
} from "@/utils/utils"; | |||||
// 表单数据 | // 表单数据 | ||||
const form = reactive({ | const form = reactive({ | ||||
const radioChange = (e : any) => { | const radioChange = (e : any) => { | ||||
console.log(e); | console.log(e); | ||||
form.serviceType = e.detail.value | form.serviceType = e.detail.value | ||||
// if (val.name === '是') { | |||||
// form.equipmentState = '1'; | |||||
// } else { | |||||
// form.equipmentState = '2'; | |||||
// } | |||||
}; | }; | ||||
const getCode = () => { | |||||
if (codeDuration.value !== 0) { | |||||
return; | |||||
} | |||||
const options = { | |||||
type: 2, | |||||
data: { | |||||
mobile: form.mobile | |||||
}, | |||||
method: "POST", | |||||
showLoading: true, | |||||
}; | |||||
request(sendCode, options) | |||||
.then((res) => { | |||||
codeInterval(); | |||||
msg("验证码发送成功!"); | |||||
}) | |||||
.catch((err) => { | |||||
console.log(err); | |||||
}); | |||||
} | |||||
//下一步 | //下一步 | ||||
const toPage = () => { | const toPage = () => { | ||||
// if (form.serviceTypeName === '保留卡签') { | |||||
// form.serviceType = 'WITHVEHICLE' | |||||
// } else { | |||||
// form.serviceType = 'WITHCUSTOMER' | |||||
// } | |||||
// const options = { | |||||
// type: 2, | |||||
// data: { | |||||
// mobile: form.mobile, | |||||
// code: form.code | |||||
// }, | |||||
// method: "POST", | |||||
// showLoading: true, | |||||
// }; | |||||
// request(checkCode, options) | |||||
// .then((res) => { | |||||
uni.$emit('queryCardlossStatus', { | uni.$emit('queryCardlossStatus', { | ||||
type: form.serviceType | type: form.serviceType | ||||
}) | }) | ||||
uni.navigateBack() | uni.navigateBack() | ||||
// }) | |||||
// .catch((err) => { | |||||
// console.log(err); | |||||
// }); | |||||
}; | }; | ||||
</script> | </script> | ||||
checkQuanCengEvent(val); | checkQuanCengEvent(val); | ||||
}); | }); | ||||
} else { | } else { | ||||
console.error("CMD_READBINARY指令长度不符1111" + res[2]); | |||||
tools.hideLoadingAlert(); | tools.hideLoadingAlert(); | ||||
} | } | ||||
} | } |
navTo, msg | navTo, msg | ||||
} from "@/utils/utils"; | } from "@/utils/utils"; | ||||
import { reactive, ref } from "vue"; | import { reactive, ref } from "vue"; | ||||
import { onLoad, onReachBottom } from "@dcloudio/uni-app"; | |||||
import { onLoad, onReachBottom, onShow } from "@dcloudio/uni-app"; | |||||
import { queryEtcOrderApi, getUserMsg, trafficFlowApi } from "@/utils/network/api.js"; | import { queryEtcOrderApi, getUserMsg, trafficFlowApi } from "@/utils/network/api.js"; | ||||
import { stringToJson } from "@/utils/network/encryption"; | import { stringToJson } from "@/utils/network/encryption"; | ||||
import { request } from "@/utils/network/request.js"; | import { request } from "@/utils/network/request.js"; | ||||
state.type = option.type | state.type = option.type | ||||
getUserinfo() | getUserinfo() | ||||
}) | }) | ||||
// onShow(() => { | |||||
// if (state.type == 1) { | |||||
// etcOrder(1) | |||||
// } | |||||
// }) | |||||
const value = ref('') | const value = ref('') | ||||
const getUserinfo = () => { | const getUserinfo = () => { | ||||
const options = { | const options = { | ||||
console.log(e) | console.log(e) | ||||
} | } | ||||
const apply = () => { | const apply = () => { | ||||
let newArr = [] | |||||
for (var i = 0; i < state.ordersArr.length; i++) { | |||||
for (var k = 0; k < state.data.length; k++) { | |||||
if (state.ordersArr[i] == state.data[k]['orderNo']) { | |||||
newArr.push(state.data[k]) | |||||
} | |||||
} | |||||
} | |||||
const params = encodeURIComponent(JSON.stringify(newArr)) | |||||
if (state.ordersArr.length >= 1) { | if (state.ordersArr.length >= 1) { | ||||
navTo(`/subpackage/orders/invoiceApply/invoice-step1?type=${state.type}&&ordersArr=${state.ordersArr}&&userMobile=${state.userMobile}`) | |||||
navTo(`/subpackage/orders/invoiceApply/invoice-step1?type=${state.type}&&ordersArr=${params}&&userMobile=${state.userMobile}`) | |||||
} else { | } else { | ||||
msg("请选择订单开票") | msg("请选择订单开票") | ||||
} | } |
<view class="from_item"> | <view class="from_item"> | ||||
<text><text style="color: red;">*</text>车辆所有人证件号后6位:</text> | <text><text style="color: red;">*</text>车辆所有人证件号后6位:</text> | ||||
<view style="display: flex;"> | <view style="display: flex;"> | ||||
<u-input v-model="state.subIdentNo" class="input" /> | |||||
<u-input v-model="state.subIdentNo" class="input" maxlength="6" type="number" /> | |||||
</view> | </view> | ||||
</view> | </view> | ||||
</u-form-item> | </u-form-item> | ||||
reactive | reactive | ||||
} from "vue"; | } from "vue"; | ||||
import { onLoad, onShow } from "@dcloudio/uni-app"; | import { onLoad, onShow } from "@dcloudio/uni-app"; | ||||
import { navTo } from "@/utils/utils" | |||||
import { ETCProductInvoiceApi } from "@/utils/network/api.js"; | |||||
import { navTo, msg } from "@/utils/utils" | |||||
import { ETCProductInvoiceApi, flowServiceFee } from "@/utils/network/api.js"; | |||||
import { stringToJson } from "@/utils/network/encryption"; | import { stringToJson } from "@/utils/network/encryption"; | ||||
import { request } from "@/utils/network/request.js"; | import { request } from "@/utils/network/request.js"; | ||||
const state = reactive({ | const state = reactive({ | ||||
params: "", | params: "", | ||||
orders: [], | orders: [], | ||||
userMobile: "", | userMobile: "", | ||||
subIdentNo: "" | |||||
subIdentNo: "", | |||||
invoiceAmount: 0 | |||||
}) | }) | ||||
onShow(() => { | onShow(() => { | ||||
uni.$once('list', (query) => { | uni.$once('list', (query) => { | ||||
}) | }) | ||||
}) | }) | ||||
onLoad((option) => { | onLoad((option) => { | ||||
let ordersArr = JSON.parse(decodeURIComponent(option.ordersArr)) | |||||
state.type = option.type | state.type = option.type | ||||
state.userMobile = option.userMobile | state.userMobile = option.userMobile | ||||
if (option.ordersArr.indexOf(',') > 1) { | |||||
// 数组 | |||||
state.orders = option.ordersArr.split(',') | |||||
} else { | |||||
// 一个 | |||||
state.orders.push(option.ordersArr) | |||||
console.log("ordersArr", ordersArr) | |||||
for (var i = 0; i < ordersArr.length; i++) { | |||||
let obj = {} | |||||
obj['orderNo'] = ordersArr[i]['orderNo'] | |||||
state.orders.push(obj) | |||||
state.invoiceAmount += Number(ordersArr[i]['invoiceAmount']) | |||||
} | } | ||||
console.log("option", state.orders) | |||||
console.log("option", state.orders, state.invoiceAmount) | |||||
}) | }) | ||||
const toheaderPage = () => { | const toheaderPage = () => { | ||||
console.log(1); | console.log(1); | ||||
const submit = () => { | const submit = () => { | ||||
if (state.type == '1') { | if (state.type == '1') { | ||||
ETCProductInvoiceRequest() | ETCProductInvoiceRequest() | ||||
} else { | |||||
flowServiceFeeRequest() | |||||
} | } | ||||
} | } | ||||
const ETCProductInvoiceRequest = () => { | const ETCProductInvoiceRequest = () => { | ||||
console.log("state.params", state.params['id']) | |||||
const options = { | const options = { | ||||
type: 2, | type: 2, | ||||
data: { | data: { | ||||
titleId: state.params['id'], //发票抬头编号 | titleId: state.params['id'], //发票抬头编号 | ||||
subIdentNo: state.subIdentNo, //证件号后6位 | subIdentNo: state.subIdentNo, //证件号后6位 | ||||
userMobile: state.userMobile, //手机号 | userMobile: state.userMobile, //手机号 | ||||
sellerId: "", //售方信息编号 | |||||
sellerId: "31dc9b8068604823b42b05522843560f", //售方信息编号 | |||||
}, | }, | ||||
method: "POST", | method: "POST", | ||||
showLoading: true, | showLoading: true, | ||||
}; | }; | ||||
request(ETCProductInvoiceApi, options).then((res) => { | request(ETCProductInvoiceApi, options).then((res) => { | ||||
const data = stringToJson(res.bizContent); | const data = stringToJson(res.bizContent); | ||||
msg("开票成功") | |||||
setTimeout(() => { | |||||
uni.navigateBack({ | |||||
delta: 3 | |||||
}) | |||||
}, 1500) | |||||
console.log(data, "通行"); | |||||
}); | |||||
} | |||||
const flowServiceFeeRequest = () => { | |||||
const options = { | |||||
type: 2, | |||||
data: { | |||||
listNos: state.orders, //订单号列表 | |||||
titleId: state.params['id'], //发票抬头编号 | |||||
subIdentNo: state.subIdentNo, //证件号后6位 | |||||
invoiceAmount: state.invoiceAmount, //开票金额 分 | |||||
sellerId: "31dc9b8068604823b42b05522843560f", //售方信息编号 | |||||
}, | |||||
method: "POST", | |||||
showLoading: true, | |||||
}; | |||||
request(flowServiceFee, options).then((res) => { | |||||
const data = stringToJson(res.bizContent); | |||||
msg("开票成功") | |||||
setTimeout(() => { | |||||
uni.navigateBack({ | |||||
delta: 3 | |||||
}) | |||||
}, 1500) | |||||
console.log(data, "通行"); | console.log(data, "通行"); | ||||
}); | }); | ||||
} | } |
<!-- <text>新办订单</text> --> | <!-- <text>新办订单</text> --> | ||||
</view> | </view> | ||||
<view class="content"> | <view class="content"> | ||||
<!-- <view class="row"> | |||||
订单类型:<text>新办订单</text> | |||||
</view> --> | |||||
<view class="row"> | <view class="row"> | ||||
开票日期:<text>{{item.invoiceDate}}</text> | 开票日期:<text>{{item.invoiceDate}}</text> | ||||
</view> | </view> |
return; | return; | ||||
} | } | ||||
if (!checkStr(state.form.userIdNum, 'card')) { | if (!checkStr(state.form.userIdNum, 'card')) { | ||||
msg('请输入正确身份证'); | |||||
msg('请输入正确身份证号'); | |||||
return; | return; | ||||
} | } | ||||
if (!checkStr(state.form.tel, 'mobile')) { | if (!checkStr(state.form.tel, 'mobile')) { |
return; | return; | ||||
} | } | ||||
if (!state.form.agentPosImgUrl) { | if (!state.form.agentPosImgUrl) { | ||||
msg('上传身份证的人像面'); | |||||
msg('请上传身份证的人像面'); | |||||
return; | return; | ||||
} | } | ||||
if (!state.form.agentNegImgUrl) { | if (!state.form.agentNegImgUrl) { | ||||
msg('上传身份证的国徽面'); | |||||
msg('请上传身份证的国徽面'); | |||||
return; | return; | ||||
} | } | ||||
if (!state.form.proxyUrl) { | if (!state.form.proxyUrl) { | ||||
msg('上传身份证的委托书'); | |||||
msg('请上传身份证的委托书'); | |||||
return; | return; | ||||
} | } | ||||
if (!state.form.userName) { | if (!state.form.userName) { |
} | } | ||||
} | } | ||||
} | } | ||||
state.orderInfo.appraise = appraise; | |||||
// state.orderInfo.appraise = appraise; | |||||
console.log("获取订单详情", state.orderInfo) | console.log("获取订单详情", state.orderInfo) | ||||
}) | }) | ||||
} | } | ||||
requestEditOrderAddr(addr); | requestEditOrderAddr(addr); | ||||
}); | }); | ||||
console.log("optionssdsfd", options) | console.log("optionssdsfd", options) | ||||
// getOrderDetails(options.id, options.appraise); | |||||
state.id = options.id | state.id = options.id | ||||
state.appraise = options.appraise | state.appraise = options.appraise | ||||
}) | }) |
StorageKeys | StorageKeys | ||||
} from "@/utils/storage.ts"; | } from "@/utils/storage.ts"; | ||||
import { | import { | ||||
checkOrderStatus, | |||||
wechatAppID, | wechatAppID, | ||||
wechatPayConfigId, | wechatPayConfigId, | ||||
wechatSecret, | wechatSecret, | ||||
fileType: 'docx', | fileType: 'docx', | ||||
showMenu: true, //关键点 | showMenu: true, //关键点 | ||||
success: function (res) { | success: function (res) { | ||||
// msg("成功查看协议详情"); | |||||
}, | }, | ||||
fail: function (err) { | fail: function (err) { | ||||
msg("打开文档失败"); | msg("打开文档失败"); | ||||
// #endif | // #endif | ||||
} | } | ||||
//支付成功改变订单状态 | |||||
const checkOrder = () => { | |||||
const options = { | |||||
type: 2, | |||||
data: { | |||||
orderId: state.orderId, | |||||
payConfigId: wechatPayConfigId, | |||||
}, | |||||
method: "POST", | |||||
showLoading: true, | |||||
}; | |||||
request(checkOrderStatus, options).then((res) => { | |||||
msg("支付成功!"); | |||||
var pages = getCurrentPages().length; | |||||
uni.$emit("refreshOrder"); | |||||
uni.switchTab({ | |||||
url: "/pages/order/order" | |||||
}) | |||||
}); | |||||
}; | |||||
// 协议确认接口 | // 协议确认接口 | ||||
const agreementConfirm = () => { | const agreementConfirm = () => { | ||||
const options = { | const options = { |
<view class="action-btn"> 签约 </view> | <view class="action-btn"> 签约 </view> | ||||
</view> | </view> | ||||
</view> | </view> | ||||
<!-- <view class="action"> | |||||
<button type="default" class="button" @click="savaHandle()"> | |||||
已有签约,跳过。 | |||||
</button> | |||||
</view> --> | |||||
</view> | </view> | ||||
</template> | </template> | ||||
.content-value { | .content-value { | ||||
position: relative; | position: relative; | ||||
margin-top: -50rpx; | margin-top: -50rpx; | ||||
// padding: 0rpx 30rpx; | |||||
position: relative; | position: relative; | ||||
} | } | ||||
import { | import { | ||||
downloadFileURL | downloadFileURL | ||||
} from '@/datas/fileURL.js' | } from '@/datas/fileURL.js' | ||||
import { | |||||
msg, | |||||
} from "@/utils/utils"; | |||||
const dataTime = reactive({ | const dataTime = reactive({ | ||||
startDate: "开始时间", | startDate: "开始时间", | ||||
endDate: "结束时间" | endDate: "结束时间" | ||||
pageSize: 10, //每页数据量 | pageSize: 10, //每页数据量 | ||||
pageNo: 1, // 当前页 | pageNo: 1, // 当前页 | ||||
flags: false, | flags: false, | ||||
handleDate: "", //月结单选择时间 | |||||
vehicleId: "" | |||||
}) | }) | ||||
onLoad((option) => { | onLoad((option) => { | ||||
state.cardId = option.cardId; | state.cardId = option.cardId; | ||||
state.handleDate = option.handleDate; | |||||
state.vehicleId = option.vehicleId; | |||||
console.log("月结单111", state.handleDate) | |||||
if (state.handleDate != "undefined") { | |||||
// "2024-04-25" | |||||
let deadLine = getDaysInMonth(state.handleDate.substring(0, 4), state.handleDate.substring(4, 6)) | |||||
dataTime.startDate = state.handleDate.substring(0, 4) + "-" + state.handleDate.substring(4, 6) + "-" + | |||||
"01" | |||||
dataTime.endDate = state.handleDate.substring(0, 4) + "-" + state.handleDate.substring(4, 6) + "-" + | |||||
deadLine | |||||
console.log("月结单", dataTime.startDate, state.handleDate != "") | |||||
search(1) | |||||
} | |||||
}) | }) | ||||
function getDaysInMonth(year, month) { | |||||
var date = new Date(); | |||||
date.setFullYear(year); | |||||
date.setMonth(month); | |||||
date.setDate(0); | |||||
return date.getDate(); | |||||
} | |||||
// 触底加载 | // 触底加载 | ||||
onReachBottom(() => { | onReachBottom(() => { | ||||
if (state.list.length < state.pageNo * 10) return state.flags = true | if (state.list.length < state.pageNo * 10) return state.flags = true | ||||
search(2) | search(2) | ||||
}) | }) | ||||
const search = (val) => { | const search = (val) => { | ||||
if (dataTime.startDate == "开始时间") { | |||||
msg('请选择开始时间'); | |||||
return; | |||||
} | |||||
if (dataTime.endDate == "结束时间") { | |||||
msg('请选择结束时间'); | |||||
return; | |||||
} | |||||
getPpassBillCount() | getPpassBillCount() | ||||
if (val == 1) { | if (val == 1) { | ||||
state.pageNo = 1 | state.pageNo = 1 | ||||
type: 2, | type: 2, | ||||
data: { | data: { | ||||
cardId: state.cardId, | cardId: state.cardId, | ||||
starDate: dataTime.startDate, | |||||
endDate: dataTime.endDate, | |||||
beforeDate: dataTime.startDate, | |||||
afterDate: dataTime.endDate, | |||||
vehiclePlate: state.vehicleId.split('_')[0], | |||||
vehiclePlateColor: state.vehicleId.split('_')[1] | |||||
}, | }, | ||||
method: "POST", | method: "POST", | ||||
showLoading: true, | showLoading: true, |
const state = reactive({ | const state = reactive({ | ||||
cards: [], | cards: [], | ||||
vehicleId: "", | |||||
handleDate: "" | |||||
}); | }); | ||||
onLoad((option) => { | onLoad((option) => { | ||||
state.handleDate = option.handleDate | |||||
state.vehicleId = option.vehicleId | |||||
getCardList(option.vehicleId) | getCardList(option.vehicleId) | ||||
}); | }); | ||||
const choose = (i, item) => { | const choose = (i, item) => { | ||||
console.log(item, i) | console.log(item, i) | ||||
console.log(item.vehicleId); | console.log(item.vehicleId); | ||||
navTo(`/subpackage/personal-center/search/etcFlowingWater?cardId=${item.cardId}`) | |||||
navTo( | |||||
`/subpackage/personal-center/search/etcFlowingWater?cardId=${item.cardId}&&handleDate=${state.handleDate}&&vehicleId=${state.vehicleId}` | |||||
) | |||||
} | } | ||||
const getCardList = (vehicleId) => { | const getCardList = (vehicleId) => { |
export const trafficFlowApi = "4c5a8512929945ae93828e184fbd9082" // 查询通行流水服务费订单 | export const trafficFlowApi = "4c5a8512929945ae93828e184fbd9082" // 查询通行流水服务费订单 | ||||
export const ETCProductInvoiceApi = "32bab1eee9c34694baa37c9ed222d431" // ETC产品合并开票 | export const ETCProductInvoiceApi = "32bab1eee9c34694baa37c9ed222d431" // ETC产品合并开票 | ||||
export const invoiceQueryApi = "bd1340041fab4303899d41d23109e46a" // 发票查询 | export const invoiceQueryApi = "bd1340041fab4303899d41d23109e46a" // 发票查询 | ||||
export const flowServiceFee = "1a78cda7cace443f9cff63902fb3d35c" // 通行流水服务费批量开票 | |||||
export const silentLoginApi = "abaf0013caa24dafad12b0f571e8ee40" // 无感登录 | export const silentLoginApi = "abaf0013caa24dafad12b0f571e8ee40" // 无感登录 |
} | } | ||||
options.url = envs[process.env.NODE_ENV].baseUrl + '/api/interfaceMidGroundIn' | |||||
// options.url = envs[process.env.NODE_ENV].baseUrl + '/dev/api/interfaceMidGroundIn' | |||||
// options.url = envs[process.env.NODE_ENV].baseUrl + '/api/interfaceMidGroundIn' | |||||
options.url = envs[process.env.NODE_ENV].baseUrl + '/dev/api/interfaceMidGroundIn' | |||||
//默认json数据格式提交` | //默认json数据格式提交` | ||||
let contentType = 'application/x-www-form-urlencoded' | let contentType = 'application/x-www-form-urlencoded' | ||||