feat:分析计算问题

This commit is contained in:
houjunxiang
2025-12-25 17:10:08 +08:00
parent 7caeffbf1d
commit ba2151b00e
3 changed files with 11 additions and 6 deletions

View File

@@ -62,7 +62,7 @@ export function calcAnalysisValue(group) {
// 根据样品和配置列计算分析值 // 根据样品和配置列计算分析值
export function calcRowAnalysisValue(row, columnObj, dynamicsColumns) { 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++) { for (let i = 0; i < dynamicsColumns.length; i++) {
let curItem = dynamicsColumns[i] let curItem = dynamicsColumns[i]
if (curItem.fieldIndex === columnObj.fieldIndex) continue if (curItem.fieldIndex === columnObj.fieldIndex) continue

View File

@@ -718,14 +718,16 @@ const saveDetail = async () => {
item.value = handleRoundFiveNumber(row[sourceKey].value, row.decimalPosition) item.value = handleRoundFiveNumber(row[sourceKey].value, row.decimalPosition)
} }
// 如果处理后的值不为空,重新赋值该字段到其他样品类型下的样品上,并触发每一个样品的计算 // 如果处理后的值不为空,重新赋值该字段到其他样品类型下的样品上,并触发每一个样品的计算
if (item.value !== null) { for (const col of currentAssayType.value.columns) {
for (const col of currentAssayType.value.columns) { if (col.fieldIndex === sourceKey) {
if (col.fieldIndex === sourceKey&&item.value) { if (item.value) {
dynamicFormData[item.target] = item.value dynamicFormData[item.target] = item.value
} else {
dynamicFormData[item.target] = row[sourceKey].value
} }
} }
updateTableDataByConfigFields()
} }
updateTableDataByConfigFields()
} }
}) })
params.formValue = JSON.stringify(dynamicFormData) params.formValue = JSON.stringify(dynamicFormData)
@@ -768,8 +770,10 @@ function updateTableDataByConfigFields() {
if (!columnObj) continue if (!columnObj) continue
tab.tableData.forEach(row => { tab.tableData.forEach(row => {
// 赋值配置列参与计算 // 赋值配置列参与计算
if(row[columnObj.fieldIndex]){
row[columnObj.fieldIndex].value = dynamicFormData[key] row[columnObj.fieldIndex].value = dynamicFormData[key]
calcRowAnalysisValue(row, columnObj, tab.columns) calcRowAnalysisValue(row, columnObj, tab.columns)
}
}) })
} }
} }

View File

@@ -198,8 +198,10 @@ async function updateTableDataByConfigFields() {
if (!columnObj) continue if (!columnObj) continue
tab.tableData.forEach(row => { tab.tableData.forEach(row => {
// 赋值配置列参与计算 // 赋值配置列参与计算
if(row[columnObj.fieldIndex]){
row[columnObj.fieldIndex].value = formData[key] row[columnObj.fieldIndex].value = formData[key]
calcRowAnalysisValue(row, columnObj, tab.columns) calcRowAnalysisValue(row, columnObj, tab.columns)
}
}) })
} }
} }
@@ -302,7 +304,6 @@ function checkPropertyEquality() {
const target = formula.split(':')[1] const target = formula.split(':')[1]
const originalValue = dynamicFormData.value[target] const originalValue = dynamicFormData.value[target]
const currentValue = realFormData.value[target] const currentValue = realFormData.value[target]
console.log('checkPropertyEquality', originalValue, currentValue)
if (!looseEqual(originalValue, currentValue)) { if (!looseEqual(originalValue, currentValue)) {
return true return true
} }