diff --git a/nx/helper/calcAnalysisValue.js b/nx/helper/calcAnalysisValue.js index b2900df..be31cf5 100644 --- a/nx/helper/calcAnalysisValue.js +++ b/nx/helper/calcAnalysisValue.js @@ -64,8 +64,6 @@ const Get_C_KNO3 = function (weight, sValue, operator) { //判断sValue是数字 const S = number(sValue) const W = number(weight) - console.log(S, W) - //如果样重为0就不计算 if (W === 0) { console.log('结束') @@ -98,7 +96,7 @@ export function calcAnalysisValue(group, externalFormData, taskIngredientsWay) { try { for (const g of group) { for (const ele of g.fields) { - if (!ele.formula || ele.formula == '' || ele.formula.startsWith('From')) continue + if (!ele.formula || ele.formula == '' || ele.formula.startsWith('From') || ele.hidden == 1) continue let formula = ele.formula let formulas = formula.split('|') let formulaVal = '' @@ -121,6 +119,8 @@ export function calcAnalysisValue(group, externalFormData, taskIngredientsWay) { let v = '' if (formulaVal.startsWith('Get_')) { + console.log(111, formulaVal, ele.title) + //计算公式为Get开头的,都是执行方法,只有人工配料才执行 if (taskIngredientsWay !== 'manual') continue v = eval(formulaVal) @@ -130,7 +130,9 @@ export function calcAnalysisValue(group, externalFormData, taskIngredientsWay) { v = math.evaluate(formulaVal).toString() v = isFinite(v) ? v.toString() : 0 } - ele.value = handleRoundFiveNumber(v, ele.decimalPosition) + if (ele && ele.decimalPosition != null) { + ele.value = handleRoundFiveNumber(v, ele?.decimalPosition) + } changed = true } } @@ -152,13 +154,13 @@ export function evaluateGetFromFormula(formula, parse, externalFormData, current relFormulaVal = relFormulaVal.replace(key, value || 0) } } - console.log(relFormulaVal) - try { + console.log(relFormulaVal) + let v = math.evaluate(relFormulaVal).toString() v = isFinite(v) ? v : 0 if (parse) { - return handleRoundFiveNumber(v, currentColumn.decimalPosition) + return handleRoundFiveNumber(v, currentColumn?.decimalPosition) } return v } catch (e) { @@ -174,10 +176,13 @@ function parseFormula(formula, row, dynamicsColumns) { if (f.charAt(0) === 'p') { let o = dynamicsColumns.find(i => 'p' + i.paramNo === f && i.type !== 'project') const currentColumnData = row[o.fieldIndex] + if (!currentColumnData) return formulaVal += currentColumnData.value ? currentColumnData.value : 0 } else if (f.charAt(0) === 'e') { let o = dynamicsColumns.find(i => 'e' + i.paramNo === f) - formulaVal += row[o.fieldIndex]?.value ? row[o.fieldIndex].value : 0 + const currentColumnData = row[o.fieldIndex] + if (!currentColumnData) return + formulaVal += currentColumnData.value ? currentColumnData.value : 0 } else { formulaVal += f } @@ -186,7 +191,7 @@ function parseFormula(formula, row, dynamicsColumns) { } // 根据样品和配置列计算分析值 export function calcRowAnalysisValue(row, columnObj, dynamicsColumns, externalFormData, taskIngredientsWay) { - if (!columnObj.paramNo || !row[columnObj.fieldIndex]) return + if (!columnObj.paramNo || !row[columnObj.fieldIndex] || columnObj.hidden === 1) return for (let i = 0; i < dynamicsColumns.length; i++) { let curItem = dynamicsColumns[i] @@ -212,7 +217,10 @@ export function calcRowAnalysisValue(row, columnObj, dynamicsColumns, externalFo v = math.evaluate(formulaVal).toString() v = isFinite(v) ? v : 0 } - row[curItem.fieldIndex].value = handleRoundFiveNumber(Number(v), row[curItem.fieldIndex].decimalPosition) + let rowObj = row[curItem.fieldIndex] + if (rowObj && rowObj.decimalPosition != null) { + rowObj.value = handleRoundFiveNumber(Number(v), rowObj.decimalPosition) + } calcRowAnalysisValue(row, curItem, dynamicsColumns, externalFormData) } } @@ -220,13 +228,15 @@ export function calcRowAnalysisValue(row, columnObj, dynamicsColumns, externalFo const findFieldInGroup = function (paramNo, group, p) { for (const g of group) { for (const f of g.fields) { - if (p === 'p' && f.type == 'project') continue + if ((p === 'p' && f.type == 'project') || f.hidden === 1) continue if (p + f.paramNo === paramNo) { return f } } } - return { value: null } + return { + value: null + } } /** 处理数值数据:四舍六入奇进偶不进 @@ -401,7 +411,10 @@ export function groupByField(list, cupNumFieldIndex, groupKey = 'groupDictionary const groupMap = new Map() // 插入“全部”项 - list.unshift({ groupDictionaryBusinessKey: 'all', groupDictionaryBusinessName: '全部' }) + list.unshift({ + groupDictionaryBusinessKey: 'all', + groupDictionaryBusinessName: '全部' + }) for (const item of list) { // 赋值杯号 fieldIndex @@ -445,7 +458,10 @@ export function validateElementRange(fieldIndex, row, conRangeElementAnalysisLis if (val == '' || val == null) return null const value = Number(val) - let result = { promptType: '', promptMsg: '' } + let result = { + promptType: '', + promptMsg: '' + } switch (Number(rangeElementAnalysis.rangeType)) { case 1: diff --git a/pages/analysis/sample/sample-work-detail.vue b/pages/analysis/sample/sample-work-detail.vue index c787b6a..5f4b722 100644 --- a/pages/analysis/sample/sample-work-detail.vue +++ b/pages/analysis/sample/sample-work-detail.vue @@ -594,7 +594,7 @@ const checkBh = () => { let hasHb = true for (const g of fieldGroup.value) { for (const f of g.fields) { - if (f.title && f.title.indexOf(cupNumKey) >= 0) { + if (f.title && f.title.indexOf(cupNumKey) >= 0 && f.hidden != 1) { if (typeof f.value === 'undefined' || f.value === null || f.value === '') hasHb = false } } @@ -681,7 +681,7 @@ const saveDetail = async () => { } // 如果处理后的值不为空,重新赋值该字段到其他样品类型下的样品上,并触发每一个样品的计算 for (const col of currentAssayType.value.columns) { - if (col.fieldIndex === sourceKey) { + if (col.hidden != 1 && col.fieldIndex === sourceKey) { if (item.value) { dynamicFormData[item.target] = item.value } else { @@ -723,7 +723,7 @@ function updateTableDataByConfigFields() { for (const key in dynamicFormData) { for (const tab of needCalcTabs) { const columnObj = tab.columns.find(c => { - if (c.formula) { + if (c.formula && c.hidden !== 1) { let FromKey = c.formula.split(':') return FromKey[1] === key || FromKey[0] === 'GetFrom' } @@ -1135,7 +1135,11 @@ const listenNumKeyboard = () => { function syncFieldValueByEqualParamNo() { for (const group of fieldGroup.value) { group.fields.forEach(field => { - if (field.paramNo === selectedField.value.paramNo && field.type === selectedField.value.type) { + if ( + field.paramNo === selectedField.value.paramNo && + field.type === selectedField.value.type && + field.hidden === selectedField.value.hidden + ) { field.value = selectedField.value.value } }) diff --git a/pages/material/outbound/index.vue b/pages/material/outbound/index.vue index 2a23042..c8b7605 100644 --- a/pages/material/outbound/index.vue +++ b/pages/material/outbound/index.vue @@ -43,14 +43,19 @@ >