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;