Merge remote-tracking branch 'origin/0.8.X' into 0.8.X
This commit is contained in:
@@ -164,6 +164,17 @@
|
||||
</el-table>
|
||||
</el-tab-pane>
|
||||
<el-tab-pane label="差异对比" name="diff">
|
||||
<div class="diff-config">
|
||||
<el-form :model="diffConfig" inline>
|
||||
<el-form-item label="重量差异阈值(kg)">
|
||||
<el-input-number v-model="diffConfig.weightThreshold" :precision="2" :step="0.1" :min="0" style="width: 120px;" />
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" size="mini" @click="calculateDiff">重新计算差异</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<span class="config-tip">重量差异在此阈值内视为相同,超出则标记为不一致</span>
|
||||
</div>
|
||||
<el-row :gutter="16" class="diff-row">
|
||||
<el-col :span="12">
|
||||
<div class="diff-section">
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user