From 4fcbf10afd5ecfa812612344b7fe05dec367c154 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A0=82=E7=B3=96?= <2178503051@qq.com> Date: Thu, 28 May 2026 13:03:09 +0800 Subject: [PATCH] =?UTF-8?q?refactor(wms/mes/cost):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E5=A4=9A=E9=A1=B5=E9=9D=A2=E8=A1=A8=E5=8D=95=E4=B8=8E=E8=A1=A8?= =?UTF-8?q?=E6=A0=BC=E4=BA=A4=E4=BA=92=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 调整质检任务表单的任务类型与入场卷号展示顺序,根据任务类型动态显示入场卷号字段并优化校验规则 2. 替换wms报表页面的pendingAction接口为轻量版listLightPendingAction 3. 给成本综合页面的表格拖拽排序功能新增置于最上/最下按钮,完善拖拽交互与样式 --- .../KLPService/SchemeSelect/index.vue | 2 +- klp-ui/src/views/cost/comprehensive.vue | 38 ++++++++++++++----- klp-ui/src/views/mes/qc/inspection/task.vue | 24 +++++++----- klp-ui/src/views/wms/report/abnormal.vue | 4 +- .../src/views/wms/report/template/action.vue | 3 +- 5 files changed, 48 insertions(+), 23 deletions(-) diff --git a/klp-ui/src/components/KLPService/SchemeSelect/index.vue b/klp-ui/src/components/KLPService/SchemeSelect/index.vue index 71b7f138..1ddf9755 100644 --- a/klp-ui/src/components/KLPService/SchemeSelect/index.vue +++ b/klp-ui/src/components/KLPService/SchemeSelect/index.vue @@ -72,7 +72,7 @@ - + 复制配置 - + @@ -90,17 +90,19 @@ - + @@ -328,6 +330,21 @@ export default { /* column config */ async openColCfg() { await this.loadItems(); await this.restoreAllCols(); this.colOpen = true }, moveCol(idx, dir) { const arr = this.allCols; const t = idx + dir; if (t >= 0 && t < arr.length) { const item = arr.splice(idx, 1)[0]; arr.splice(t, 0, item) } }, + moveColToEdge(idx, edge) { const arr = this.allCols; const item = arr.splice(idx, 1)[0]; edge === 'top' ? arr.unshift(item) : arr.push(item) }, + onDragStart(idx) { + this.dragIdx = idx + }, + onDragEnd() { + this.dragIdx = -1 + }, + onNativeDrop(e) { + if (this.dragIdx < 0) return + const tr = e.target.closest('tr') + if (!tr) return + const rows = Array.from(tr.parentElement.querySelectorAll('tr')) + const targetIdx = rows.indexOf(tr) + if (targetIdx >= 0) this.onDragDrop(targetIdx) + }, onDragDrop(targetIdx) { if (this.dragIdx < 0 || targetIdx < 0 || this.dragIdx === targetIdx) return const arr = this.allCols @@ -592,4 +609,7 @@ export default { .vars-tag:hover { opacity: 0.8; } .var-sys { background: #ecf5ff; border-color: #d9ecff; color: #409eff; } .var-mtr { background: #f0f9eb; border-color: #e1f3d8; color: #67c23a; } +.drag-handle { cursor: grab; font-size: 14px; color: #909399; padding: 2px; display: inline-flex; align-items: center; } +.drag-handle:active { cursor: grabbing; } +.drag-handle:hover { color: #409eff; } diff --git a/klp-ui/src/views/mes/qc/inspection/task.vue b/klp-ui/src/views/mes/qc/inspection/task.vue index fe6599a8..b5c10cfa 100644 --- a/klp-ui/src/views/mes/qc/inspection/task.vue +++ b/klp-ui/src/views/mes/qc/inspection/task.vue @@ -245,7 +245,13 @@ - + + + + + + +
- - - - - - @@ -419,9 +419,9 @@ export default { result: undefined, }, taskForm: {}, - taskRules: { + taskRules: {}, + baseTaskRules: { taskCode: [{ required: true, message: '请输入任务编号', trigger: 'blur' }], - enterCoilNos: [{ required: true, message: '请输入入场卷号', trigger: 'blur' }], taskType: [{ required: true, message: '请选择任务类型', trigger: 'change' }], belongCompany: [{ required: true, message: '请输入所属公司', trigger: 'blur' }], schemeName: [{ required: true, message: '请输入检验方案名称', trigger: 'blur' }], @@ -474,6 +474,12 @@ export default { }; }, computed: { + taskRules() { + return { + ...this.baseTaskRules, + enterCoilNos: [{ required: this.taskForm.taskType === '产品检验', message: '请输入入场卷号', trigger: 'blur' }], + }; + }, itemReadonly() { if (!this.readonly) return false; const status = this.currentTask?.status; diff --git a/klp-ui/src/views/wms/report/abnormal.vue b/klp-ui/src/views/wms/report/abnormal.vue index c5c35b73..ce6269e3 100644 --- a/klp-ui/src/views/wms/report/abnormal.vue +++ b/klp-ui/src/views/wms/report/abnormal.vue @@ -128,7 +128,7 @@