diff --git a/src/api/distribution/VehicleStowage.js b/src/api/distribution/VehicleStowage.js index 82b2e80f..3327c0ed 100644 --- a/src/api/distribution/VehicleStowage.js +++ b/src/api/distribution/VehicleStowage.js @@ -170,3 +170,14 @@ export const postExportLoadCarsPageList = data => { responseType: 'blob', }); }; + +/** + * 查询订单配载锁定详情 + */ +export const postFindOrderPlanCarsNum = data => { + return request({ + url: '/api/logpm-trunkline/carsLoad/findOrderPlanCarsNum ', + method: 'post', + data, + }); +}; diff --git a/src/api/distribution/truckLoadingDetails.js b/src/api/distribution/truckLoadingDetails.js index 83d778db..3719421a 100644 --- a/src/api/distribution/truckLoadingDetails.js +++ b/src/api/distribution/truckLoadingDetails.js @@ -121,3 +121,14 @@ export const postUnloadZero = data => { data, }); }; + +/** + * 零担卸车确认 + */ +export const postZeroUnloadEnter = data => { + return request({ + url: '/api/logpm-trunkline/api/carsLoad/zeroUnloadEnter ', + method: 'post', + data, + }); +}; diff --git a/src/api/finance/WaybillAudit.js b/src/api/finance/WaybillAudit.js index f867df8a..4fd9e424 100644 --- a/src/api/finance/WaybillAudit.js +++ b/src/api/finance/WaybillAudit.js @@ -23,6 +23,19 @@ export const postFinanceWaybillListExport = data => { url: '/api/logpm-warehouse/warehouseWaybill/financeWaybillListExport', method: 'post', data, - responseType: 'blob' + responseType: 'blob', }); -}; \ No newline at end of file +}; + +/** + * 运单批量审核 + * @param {*} data + * @returns + */ +export const postCheckWaybillList = data => { + return request({ + url: '/api/logpm-trunkline/openOrder/checkWaybillList', + method: 'post', + data, + }); +}; diff --git a/src/option/aftersales/vueTvemp.js b/src/option/aftersales/vueTvemp.js index 1936aed7..664d94f9 100644 --- a/src/option/aftersales/vueTvemp.js +++ b/src/option/aftersales/vueTvemp.js @@ -155,7 +155,7 @@ export const columnList = [ { prop: 'processedBy', label: '工单处理方', - type: 1, + type: 2, values: '', width: '150', checkarr: [], diff --git a/src/option/distribution/VehicleStowage.js b/src/option/distribution/VehicleStowage.js index 8f3651ec..9271bfab 100644 --- a/src/option/distribution/VehicleStowage.js +++ b/src/option/distribution/VehicleStowage.js @@ -697,3 +697,57 @@ export const packageColumnList = [ sortable: false, }, ]; + +/** 对比报表 -- 仓库节点 */ +export const orderDetailColumnList = [ + { + prop: '', + label: '序号', + type: 12, + values: '', + width: 55, + fixed: true, + }, + { + prop: 'carsNo', + label: '车次号', + width: '130', + type: 6, + values: '', + checkarr: [], + fixed: true, + sortable: false, + head: false, + }, + { + prop: 'orderCode', + label: '订单号', + width: '130', + type: 1, + values: '', + checkarr: [], + fixed: true, + sortable: false, + head: false, + }, + { + prop: 'waybillNo', + label: '运单号', + width: '130', + type: 1, + values: '', + checkarr: [], + fixed: false, + sortable: false, + }, + { + prop: 'startNum', + label: '锁定件数', + width: '130', + type: 1, + values: '', + checkarr: [], + fixed: false, + sortable: false, + }, +]; diff --git a/src/option/finance/CustomerSettlement.js b/src/option/finance/CustomerSettlement.js index c7c634df..c4895ef2 100644 --- a/src/option/finance/CustomerSettlement.js +++ b/src/option/finance/CustomerSettlement.js @@ -138,6 +138,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'hasBalanceFee', @@ -149,6 +150,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'noBalanceFee', @@ -160,6 +162,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'totalCount', @@ -171,6 +174,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'totalWeight', @@ -182,6 +186,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'totalVolume', @@ -193,6 +198,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'openFee', @@ -204,6 +210,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'pickupFee', @@ -215,6 +222,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'freightFee', @@ -226,6 +234,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'warehouseServiceFee', @@ -237,6 +246,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'warehouseFee', @@ -248,6 +258,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'warehouseManageFee', @@ -259,6 +270,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'warehouseSortingFee', @@ -270,6 +282,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'warehouseOperatingFee', @@ -281,6 +294,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'deliveryServiceFee', @@ -292,6 +306,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'deliveryFee', @@ -303,6 +318,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'deliveryLoadingFee', @@ -314,6 +330,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'deliverySortingFee', @@ -325,6 +342,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'deliveryUpfloorFee', @@ -336,6 +354,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'deliveryMoveFee', @@ -347,6 +366,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'deliveryCrossingFee', @@ -358,6 +378,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'installFee', @@ -369,6 +390,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'otherFee', @@ -380,6 +402,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'abnormalBalanceStatusName', @@ -405,6 +428,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'abnormalRemark', diff --git a/src/option/finance/MerchantDepositSlip.js b/src/option/finance/MerchantDepositSlip.js index 19cecabe..90697a9f 100644 --- a/src/option/finance/MerchantDepositSlip.js +++ b/src/option/finance/MerchantDepositSlip.js @@ -68,6 +68,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'totalWeight', @@ -79,6 +80,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'totalVolume', @@ -90,6 +92,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'realTotalFee', @@ -101,6 +104,8 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, + isshowSummary: true, }, { prop: 'systemTotalFee', @@ -123,6 +128,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'freightFee', @@ -134,6 +140,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'warehouseServiceFee', @@ -145,6 +152,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'warehouseFee', @@ -156,6 +164,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'warehouseManageFee', @@ -167,6 +176,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'warehouseSortingFee', @@ -178,6 +188,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'warehouseOperatingFee', @@ -189,6 +200,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'deliveryServiceFee', @@ -200,6 +212,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'deliveryFee', @@ -211,6 +224,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'deliveryLoadingFee', @@ -222,6 +236,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'deliverySortingFee', @@ -233,6 +248,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'deliveryUpfloorFee', @@ -244,6 +260,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'deliveryMoveFee', @@ -255,6 +272,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'deliveryCrossingFee', @@ -266,6 +284,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'installFee', @@ -277,6 +296,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'otherFee', @@ -288,6 +308,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'destinationWarehouseName', @@ -335,6 +356,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'realTotalFee', @@ -346,6 +368,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'createUserName', @@ -393,6 +416,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'changesItems', diff --git a/src/option/finance/ReconciliationDepositSlip.js b/src/option/finance/ReconciliationDepositSlip.js index 6bdcfdc2..3ae52fbb 100644 --- a/src/option/finance/ReconciliationDepositSlip.js +++ b/src/option/finance/ReconciliationDepositSlip.js @@ -184,6 +184,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'totalWeight', @@ -195,6 +196,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'totalVolume', @@ -206,6 +208,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'sysTotalFee', @@ -228,6 +231,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'systemFreightPrice', @@ -239,6 +243,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'freightPrice', @@ -250,6 +255,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'systemPickupPrice', @@ -261,6 +267,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'pickupPrice', @@ -272,6 +279,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'warehouseServiceFee', @@ -283,6 +291,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'warehouseFee', @@ -294,6 +303,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'warehouseManageFee', @@ -305,6 +315,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'warehouseSortingFee', @@ -316,6 +327,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'warehouseOperatingFee', @@ -327,6 +339,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'deliveryServiceFee', @@ -338,6 +351,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'systemDeliveryFee', @@ -349,6 +363,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'deliveryFee', @@ -360,6 +375,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'deliveryLoadingFee', @@ -371,6 +387,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'deliverySortingFee', @@ -382,6 +399,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'deliveryUpfloorFee', @@ -393,6 +411,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'deliveryMoveFee', @@ -404,6 +423,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'deliveryOtherFee', @@ -415,6 +435,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'deliveryCrossingFee', @@ -426,6 +447,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'installFee', @@ -437,6 +459,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'otherFee', @@ -448,6 +471,7 @@ export const columnList = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'shipperPerson', @@ -818,6 +842,7 @@ export const columnListB = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'totalWeight', @@ -829,6 +854,7 @@ export const columnListB = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'totalVolume', @@ -840,6 +866,7 @@ export const columnListB = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'sysTotalFee', @@ -851,6 +878,7 @@ export const columnListB = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'totalFee', @@ -862,6 +890,7 @@ export const columnListB = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'systemFreightPrice', @@ -873,6 +902,7 @@ export const columnListB = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'freightPrice', @@ -884,6 +914,7 @@ export const columnListB = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'systemPickupPrice', @@ -895,6 +926,7 @@ export const columnListB = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'pickupPrice', @@ -906,6 +938,7 @@ export const columnListB = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'warehouseServiceFee', @@ -917,6 +950,7 @@ export const columnListB = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'warehouseFee', @@ -928,6 +962,7 @@ export const columnListB = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'warehouseManageFee', @@ -939,6 +974,7 @@ export const columnListB = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'warehouseSortingFee', @@ -950,6 +986,7 @@ export const columnListB = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'warehouseOperatingFee', @@ -961,6 +998,7 @@ export const columnListB = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'deliveryServiceFee', @@ -972,6 +1010,7 @@ export const columnListB = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'systemDeliveryFee', @@ -983,6 +1022,7 @@ export const columnListB = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'deliveryFee', @@ -994,6 +1034,7 @@ export const columnListB = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'deliveryLoadingFee', @@ -1005,6 +1046,7 @@ export const columnListB = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'deliverySortingFee', @@ -1016,6 +1058,7 @@ export const columnListB = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'deliveryUpfloorFee', @@ -1027,6 +1070,7 @@ export const columnListB = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'deliveryMoveFee', @@ -1038,6 +1082,7 @@ export const columnListB = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'deliveryOtherFee', @@ -1049,6 +1094,7 @@ export const columnListB = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'deliveryCrossingFee', @@ -1060,6 +1106,7 @@ export const columnListB = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'installFee', @@ -1071,6 +1118,7 @@ export const columnListB = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'otherFee', @@ -1082,6 +1130,7 @@ export const columnListB = [ fixed: false, sortable: true, head: false, + isshowSummary: true, }, { prop: 'shipperPerson', diff --git a/src/views/aftersales/aftersalesWorkOrderTemp.vue b/src/views/aftersales/aftersalesWorkOrderTemp.vue index e817f482..9d78aaae 100644 --- a/src/views/aftersales/aftersalesWorkOrderTemp.vue +++ b/src/views/aftersales/aftersalesWorkOrderTemp.vue @@ -5,13 +5,30 @@
- - - - 搜 索 - 清 空 + + +
+ +
+
+ +
+ +
- + + + + 搜 索 + 清 空
@@ -73,7 +95,11 @@ 结果批量审核 - 工单指派 + + + + + + + + + + + + + +
+ + + + + +
+ +
+
+ {{ Searchboxpop.SearchboxpopUpwindowtitle }} +
+
+ + +
+
@@ -401,6 +511,23 @@ const workOrderStatus = ref(30); //工单状态 const PageLoading = ref(false); //页面loading const warehouseData = ref([]); //仓库信息 const UserInfo = ref({}); //登陆人信息 +const assignFromForm = ref(null); //指派客服表单实例 +const dialogSearch = ref(false); //弹窗搜索 +// 多行搜索 +const Searchboxpop = ref({ + SearchboxpopUpwindowtitle: '', //标题 + dialogSearch: false, ///弹窗是否展开 + fullscreen: false, //是否全屏 + MinimizeState: false, //是否最小化 +}); +const assignFrom = ref({ + dialogassign: false, + AssignLoad: false, + customerService: [], //客服列表 + rules: { + businessDepartment: [{ required: true, message: '请选择要指派的客服', trigger: 'blur' }], + }, +}); //工单指派总部客服 const batchReturnForm = ref(null); const BatchReturn = ref({ //批量打回弹窗 @@ -608,7 +735,7 @@ const ButtonPermissions = computed(() => { return { add: false, //新增按钮 batchReject: UserPermissions.value == Useridentity.Headquarters_customer_service, //批量打回 - assignment: false, //工单指派 + assignment: UserPermissions.value != Useridentity.Warehouse_customer_service, //工单指派 applyArbitration: false, //客服介入 DingTalkNumber: false, //钉钉号填 batchFinish: false, //批量完结 @@ -857,9 +984,7 @@ watch( TabPermissions.value = $useStore.state.Customer.Customerobj; tabValue.value = $useStore.state.Customer.Customerobj; //菜单编号 if ([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10].includes(TabPermissions.value)) { - let _Obj = MatchCurrentMenu(); //匹配出当前菜单 - _Obj.request = true; //更新请求状态 - PublicDataRequest(TabPermissions.value); //请求数据 + updateMenuAndData(); //获取最新数据 $useStore.commit('Customer_Menu', 0); //设置回初始值 } $useStore.commit('EDIT_REFRESHITEM', { title: 'aftersalesWorkOrderTemp', status: false }); //重新缓存页面 @@ -920,15 +1045,12 @@ const selectionChange = list => { }; // 网页顶部搜索按钮 const searchChange = () => { - PublicDataRequest(); + updateMenuAndData(); //获取最新数据 }; // 刷新按钮 const searchChangeS = () => { - details.search = false; //关闭搜索 - let _Obj = MatchCurrentMenu(); - _Obj.request = true; - PublicDataRequest(TabPermissions.value); + updateMenuAndData(); //获取最新数据 }; // 重置表格搜索 const ResetTableSearch = async () => { @@ -941,7 +1063,32 @@ const ResetTableSearch = async () => { PublicDataRequest(TabPermissions.value, true); }; //清空 -const searchReset = () => {}; +const searchReset = () => { + TopQuery.value={} + TabList.value.forEach(item => { + item.query = {}; + }); + const TabcolumnList = [ + columnList, + columnList1, + columnList2, + columnList3, + columnList4, + columnList5, + columnList6, + columnList7, + columnList8, + columnList9, + columnList10, + ]; + + TabcolumnList.forEach(item => { + handleClearTableQuery(item); + }); + details.search = false; // 关闭搜索 + updateMenuAndData(); //获取最新数据 + autoscaling(); +}; // 顶部搜索 const searchHide = () => { console.log(details); @@ -1082,6 +1229,25 @@ const GetWarehouse = () => { }); }); }; +/** + * 获取客服人员 + * + * @returns {Promise} + */ +const GetCustomerService = async () => { + try { + let _res = await $_getCustomerServicePersonnel(); + const { code, data } = _res.data; + if (code != 200) { + return; + } + assignFrom.value.customerService = data; + } catch (e) { + console.log(e); + } finally { + } +}; + /** *页面初始化函数,包含字典,等必要请求 */ @@ -1094,10 +1260,11 @@ const PageOnlaod = async () => { Roleverification(), // 获取角色信息 SelectionInitialization(), // 下拉框初始化赋值 GetWarehouse(), //获取仓库 + GetCustomerService(), //获取总部客服列表 ]); // 获取页面数据 - PublicDataRequest(TabPermissions.value); + await PublicDataRequest(TabPermissions.value); } catch (error) { console.log(error); } finally { @@ -1358,7 +1525,17 @@ const getQuery = () => { let _Obj = MatchCurrentMenu(); return _Obj.query; }; - +/** + * @description: 更新当前菜单的请求状态并请求数据 + * @return {void} 无返回值 + */ +const updateMenuAndData = () => { + const currentMenu = MatchCurrentMenu(); // 匹配当前菜单 + if (currentMenu) { + currentMenu.request = true; // 更新请求状态 + } + PublicDataRequest(TabPermissions.value); // 请求数据 +}; /** * @description 通用函数用于处理数据请求(包含待回复、理赔金额未出、申诉、超时未处理) * @param {Function} fetchFunction - 用于执行具体数据请求的函数 @@ -1566,9 +1743,7 @@ const Appealbutton = async state => { } appeal.value.dialogappeal = false; - const currentMenu = MatchCurrentMenu(); - currentMenu.request = true; - PublicDataRequest(TabPermissions.value); + updateMenuAndData(); //更新菜单数据 } finally { appeal.value.loadingappeal = false; } @@ -1593,9 +1768,7 @@ const Deleteappealrecords = async row => { message: '删除成功', type: 'success', }); - let _Obj = MatchCurrentMenu(); - _Obj.request = true; - PublicDataRequest(TabPermissions.value); //获取新数据 + updateMenuAndData(); //获取新数据 } } catch { } finally { @@ -1626,9 +1799,7 @@ const CancelWorkOrderAppeal = row => { .then(res => { console.log(res, '取消申诉返回值'); if (res.data.code == 200) { - let _Obj = MatchCurrentMenu(); - _Obj.request = true; - PublicDataRequest(TabPermissions.value); //获取新数据 + updateMenuAndData(); //获取新数据 ElMessage({ message: '取消申诉成功', type: 'success', @@ -1930,9 +2101,7 @@ const ResultConfirmed = async row => { if (code == 200) { console.log(_res, '理赔金额未出处理结果确定'); ElMessage.success(msg); - let _Obj = MatchCurrentMenu(); - _Obj.request = true; - PublicDataRequest(TabPermissions.value); + updateMenuAndData(); //获取最新数据 } }) .catch(() => {}); @@ -1984,9 +2153,7 @@ const ConfirmReturn = async () => { if (code === 200) { ElMessage.success(msg); BatchReturn.value.dialogReturn = false; //关闭弹窗 - const _Obj = MatchCurrentMenu(); - _Obj.request = true; - PublicDataRequest(TabPermissions.value); + updateMenuAndData(); //获取最新数据 } } catch (e) { console.error(e); @@ -2007,6 +2174,159 @@ const ConfirmReturn = async () => { } }); }; +/** + * @description 工单指派 + * @return {void} 无返回值 + */ +const WorkOrderAssignment = () => { + // 检查是否选中任何工单 + if (!details.selectionList.length) { + // 提示用户选择数据 + ElMessage({ + message: '请勾选要处理的数据', + type: 'warning', + }); + return; + } + // 初始化指派表单并打开指派弹窗 + assignFrom.value = { ...assignFrom.value, businessDepartment: '', dialogassign: true }; +}; + +/** + * 工单指派确定按钮 + * 1.根据选择的客服ID,名称,和选择的工单ID,将其组装成一个data对象 + * 2.然后调用$_assignCustomerService(data)接口, + * 3.成功后关闭加载,关闭弹窗,重新拉取数据 + */ +const Assignbutton = async () => { + const WorkOrderAssignmentFunction = async () => { + const assignForm = assignFrom.value; + assignForm.AssignLoad = true; // 开启加载 + + try { + // 筛选选择的工单 + const foundObjs = assignForm.customerService.find( + obj => obj.id == assignForm.businessDepartment + ); + + if (!foundObjs) { + console.error('未找到对应的工单信息'); + return; + } + + // 构建请求数据 + const data = { + customerServiceId: foundObjs.id, // 归属客服ID + customerServiceName: foundObjs.realName, // 归属客服名称 + assignList: details.selectionList.map(item => item.id), // 异常工单ID/工单ID + }; + + // 发起请求 + const _res = await $_assignCustomerService(data); + const { code, msg } = _res.data; + + if (code !== 200) { + console.error('分配客服失败:', msg); + return; + } + + // 关闭弹窗 + assignForm.dialogassign = false; + + // 更新当前菜单和请求数据 + updateMenuAndData(); + } catch (error) { + console.error('分配客服时发生错误:', error); + } finally { + assignForm.AssignLoad = false; // 关闭加载 + } + }; + + assignFromForm.value.validate(async valid => { + if (valid) { + ElMessageBox.confirm('是否确认指派该客服?', '提示', { + confirmButtonText: '确认', + cancelButtonText: '取消', + type: 'warning', + }).then(async () => { + await WorkOrderAssignmentFunction(); + }); + } else { + ElMessage.warning('请检查表单是否填写否完整'); + } + }); +}; +/** + * 弹窗多行搜索 + * 1.获取当前选中的客户信息 + * 2.然后根据客户信息,去后台查询对应的客服信息 + * 3.将查询到的客服信息显示在弹窗中 + * 4.然后用户可以选择对应的客服 + * 5.最终将选择的客服信息,分配给对应的工单 + */ +const MultilineSearch = (title, input) => { + if (input) { + const formattedInput = input.split(',').join('\n'); + TopQuery.value.inputAll = formattedInput; // 赋值给 inputAll + } else { + TopQuery.value.inputAll = ''; + } + + Searchboxpop.value.SearchboxpopUpwindowtitle = title; // 设置标题 + + Searchboxpop.value.dialogSearch = true; // 打开对话框 +}; +/** + * @description dialogSearchSubmit + * 1.获取用户输入的所有数据 + * 2.将其拆分成每一行 + * 3.然后将每一行的前后空格去除 + * 4.然后将所有的行连接起来 + * 5.将连接起来的数据重新赋值给workOrderNumber + * @param {void} 无参数 + * @return {void} 无返回值 + */ +const dialogSearchSubmit = () => { + // 1.获取用户输入的所有数据 + const inputAll = TopQuery.value.inputAll; + + // 2.将其拆分成每一行 + const lines = inputAll + .split('\n') // 按换行分割 + .map(line => line.trim()) // 移除每一行前后的空格 + .filter(line => line !== ''); // 过滤掉空行 + + // 3.然后将每一行的前后空格去除 + + // 4.然后将所有的行连接起来 + const joinedLines = lines.join(','); // 使用逗号连接,无空格 + + // 5.将连接起来的数据重新赋值给workOrderNumber + TopQuery.value.workOrderNumber = joinedLines; + Searchboxpop.value.dialogSearch = false; //关闭弹窗 +}; +// 关闭 +const close = () => { + Searchboxpop.value.dialogSearch = false; //关闭弹窗 + Searchboxpop.value.MinimizeState = false; //销毁最小化 +}; +// 最大化 +const maximize = () => { + Searchboxpop.value.fullscreen = !Searchboxpop.value.fullscreen; //最大化 +}; + +// 最小化 +const minimize = () => { + Searchboxpop.value.dialogSearch = false; //关闭弹窗 + Searchboxpop.value.MinimizeState = true; //最小化 +}; +const ExpandWindow = () => { + Searchboxpop.value.dialogSearch = true; //回复窗口弹窗 + Searchboxpop.value.MinimizeState = false; //销毁最小化 +}; +const DestroyWindow = () => { + Searchboxpop.value.MinimizeState = false; //销毁最小化 +}; diff --git a/src/views/distribution/artery/AddVehicleStowage.vue b/src/views/distribution/artery/AddVehicleStowage.vue index 01e4602b..180a1640 100644 --- a/src/views/distribution/artery/AddVehicleStowage.vue +++ b/src/views/distribution/artery/AddVehicleStowage.vue @@ -657,7 +657,9 @@
- 关闭 + + 关闭 + + + + 查询订单配载锁定详情 + + 导 出
@@ -419,6 +424,44 @@ > + + + +
+ + + 搜 索 +
+ + + + +
@@ -621,7 +664,7 @@ import { ChecksWhetherTheWarehouseIsSelected, } from '@/utils/util'; import { columnList } from '@/option/distribution/VehicleArrivalManagement'; -import { packageColumnList } from '@/option/distribution/VehicleStowage'; +import { packageColumnList, orderDetailColumnList } from '@/option/distribution/VehicleStowage'; import { postloadArriveCarsPageList, postloadArriveCarByLoadId, @@ -641,6 +684,7 @@ import { postManualLoadingloadId, postFindLoadingListData, postFindWarehouseUnloadReport, + postFindOrderPlanCarsNum, } from '@/api/distribution/VehicleStowage'; import { getListName } from '@/api/basicdata/basicdataVehicle'; import { useRouter, useRoute } from 'vue-router'; @@ -660,6 +704,7 @@ const Mydata = ref({}); Mydata.value = JSON.parse(localStorage.getItem('my_data')); //获取本地仓库信息 const truckLoadingDetailNodeRef = ref(); +const searchOrderTableNode = ref(); const details = reactive({ /** 是否开启搜索 */ @@ -708,6 +753,8 @@ const details = reactive({ truckLoadingDetailPopUpLoading: false, /** 全屏Loading */ pageLoading: false, + /** 订单配载锁定详情 */ + searchOrder: false, }, /** 列表复选框选中的数据 */ selectionList: [], @@ -731,6 +778,8 @@ const details = reactive({ listOfLoadedWagons: false, /** 卸车清单 */ unloadReport: false, + /** 订单配载锁定详情 */ + searchOrderVisited: false, }, /** 全屏 */ fullscreenObj: { @@ -782,6 +831,12 @@ const details = reactive({ unloadReportInfo: {}, /** 仓库信息 */ warehouseOption: [] as [{ dictKey: string; dictValue: string }] | [], + /** 订单配载锁定详情 */ + searchOrderOption: { + data: [], + columnList: deepClone(orderDetailColumnList), + searchText: '', + }, }); const tableNode = ref(); @@ -1723,6 +1778,33 @@ const handleExport = () => { } }); }; + +/** 查询订单锁定详情 */ +const handleSeachOrder = async () => { + details.popUpShow.searchOrderVisited = true; + details.searchOrderOption.searchText = ''; + details.searchOrderOption.data = []; + await nextTick(); + setNodeHeight(searchOrderTableNode.value.$el, ''); +}; + +/** 搜索订单锁定详情 */ +const searchOrder = async () => { + const orderCode = details.searchOrderOption.searchText; + if (!orderCode) return ElMessage.warning('请输入需要查询的订单号'); + try { + details.loadingObj.searchOrder = true; + + const res = await postFindOrderPlanCarsNum({ orderCode }); + const { code, data } = res.data; + if (code !== 200 || getObjType(data) !== 'array') return; + details.searchOrderOption.data = data; + } catch (error) { + console.log('error :>> ', error); + } finally { + details.loadingObj.searchOrder = false; + } +}; diff --git a/src/views/distribution/artery/VehicleStowage.vue b/src/views/distribution/artery/VehicleStowage.vue index f26959df..e9624fd0 100644 --- a/src/views/distribution/artery/VehicleStowage.vue +++ b/src/views/distribution/artery/VehicleStowage.vue @@ -156,6 +156,11 @@ 对比报表
--> + + + 查询订单配载锁定详情 + + 导 出 @@ -392,6 +397,44 @@ + + + +
+ + + 搜 索 +
+ + + + +
@@ -559,7 +602,11 @@ import { getObjType, ChecksWhetherTheWarehouseIsSelected, } from '@/utils/util'; -import { columnList, packageColumnList } from '@/option/distribution/VehicleStowage'; +import { + columnList, + packageColumnList, + orderDetailColumnList, +} from '@/option/distribution/VehicleStowage'; import { postloadCarsPageList, postStartCarByLoadId, @@ -572,6 +619,7 @@ import { postManualLoadingloadId, postFindLoadingListData, postExportLoadCarsPageList, + postFindOrderPlanCarsNum, } from '@/api/distribution/VehicleStowage'; import { getListName } from '@/api/basicdata/basicdataVehicle'; import { useStore } from 'vuex'; @@ -579,8 +627,6 @@ import { useRouter, useRoute } from 'vue-router'; import { ElMessage, ElMessageBox } from 'element-plus'; import print from '@/utils/print'; import { dateNow } from '@/utils/date'; -import { exportExcelByDom } from '@/utils/export'; -// import * as XLSX from 'xlsx'; // 获取路由实例 const $router = useRouter(); @@ -597,6 +643,7 @@ Mydata.value = JSON.parse(localStorage.getItem('my_data')); //获取本地仓库 console.log('Mydata :>> ', Mydata); const tableNodeRef = ref(); const truckLoadingDetailNodeRef = ref(); +const searchOrderTableNode = ref(); const details = reactive({ /** 是否开启搜索 */ @@ -645,6 +692,8 @@ const details = reactive({ truckLoadingDetailPopUpLoading: false, /** 页面laoding */ pageLoading: false, + /** 订单配载锁定详情 */ + searchOrder: false, }, /** 列表复选框选中的数据 */ selectionList: [], @@ -666,6 +715,8 @@ const details = reactive({ chooseDestinationVisited: false, /** 装载清单 */ listOfLoadedWagons: false, + /** 订单配载锁定详情 */ + searchOrderVisited: false, }, /** 列表Dom节点 */ listNode: '', @@ -696,6 +747,12 @@ const details = reactive({ listOfLoadedWagonsData: {}, /** 仓库信息 */ warehouseOption: [] as [{ dictKey: string; dictValue: string }] | [], + /** 订单配载锁定详情 */ + searchOrderOption: { + data: [], + columnList: deepClone(orderDetailColumnList), + searchText: '', + }, }); const loadStatus = reactive([ @@ -1317,7 +1374,7 @@ const handleCancelStartCar = () => { type: 'warning', }); } - ElMessageBox.confirm('确认取消发车吗?', 'Warning', { + ElMessageBox.confirm('确认取消发车吗?', '提示', { confirmButtonText: '确认', cancelButtonText: '取消', type: 'warning', @@ -1364,7 +1421,7 @@ const handleCancelCarsLoad = () => { type: 'warning', }); } - ElMessageBox.confirm('确认取消配载吗?', 'Warning', { + ElMessageBox.confirm('确认取消配载吗?', '提示', { confirmButtonText: '确认', cancelButtonText: '取消', type: 'warning', @@ -1530,6 +1587,33 @@ const handleExport = () => { } }); }; + +/** 查询订单锁定详情 */ +const handleSeachOrder = async () => { + details.popUpShow.searchOrderVisited = true; + details.searchOrderOption.searchText = ''; + details.searchOrderOption.data = []; + await nextTick(); + setNodeHeight(searchOrderTableNode.value.$el, ''); +}; + +/** 搜索订单锁定详情 */ +const searchOrder = async () => { + const orderCode = details.searchOrderOption.searchText; + if (!orderCode) return ElMessage.warning('请输入需要查询的订单号'); + try { + details.loadingObj.searchOrder = true; + + const res = await postFindOrderPlanCarsNum({ orderCode }); + const { code, data } = res.data; + if (code !== 200 || getObjType(data) !== 'array') return; + details.searchOrderOption.data = data; + } catch (error) { + console.log('error :>> ', error); + } finally { + details.loadingObj.searchOrder = false; + } +}; diff --git a/src/views/distribution/artery/truckLoadingDetails.vue b/src/views/distribution/artery/truckLoadingDetails.vue index f7bac1d7..dfe02d47 100644 --- a/src/views/distribution/artery/truckLoadingDetails.vue +++ b/src/views/distribution/artery/truckLoadingDetails.vue @@ -83,6 +83,15 @@ >删除 + + 零担批量卸车确认 + + 二维码 @@ -371,6 +380,7 @@ import { postShowOrderCodeByCode, postFindZeroDetailByCarsLoadScanId, postUnloadZero, + postZeroUnloadEnter, } from '@/api/distribution/truckLoadingDetails'; import { postFindNextNodeList, @@ -662,7 +672,6 @@ const tableNodeRef = ref(); /** 初始化表格表头 */ const initTableSelect = () => { for (const iterator of details.detailsColumnList) { - console.log('iterator :>> ', iterator); iterator.checkarr = details[iterator.prop.replace('Name', '') + 'Option'] || []; } }; @@ -1600,6 +1609,43 @@ const handleEditSubmit = async () => { } }; +/** 零担批量卸车确认 */ +const handleBatchLoadConfirm = () => { + if (details.selectionList.length === 0) return ElMessage.warning('请选择需要确认的零担数据'); + const loadScanIds = []; + + for (let i = 0; i < details.selectionList.length; i++) { + const val = details.selectionList[i]; + + if (Number(val.type) !== 2) return ElMessage.warning('请勿选择包件数据'); + loadScanIds.push(val.id); + } + + ElMessageBox.confirm('是否批量确认零担数据', '提示', { + confirmButtonText: '确认', + cancelButtonText: '取消', + type: 'warning', + center: true, + }).then(async () => { + try { + details.loadingObj.pageLoading = true; + + const submitData = { loadScanIds }; + const response = await postZeroUnloadEnter(submitData); + + const { code, msg } = response.data; + if (code !== 200) return; + + if (msg) ElMessage.success({ message: msg }); + onLoad(); + } catch (error) { + console.log('error :>> ', error); + } finally { + details.loadingObj.pageLoading = false; + } + }); +}; + watch( $route, (newVal, oldVal) => { diff --git a/src/views/distribution/inventory/CreateOrder.vue b/src/views/distribution/inventory/CreateOrder.vue index a2963479..86c3362b 100644 --- a/src/views/distribution/inventory/CreateOrder.vue +++ b/src/views/distribution/inventory/CreateOrder.vue @@ -737,7 +737,7 @@ :step="0.1" v-model="query.totalFreight" :value-on-clear="0" - disabled + :disabled="!query.trunklineCompleteOrNot" > diff --git a/src/views/finance/CustomerSettlement.vue b/src/views/finance/CustomerSettlement.vue index 61a40868..51fb0b1d 100644 --- a/src/views/finance/CustomerSettlement.vue +++ b/src/views/finance/CustomerSettlement.vue @@ -155,7 +155,7 @@