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 }; 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) => { var data = { fileBase64: fileList.path }; request(fileUpload, { data: data }).then(res => { let data: any = JSON.parse(res.bizContent); const dataItem = formData.value[Index(item.title, formData.value)]; dataItem[dataItem.value] = data.data.url; }); }; //图像文件上传 const uploadImgHandle = (fileList, item, formData) => { if (item.title == "行驶证主页" || item.title == "行驶证副页") { cardImageOcr(fileList, item, formData); } else { cardFileImageUpdate(fileList, item, formData); } } return { uploadImgHandle, submitQuery }; }