import { reactive } from 'vue' import { request } from '@/utils/network/request' import { Index, handleDataList } from '@/components/form-builder/tools' import { etcCarOcrCard, fileUpload } from '@/utils/network/api.js' import { useQdOrderStore } from '@/stores/qdOrder.js' // 配合formBuilderVue3模板使用 export default function () { let submitQuery = reactive({ orderId: '', //订单ID man: '', //所有人 character: '', //使用性质 register: '', //注册日期 customerId: '', //用户编号 vehicleId: '', vehicleIdNum: '', //车牌编号 issueDate: '', //发证日期 vehPosImgUrl: '', //行驶证正面 vehNegImgUrl: '', //行驶证证反面 type: '0', //0,客车 1.货车 useUserType: 0, //车辆用户类型 useUserTypeName: '普通车', vehicleSign: 2, //前/后装标识 vin: '', //车辆识别代号 engineNum: '', //发动机号码 vehicleType: '', //车辆类型 vehicleModel: '', //行驶证品牌型号 approvedCount: undefined, //核定人数 totalMass: undefined, //总质量 maintenaceMass: undefined, //整备质量 permittedWeight: '', //核定载质量 vehicleDimensions: '', //车辆尺寸 permittedTowWeight: '', //准牵引总质量 axleCount: '', //车轴数 ownerName: '', //车主姓名 ownerIdType: '', //车主证件类型 ownerIdNum: '', //车主证件号码 ownPosImgUrl: '', //车主证件正面图片 ownNegImgUrl: '', //车主证件反面图片 agreementId: '', //签约编号 channelId: '5201018892300000001', //编号渠道 scenePayType: '', // transportIdNum: '', //道路运输证编号 licenseIdNum: '', //经营许可证编号 vehBodyUrl: '', //车身照片 }) const qdOrderStore = useQdOrderStore() // 行驶证主业或副业处理 const cardImageOcr = (fileList, item, formData) => { let imageType: string if (item.title == '行驶证主页') { imageType = '1' } else if (item.title == '行驶证副页') { imageType = '2' } const data = { source: '1', agencyId: qdOrderStore.qdOrderVal.promoterChannelNum, imageType: imageType, fileName: fileList.fileName, // imageBase64: fileList.path imageUrl: fileList.url, } request(etcCarOcrCard, { data: data, }).then((res) => { let data: any = JSON.parse(res.bizContent) const itemData = formData.value[Index(item.title, formData.value)] itemData[itemData.value] = data.imageUrl console.log(data) // item[item.value] = data.imageUrl if (imageType == '1') { // 需要处理展示的页面 // 正面 if (!data.plate_a || !data.engine) { uni.showModal({ title: '提示', content: '识别错误,请上传正确的图片', success: function (res) {}, }) return } const ocrData = [ { title: '车牌号', key: 'plate_a', }, { title: '车辆类型', key: 'vehicle', }, { title: '使用性质', key: 'character', }, { title: '发动机号码', key: 'engine', }, { title: '品牌型号', key: 'model', }, { title: '车辆识别代码', key: 'vin', }, { title: '所有人', key: 'man', }, { title: '发证日期', key: 'issue', }, { title: '注册日期', key: 'register', }, ] // 处理数据展示 handleDataList(ocrData, data, formData) } else { if (!data.gross || !data.apc) { uni.showModal({ title: '提示', content: '识别错误,请上传正确的图片', success: function (res) {}, }) return } const ocrData = [ { title: '准牵引总质量(kg)', key: 'towing', isNumber: true, }, { title: '核定载人数', key: 'apc', isNumber: true, }, { title: '核定载质量(kg)', isNumber: true, key: 'alc', }, { title: '总质量(kg)', isNumber: true, key: 'gross', }, { title: '整备质量(kg)', isNumber: true, key: 'unladen', }, { title: '外廓尺寸', key: 'overall', substring: 2, //截取最后两位 }, ] // 处理数据展示 handleDataList(ocrData, data, formData) } }) } // 车身照上传 const cardFileImageUpdate = (fileList, item, formData) => { const dataItem = formData.value[Index(item.title, formData.value)] dataItem[dataItem.value] = fileList.url } //图像文件上传 const uploadImgHandle = (fileList, item, formData) => { if (item.title == '行驶证主页' || item.title == '行驶证副页') { cardImageOcr(fileList, item, formData) } else { cardFileImageUpdate(fileList, item, formData) } } return { uploadImgHandle, submitQuery, } }