Jelajahi Sumber

fix(inspectionProjectReport): 添加样品不合格数与损耗数的逻辑判断,确保数据一致性

xieyong 1 Minggu lalu
induk
melakukan
63a464c6e9

+ 18 - 10
src/views/inspectionWork/components/inspectionProjectReport.vue

@@ -57,17 +57,17 @@
           <template slot="append">{{ form.measureUnit }}</template>
         </el-input>
       </template>
-      <!-- <template v-slot:sampleNoQualifiedNumber="{ row }">
+      <template v-slot:sampleNoQualifiedNumber="{ row }">
         <el-input
           v-model="row.sampleNoQualifiedNumber"
           @input="formSampleNoQualifiedNumberChange"
           placeholder="请输入"
           type="number"
-          :disabled="type == 'detail'"
+          :disabled="type == 'detail' || qms_defaultDisposalType"
         >
           <template slot="append">{{ form.measureUnit }}</template>
         </el-input>
-      </template> -->
+      </template>
     </ele-pro-table>
     <ele-pro-table
       :needPage="false"
@@ -443,16 +443,10 @@
           {
             minWidth: 180,
             prop: 'sampleNoQualifiedNumber',
+            headerSlot: 'isRequired',
             slot: 'sampleNoQualifiedNumber',
             align: 'center',
             label: '样品不合格数',
-            formatter: (row) => {
-              if (row.sampleNoQualifiedNumber) {
-                return (
-                  row.sampleNoQualifiedNumber + (this.form.measureUnit || '')
-                );
-              }
-            },
             showOverflowTooltip: true
           },
           {
@@ -940,6 +934,14 @@
         if (+this.form.sampleNoQualifiedNumber < 0) {
           this.form.sampleNoQualifiedNumber = 0;
         }
+
+        const sampleNoQualifiedNumber = Number(this.form.sampleNoQualifiedNumber) || 0;
+        const lossNumberUnqualified = Number(this.form.lossNumberUnqualified) || 0;
+        if(lossNumberUnqualified && sampleNoQualifiedNumber && sampleNoQualifiedNumber < lossNumberUnqualified) {
+          this.$message.error("样品不合格数不能小于损耗数(不合格数)")
+          this.$set(this.form, 'sampleNoQualifiedNumber', lossNumberUnqualified);
+        }
+
         if (+this.form.sampleNoQualifiedNumber > this.form.sampleQuantity) {
           this.form.sampleNoQualifiedNumber = this.form.sampleQuantity;
         }
@@ -1082,6 +1084,12 @@
             } else {
               this.$set(this.form, 'lossNumber', lossUnqualified);
             }
+          } else {
+             const lossNumberUnqualified = Number(this.form.lossNumberUnqualified) || 0;
+             const sampleNoQualifiedNumber = Number(this.form.sampleNoQualifiedNumber) || 0;
+             if(lossNumberUnqualified > sampleNoQualifiedNumber) {
+               this.$set(this.form, 'sampleNoQualifiedNumber', lossNumberUnqualified);
+             }
           }
         }
       }