From fc2ba058df6bb37d80367af4d9d474c0423569a6 Mon Sep 17 00:00:00 2001 From: yangzifeng <2547435354@qq.com> Date: Fri, 20 Mar 2026 14:57:47 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=89=8B=E5=8A=A8=E5=88=9B?= =?UTF-8?q?=E5=BB=BA=E9=85=8D=E9=80=81=E5=8D=95=E7=9A=84=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/order/waitDelivery/index.vue | 155 ++++++++++++------------- 1 file changed, 72 insertions(+), 83 deletions(-) diff --git a/src/views/order/waitDelivery/index.vue b/src/views/order/waitDelivery/index.vue index 82fba03..5fb9201 100644 --- a/src/views/order/waitDelivery/index.vue +++ b/src/views/order/waitDelivery/index.vue @@ -159,7 +159,7 @@ - +
配送信息 @@ -355,9 +355,9 @@ - - - + + + @@ -388,6 +388,7 @@ import { listOrder,detailOrder,calcTotalWv,calculate,addDelivery } from "@/api/waitDelivery/waitDelivery" import { listType } from "@/api/document/type" import {listUser} from "@/api/system/user"; //理货员 +import { ref } from "vue"; const { proxy } = getCurrentInstance() const orderList = ref([]) @@ -406,7 +407,6 @@ const goodsList = ref([]) const carTypeList = ref([]) //推荐车型下拉数据 const personList = ref([]); //理货员下拉数据 const data = reactive({ - form: {}, queryParams: { pageNum: 1, pageSize: 10, @@ -461,11 +461,12 @@ const data = reactive({ delieryData:{ deliveryTon:null, //重量 goodsSize:null, //体积 - items:[] + items:[], + vehicleTypeNameList:[{}] }, }) -const { queryParams, form,delieryData,rules } = toRefs(data) +const { queryParams,delieryData,rules } = toRefs(data) /** 查询配送单据主列表 */ function getList() { @@ -535,46 +536,45 @@ function changeQty(){ } } -function calculateFun(vehicleTypeId){ - if(!delieryData.value.deliveryTon || !delieryData.value.goodsSize || !delieryData.value.totalKm){ - proxy.$modal.msgWarning("请输入公里数、重量、体积"); - return - } - let info = { - weightTon:0, - volumeM3:0, - distanceKm:0, - vehicleTypeId:vehicleTypeId - } - info.weightTon = delieryData.value.deliveryTon - info.volumeM3 = delieryData.value.goodsSize - info.distanceKm = delieryData.value.totalKm - if(vehicleTypeId){ - info.vehicleTypeId = vehicleTypeId - } - calculate(info).then(response=>{ - // 检查后端是否返回了错误信息 - if(response.data.errorMessage) { - // 如果有错误信息,显示给用户,并清空相关字段 - proxy.$modal.msgError(response.data.errorMessage); - if(!vehicleTypeId){ - delieryData.value.vehicleTypeId = null; - } - delieryData.value.suggestFee = null; - delieryData.value.vehicleTypeName = null; - } else { - // 没有错误信息,正常处理返回的车型信息 - if(!vehicleTypeId){ - delieryData.value.vehicleTypeId = response.data.vehicleTypeId; - } - delieryData.value.suggestFee = response.data.suggestFee; - delieryData.value.vehicleTypeName = response.data.vehicleTypeName; - } - // console.log(response) - }) +//根据重量、体积、公里数计算车型、费用 +function calculateFun(id) { + if ( + !delieryData.value.deliveryTon || + !delieryData.value.goodsSize || + !delieryData.value.totalKm + ) { + proxy.$modal.msgWarning("请输入公里数、重量、体积"); + return; + } + let info = { + weightTon: 0, + volumeM3: 0, + distanceKm: 0, + }; + let hasVehicle = delieryData.value.vehicleTypeNameList.every(item => item.vehicleTypeId) + if (hasVehicle) { + info.vehicleTypeId = delieryData.value.vehicleTypeNameList.map(item => item.vehicleTypeId).join(',') + } + info.weightTon = delieryData.value.deliveryTon; + info.volumeM3 = delieryData.value.goodsSize; + info.distanceKm = delieryData.value.totalKm; + calculate(info).then((response) => { + // 检查后端是否返回了错误信息 + if (response.data.warningMessage) { + proxy.$modal.msgError(response.data.warningMessage); + return; + } + if (response.data.bestPlan.length > 0 && !id) { + delieryData.value.vehicleTypeNameList = response.data.bestPlan; + } + carTypeList.value = response.data.candidates; + delieryData.value.suggestFee = response.data.suggestFee; + delieryData.value.vehicleTypeName = response.data.vehicleTypeName; + console.log(delieryData.value) + }); } //切换车型 -function changeCarType(id){ +function changeCarType(id, index){ if(!delieryData.value.totalKm || !delieryData.value.deliveryTon || !delieryData.value.goodsSize){ proxy.$modal.msgWarning("请输入公里数、重量、体积"); return @@ -584,42 +584,24 @@ function changeCarType(id){ // 取消按钮 function cancel() { + delieryData.value.originName = null; + delieryData.value.destName = null; + delieryData.value.shipperName = null; + delieryData.value.shipperPhone = null; + delieryData.value.receiverName = null; + delieryData.value.receiverPhone = null; + delieryData.value.receiverOrgName = null; + delieryData.value.deliveryDate = null; + delieryData.value.totalKm = null; + delieryData.value.vehicleTypeNameList = [{}]; + delieryData.value.suggestFee = null; + goodsList.value = [] + proxy.$refs["form"].resetFields() openBill.value = false } // 表单重置 function reset() { - form.value = { - id: null, - xmMs: null, - xmNo: null, - wlNo: null, - wlMs: null, - realQty: null, - dw: null, - sapNo: null, - gysMc: null, - remark: null, - originName: null, - originLng: null, - originLat: null, - destName: null, - destLng: null, - destLat: null, - deliveryDate: null, - vehiclePlate: null, - shipperName: null, - shipperPhone: null, - receiverName: null, - receiverPhone: null, - receiverOrgName: null, - deliveryTon: null, - createBy: null, - createTime: null, - updateBy: null, - updateTime: null, - isDelete: null - } proxy.resetForm("orderRef") } @@ -673,18 +655,26 @@ function statusFun(status){ /** 提交按钮 */ function submitForm() { + let hasVehicle = delieryData.value.vehicleTypeNameList.every(item => item.vehicleTypeId) + if (!hasVehicle) { + proxy.$modal.msgWarning('请选择配送车型') + return + } proxy.$refs["form"].validate(valid => { // console.log(delieryData.value) // return if (valid) { + let obj = JSON.parse(JSON.stringify(delieryData.value)) + obj.vehicleTypeName = obj.vehicleTypeNameList.map(item => item.vehicleTypeName).join(',') + obj.vehicleTypeId = obj.vehicleTypeNameList.map(item => item.vehicleTypeId).join(',') if(goodsList.value.length==0){ proxy.$modal.msgWarning("请添加货物信息"); return } - delieryData.value.items = goodsList.value + obj.items = goodsList.value // console.log(delieryData.value) - addDelivery(delieryData.value).then(response => { + addDelivery(obj).then(response => { proxy.$modal.msgSuccess("操作成功") openBill.value = false getList() @@ -712,15 +702,14 @@ function handleExport() { }, `order_${new Date().getTime()}.xlsx`) } function handleAddBill(){ - delieryData.value ={} - goodsList.value = [] + openBill.value = true //车型下拉数据 - listType({pageNum:1,pageSize:1000}).then(response => { - carTypeList.value = response.rows + // listType({pageNum:1,pageSize:1000}).then(response => { + // carTypeList.value = response.rows - }) + // }) //理货员下拉数据 listUser().then(response=>{ personList.value = response.rows