}) | }) | ||||
} else if (title == "ETC开户新办申请-个人" || title == "ETC开户新办申请-单位" || title == "行驶证信息上传" || title == "微信车主服务" || title == "加购权益产品" || title == "产品详情" || title == "支付账户签约") { | } else if (title == "ETC开户新办申请-个人" || title == "ETC开户新办申请-单位" || title == "行驶证信息上传" || title == "微信车主服务" || title == "加购权益产品" || title == "产品详情" || title == "支付账户签约") { | ||||
uni.showModal({ | uni.showModal({ | ||||
content: '当前ETC正在办理中,终端后续可在订单管理继续办理。', | |||||
content: '当前ETC正在办理中,中断后续可在订单管理中继续办理。', | |||||
success: function (res) { | success: function (res) { | ||||
if (res.confirm) { | if (res.confirm) { | ||||
uni.switchTab({ | uni.switchTab({ |
import { getEtcCardStatus } from "@/datas/etcCardStatus.js"; | import { getEtcCardStatus } from "@/datas/etcCardStatus.js"; | ||||
import { getItem, StorageKeys } from "@/utils/storage"; | import { getItem, StorageKeys } from "@/utils/storage"; | ||||
import { hasLogin } from "@/utils/utils.ts" | |||||
import { hasLogin } from "@/utils/utils.ts"; | |||||
import { msg } from "@/utils/utils"; | |||||
import { | import { | ||||
getCodeName | getCodeName | ||||
} from "@/datas/queryKey.js"; | } from "@/datas/queryKey.js"; | ||||
//提交车辆信息 | //提交车辆信息 | ||||
const savaHandle = () => { | const savaHandle = () => { | ||||
if (!state.form.vehBodyUrl) { | |||||
msg("请上次车头照"); | |||||
return; | |||||
} | |||||
state.form.vehicleId = | state.form.vehicleId = | ||||
state.form.vehicleIdNum + "_" + state.vehiclePlateColor; | state.form.vehicleIdNum + "_" + state.vehiclePlateColor; | ||||
state.form.opId = getItem(StorageKeys.OpenId); | state.form.opId = getItem(StorageKeys.OpenId); | ||||
state.form.approvedCount = parseFloat(state.form.approvedCount); | |||||
state.form.maintenaceMass = parseFloat(state.form.maintenaceMass); | |||||
state.form.totalMass = parseFloat(state.form.totalMass); | |||||
const options = { | const options = { | ||||
type: 2, | type: 2, | ||||
data: state.form, | data: state.form, | ||||
state.form.vehPosImgUrl = data.imageUrl; | state.form.vehPosImgUrl = data.imageUrl; | ||||
state.form.vehicleModel = data.model; | state.form.vehicleModel = data.model; | ||||
} else { | } else { | ||||
state.form.approvedCount = parseFloat(data.apc); | |||||
state.form.maintenaceMass = parseFloat(data.unladen); | |||||
// state.form.approvedCount = parseFloat(data.apc); | |||||
// state.form.maintenaceMass = parseFloat(data.unladen); | |||||
state.form.approvedCount = data.apc; | |||||
state.form.maintenaceMass = data.unladen; | |||||
state.form.vehicleDimensions = data.overall.replaceAll("x", "X"); | state.form.vehicleDimensions = data.overall.replaceAll("x", "X"); | ||||
let arr = data.overall.split("x"); | let arr = data.overall.split("x"); | ||||
state.outlineL = arr[0]; //外廓 长 | state.outlineL = arr[0]; //外廓 长 | ||||
state.outlineW = arr[1]; //外廓 宽 | state.outlineW = arr[1]; //外廓 宽 | ||||
state.outlineH = arr[2].substring(0, arr[2].length - 2); //外廓 高 | state.outlineH = arr[2].substring(0, arr[2].length - 2); //外廓 高 | ||||
state.form.totalMass = parseFloat(data.gross); | |||||
// state.form.totalMass = parseFloat(data.gross); | |||||
state.form.totalMass = data.gross; | |||||
state.form.vehNegImgUrl = data.imageUrl; | state.form.vehNegImgUrl = data.imageUrl; | ||||
} | } | ||||
}); | }); |
<view class="title"> 识别内容如下 </view> | <view class="title"> 识别内容如下 </view> | ||||
<u-form label-width="230" :model="state.form" ref="uForm"> | <u-form label-width="230" :model="state.form" ref="uForm"> | ||||
<u-form-item label="姓名"> | <u-form-item label="姓名"> | ||||
<u-input v-model="state.form.userName" placeholder='请输入姓名' :disabled="state.isEnableOCRData" /> | |||||
<u-input v-model="state.form.userName" placeholder='请输入姓名' :disabled="state.isEnableOCRData" | |||||
maxlength="20" @input="replaceInput" /> | |||||
</u-form-item> | </u-form-item> | ||||
<!-- <u-form-item label="性别"> | <!-- <u-form-item label="性别"> | ||||
</u-form-item> --> | </u-form-item> --> | ||||
<u-form-item label="身份证号"> | <u-form-item label="身份证号"> | ||||
<u-input placeholder='请输入身份证' type="idcard" v-model="state.form.userIdNum" | <u-input placeholder='请输入身份证' type="idcard" v-model="state.form.userIdNum" | ||||
:disabled="state.isEnableOCRData" /> | |||||
:disabled="state.isEnableOCRData" maxlength="18" /> | |||||
</u-form-item> | </u-form-item> | ||||
<u-form-item label="地址"> | <u-form-item label="地址"> | ||||
<u-input placeholder='请输入地址' height='38' type='textarea' :autoHeight='true' | <u-input placeholder='请输入地址' height='38' type='textarea' :autoHeight='true' | ||||
v-model="state.form.address" :disabled="state.isEnableOCRData" /> | |||||
v-model="state.form.address" :disabled="state.isEnableOCRData" maxlength="100" /> | |||||
</u-form-item> | </u-form-item> | ||||
<!-- <u-form-item label="证件有效期"> | <!-- <u-form-item label="证件有效期"> | ||||
<u-input v-model="state.form.begindate" type="select" /> | <u-input v-model="state.form.begindate" type="select" /> | ||||
</u-form-item> --> | </u-form-item> --> | ||||
<u-form-item label="联系方式"> | <u-form-item label="联系方式"> | ||||
<u-input placeholder='请输入联系方式' type="number" v-model="state.form.tel" /> | |||||
<u-input placeholder='请输入联系方式' type="number" v-model="state.form.tel" maxlength="11" /> | |||||
</u-form-item> | </u-form-item> | ||||
</u-form> | </u-form> | ||||
</view> | </view> | ||||
<u-form label-width="200" :model="state.form" ref="uForm"> | <u-form label-width="200" :model="state.form" ref="uForm"> | ||||
<u-form-item label="姓名"> | <u-form-item label="姓名"> | ||||
<u-input inputAlign="right" placeholder='请输入姓名' v-model="state.form.userName" | <u-input inputAlign="right" placeholder='请输入姓名' v-model="state.form.userName" | ||||
:disabled="state.isEnableOCRData" /> | |||||
:disabled="state.isEnableOCRData" maxlength="20" /> | |||||
</u-form-item> | </u-form-item> | ||||
<!-- <u-form-item label="性别"> | <!-- <u-form-item label="性别"> | ||||
<u-input inputAlign="right" placeholder='请选择性别' v-model="state.form.gender" type="select" /> | <u-input inputAlign="right" placeholder='请选择性别' v-model="state.form.gender" type="select" /> | ||||
</u-form-item> --> | </u-form-item> --> | ||||
<u-form-item label="身份证号"> | <u-form-item label="身份证号"> | ||||
<u-input inputAlign="right" placeholder='请输入身份证号' v-model="state.form.userIdNum" | <u-input inputAlign="right" placeholder='请输入身份证号' v-model="state.form.userIdNum" | ||||
:disabled="state.isEnableOCRData" /> | |||||
:disabled="state.isEnableOCRData" type="idcard" /> | |||||
</u-form-item> | </u-form-item> | ||||
<!-- <u-form-item label=""> | <!-- <u-form-item label=""> | ||||
<u-input v-model="state.form.userIdNum" /> | <u-input v-model="state.form.userIdNum" /> | ||||
<u-input v-model="state.form.begindate" type="select" /> | <u-input v-model="state.form.begindate" type="select" /> | ||||
</u-form-item> --> | </u-form-item> --> | ||||
<u-form-item label="联系方式"> | <u-form-item label="联系方式"> | ||||
<u-input inputAlign="right" placeholder='请输入联系方式' v-model="state.form.tel" /> | |||||
<u-input inputAlign="right" placeholder='请输入联系方式' v-model="state.form.tel" maxlength="11" /> | |||||
</u-form-item> | </u-form-item> | ||||
</u-form> | </u-form> | ||||
</view> | </view> | ||||
<u-form label-width="200" :model="state.form" ref="uForm"> | <u-form label-width="200" :model="state.form" ref="uForm"> | ||||
<u-form-item label="经办人姓名"> | <u-form-item label="经办人姓名"> | ||||
<u-input inputAlign="right" placeholder='请输入经办人姓名' v-model="state.form.agentName" | <u-input inputAlign="right" placeholder='请输入经办人姓名' v-model="state.form.agentName" | ||||
:disabled="state.isEnableOCRData" /> | |||||
:disabled="state.isEnableOCRData" maxlength="20" /> | |||||
</u-form-item> | </u-form-item> | ||||
<!-- <u-form-item label="性别"> | <!-- <u-form-item label="性别"> | ||||
<u-input v-model="state.form.agentGender" type="select" /> | <u-input v-model="state.form.agentGender" type="select" /> | ||||
</u-form-item> --> | </u-form-item> --> | ||||
<u-form-item label="身份证号"> | <u-form-item label="身份证号"> | ||||
<u-input inputAlign="right" placeholder='请输入身份证号' v-model="state.form.agentIdNum" | <u-input inputAlign="right" placeholder='请输入身份证号' v-model="state.form.agentIdNum" | ||||
:disabled="state.isEnableOCRData" /> | |||||
:disabled="state.isEnableOCRData" maxlength="18" type="idcard" /> | |||||
</u-form-item> | </u-form-item> | ||||
<!-- <u-form-item label="证件有效期"> | <!-- <u-form-item label="证件有效期"> | ||||
<u-input v-model="state.form.begindate" type="select" /> | <u-input v-model="state.form.begindate" type="select" /> | ||||
</u-form-item> --> | </u-form-item> --> | ||||
<u-form-item label="联系方式"> | <u-form-item label="联系方式"> | ||||
<u-input inputAlign="right" placeholder='请输入联系方式' v-model="state.form.agentTel" /> | |||||
<u-input inputAlign="right" placeholder='请输入联系方式' v-model="state.form.agentTel" type="number" | |||||
maxlength="11" /> | |||||
</u-form-item> | </u-form-item> | ||||
</u-form> | </u-form> | ||||
</view> | </view> | ||||
onPageScroll((e) => { | onPageScroll((e) => { | ||||
scrollTop.value = e.scrollTop; | scrollTop.value = e.scrollTop; | ||||
}); | }); | ||||
const replaceInput = (event) => { | |||||
console.log("event", event) | |||||
const screeningStr = /[^\u4E00-\u9FA5]/g; //想禁止什么类型,在这里替换正则就可以了 | |||||
if (screeningStr.test(event)) { | |||||
setTimeout(() => { | |||||
state.form.userName = event.replace(screeningStr, ''); | |||||
}, 1000) | |||||
} else { | |||||
setTimeout(() => { | |||||
state.form.userName = event; | |||||
}, 1000) | |||||
} | |||||
console.log("event.replace(screeningStr, '')", event.replace(screeningStr, ''), event, state.form.userName) | |||||
} | |||||
const cardDbImageOcr = (val : any) => { | const cardDbImageOcr = (val : any) => { | ||||
var imageType = val; | var imageType = val; | ||||
if (state.openid) { | if (state.openid) { | ||||
var data = { | var data = { | ||||
orderId: state.orderId, | orderId: state.orderId, | ||||
// orderId: "20231012114651162505354", | |||||
subOpenId: state.openid, | subOpenId: state.openid, | ||||
}; | }; | ||||
const options = { | const options = { | ||||
}; | }; | ||||
request(etcQYAction, options).then((res) => { | request(etcQYAction, options).then((res) => { | ||||
const data = stringToJson(res.bizContent); | const data = stringToJson(res.bizContent); | ||||
console.log("data", data) | |||||
if (data.userState === "UNAUTHORIZED") { | if (data.userState === "UNAUTHORIZED") { | ||||
uni.navigateToMiniProgram({ | uni.navigateToMiniProgram({ | ||||
appId: "wxbcad394b3d99dac9", | appId: "wxbcad394b3d99dac9", |
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"; | ||||
import { useUserStore } from "@/stores/user"; | import { useUserStore } from "@/stores/user"; | ||||
import { getItem } from "@/utils/storage"; | |||||
import { getItem, setItem } from "@/utils/storage"; | |||||
const userStore = useUserStore(); | const userStore = useUserStore(); | ||||
const { fetchToken } = userStore; | const { fetchToken } = userStore; | ||||
onLoad((option) => { | onLoad((option) => { | ||||
// https://qtzl.etcjz.cn/default-bucket/20231204/scanPay.html?orderId=20231016180507480853307&phone=18786896573&type=1 | // https://qtzl.etcjz.cn/default-bucket/20231204/scanPay.html?orderId=20231016180507480853307&phone=18786896573&type=1 | ||||
// https://qtzl.etcjz.cn/default-bucket/20231204/protocol.html?orderId=20231012114651162505354&phone=18786896573&type=2&url=default-bucket/20231024/fcae5e580ecc4cacaaa75138_ETC用户协议20230805(法审终版).docx | // https://qtzl.etcjz.cn/default-bucket/20231204/protocol.html?orderId=20231012114651162505354&phone=18786896573&type=2&url=default-bucket/20231024/fcae5e580ecc4cacaaa75138_ETC用户协议20230805(法审终版).docx | ||||
console.log("option", option) | |||||
if (option.q) { | if (option.q) { | ||||
const q = decodeURIComponent(option.q); // 获取到二维码原始链接内容 | const q = decodeURIComponent(option.q); // 获取到二维码原始链接内容 | ||||
console.log(q); | console.log(q); | ||||
state.json = getRequest(q) | state.json = getRequest(q) | ||||
console.log("state.json", state.json, getItem("mobile")) | |||||
if (getItem("mobile") == state.json.phone) { | |||||
state.mobile = state.json.phone | |||||
} else { | |||||
msg("手机号错误"); | |||||
return; | |||||
console.log("state.json", state.json, getItem("mobile"), getItem("mobile") == state.json.phone) | |||||
setItem('scanCode', state.json) | |||||
if (!getItem("mobile")) { | |||||
uni.showModal({ | |||||
title: '提示', | |||||
content: '您还未登录小程序,请先登录小程序', | |||||
showCancel: false, | |||||
success: function (res) { | |||||
if (res.confirm) { | |||||
navTo('/login/login') | |||||
} | |||||
} | |||||
}); | |||||
} | } | ||||
console.log("state.json", state.json); | |||||
// 直接用传过来的手机号(不让他修改) | |||||
state.mobile = state.json.phone | |||||
} else { | |||||
state.json = getItem("scanCode") | |||||
state.mobile = state.json.phone | |||||
} | } | ||||
}); | }); | ||||
rbacSource: 'MINI_PROGRAM', | rbacSource: 'MINI_PROGRAM', | ||||
accessToken: getItem(StorageKeys.Token) | accessToken: getItem(StorageKeys.Token) | ||||
} | } | ||||
options.url = envs[process.env.NODE_ENV].baseUrl + '/api/interfaceMidGroundIn' | |||||
// options.url = envs[process.env.NODE_ENV].baseUrl + '/ifzt/api/interfaceMidGroundIn' | |||||
// options.url = envs[process.env.NODE_ENV].baseUrl + '/api/interfaceMidGroundIn' | |||||
options.url = envs[process.env.NODE_ENV].baseUrl + '/ifzt/api/interfaceMidGroundIn' | |||||
//默认json数据格式提交` | //默认json数据格式提交` | ||||
let contentType = 'application/x-www-form-urlencoded' | let contentType = 'application/x-www-form-urlencoded' | ||||