From c8c2523fe79649ab973768a47e26c7666862fb36 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A0=82=E7=B3=96?= <2178503051@qq.com> Date: Fri, 19 Jun 2026 12:30:18 +0800 Subject: [PATCH] =?UTF-8?q?feat(wms):=20=E6=96=B0=E5=A2=9E=E5=A4=9A?= =?UTF-8?q?=E9=A1=B9=E5=8A=9F=E8=83=BD=E5=B9=B6=E4=BC=98=E5=8C=96=E6=A0=87?= =?UTF-8?q?=E7=AD=BE=E5=B1=95=E7=A4=BA=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 异常管理页面默认显示继承按钮,新增继承弹窗传参 2. 多标签页优化订货单位展示:移除"有限公司"后缀并自适应字体大小 3. 基础面板新增备注查询条件和表格列展示 4. 流程页面新增节点点击交互和悬停效果 --- klp-ui/src/views/wms/coil/abnormal/extend.vue | 4 +- .../wms/coil/panels/LabelRender/DuGeTag.vue | 13 ++--- .../coil/panels/LabelRender/GalvanizedTag.vue | 13 ++--- .../panels/LabelRender/OuterTagPreview.vue | 13 ++--- klp-ui/src/views/wms/coil/panels/base.vue | 9 +++- klp-ui/src/views/wms/post/flow.vue | 50 ++++++++++++++++++- 6 files changed, 79 insertions(+), 23 deletions(-) diff --git a/klp-ui/src/views/wms/coil/abnormal/extend.vue b/klp-ui/src/views/wms/coil/abnormal/extend.vue index d314edf3..13c9cefa 100644 --- a/klp-ui/src/views/wms/coil/abnormal/extend.vue +++ b/klp-ui/src/views/wms/coil/abnormal/extend.vue @@ -73,7 +73,7 @@ 异常管理 - 继承 @@ -95,7 +95,7 @@ @pagination="getCoilList" /> - +
订货单位
-
{{ content.orderUnit || '' }}
+
{{ orderUnitDisplay }}
合同号
@@ -181,13 +181,14 @@ export default { materialWithManufacturer() { return this.content.material }, + orderUnitDisplay() { + return (this.content.orderUnit || '').replace(/有限公司/g, '') + }, orderUnitFontSize() { - const len = (this.content.orderUnit || '').length + const len = this.orderUnitDisplay.length if (len < 10) return '1.2em' - if (len <= 14) return '1em' - if (len <= 18) return '0.88em' - if (len <= 24) return '0.78em' - return '0.68em' + const size = Math.max(0.55, 12 / len).toFixed(2) + return size + 'em' } }, data() { diff --git a/klp-ui/src/views/wms/coil/panels/LabelRender/GalvanizedTag.vue b/klp-ui/src/views/wms/coil/panels/LabelRender/GalvanizedTag.vue index 46e9d99c..00ada584 100644 --- a/klp-ui/src/views/wms/coil/panels/LabelRender/GalvanizedTag.vue +++ b/klp-ui/src/views/wms/coil/panels/LabelRender/GalvanizedTag.vue @@ -20,7 +20,7 @@
订货单位
-
{{ content.orderUnit || '' }}
+
{{ orderUnitDisplay }}
合同号
@@ -182,13 +182,14 @@ export default { materialWithManufacturer() { return this.content.material }, + orderUnitDisplay() { + return (this.content.orderUnit || '').replace(/有限公司/g, '') + }, orderUnitFontSize() { - const len = (this.content.orderUnit || '').length + const len = this.orderUnitDisplay.length if (len < 10) return '1.2em' - if (len <= 14) return '1em' - if (len <= 18) return '0.88em' - if (len <= 24) return '0.78em' - return '0.68em' + const size = Math.max(0.55, 12 / len).toFixed(2) + return size + 'em' } }, data() { diff --git a/klp-ui/src/views/wms/coil/panels/LabelRender/OuterTagPreview.vue b/klp-ui/src/views/wms/coil/panels/LabelRender/OuterTagPreview.vue index 443d07b0..a5c5989f 100644 --- a/klp-ui/src/views/wms/coil/panels/LabelRender/OuterTagPreview.vue +++ b/klp-ui/src/views/wms/coil/panels/LabelRender/OuterTagPreview.vue @@ -19,7 +19,7 @@
订货单位
-
{{ content.orderUnit || '' }}
+
{{ orderUnitDisplay }}
合同号
@@ -188,13 +188,14 @@ export default { materialWithManufacturer() { return this.content.material }, + orderUnitDisplay() { + return (this.content.orderUnit || '').replace(/有限公司/g, '') + }, orderUnitFontSize() { - const len = (this.content.orderUnit || '').length + const len = this.orderUnitDisplay.length if (len < 10) return '1.2em' - if (len <= 14) return '1em' - if (len <= 18) return '0.88em' - if (len <= 24) return '0.78em' - return '0.68em' + const size = Math.max(0.55, 12 / len).toFixed(2) + return size + 'em' } }, data() { diff --git a/klp-ui/src/views/wms/coil/panels/base.vue b/klp-ui/src/views/wms/coil/panels/base.vue index e7912ac8..e3e4d6b3 100644 --- a/klp-ui/src/views/wms/coil/panels/base.vue +++ b/klp-ui/src/views/wms/coil/panels/base.vue @@ -78,6 +78,11 @@ clearable /> + + + + 全部 @@ -220,11 +225,11 @@ + - - + diff --git a/klp-ui/src/views/wms/post/flow.vue b/klp-ui/src/views/wms/post/flow.vue index cfc16518..1c4d9558 100644 --- a/klp-ui/src/views/wms/post/flow.vue +++ b/klp-ui/src/views/wms/post/flow.vue @@ -14,7 +14,7 @@
-
+
@@ -120,8 +120,16 @@ export default { { key: 'afterSales', label: '售后处理流程', icon: 'el-icon-s-claim' }, ], svgCache: {}, + selectedNode: null, } }, + watch: { + currentSvg() { + this.$nextTick(() => { + this.bindNodeEvents() + }) + }, + }, computed: { currentSvg() { const code = diagrams[this.activeTab] @@ -140,6 +148,38 @@ export default { methods: { switchTab(key) { this.activeTab = key + this.selectedNode = null + }, + bindNodeEvents() { + const el = this.$refs.diagram + if (!el) return + const svg = el.querySelector('svg') + if (!svg) return + const groups = svg.querySelectorAll('g:not([class*="edge"])') + groups.forEach(g => { + const hasRect = g.querySelector('rect, path, ellipse, polygon') + const text = g.querySelector('text, span') + if (hasRect && text) { + g.style.cursor = 'pointer' + } + }) + }, + onNodeClick(e) { + let target = e.target + while (target && target !== e.currentTarget) { + if (target.tagName === 'g') { + const textEl = target.querySelector('text, span') + if (textEl) { + const label = textEl.textContent.replace(/\s+/g, ' ').trim() + if (label) { + this.selectedNode = label + this.$message({ message: label, type: 'info', duration: 1500 }) + return + } + } + } + target = target.parentElement + } }, }, } @@ -203,4 +243,12 @@ export default { max-width: 100%; height: auto; } + +.flow-diagram :deep(svg g) { + transition: opacity 0.15s ease; +} + +.flow-diagram :deep(svg g:hover) { + opacity: 0.8; +}