diff --git a/src/mes/common/commonModelComponent/index.js b/src/mes/common/commonModelComponent/index.js index 5f2a4db..6bb5fbf 100644 --- a/src/mes/common/commonModelComponent/index.js +++ b/src/mes/common/commonModelComponent/index.js @@ -2219,11 +2219,46 @@ const CommonRepairComponent = props => { tableName, onDataChange: (...args) => { const [, sFieldName, value] = args; - setViewRow(pre => ({ - ...pre, - [sFieldName]: value[sFieldName], - ...value - })); + setViewRow(pre => { + // 计算总和 + const sumTotal = (pre.dAdvanceReportQty || 0) + (pre.dAdvanceLockUpFei || 0) + (pre.dAdvanceMadeUpFei || 0) + (pre.iAdvanceLaminatingPaper || 0); + + // 如果修改的是dAdvanceReportQty + if (sFieldName === 'dAdvanceReportQty') { + const newReportQty = value.dAdvanceReportQty || 0; + // 如果原始值为0,新的总和就是新的dAdvanceReportQty + const newSumTotal = pre.dAdvanceReportQty === 0 ? newReportQty : sumTotal; + + return { + ...pre, + [sFieldName]: newReportQty, + ...value, + dAdvanceLockUpFei: pre.dAdvanceLockUpFei, + dAdvanceMadeUpFei: pre.dAdvanceMadeUpFei, + iAdvanceLaminatingPaper: pre.iAdvanceLaminatingPaper + }; + } else if (['dAdvanceLockUpFei', 'dAdvanceMadeUpFei', 'iAdvanceLaminatingPaper'].includes(sFieldName)) { + const newValue = value[sFieldName] || 0; + const otherFieldsSum = (sFieldName !== 'dAdvanceLockUpFei' ? pre.dAdvanceLockUpFei : 0) + + (sFieldName !== 'dAdvanceMadeUpFei' ? pre.dAdvanceMadeUpFei : 0) + + (sFieldName !== 'iAdvanceLaminatingPaper' ? pre.iAdvanceLaminatingPaper : 0); + // 计算新的dAdvanceReportQty + const newReportQty = sumTotal - newValue - otherFieldsSum; + + return { + ...pre, + [sFieldName]: newValue, + ...value, + dAdvanceReportQty: newReportQty + }; + } else { + return { + ...pre, + [sFieldName]: value[sFieldName], + ...value + }; + } + }); }, delayComputed: true };