123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247 |
- <template>
- <view class='bg-content'>
- <image class='bg-image' mode="widthFix"
- src="https://qtzl.etcjz.cn/default-bucket/20240324/3eba2095f5204798a1f8101b_beijing.jpg"></image>
- <view class="content-re">
- <custom-header title="车辆信息" :back="config.hasReturn === 'true'"></custom-header>
- <view style="padding: 20rpx 0" v-if='isShow'>
- <form-builder-vue @radioChange="radioChange" :formData.value="formData" :config="config"
- @uploadImgOcr="uploadImg" @submit="submit">
- </form-builder-vue>
- </view>
- </view>
- </view>
- </template>
- <script setup lang='ts'>
- import {
- unifyTemplate
- } from '@/hooks/unifyTemplate'
- // import Agreement from '@/components/Agreement.vue';
- import {
- TypeData,
- Index
- } from '@/components/form-builder/tools'
- // import {
- // IdCard
- // } from '../../static/data/testData.js'
- import {
- reactive,
- ref,
- nextTick
- } from 'vue'
- import {
- onLoad
- } from '@dcloudio/uni-app';
- import {
- request
- } from '@/utils/network/request'
- import ocrHandle from './ocrHandle'
- import fromData from './fromData.js'
- import {
- useAuditOrderStore
- } from '@/stores/auditOrder.js';
- import {
- truck,
- bus
- } from '@/datas/auditInfo'
- const {
- formBuilderVue, //组件
- CustomHeader, //头部组件
- initData, //初始化数据
- isShow, //是否展示formBuilderVue组件
- qdOrderVal //qdOrder中数据 ref
- } = unifyTemplate() //初始化数据
-
- onLoad((opin) => {
- // 初始化数据
- initData(opin, 2).then(data => {
- formData.value = JSON.parse(data.config.tableConfig)
- console.log(formData.value, 'formData.value')
- nextTick(() => {
- submitQuery.channelId = data.qdOrder.promoterChannelNum + '00000001'
- if (qdOrderVal.value.vanType == 1) {
- // 客车
- checkCarTpe(true)
- submitQuery.type = 1
- } else if (qdOrderVal.value.vanType == 2) {
- // 货车
- checkCarTpe(false)
- isTractorHandle(data.qdOrder.isTractor)
- submitQuery.type = 2
- } else {
- // 专项作业车
- submitQuery.type = 3
- checkCarTpe(false)
- isTractorHandle(data.qdOrder.isTractor)
- }
- })
- delete data.config.tableConfig
- config.value = Object.assign(data.config, config.value)
- nextTick(() => {
- handleHide()
- handleData(data.order)
- isShow.value = true
- })
- })
- })
- const auditOrderStore = useAuditOrderStore();
- const cterOptions = [{
- val: 1,
- label: "营运"
- }, {
- val: 2,
- label: "非营运"
- }, {
- val: 3,
- label: "未知"
- }]
-
- function handleData(orderInfo) {
- const vanType = qdOrderVal.value.vanType == 1 //为true 客车
- let dataArr = []
- if (vanType) {
- // 客车
- dataArr = bus
- } else {
- // 货车
- dataArr = truck
- if (orderInfo.roadTransportPermitPicUrl) {
- orderInfo.tractorSign = '1' //是牵引车
- } else {
- orderInfo.tractorSign = '0' //不是牵引车
- }
- }
- dataArr.forEach(item => {
- if (item.key) {
- const key = item.val
- let valData = orderInfo[item.key]
- if (item.title) {
- if (item.title === '是否牵引车') {
- formData.value[Index('是否牵引车', formData.value)].itemData.find(formItem => {
- if (formItem.value === valData) {
- formItem.checked = true
- } else {
- formItem.checked = false
- }
- })
- if (valData === '1') {
- formData.value[Index('道路运输证', formData.value)].show = false;
- } else {
- formData.value[Index('道路运输证', formData.value)].show = true;
- }
- }
-
- if (item.title === '使用性质') {
- valData = cterOptions.find(cterItem => cterItem.val === valData)?.label || ''
- }
- formData.value[Index(item.title, formData.value)][key] = valData
- } else {
- submitQuery[key] = valData
- }
- }
- })
- console.log(formData.value, submitQuery, '数据');
- }
-
- function isTractorHandle(isTractor: number) {
- const index = Index('车辆用户类型', formData.value);
- // if (isTractor === 0) {
- formData.value[index].disabled = false
- console.log(formData.value[index], '货车111')
- // }
- }
- //单项选择器
- function radioChange(e: any, item: TypeData) {
- if (item.title === '是否牵引车') {
- if (parseInt(e.detail.value) == 1) {
- formData.value[Index('道路运输证', formData.value)].show = false;
- } else {
- formData.value[Index('道路运输证', formData.value)].show = true;
- }
- }
- }
- //有哪些字段隐藏哪些字段
- function handleHide() {
- if (formData.value[Index('道路运输证', formData.value)]) {
- formData.value[Index('道路运输证', formData.value)].show = true;
- }
- }
- // 货车或者客车切换
- function checkCarTpe(key) {
- // true为客车,false为货车
- // formData.value[Index('总质量(kg)', formData.value)].show = key
- // formData.value[Index('整备质量(kg)', formData.value)].show = key
- formData.value[Index('核定载质量(kg)', formData.value)].show = key
- formData.value[Index('准牵引总质量(kg)', formData.value)].show = key
- if (formData.value[Index('道路运输证', formData.value)]) {
- formData.value[Index('道路运输证', formData.value)].show = key
- formData.value[Index('是否牵引车', formData.value)].show = key
- }
-
- // formData.value[Index('车轴数', formData.value)].show = key
- if (formData.value[Index('车头照', formData.value)]) {
- formData.value[Index('车头照', formData.value)].show = key
- }
- const dataItem = formData.value[Index('车辆用户类型', formData.value)]
- dataItem.disabled = true
- dataItem[dataItem.value] = 0;
- }
- let config = ref < any > ({
- submitName: '确认',
- titleWidth: 250,
- isHeader: true
- })
- let formData = ref < any > (fromData)
-
- // ocr图片处理和额外请求参数处理
- const {
- uploadImgHandle,
- submitQuery,
- ocrDataFu
- } = ocrHandle(qdOrderVal)
-
- function uploadImg(fileList, item) {
- uploadImgHandle(fileList, item, formData)
- }
-
- function submit(item: any) {
- let vehicleColor = qdOrderVal.value.vehicleColor
- const dataItem = formData.value[Index('车牌号', formData.value)];
- let vehiclePlate = dataItem[dataItem.value]
- // console.log(qdOrderVal.value.vehiclePlate, vehiclePlate);
- submitQuery.vehicleId =
- vehiclePlate + "_" + vehicleColor;
- const orderId = qdOrderVal.value.qtOrderNo
- let data = {
- ...item,
- orderId
- }
- for (let dataItem in submitQuery) {
- if (submitQuery[dataItem] || submitQuery[dataItem] === 0 && !data[dataItem]) {
- data[dataItem] = submitQuery[dataItem]
- console.log(submitQuery, '处理的submitQuery', dataItem);
- }
- }
- ocrDataFu.forEach(ele => {
- const itemValue = data[ele.sendKey]
- if (itemValue) {
- if (ele.isNumbers) {
- data[ele.sendKey] = parseInt(itemValue)
- } else if (ele.sendKey === 'vehicleDimensions') {
- data[ele.sendKey] = itemValue.replace('mm', '').trim()
- }
- }
-
- })
- console.log('请求参数drivingLicense', data);
- auditOrderStore.setDrivingData(data)
- uni.navigateTo({
- url: '/pages/audit/audit',
- animationType: 'pop-in',
- animationDuration: 500
- })
- }
- </script>
- <style lang='scss' scoped>
-
- </style>
|