diff --git a/nx/helper/calcAnalysisValue.js b/nx/helper/calcAnalysisValue.js index 9301f3c..dcf873e 100644 --- a/nx/helper/calcAnalysisValue.js +++ b/nx/helper/calcAnalysisValue.js @@ -62,7 +62,7 @@ export function calcAnalysisValue(group) { // 根据样品和配置列计算分析值 export function calcRowAnalysisValue(row, columnObj, dynamicsColumns) { - if (!columnObj.paramNo) return + if (!columnObj.paramNo || !row[columnObj.fieldIndex]) return for (let i = 0; i < dynamicsColumns.length; i++) { let curItem = dynamicsColumns[i] if (curItem.fieldIndex === columnObj.fieldIndex) continue diff --git a/pages/analysis/sample/sample-work-detail.vue b/pages/analysis/sample/sample-work-detail.vue index e333cb7..a1b8d74 100644 --- a/pages/analysis/sample/sample-work-detail.vue +++ b/pages/analysis/sample/sample-work-detail.vue @@ -718,14 +718,16 @@ const saveDetail = async () => { item.value = handleRoundFiveNumber(row[sourceKey].value, row.decimalPosition) } // 如果处理后的值不为空,重新赋值该字段到其他样品类型下的样品上,并触发每一个样品的计算 - if (item.value !== null) { - for (const col of currentAssayType.value.columns) { - if (col.fieldIndex === sourceKey&&item.value) { + for (const col of currentAssayType.value.columns) { + if (col.fieldIndex === sourceKey) { + if (item.value) { dynamicFormData[item.target] = item.value + } else { + dynamicFormData[item.target] = row[sourceKey].value } } - updateTableDataByConfigFields() } + updateTableDataByConfigFields() } }) params.formValue = JSON.stringify(dynamicFormData) @@ -768,8 +770,10 @@ function updateTableDataByConfigFields() { if (!columnObj) continue tab.tableData.forEach(row => { // 赋值配置列参与计算 + if(row[columnObj.fieldIndex]){ row[columnObj.fieldIndex].value = dynamicFormData[key] calcRowAnalysisValue(row, columnObj, tab.columns) + } }) } } diff --git a/pages/analysis/sample/sample-work-edit-task.vue b/pages/analysis/sample/sample-work-edit-task.vue index 160548c..4ad92ba 100644 --- a/pages/analysis/sample/sample-work-edit-task.vue +++ b/pages/analysis/sample/sample-work-edit-task.vue @@ -198,8 +198,10 @@ async function updateTableDataByConfigFields() { if (!columnObj) continue tab.tableData.forEach(row => { // 赋值配置列参与计算 + if(row[columnObj.fieldIndex]){ row[columnObj.fieldIndex].value = formData[key] calcRowAnalysisValue(row, columnObj, tab.columns) + } }) } } @@ -302,7 +304,6 @@ function checkPropertyEquality() { const target = formula.split(':')[1] const originalValue = dynamicFormData.value[target] const currentValue = realFormData.value[target] - console.log('checkPropertyEquality', originalValue, currentValue) if (!looseEqual(originalValue, currentValue)) { return true }