Преглед изворни кода

修复试剂更换验证定量子表合并最后一行数据无法回显问题

cyy пре 6 дана
родитељ
комит
3d344660b0
1 измењених фајлова са 34 додато и 7 уклоњено
  1. 34 7
      src/views/component/reagent/reagentChange.vue

+ 34 - 7
src/views/component/reagent/reagentChange.vue

@@ -62,8 +62,9 @@
                   size="mini"
                   placeholder="请输入"
                   type="number"
+                  @blur="normalizeRowResult(row)"
                 />
-                <span v-else>{{ row.jsjcdjg || '/' }}</span>
+                <span v-else>{{ formatResultDisplay(row.jsjcdjg) }}</span>
               </template>
             </el-table-column>
             <el-table-column label="新试剂测得结果" prop="xsjcdjg">
@@ -75,8 +76,9 @@
                   size="mini"
                   placeholder="请输入"
                   type="number"
+                  @blur="normalizeRowResult(row)"
                 />
-                <span v-else>{{ row.xsjcdjg || '/' }}</span>
+                <span v-else>{{ formatResultDisplay(row.xsjcdjg) }}</span>
               </template>
             </el-table-column>
             <el-table-column label="实际偏倚" prop="sjcz" />
@@ -259,8 +261,8 @@ export default {
               jyxm: item.jianCeXiangMu,
               nd: item.nongDu,
               ypbh: item.biaoBenHao,
-              jsjcdjg: item.jiuJieGuo,
-              xsjcdjg: item.xinJieGuo,
+              jsjcdjg: this.parseResultNumber(item.jiuJieGuo),
+              xsjcdjg: this.parseResultNumber(item.xinJieGuo),
               pq: item.jieGuo,
               fhl: item.biaoZhun,
               sfxf: item.xiangFu,
@@ -424,7 +426,12 @@ export default {
           const obj = {}
           Object.keys(item).forEach((key) => {
             if (keys[key]) {
-              obj[keys[key]] = item[key]
+              const field = keys[key]
+              if (field === 'jsjcdjg' || field === 'xsjcdjg') {
+                obj[field] = this.parseResultNumber(item[key])
+              } else {
+                obj[field] = item[key]
+              }
             }
           })
           list.push(obj)
@@ -533,13 +540,14 @@ export default {
     },
     // 计算结果
     computedResult() {
+      this.reagentData.forEach((item) => this.normalizeRowResult(item))
       // computedFlag:true表示里面有空数据或填写不规范数据
       let computedFlag = false
       this.reagentData.forEach((item) => {
         if (
-          !item.jsjcdjg ||
+          item.jsjcdjg === '' ||
           item.jsjcdjg <= 0 ||
-          !item.xsjcdjg ||
+          item.xsjcdjg === '' ||
           item.xsjcdjg <= 0
         ) {
           computedFlag = true
@@ -683,6 +691,25 @@ export default {
         }
       }
     },
+    // 试剂测得结果转数字,无效值返回空字符串
+    parseResultNumber(value) {
+      if (value === null || value === undefined || value === '') {
+        return ''
+      }
+      const num = Number(value)
+      return Number.isFinite(num) ? num : ''
+    },
+    normalizeRowResult(row) {
+      if (!row) return row
+      row.jsjcdjg = this.parseResultNumber(row.jsjcdjg)
+      row.xsjcdjg = this.parseResultNumber(row.xsjcdjg)
+      return row
+    },
+    formatResultDisplay(value) {
+      return value === '' || value === null || value === undefined
+        ? '/'
+        : value
+    },
     // 去除小数*100精度方法
     deleteAccuracy(num) {
       // 是否带小数点