| | |
| | | v-hasPermi="['tms:tmsDispatchOrder:print']" |
| | | >承运单打印 |
| | | </el-button> |
| | | <el-button |
| | | type="primary" |
| | | icon="UserFilled" |
| | | :disabled="!zxhdjSingle" |
| | | @click="handleZXHDJ" |
| | | v-hasPermi="['tms:tmsDispatchOrder:zzdj']" |
| | | >装卸货点登记 |
| | | </el-button> |
| | | </template> |
| | | <template #menu-before="{row}"> |
| | | <el-link size="small" type="primary" @click="handleAddGoods(row)" class="link-btn" |
| | |
| | | </template> |
| | | </el-dialog> |
| | | |
| | | |
| | | <el-dialog title="预配订单装卸货点登记" v-model="open7" class="avue-dialog avue-dialog--top" width="80%"> |
| | | <avue-form v-model="shipperReceiverForm" |
| | | ref="shipperReceiverFormRef" |
| | | :option="shipperReceiverFormOption"> |
| | | <template #dispatchNos="{disabled}"> |
| | | <div class="dispatchNos"> |
| | | <el-tag |
| | | v-for="tag in shipperReceiverForm.dispatchNos" |
| | | :key="tag" |
| | | closable |
| | | @close="handleCloseDispatchNo(tag)" |
| | | > |
| | | {{ tag }} |
| | | </el-tag> |
| | | </div> |
| | | |
| | | </template> |
| | | <template #shipperId="{disabled}"> |
| | | <div style="display:flex; align-items: center;justify-content: space-between"> |
| | | <avue-input-table :props="consignorProps" dataType="string" |
| | | :children="consignorOption" :disabled="disabled" |
| | | :on-load="onShipperLoad" suffixIcon="search" |
| | | v-model="shipperReceiverForm.shipperId" style="width: 80%" |
| | | @change="changeShipper2" |
| | | placeholder="请选择装货点"></avue-input-table> |
| | | <el-button icon="plus" :disabled="disabled" @click="handleAddShipper2"></el-button> |
| | | </div> |
| | | </template> |
| | | <template #receiverId="{disabled}"> |
| | | <div style="display:flex; align-items: center;justify-content: space-between"> |
| | | <avue-input-table :props="consignorProps" |
| | | :children="consignorOption" dataType="string" |
| | | :on-load="onConsignorLoad" suffixIcon="search" |
| | | v-model="shipperReceiverForm.receiverId" :disabled="disabled" |
| | | @change="changeReceiver2" style="width: 80%" |
| | | placeholder="请选择卸货点"></avue-input-table> |
| | | <el-button icon="plus" :disabled="disabled" @click="handleAddReceiver2"></el-button> |
| | | </div> |
| | | </template> |
| | | </avue-form> |
| | | <template #footer> |
| | | <div class="dialog-footer"> |
| | | <el-button type="primary" |
| | | :loading="pageF.isUploading" @click="submitZxForm"> |
| | | {{ pageF.isUploading ? '提交中' : '确 定' }} |
| | | </el-button> |
| | | |
| | | <el-button @click="open7 = false">取 消</el-button> |
| | | </div> |
| | | </template> |
| | | </el-dialog> |
| | | |
| | | </basicContainer> |
| | | </template> |
| | | |
| | |
| | | checkCloseOrder, |
| | | closeOrder, |
| | | printDispatchOrder, |
| | | importTemplateTmsDispatchOrder |
| | | importTemplateTmsDispatchOrder,ypdddjSumbit |
| | | } from "@/api/tms/tmsDispatchOrder"; |
| | | import useCurrentInstance from "@/utils/useCurrentInstance"; |
| | | import {computed, onMounted, reactive, ref, toRefs, watch, getCurrentInstance, nextTick} from "vue"; |
| | |
| | | isLoad: -1, |
| | | open5:false, |
| | | open6:false, |
| | | open7:false, |
| | | zxhdjSingle:false, |
| | | }) |
| | | const { |
| | | queryParams, form, page, selectionList, open3, |
| | | boxTableData, optionType, |
| | | boxFormOption, boxForm, boxTableOption, title, open, open2, |
| | | goodsTableData, goodsForm, actualForm, selectionList2,isCustoms,isLoad,open5,open6 |
| | | goodsTableData, goodsForm, actualForm, selectionList2,isCustoms,isLoad,open5,open6,open7,zxhdjSingle |
| | | } = toRefs(data); |
| | | const option = ref({ |
| | | pageKey: 'TmsDispatchOrder', |
| | |
| | | } |
| | | isCustoms.value = isCustoms.value == 0 && !pageF.single ? 0 : -1; |
| | | isLoad.value = isLoad.value == 0 && !pageF.single ? 0 : -1; |
| | | console.log(pageF.single) |
| | | zxhdjSingle.value = pageF.multiple|| true; |
| | | let yp = selection.filter((item:any) =>{ |
| | | return item.orderType == 0 |
| | | }); |
| | | if(yp.length > 0){ |
| | | zxhdjSingle.value = false; |
| | | } |
| | | }, |
| | | getBeginListFunc: (params = {}) => { |
| | | queryParams.value = proxy.addDateRangeNew(queryParams.value, queryParams.value?.createTimeRange, 'createTime') || {}; |
| | |
| | | if (districtId) data.districtId = districtId; |
| | | if (streetId) data.streetId = streetId; |
| | | } |
| | | if (shipperReceiverForm.value.customerId ){ |
| | | form.value.customerId = shipperReceiverForm.value.customerId; |
| | | } |
| | | listTmsConsignor({pageSize: page.pageSize, pageNum: page.currentPage, ...data,customerId: form.value.customerId}).then(res => { |
| | | return callback({ |
| | | total: res.total, |
| | |
| | | if (cityId) data.cityId = cityId; |
| | | if (districtId) data.districtId = districtId; |
| | | if (streetId) data.streetId = streetId; |
| | | } |
| | | if (shipperReceiverForm.value.customerId ){ |
| | | form.value.customerId = shipperReceiverForm.value.customerId; |
| | | } |
| | | listTmsConsignor({pageSize: page.pageSize, pageNum: page.currentPage, ...data,customerId: form.value.customerId}).then(res => { |
| | | return callback({ |
| | |
| | | // 设置上传的请求头部 |
| | | headers: { Authorization: "Bearer " + getToken() }, |
| | | // 上传的地址 |
| | | url: import.meta.env.VITE_APP_BASE_API + "tms/tmsDispatchOrder/importData" |
| | | url: import.meta.env.VITE_APP_BASE_API + "/tms/tmsDispatchOrder/importData" |
| | | }); |
| | | |
| | | |
| | |
| | | function submitFileForm() { |
| | | uploadRef.value!.submit(); |
| | | } |
| | | const shipperReceiverForm = ref<any>({}); |
| | | const shipperReceiverFormRef = ref(); |
| | | const shipperReceiverFormOption = ref({ |
| | | menuBtn: false, labelWidth: 140, |
| | | column: { |
| | | dispatchNos:{ |
| | | label: '调度单号',span:24, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "调度单号不能为空", trigger: "change" |
| | | } |
| | | ], |
| | | }, |
| | | shipperId: { |
| | | label: '装货点', dataType: 'string',disabled:false, |
| | | display: true, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "装货点不能为空", trigger: "change" |
| | | } |
| | | ], |
| | | |
| | | }, |
| | | shipperRegionLabel: { |
| | | label: '装货点行政区域', |
| | | display: true, disabled: true |
| | | |
| | | }, |
| | | shipperAddress: { |
| | | label: '装货点详细地址', |
| | | display: true, disabled: true |
| | | }, |
| | | shipperMobile: { |
| | | label: '装货点联系方式', |
| | | display: true, disabled: true |
| | | }, |
| | | receiverId: { |
| | | label: '卸货点', |
| | | display: true, dataType: 'string',disabled:false, |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "卸货点不能为空", trigger: "change" |
| | | } |
| | | ], |
| | | }, |
| | | receiverRegionLabel: { |
| | | label: '卸货点行政区域', |
| | | display: true, disabled: true |
| | | }, |
| | | receiverAddress: { |
| | | label: '卸货点详细地址', |
| | | display: true, disabled: true |
| | | }, |
| | | receiverMobile: { |
| | | label: '卸货点联系方式', |
| | | display: true, disabled: true |
| | | }, |
| | | } |
| | | }); |
| | | |
| | | const changeShipper2 = ({value}: any) => { |
| | | |
| | | if (value) { |
| | | let id = value; |
| | | if (Array.isArray(value)) { |
| | | id = value[0] |
| | | } |
| | | getTmsConsignor(id).then(res => { |
| | | let active = res.data || {}; |
| | | let shipperRegionCode = ''; |
| | | if (active.provinceId) { |
| | | shipperRegionCode = active.provinceId; |
| | | } |
| | | if (active.cityId) { |
| | | shipperRegionCode = shipperRegionCode + "," + active.cityId; |
| | | |
| | | } |
| | | if (active.districtId) { |
| | | shipperRegionCode = shipperRegionCode + "," + active.districtId; |
| | | |
| | | } |
| | | if (active.streetId) { |
| | | shipperRegionCode = shipperRegionCode + "," + active.streetId; |
| | | } |
| | | Object.assign(shipperReceiverForm.value, { |
| | | shipperId: active.id, |
| | | shipperName: active.consignorName, |
| | | shipperRegionLabel: active.regionLabel, |
| | | shipperAddress: active.addressDetail, |
| | | shipperMobile: active.contactPhone, |
| | | shipperRegionCode: shipperRegionCode |
| | | }); |
| | | }) |
| | | } |
| | | } |
| | | const changeReceiver2 = ({value}: any) => { |
| | | |
| | | if (value) { |
| | | let id = value; |
| | | if (Array.isArray(value)) { |
| | | id = value[0] |
| | | } |
| | | getTmsConsignor(id).then(res => { |
| | | let active = res.data || {}; |
| | | let receiverRegionCode = ''; |
| | | if (active.provinceId) { |
| | | receiverRegionCode = active.provinceId; |
| | | } |
| | | if (active.cityId) { |
| | | receiverRegionCode = receiverRegionCode + "," + active.cityId; |
| | | |
| | | } |
| | | if (active.districtId) { |
| | | receiverRegionCode = receiverRegionCode + "," + active.districtId; |
| | | |
| | | } |
| | | if (active.streetId) { |
| | | receiverRegionCode = receiverRegionCode + "," + active.streetId; |
| | | } |
| | | |
| | | Object.assign(shipperReceiverForm.value, { |
| | | receiverId: active.id, |
| | | receiverName: active.consignorName, |
| | | receiverRegionLabel: active.regionLabel, |
| | | receiverAddress: active.addressDetail, |
| | | receiverMobile: active.contactPhone, |
| | | receiverRegionCode: receiverRegionCode, |
| | | }); |
| | | }) |
| | | } |
| | | } |
| | | |
| | | const hasDifferentCustomer = (() => { |
| | | const customerSet = new Set( |
| | | selectionList.value.map((item:any) => item.customerId) |
| | | ); |
| | | return customerSet.size > 1; |
| | | })(); |
| | | const handleZXHDJ = ()=>{ |
| | | if(hasDifferentCustomer){ |
| | | ElMessage.error('单次操作只能操作一个客户的数据'); |
| | | return; |
| | | } |
| | | let filter = selectionList.value.filter((item:any)=> !item.shipperId); |
| | | let filter2 = selectionList.value.filter((item:any)=> !item.receiverId); |
| | | let zLen = filter.length || 0; |
| | | let xLen = filter2.length || 0; |
| | | if (zLen == 0 && xLen == 0){ |
| | | ElMessage.error('选择的数据已完成对装卸货点登记'); |
| | | return; |
| | | } |
| | | if(zLen >0 && xLen >0){ |
| | | if (zLen > xLen){ |
| | | ElMessage.error('选择的数据已填写卸货点数据,请单独编辑'); |
| | | return; |
| | | } |
| | | if (zLen < xLen){ |
| | | ElMessage.error('选择的数据已填写装货点数据,请单独编辑'); |
| | | return; |
| | | } |
| | | } |
| | | let item:any = selectionList.value[0]; |
| | | shipperReceiverForm.value.customerId = item?.customerId |
| | | shipperReceiverForm.value.customerCode = item?.customerCode |
| | | shipperReceiverForm.value.customerName = item?.customerName; |
| | | shipperReceiverForm.value.dispatchNos = selectionList.value.map((item:any)=> item.dispatchNo) || []; |
| | | |
| | | shipperReceiverFormOption.value.column.shipperId.disabled = zLen ==0; |
| | | shipperReceiverFormOption.value.column.shipperId.rules[0].required = zLen !=0; |
| | | shipperReceiverFormOption.value.column.receiverId.disabled = xLen ==0; |
| | | shipperReceiverFormOption.value.column.receiverId.rules[0].required = xLen !=0; |
| | | |
| | | |
| | | open7.value = true; |
| | | } |
| | | |
| | | const handleAddShipper2 = () => { |
| | | |
| | | form2.value = { |
| | | customerId: shipperReceiverForm.value.customerId, |
| | | customerSysCode: shipperReceiverForm.value.customerCode, |
| | | customerName: shipperReceiverForm.value.customerName, |
| | | }; |
| | | dialForm.value = $DialogForm(appContext)({ |
| | | title: '新增装货地', |
| | | data:form2.value, |
| | | width: '80%', |
| | | option: consignorAddOption.value, |
| | | menuPosition: 'right', |
| | | callback: (res:any,) => { |
| | | let data1 = res.data; |
| | | if (data1.mapLocationDetail){ |
| | | data1.mapLocation = data1.mapLocationDetail[0]+','+data1.mapLocationDetail[1]; |
| | | data1.addressDetail = data1.mapLocationDetail[2] |
| | | } |
| | | addTmsConsignor({...form2.value,...data1}).then(res2=>{ |
| | | let active = res2.data || {}; |
| | | if (active) { |
| | | let shipperRegionCode = ''; |
| | | if (active.provinceId){ |
| | | shipperRegionCode = active.provinceId; |
| | | } |
| | | if (active.cityId){ |
| | | shipperRegionCode =shipperRegionCode+ ","+active.cityId; |
| | | |
| | | } |
| | | if (active.districtId){ |
| | | shipperRegionCode =shipperRegionCode+ ","+active.districtId; |
| | | |
| | | } |
| | | if (active.streetId){ |
| | | shipperRegionCode =shipperRegionCode+ ","+active.streetId; |
| | | } |
| | | Object.assign(shipperReceiverForm.value, { |
| | | shipperId: active.id, |
| | | shipperName: active.consignorName, |
| | | shipperRegionLabel: active.regionLabel, |
| | | shipperAddress: active.addressDetail, |
| | | shipperMobile: active.contactPhone, |
| | | shipperRegionCode:shipperRegionCode |
| | | }); |
| | | } |
| | | dialForm.value.close(); |
| | | res.done(); |
| | | }).catch(err=>{ |
| | | res.done(); |
| | | }) |
| | | }, |
| | | }) |
| | | } |
| | | |
| | | const handleAddReceiver2 = () => { |
| | | if (!form.value.customerId){ |
| | | return ElMessage.error('请先选择运输路线'); |
| | | } |
| | | form2.value = { |
| | | customerId: shipperReceiverForm.value.customerId, |
| | | customerSysCode: shipperReceiverForm.value.customerCode, |
| | | customerName: shipperReceiverForm.value.customerName, |
| | | }; |
| | | dialForm.value = $DialogForm(appContext)({ |
| | | title: '新增卸货地', |
| | | data:form2.value, |
| | | width: '80%', |
| | | option: consignorAddOption.value, |
| | | menuPosition: 'right', |
| | | callback: (res:any,) => { |
| | | let data1 = res.data; |
| | | if (data1.mapLocationDetail){ |
| | | data1.mapLocation = data1.mapLocationDetail[0]+','+data1.mapLocationDetail[1]; |
| | | data1.addressDetail = data1.mapLocationDetail[2] |
| | | } |
| | | addTmsConsignor({...form2.value,...data1}).then(res2=>{ |
| | | let active = res2.data || {}; |
| | | if (active) { |
| | | let receiverRegionCode = ''; |
| | | if (active.provinceId){ |
| | | receiverRegionCode = active.provinceId; |
| | | } |
| | | if (active.cityId){ |
| | | receiverRegionCode =receiverRegionCode+ ","+active.cityId; |
| | | |
| | | } |
| | | if (active.districtId){ |
| | | receiverRegionCode =receiverRegionCode+ ","+active.districtId; |
| | | |
| | | } |
| | | if (active.streetId){ |
| | | receiverRegionCode =receiverRegionCode+ ","+active.streetId; |
| | | } |
| | | |
| | | Object.assign(shipperReceiverForm.value, { |
| | | receiverId: active.id, |
| | | receiverName: active.consignorName, |
| | | receiverRegionLabel: active.regionLabel, |
| | | receiverAddress: active.addressDetail, |
| | | receiverMobile: active.contactPhone, |
| | | receiverRegionCode:receiverRegionCode, |
| | | }); |
| | | } |
| | | dialForm.value.close(); |
| | | res.done(); |
| | | }).catch(err=>{ |
| | | res.done(); |
| | | }) |
| | | }, |
| | | }) |
| | | } |
| | | |
| | | const handleCloseDispatchNo = (tag:string)=>{ |
| | | let indexOf = shipperReceiverForm.value.dispatchNos.indexOf(tag); |
| | | shipperReceiverForm.value.dispatchNos.splice(indexOf,1); |
| | | } |
| | | |
| | | const submitZxForm = ()=>{ |
| | | shipperReceiverFormRef.value.validate((valid: boolean,done:any) => { |
| | | if(valid){ |
| | | ypdddjSumbit(shipperReceiverForm.value).then(res=>{ |
| | | ElMessage.success('登记成功'); |
| | | open7.value = false; |
| | | onLoad(page.value); |
| | | |
| | | done(); |
| | | }).catch(err=>{ |
| | | done(); |
| | | }) |
| | | } |
| | | }) |
| | | } |
| | | |
| | | </script> |
| | | <style lang="scss" scoped> |
| | |
| | | word-break: break-all; |
| | | } |
| | | } |
| | | .dispatchNos{ |
| | | //border: 1px solid #ebeef5; |
| | | border-radius: 4px; |
| | | min-height: 73px; |
| | | padding: 1px 11px; |
| | | box-shadow: 0 0 0 1px var(--el-disabled-border-color) inset; |
| | | } |
| | | </style> |