From 928ce303640ec457f45a5760aaa60053be925b12 Mon Sep 17 00:00:00 2001 From: xzg <4727863@qq.com> Date: Tue, 19 Nov 2024 17:38:23 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=B7=B2=E7=9F=A5bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/aftersales/aftersalesWorkOrder.js | 2 +- .../MultiConditionSearch.vue | 11 +- src/views/aftersales/aftersalesWorkOrder.vue | 224 +++++++++++++++++- .../aftersales/aftersalesWorkOrderAdd.vue | 2 +- .../aftersales/aftersalesWorkOrderend.vue | 35 ++- .../warehouse/tray/basicdataTrayedt.vue | 17 +- .../delivery/distributionStockArticle.vue | 20 +- src/views/waybill/WaybillOrderList.vue | 15 +- 8 files changed, 271 insertions(+), 55 deletions(-) diff --git a/src/api/aftersales/aftersalesWorkOrder.js b/src/api/aftersales/aftersalesWorkOrder.js index e8fc781e..2812bc3e 100644 --- a/src/api/aftersales/aftersalesWorkOrder.js +++ b/src/api/aftersales/aftersalesWorkOrder.js @@ -389,7 +389,7 @@ export const $_updateWorkOrderStatus = (data) => { data }) } -// 处理结果完结结果确定 +// 完结审核 export const $_updateManagerConfirmed = (data) => { return request({ url: '/api/logpm-aftersales/aftersalesWorkOrder/updateManagerConfirmed', diff --git a/src/components/MultiConditionSearch/MultiConditionSearch.vue b/src/components/MultiConditionSearch/MultiConditionSearch.vue index 8b60419d..16bbdf83 100644 --- a/src/components/MultiConditionSearch/MultiConditionSearch.vue +++ b/src/components/MultiConditionSearch/MultiConditionSearch.vue @@ -100,6 +100,8 @@ const maximize = () => { const close = () => { emit('update:modelValue', false); + minimizeState.value = false; + emit('update:inputValue', localInputValue.value); }; const expandWindow = () => { @@ -114,7 +116,14 @@ const destroyWindow = () => { }; const dialogSearchSubmit = () => { - emit('dialogSearchSubmit', localInputValue.value); + const lines = localInputValue.value + .split('\n') // 按换行分割 + .map(line => line.trim()) // 移除每一行前后的空格 + .filter(line => line !== ''); // 过滤掉空行 + + const joinedLines = lines.join(','); // 使用逗号连接,无空格 + emit('dialogSearchSubmit', joinedLines); + emit('update:inputValue', localInputValue.value); }; diff --git a/src/views/aftersales/aftersalesWorkOrder.vue b/src/views/aftersales/aftersalesWorkOrder.vue index ef3c46d9..23a53bf8 100644 --- a/src/views/aftersales/aftersalesWorkOrder.vue +++ b/src/views/aftersales/aftersalesWorkOrder.vue @@ -115,16 +115,24 @@ 客服介入 - 钉钉号填写 - 批量完结 + > --> 批量完结审核 - 财务入账 @@ -440,6 +448,76 @@ 本地导出 + + + + + + + + + + + + + + + + + + + 关闭 + + 确认 + + + + + + + + + + + + + + + + + + + 取消 + + 确认 + + + + @@ -582,6 +660,16 @@ const ExportObjects = ref({ tcTableexport: false, //本地导出 ExportSelection: false, //导出选择弹窗 }); +// 钉钉号 +const DingTalkfilling = ref({ + dialogDingTalk: false, + loading: false, +}); +// 财务入账 +const FinancialFrom = ref({ + loadingFinancial: false, + loading: false, +}); // 多行搜索 const Searchboxpop = ref({ SearchboxpopUpwindowtitle: '', //标题 @@ -787,7 +875,9 @@ const ButtonPermissions = computed(() => { return { add: false, //新增按钮 batchReject: false, //批量打回 - assignment: UserPermissions.value != Useridentity.Warehouse_customer_service, //工单指派 + assignment: + UserPermissions.value == Useridentity.Headquarters_Manager || + UserPermissions.value == Useridentity.Headquarters_customer_service, //工单指派 applyArbitration: UserPermissions.value == Useridentity.Warehouse_customer_service, //客服介入 DingTalkNumber: false, //钉钉号填写 batchFinish: false, //批量完结 @@ -804,7 +894,9 @@ const ButtonPermissions = computed(() => { return { add: false, //新增按钮 batchReject: UserPermissions.value == Useridentity.Headquarters_customer_service, //批量打回 - assignment: UserPermissions.value != Useridentity.Warehouse_customer_service, //工单指派 + assignment: + UserPermissions.value == Useridentity.Headquarters_Manager || + UserPermissions.value == Useridentity.Headquarters_customer_service, //工单指派 applyArbitration: false, //客服介入 DingTalkNumber: false, //钉钉号填 batchFinish: false, //批量完结 @@ -861,7 +953,9 @@ const ButtonPermissions = computed(() => { DingTalkNumber: false, //钉钉号填写 Batchdetermination: false, //批量确定 ManagerConfirmed: false, //处理完毕下面的客服经理批量确定 - ArbitrationDetermination: UserPermissions.value != Useridentity.Warehouse_customer_service, //批量总裁完结确定 + ArbitrationDetermination: + UserPermissions.value == Useridentity.Headquarters_Manager || + UserPermissions.value == Useridentity.Headquarters_customer_service, //批量总裁完结确定 Financial_accounting: false, //财务入账 Result_review: false, //结果审核(总部审核处理结果) defaultassignments: false, //默认指派 @@ -875,11 +969,15 @@ const ButtonPermissions = computed(() => { assignment: false, //工单指派 applyArbitration: false, //客服介入 batchFinish: false, //批量完结 - DingTalkNumber: UserPermissions.value != Useridentity.Warehouse_customer_service, //钉钉号填写, //钉钉号填写 + DingTalkNumber: + UserPermissions.value == Useridentity.Headquarters_customer_service || + UserPermissions.value == Useridentity.Headquarters_Manager, //钉钉号填写, //钉钉号填写 Batchdetermination: false, //批量确定 ManagerConfirmed: false, //处理完毕下面的客服经理批量确定 ArbitrationDetermination: false, //批量完结确定 - Financial_accounting: UserPermissions.value != Useridentity.Warehouse_customer_service, //财务入账 + Financial_accounting: + UserPermissions.value == Useridentity.Headquarters_Manager || + UserPermissions.value == Useridentity.Headquarters_customer_service, //财务入账 defaultassignments: false, //默认指派 Result_review: false, //结果审核(总部审核处理结果) export_Report: true, //导出报表 @@ -1903,6 +2001,99 @@ const CancelWorkOrderAppeal = row => { }) .catch(() => {}); }; + +/** + * @description: [钉钉号填写] - 选择数据后,点击钉钉号填写按钮,出现弹窗 + * @return {void} + */ +const DingTalk = () => { + if (!details.selectionList.length) { + ElMessage({ + message: '请勾选数据', + type: 'warning', + }); + return; + } + // 开启钉钉号填写弹窗 + DingTalkfilling.value.dialogDingTalk = true; +}; +/** + * @description: [钉钉号填写确认] + * @return {void} + */ +const DingTalkSubmit = async () => { + const { processNumber, reviewedBy, auditTime } = DingTalkfilling.value; + try { + // 启动加载 + DingTalkfilling.value.loading = true; + + // 构建数据对象 + const data = { + processNumber, // 钉钉号 + reviewedBy, // 审核人 + auditTime, // 审核时间 + assignList: details.selectionList.map(item => item.id), // ID列表 + }; + let res = await $_updateWorkList(data); + if (res.data.code == 200) { + ElMessage({ + message: res.data.msg, + type: 'success', + }); + // 关闭弹窗和加载 + DingTalkfilling.value.dialogDingTalk = false; + // 更新菜单数据 + updateMenuAndData(); + } + } catch (error) { + console.log(error); + } finally { + DingTalkfilling.value.loading = false; + } +}; +/** + * @description: [财务入账] + * @return {void} + */ +const Financialfillingbtn = () => { + if (!details.selectionList.length) { + ElMessage({ + message: '请勾选数据', + type: 'warning', + }); + return; + } + // 开启钉钉号填写弹窗 + FinancialFrom.value.loadingFinancial = true; +}; +/** + * @description: [财务入账确定] + * @return {void} + */ +const FinancialfillingSubmit = async () => { + const { operator, entryTime } = FinancialFrom.value; + try { + FinancialFrom.value.dialog = true; //加载 + const data = { + operator, + entryTime, + ids: details.selectionList.map(item => item.id).join(','), + }; + let res = await $_updateFinanceTime(data); + if (res.data.code == 200) { + ElMessage({ + message: res.data.msg, + type: 'success', + }); + FinancialFrom.value.loadingFinancial = false; + // 更新菜单数据 + updateMenuAndData(); + } + } catch (error) { + } finally { + FinancialFrom.value.loading = false; //关闭加载 + } +}; /** * @description: [全部]常工单号,跳转到详情信息页面 * @param {Object} row - 当前行数据 @@ -2823,4 +3014,19 @@ const ProcessedExported = async dataID => { } } } + +// 钉钉号 +:deep(.el_DingTalk) { + .el-form-item { + flex-direction: column; + .el-form-item__label { + justify-content: flex-start; + } + .el-form-item__content { + .el-input { + width: 100%; + } + } + } +} diff --git a/src/views/aftersales/aftersalesWorkOrderAdd.vue b/src/views/aftersales/aftersalesWorkOrderAdd.vue index 0e61a590..85672ded 100644 --- a/src/views/aftersales/aftersalesWorkOrderAdd.vue +++ b/src/views/aftersales/aftersalesWorkOrderAdd.vue @@ -840,7 +840,7 @@ const ruleForm = reactive({ ], orderCode: [ { required: true, message: '请输入订单自编号', trigger: ['blur', 'change'] }, - { max: 30, message: '订单自编号最多30位', trigger: 'change' }, + { max: 70, message: '订单自编号最多70位', trigger: 'change' }, ], first: [ { required: false, message: '请输入一级品', trigger: ['blur', 'change'] }, diff --git a/src/views/aftersales/aftersalesWorkOrderend.vue b/src/views/aftersales/aftersalesWorkOrderend.vue index f1dd5ab3..c1baf5fe 100644 --- a/src/views/aftersales/aftersalesWorkOrderend.vue +++ b/src/views/aftersales/aftersalesWorkOrderend.vue @@ -1258,23 +1258,22 @@ async function updateDictionary(targetArray, dictionaryType) { //完结展示权限 const Completedsubmission = () => { - if (UserPermissions.value == Useridentity.Warehouse_customer_service && endFrom.value.arbitrate) { + if (endFrom.value.arbitrate) { + //已经完结了的,可以给仓库客服展示 return true; } - - if ( - UserPermissions.value == Useridentity.Headquarters_customer_service || - UserPermissions.value == Useridentity.Headquarters_Manager - ) { + // 否则只能总部客服和经理展示 + if (UserPermissions.value == Useridentity.Headquarters_customer_service || UserPermissions.value == Useridentity.Headquarters_Manager) { return true; } return false; }; const CompletedPresentation = () => { - if ( - UserPermissions.value == Useridentity.Headquarters_customer_service || - UserPermissions.value == Useridentity.Headquarters_Manager - ) { + if ( UserPermissions.value == Useridentity.Headquarters_customer_service || UserPermissions.value == Useridentity.Headquarters_Manager) { + // 客服介入 + if (['70'].includes($route.query.workOrderStatus)) { + return false; + } if (['30'].includes($route.query.workOrderStatus)) { return false; } @@ -1323,7 +1322,7 @@ const Processingresultmodification = () => { // 客服仲裁完结 const Arbitrationcompleted = () => { - return false + return false; if ( UserPermissions.value == Useridentity.Headquarters_customer_service || UserPermissions.value == Useridentity.Headquarters_Manager @@ -1338,6 +1337,16 @@ const Arbitrationcompleted = () => { // 处理结果是否可以填写 const Processingresultdisabled = () => { + // 总部仲裁中 + if (['70'].includes($route.query.workOrderStatus)) { + if ( + UserPermissions.value == Useridentity.Headquarters_customer_service || + UserPermissions.value == Useridentity.Headquarters_Manager + ) { + return true; + } + } + if ( UserPermissions.value == Useridentity.Warehouse_customer_service || UserPermissions.value == Useridentity.Headquarters_customer_service || @@ -1641,7 +1650,7 @@ const onLoad = async () => { }); } console.log(endFrom.value, '表单信息'); - await getDeptWarehouse({}).then(res => { + await getDeptWarehouse({}).then(res => { // 验证本地仓库用于回复选择,自己不能选择自己仓库 console.log(res, '处理方'); console.log(localStorage.getItem('WarehouseName'), '当前本地仓库'); @@ -2702,7 +2711,7 @@ const BatchReturn = () => { }) .catch(() => {}); }; -// 待审核确认审核(经理审核) +// 待审核确认审核(经理审核或总部) const ResultConfirmation = async () => { ElMessageBox.confirm('是否确认审核?请注意查验数据正确性!', '提示', { confirmButtonText: '确认', diff --git a/src/views/basicdata/warehouse/tray/basicdataTrayedt.vue b/src/views/basicdata/warehouse/tray/basicdataTrayedt.vue index 116233a0..71980c05 100644 --- a/src/views/basicdata/warehouse/tray/basicdataTrayedt.vue +++ b/src/views/basicdata/warehouse/tray/basicdataTrayedt.vue @@ -640,7 +640,7 @@ export default { label: '订单自编号', type: 30, values: '', - width: '300', + width: '180', checkarr: [], fixed: false, sortable: true, @@ -657,10 +657,21 @@ export default { sortable: true, head: false, }, + { + prop: 'mallName', + label: '商场名称', + type: 1, + values: '', + width: '150', + checkarr: [], + fixed: false, + sortable: true, + head: false, + }, { prop: 'isFleeingName', label: '是否窜货', - type: 30, + type: 1, values: '', width: '80', checkarr: [ @@ -682,6 +693,8 @@ export default { sortable: true, head: false, }, + + { prop: 'firsts', label: '一级品类', diff --git a/src/views/distribution/inventory/delivery/distributionStockArticle.vue b/src/views/distribution/inventory/delivery/distributionStockArticle.vue index 474f3993..bfb56f17 100644 --- a/src/views/distribution/inventory/delivery/distributionStockArticle.vue +++ b/src/views/distribution/inventory/delivery/distributionStockArticle.vue @@ -1504,32 +1504,20 @@ export default { } }, - async openDialog(title, input) { + openDialog(title, input) { this.popupTitle = title; - console.log(input, '输入框值1'); if (input) { - const formattedInput = await input.split(',').join('\n'); - console.log(formattedInput, '输入框值2'); - - this.searchInput = formattedInput; // 赋值给 inputAll + this.searchInput = input.split(',').join('\n'); } else { this.searchInput = ''; } - console.log(this.searchInput, '输入框值3'); this.dialogVisible = true; }, handleSearchSubmit(value) { - const lines = value - .split('\n') // 按换行分割 - .map(line => line.trim()) // 移除每一行前后的空格 - .filter(line => line !== ''); // 过滤掉空行 - - const joinedLines = lines.join(','); // 使用逗号连接,无空格 - if (this.popupTitle == '订单自编号搜索') { - this.query.orderCodeNum = joinedLines; //搜索框值 + this.query.orderCodeNum = value; //搜索框值 } else if (this.popupTitle == '运单号搜索') { - this.query.waybillNum = joinedLines; //搜索框值 + this.query.waybillNum = value; //搜索框值 } this.dialogVisible = false; }, diff --git a/src/views/waybill/WaybillOrderList.vue b/src/views/waybill/WaybillOrderList.vue index bddcec9d..01936534 100644 --- a/src/views/waybill/WaybillOrderList.vue +++ b/src/views/waybill/WaybillOrderList.vue @@ -471,28 +471,20 @@ const permissionObj = reactive({ }), }); const dialogVisible = ref(false); -const popupTitle = ref('搜索弹窗'); +const popupTitle = ref(''); const searchInput = ref(''); const openDialog = (title, input) => { popupTitle.value = title; - console.log(input, 'input'); if (input) { - const formattedInput = input.split(',').join('\n'); - searchInput.value = formattedInput; // 赋值给 inputAll + searchInput.value = input.split(',').join('\n'); // 赋值给 inputAll } else { searchInput.value = ''; } dialogVisible.value = true; }; const handleSearchSubmit = value => { - const lines = value - .split('\n') // 按换行分割 - .map(line => line.trim()) // 移除每一行前后的空格 - .filter(line => line !== ''); // 过滤掉空行 - - const joinedLines = lines.join(','); // 使用逗号连接,无空格 if (popupTitle.value == '运单号搜索') { - query.value.waybillNoList = joinedLines; //搜索框值 + query.value.waybillNoList = value; //搜索框值 } dialogVisible.value = false; }; @@ -1121,5 +1113,4 @@ getListName({ name: '' }).then(res => { .imgDialogVisible .el-dialog__body { padding: 0; } - From 4224e648e6f972c3ed33464b839209228293fb27 Mon Sep 17 00:00:00 2001 From: qb <1191961160@qq.com> Date: Wed, 20 Nov 2024 15:18:38 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E9=A6=96=E9=A1=B5=E8=AF=B7=E6=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/wel/index.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/views/wel/index.vue b/src/views/wel/index.vue index 6219a7e0..4671421d 100644 --- a/src/views/wel/index.vue +++ b/src/views/wel/index.vue @@ -1313,8 +1313,8 @@ const handleRefresh = () => { initTrunklineCarsData(); initTrunklineHandOrderData(); initUnloadAbnormalData(); - // initDeliveryData(); - // initSignforData(); + initDeliveryData(); + initSignforData(); } else { name.value = _userInfo.content.real_name; } From 8d1b0d2caae880f93bc2096884856fc1e6a7c035 Mon Sep 17 00:00:00 2001 From: qb <1191961160@qq.com> Date: Wed, 20 Nov 2024 15:22:59 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=83=A8=E5=88=86bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/wel/index.vue | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/views/wel/index.vue b/src/views/wel/index.vue index 4671421d..d8381959 100644 --- a/src/views/wel/index.vue +++ b/src/views/wel/index.vue @@ -1713,7 +1713,7 @@ const billSignforData = computed(() => { } diff --git a/src/views/wel/index.vue b/src/views/wel/index.vue index d8381959..a87db5ba 100644 --- a/src/views/wel/index.vue +++ b/src/views/wel/index.vue @@ -7,12 +7,27 @@ + 开单数据 + + + + + + + + handleDetails('openOrderColumn', '开单数据详情')" + > + 详情 + + @@ -263,6 +278,20 @@ 当前在库数据 + + + @@ -355,6 +384,20 @@ 库位数据 + + + @@ -979,6 +1022,46 @@ + + + + + + + 导出 + + + + { + handleInputQuery(value, col, details.query.inputQuery, true); + details.renderData = handleFilterData(details.tableData, [], details.query); + } + " + :isInitHeigt="false" + > + + + @@ -998,9 +1081,16 @@