From c10cdfd0221685f3fcd81df81571342aa86df4ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A0=82=E7=B3=96?= <2178503051@qq.com> Date: Thu, 14 May 2026 16:34:19 +0800 Subject: [PATCH] =?UTF-8?q?feat(wms/receive/plan):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E5=85=A5=E5=BA=93=E8=AE=A1=E5=88=92=E5=B7=AE=E5=BC=82=E5=AF=B9?= =?UTF-8?q?=E6=AF=94=E9=85=8D=E7=BD=AE=E4=B8=8E=E9=87=8D=E9=87=8F=E5=B7=AE?= =?UTF-8?q?=E5=BC=82=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 新增差异对比阈值配置面板,支持设置重量差异阈值 2. 调整材质字段映射关系,修复字段匹配错误 3. 新增数值字段差异校验逻辑,支持基于阈值对比重量差异 4. 增加重新计算差异的按钮和配置说明文案 --- klp-ui/src/views/wms/receive/plan/index.vue | 50 ++++++++++++++++++--- 1 file changed, 45 insertions(+), 5 deletions(-) diff --git a/klp-ui/src/views/wms/receive/plan/index.vue b/klp-ui/src/views/wms/receive/plan/index.vue index fef0361b..74da08af 100644 --- a/klp-ui/src/views/wms/receive/plan/index.vue +++ b/klp-ui/src/views/wms/receive/plan/index.vue @@ -164,6 +164,17 @@ +
+ + + + + + 重新计算差异 + + + 重量差异在此阈值内视为相同,超出则标记为不一致 +
@@ -461,6 +472,9 @@ export default { missingCoils: [], extraCoils: [], diffCoils: [], + diffConfig: { + weightThreshold: 0.5 + }, importOpen: false, file: null, @@ -666,8 +680,8 @@ export default { const compareFields = [ { planField: 'goodsName', actualField: 'itemName', fieldName: '名称' }, { planField: 'spec', actualField: 'specification', fieldName: '规格' }, - { planField: 'materialType', actualField: 'materialType', fieldName: '材质' }, - { planField: 'weight', actualField: 'netWeight', fieldName: '重量' }, + { planField: 'materialType', actualField: 'material', fieldName: '材质' }, + { planField: 'weight', actualField: 'netWeight', fieldName: '重量', isNumber: true }, { planField: 'manufacturer', actualField: 'manufacturer', fieldName: '生产厂家' }, { planField: 'zincCoating', actualField: 'zincLayer', fieldName: '锌层' } ]; @@ -678,9 +692,19 @@ export default { if (actualItem) { const diffs = []; compareFields.forEach(field => { - const planValue = String(planItem[field.planField] || ''); - const actualValue = String(actualItem[field.actualField] || ''); - if (planValue !== actualValue) { + let planValue = String(planItem[field.planField] || ''); + let actualValue = String(actualItem[field.actualField] || ''); + if (field.isNumber) { + planValue = Number(planValue); + actualValue = Number(actualValue); + } + let isDiff = false; + if (field.isNumber) { + isDiff = Math.abs(planValue - actualValue) > this.diffConfig.weightThreshold; + } else { + isDiff = planValue !== actualValue; + } + if (isDiff) { diffs.push({ fieldName: field.fieldName, planValue, @@ -1123,6 +1147,22 @@ export default { margin-bottom: 20px; } +.diff-config { + background: #fff; + border-radius: 8px; + padding: 12px 16px; + margin-bottom: 16px; + border: 1px solid #e4e7ed; + display: flex; + align-items: center; + gap: 16px; +} + +.config-tip { + font-size: 12px; + color: #909399; +} + .diff-section { background: #fafafa; border-radius: 8px;