Browse Source

优化样品数量单位显示并增强相关表单校验逻辑

yusheng 7 tháng trước cách đây
mục cha
commit
07f72196f3

+ 1 - 1
src/views/inspectionPlan/components/baseInfo.vue

@@ -727,7 +727,7 @@
             // { label: '生产订单', value: '3' },
             { label: '生产工单', value: '4' }
           ];
-        } else if (val == 3) {
+        } else if (val == 10) {
           this.sourceList = [
             { label: '主数据', value: '5' },
             { label: '库存台账', value: '6' }

+ 1 - 1
src/views/inspectionProjectRequest/index.vue

@@ -508,7 +508,7 @@
 
         const res = await getById(row.id);
         this.$refs.inspectionProjectReportRef.open(
-          { workData: res, list: res.templateList },
+          { workData: {...res,measureUnit:res.sampleMeasureUnit}, list: res.templateList },
           type,
           'inspectionProjectRequest'
         );

+ 8 - 2
src/views/inspectionProjectTask/index.vue

@@ -307,7 +307,10 @@
           const data = await craftFiles(id);
           if (data.length) {
             this.$nextTick(() => {
-              this.$refs.fileListRef.open(data.map((item) => item.id), 'view');
+              this.$refs.fileListRef.open(
+                data.map((item) => item.id),
+                'view'
+              );
             });
           }
         }
@@ -332,7 +335,10 @@
         }
         const res = await getById(row.id);
         this.$refs.inspectionProjectReportRef.open(
-          { workData: res.data, list: res.data.templateList },
+          {
+            workData: {...res.data,measureUnit:row.sampleMeasureUnit},
+            list: res.data.templateList
+          },
           type,
           'inspectionProjectTask'
         );

+ 57 - 16
src/views/inspectionWork/components/inspectionProjectReport.vue

@@ -16,7 +16,7 @@
       :datasource="[form]"
     >
       <template v-slot:toolbar>
-        剩余样品总数:{{ form.remainingSampleCount }}
+        剩余样品总数:{{ form.remainingSampleCount }}{{ form.measureUnit }}
       </template>
 
       <template v-slot:isRequired="{ column }">
@@ -48,6 +48,7 @@
           @input="formSampleQuantityChange"
           :disabled="type == 'detail'"
         >
+          <template slot="append">{{ form.measureUnit }}</template>
         </el-input>
       </template>
       <template v-slot:sampleNoQualifiedNumber="{ row }">
@@ -58,6 +59,7 @@
           type="number"
           :disabled="type == 'detail'"
         >
+          <template slot="append">{{ form.measureUnit }}</template>
         </el-input>
       </template>
     </ele-pro-table>
@@ -67,7 +69,7 @@
       :datasource="tableData"
     >
       <template v-slot:toolbar>
-        当前质检剩余样品数:{{ getSampleQuantityCount }}
+        当前质检剩余样品数:{{ getSampleQuantityCount }}{{ form.measureUnit }}
       </template>
       <template v-slot:qualityStandardType="{ row }">
         {{ getDictValue('质检标准类型', row.qualityStandardType) }}
@@ -105,6 +107,7 @@
           type="number"
           @input="inputValue('sampleQuantity', row, $index)"
         >
+          <template slot="append">{{ form.measureUnit }}</template>
         </el-input>
       </template>
 
@@ -116,6 +119,7 @@
           type="number"
           @input="inputValue('qualifiedQuantity', row, $index)"
         >
+          <template slot="append">{{ form.measureUnit }}</template>
         </el-input>
       </template>
       <template v-slot:noQualifiedQuantity="{ row, $index }">
@@ -126,6 +130,7 @@
           type="number"
           @input="inputValue('noQualifiedQuantity', row, $index)"
         >
+          <template slot="append">{{ form.measureUnit }}</template>
         </el-input>
       </template>
       <template v-slot:lossNumber="{ row, $index }">
@@ -137,6 +142,7 @@
           @input="inputValue('lossNumber', row, $index)"
           @click.native="curretNum = row.lossNumber"
         >
+          <template slot="append">{{ form.measureUnit }}</template>
         </el-input>
       </template>
       <template v-slot:lossNumberUnqualified="{ row, $index }">
@@ -148,6 +154,7 @@
           @input="inputValue('lossNumberUnqualified', row, $index)"
           @click.native="curretNum = row.lossNumberUnqualified"
         >
+          <template slot="append">{{ form.measureUnit }}</template>
         </el-input>
       </template>
       <template v-slot:retainedSampleQuantity="{ row, $index }">
@@ -159,6 +166,7 @@
           @input="inputValue('retainedSampleQuantity', row, $index)"
           @click.native="curretNum = row.retainedSampleQuantity"
         >
+          <template slot="append">{{ form.measureUnit }}</template>
         </el-input>
       </template>
       <template v-slot:retainedSampleUnqualified="{ row, $index }">
@@ -170,6 +178,7 @@
           @input="inputValue('retainedSampleUnqualified', row, $index)"
           @click.native="curretNum = row.retainedSampleUnqualified"
         >
+          <template slot="append">{{ form.measureUnit }}</template>
         </el-input>
       </template>
       <template v-slot:qualityResults="{ row, $index }">
@@ -343,10 +352,15 @@
             prop: 'total',
             align: 'center',
             label: '总数量',
+            formatter: (row) => {
+              if (row.total) {
+                return row.total + this.form.measureUnit || '';
+              }
+            },
             showOverflowTooltip: true
           },
           {
-            minWidth: 140,
+            minWidth: 180,
             prop: 'sampleQuantity',
             headerSlot: 'isRequired',
             slot: 'sampleQuantity',
@@ -355,7 +369,7 @@
             showOverflowTooltip: true
           },
           {
-            minWidth: 140,
+            minWidth: 180,
             prop: 'sampleNoQualifiedNumber',
             slot: 'sampleNoQualifiedNumber',
             align: 'center',
@@ -368,6 +382,11 @@
             headerSlot: 'isRequired',
             slot: 'sampleQualifiedNumber',
             align: 'center',
+            formatter: (row) => {
+              if (row.sampleQualifiedNumber) {
+                return row.sampleQualifiedNumber +(this.form.measureUnit || '')
+              }
+            },
             label: '样品合格数',
             showOverflowTooltip: true
           },
@@ -376,6 +395,11 @@
             prop: 'lossNumber',
             slot: 'lossNumber',
             align: 'center',
+            formatter: (row) => {
+              if (row.lossNumber) {
+                return row.lossNumber + (this.form.measureUnit || '')
+              }
+            },
             label: '损耗数(合格品)',
             showOverflowTooltip: true
           },
@@ -384,6 +408,11 @@
             prop: 'lossNumberUnqualified',
             slot: 'lossNumberUnqualified',
             align: 'center',
+            formatter: (row) => {
+              if (row.lossNumberUnqualified) {
+                return row.lossNumberUnqualified + (this.form.measureUnit || '')
+              }
+            },
             label: '损耗数(不合格品)',
             showOverflowTooltip: true
           },
@@ -392,6 +421,11 @@
             prop: 'retainedSampleQuantity',
             slot: 'retainedSampleQuantity',
             align: 'center',
+            formatter: (row) => {
+              if (row.retainedSampleQuantity) {
+                return row.retainedSampleQuantity +(this.form.measureUnit || '')
+              }
+            },
             label: '留样数(合格品)',
             showOverflowTooltip: true
           },
@@ -400,6 +434,11 @@
             prop: 'retainedSampleUnqualified',
             slot: 'retainedSampleUnqualified',
             align: 'center',
+            formatter: (row) => {
+              if (row.retainedSampleUnqualified) {
+                return row.retainedSampleUnqualified + (this.form.measureUnit || '')
+              }
+            },
             label: '留样数(不合格品)',
             showOverflowTooltip: true
           },
@@ -521,7 +560,7 @@
             showOverflowTooltip: true
           },
           {
-            minWidth: 120,
+            minWidth: 180,
             prop: 'sampleQuantity',
             slot: 'sampleQuantity',
             align: 'center',
@@ -529,7 +568,7 @@
             showOverflowTooltip: true
           },
           {
-            minWidth: 120,
+            minWidth: 180,
             prop: 'qualifiedQuantity',
             align: 'center',
             slot: 'qualifiedQuantity',
@@ -537,7 +576,7 @@
             showOverflowTooltip: true
           },
           {
-            minWidth: 130,
+            minWidth: 180,
             prop: 'noQualifiedQuantity',
             slot: 'noQualifiedQuantity',
             align: 'center',
@@ -545,7 +584,7 @@
             showOverflowTooltip: true
           },
           {
-            minWidth: 140,
+            minWidth: 180,
             prop: 'lossNumber',
             slot: 'lossNumber',
             align: 'center',
@@ -553,7 +592,7 @@
             showOverflowTooltip: true
           },
           {
-            minWidth: 150,
+            minWidth: 180,
             prop: 'lossNumberUnqualified',
             slot: 'lossNumberUnqualified',
             align: 'center',
@@ -561,7 +600,7 @@
             showOverflowTooltip: true
           },
           {
-            minWidth: 140,
+            minWidth: 180,
             prop: 'retainedSampleQuantity',
             slot: 'retainedSampleQuantity',
             align: 'center',
@@ -569,7 +608,7 @@
             showOverflowTooltip: true
           },
           {
-            minWidth: 150,
+            minWidth: 180,
             prop: 'retainedSampleUnqualified',
             slot: 'retainedSampleUnqualified',
             align: 'center',
@@ -640,11 +679,12 @@
     computed: {
       getSampleQuantityCount() {
         return (
-          this.form.sampleQuantity -
-          (this.form.lossNumber || 0) -
-          (this.form.lossNumberUnqualified || 0) -
-          (this.form.retainedSampleQuantity || 0) -
-          (this.form.retainedSampleUnqualified || 0)
+          (this.form.sampleQuantity * 100 -
+            (this.form.lossNumber * 100 || 0) -
+            (this.form.lossNumberUnqualified * 100 || 0) -
+            (this.form.retainedSampleQuantity * 100 || 0) -
+            (this.form.retainedSampleUnqualified * 100 || 0)) /
+          100
         );
       }
     },
@@ -697,6 +737,7 @@
             data.sampleQuantity - data.sampleNoQualifiedNumber ||
             0;
           this.$set(this, 'form', JSON.parse(JSON.stringify(data)));
+          console.log(this.form, 'this.form');
           this.tableData = JSON.parse(JSON.stringify(list));
           this.tableData.forEach((item, index) => {
             if (item.experimentCode) {

+ 105 - 1
src/views/inspectionWork/components/newQualityContentTabs.vue

@@ -853,11 +853,18 @@
             minWidth: 110
           },
 
-          {
+                  {
             prop: 'sampleQuantity',
             label: '样品数',
             showOverflowTooltip: true,
             align: 'center',
+            formatter: (row) => {
+              if (row.sampleQuantity) {
+                return (
+                  row.sampleQuantity + this.sampleList[0]?.measureUnit || ''
+                );
+              }
+            },
             minWidth: 110
           },
           {
@@ -865,6 +872,14 @@
             label: '样品合格数',
             showOverflowTooltip: true,
             align: 'center',
+            formatter: (row) => {
+              if (row.sampleQualifiedNumber) {
+                return (
+                  row.sampleQualifiedNumber + this.sampleList[0]?.measureUnit ||
+                  ''
+                );
+              }
+            },
             minWidth: 110
           },
           {
@@ -872,6 +887,14 @@
             label: '样品不合格数',
             showOverflowTooltip: true,
             align: 'center',
+            formatter: (row) => {
+              if (row.sampleNoQualifiedNumber) {
+                return (
+                  row.sampleNoQualifiedNumber +
+                    this.sampleList[0]?.measureUnit || ''
+                );
+              }
+            },
             minWidth: 110
           },
           {
@@ -879,6 +902,11 @@
             label: '损耗数(合格品)',
             showOverflowTooltip: true,
             align: 'center',
+            formatter: (row) => {
+              if (row.lossNumber) {
+                return row.lossNumber + this.sampleList[0]?.measureUnit || '';
+              }
+            },
             minWidth: 110
           },
           {
@@ -886,6 +914,14 @@
             label: '损耗数(不合格品)',
             showOverflowTooltip: true,
             align: 'center',
+            formatter: (row) => {
+              if (row.lossNumberUnqualified) {
+                return (
+                  row.lossNumberUnqualified + this.sampleList[0]?.measureUnit ||
+                  ''
+                );
+              }
+            },
             minWidth: 110
           },
           {
@@ -893,11 +929,27 @@
             label: '留样数(合格品)',
             showOverflowTooltip: true,
             align: 'center',
+            formatter: (row) => {
+              if (row.retainedSampleQuantity) {
+                return (
+                  row.retainedSampleQuantity +
+                    this.sampleList[0]?.measureUnit || ''
+                );
+              }
+            },
             minWidth: 110
           },
           {
             prop: 'retainedSampleUnqualified',
             label: '留样数(不合格品)',
+            formatter: (row) => {
+              if (row.retainedSampleUnqualified) {
+                return (
+                  row.retainedSampleUnqualified +
+                    this.sampleList[0]?.measureUnit || ''
+                );
+              }
+            },
             showOverflowTooltip: true,
             align: 'center',
             minWidth: 110
@@ -946,6 +998,13 @@
             label: '样品数',
             showOverflowTooltip: true,
             align: 'center',
+            formatter: (row) => {
+              if (row.sampleQuantity) {
+                return (
+                  row.sampleQuantity + this.sampleList[0]?.measureUnit || ''
+                );
+              }
+            },
             minWidth: 110
           },
           {
@@ -953,6 +1012,14 @@
             label: '样品合格数',
             showOverflowTooltip: true,
             align: 'center',
+            formatter: (row) => {
+              if (row.sampleQualifiedNumber) {
+                return (
+                  row.sampleQualifiedNumber + this.sampleList[0]?.measureUnit ||
+                  ''
+                );
+              }
+            },
             minWidth: 110
           },
           {
@@ -960,6 +1027,14 @@
             label: '样品不合格数',
             showOverflowTooltip: true,
             align: 'center',
+            formatter: (row) => {
+              if (row.sampleNoQualifiedNumber) {
+                return (
+                  row.sampleNoQualifiedNumber +
+                    this.sampleList[0]?.measureUnit || ''
+                );
+              }
+            },
             minWidth: 110
           },
           {
@@ -967,6 +1042,11 @@
             label: '损耗数(合格品)',
             showOverflowTooltip: true,
             align: 'center',
+            formatter: (row) => {
+              if (row.lossNumber) {
+                return row.lossNumber + this.sampleList[0]?.measureUnit || '';
+              }
+            },
             minWidth: 110
           },
           {
@@ -974,6 +1054,14 @@
             label: '损耗数(不合格品)',
             showOverflowTooltip: true,
             align: 'center',
+            formatter: (row) => {
+              if (row.lossNumberUnqualified) {
+                return (
+                  row.lossNumberUnqualified + this.sampleList[0]?.measureUnit ||
+                  ''
+                );
+              }
+            },
             minWidth: 110
           },
           {
@@ -981,11 +1069,27 @@
             label: '留样数(合格品)',
             showOverflowTooltip: true,
             align: 'center',
+            formatter: (row) => {
+              if (row.retainedSampleQuantity) {
+                return (
+                  row.retainedSampleQuantity +
+                    this.sampleList[0]?.measureUnit || ''
+                );
+              }
+            },
             minWidth: 110
           },
           {
             prop: 'retainedSampleUnqualified',
             label: '留样数(不合格品)',
+            formatter: (row) => {
+              if (row.retainedSampleUnqualified) {
+                return (
+                  row.retainedSampleUnqualified +
+                    this.sampleList[0]?.measureUnit || ''
+                );
+              }
+            },
             showOverflowTooltip: true,
             align: 'center',
             minWidth: 110

+ 34 - 16
src/views/inspectionWork/details.vue

@@ -167,28 +167,34 @@
             <el-row>
               <el-col :span="6" v-if="showArrange == '1'">
                 <el-form-item label="样品合格数:">
-                  <el-input
-                    disabled
-                    v-model="form.sampleQualifiedNumber"
-                  ></el-input>
+                  <el-input disabled v-model="form.sampleQualifiedNumber"
+                    ><template slot="append">{{
+                      sourceData2[0]?.measureUnit
+                    }}</template></el-input
+                  >
                 </el-form-item>
               </el-col>
               <el-col :span="6" v-if="showArrange == '1'">
                 <el-form-item label="样品不合格数:">
-                  <el-input
-                    disabled
-                    v-model="form.sampleNoQualifiedNumber"
-                  ></el-input>
+                  <el-input disabled v-model="form.sampleNoQualifiedNumber"
+                    ><template slot="append">{{
+                      sourceData2[0]?.measureUnit
+                    }}</template></el-input
+                  >
                 </el-form-item>
               </el-col>
               <el-col :span="6">
                 <el-form-item label="样品合格率:">
-                  <el-input v-model="form.sampleQualificationRate" disabled />
+                  <el-input v-model="form.sampleQualificationRate" disabled
+                    ><template slot="append">%</template></el-input
+                  >
                 </el-form-item>
               </el-col>
               <el-col :span="6">
                 <el-form-item label="样品不合格率:">
-                  <el-input v-model="form.sampleNoQualificationRate" disabled />
+                  <el-input v-model="form.sampleNoQualificationRate" disabled
+                    ><template slot="append">%</template></el-input
+                  >
                 </el-form-item>
               </el-col>
             </el-row>
@@ -203,7 +209,11 @@
               </el-col>
               <el-col :span="6">
                 <el-form-item label="样品数量:">
-                  <el-input disabled v-model="form.sampleQuantity" />
+                  <el-input disabled v-model="form.sampleQuantity"
+                    ><template slot="append">{{
+                      sourceData2[0]?.measureUnit
+                    }}</template></el-input
+                  >
                 </el-form-item>
               </el-col>
               <el-col :span="6">
@@ -224,13 +234,15 @@
                 </el-form-item>
               </el-col>
             </el-row>
-            <el-row v-if="form.recordingMethod == 1">
+            <el-row>
               <el-col :span="6">
                 <el-form-item
                   label="留样数(合格品):"
                   prop="retainedSampleQuantity"
                 >
-                  <el-input disabled :value="form.retainedSampleQuantity" />
+                  <el-input disabled :value="form.retainedSampleQuantity" ><template slot="append">{{
+                      sourceData2[0]?.measureUnit
+                    }}</template></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="6">
@@ -238,12 +250,16 @@
                   label="留样数(不合格品):"
                   prop="retainedSampleUnqualified"
                 >
-                  <el-input disabled :value="form.retainedSampleUnqualified" />
+                  <el-input disabled :value="form.retainedSampleUnqualified" ><template slot="append">{{
+                      sourceData2[0]?.measureUnit
+                    }}</template></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="6">
                 <el-form-item label="损耗数(合格品):" prop="lossNumber">
-                  <el-input disabled :value="form.lossNumber" />
+                  <el-input disabled :value="form.lossNumber" ><template slot="append">{{
+                      sourceData2[0]?.measureUnit
+                    }}</template></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="6">
@@ -251,7 +267,9 @@
                   label="损耗数(不合格品):"
                   prop="lossNumberUnqualified"
                 >
-                  <el-input disabled :value="form.lossNumberUnqualified" />
+                  <el-input disabled :value="form.lossNumberUnqualified" ><template slot="append">{{
+                      sourceData2[0]?.measureUnit
+                    }}</template></el-input>
                 </el-form-item>
               </el-col>
             </el-row>

+ 103 - 13
src/views/inspectionWork/edit.vue

@@ -57,7 +57,11 @@
                 disabled
                 v-model="form.sampleQualifiedNumber"
                 placeholder=""
-              ></el-input>
+              >
+                <template slot="append">{{
+                  sampleList[0]?.measureUnit
+                }}</template>
+              </el-input>
             </el-form-item>
           </el-col>
           <el-col :span="6">
@@ -68,7 +72,11 @@
                 disabled
                 v-model="form.sampleNoQualifiedNumber"
                 placeholder=""
-              ></el-input>
+              >
+                <template slot="append">{{
+                  sampleList[0]?.measureUnit
+                }}</template></el-input
+              >
             </el-form-item>
           </el-col>
           <el-col :span="6">
@@ -94,7 +102,7 @@
                 disabled
                 :value="getSampleQuantity('sampleQualifiedNumber')"
                 placeholder=""
-              ></el-input>
+              > <template slot="append">{{ sampleList[0]?.measureUnit }}</template></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="6">
@@ -105,7 +113,7 @@
                 disabled
                 :value="getSampleQuantity('sampleNoQualifiedNumber')"
                 placeholder=""
-              ></el-input>
+              > <template slot="append">{{ sampleList[0]?.measureUnit }}</template></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="6">
@@ -142,7 +150,7 @@
           </el-col>
           <el-col :span="6">
             <el-form-item label="样品数量:" prop="sampleQuantity">
-              <el-input type="number" disabled v-model="form.sampleQuantity" />
+              <el-input type="number" disabled v-model="form.sampleQuantity" > <template slot="append">{{ sampleList[0]?.measureUnit }}</template></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="6">
@@ -151,13 +159,21 @@
             </el-form-item>
           </el-col>
         </el-row>
-        <el-row v-if="form.recordingMethod == 1">
+        <el-row>
           <el-col :span="6">
             <el-form-item label="留样数(合格品):" prop="retainedSampleQuantity">
               <el-input
+                v-if="form.recordingMethod == 1"
                 disabled
                 :value="getSampleQuantity('retainedSampleQuantity')"
-              />
+              ><template slot="append">{{ sampleList[0]?.measureUnit }}</template></el-input>
+              <el-input
+                v-else
+                v-model="form.retainedSampleQuantity"
+                @input="
+                  inputValue('retainedSampleQuantity', 'sampleQualifiedNumber')
+                "
+              ><template slot="append">{{ sampleList[0]?.measureUnit }}</template></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="6">
@@ -166,14 +182,34 @@
               prop="retainedSampleUnqualified"
             >
               <el-input
+                v-if="form.recordingMethod == 1"
                 disabled
                 :value="getSampleQuantity('retainedSampleUnqualified')"
-              />
+              ><template slot="append">{{ sampleList[0]?.measureUnit }}</template></el-input>
+              <el-input
+                v-else
+                v-model="form.retainedSampleUnqualified"
+                @input="
+                  inputValue(
+                    'retainedSampleUnqualified',
+                    'sampleNoQualifiedNumber'
+                  )
+                "
+              ><template slot="append">{{ sampleList[0]?.measureUnit }}</template></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="6">
             <el-form-item label="损耗数(合格品):" prop="lossNumber">
-              <el-input disabled :value="getSampleQuantity('lossNumber')" />
+              <el-input
+                v-if="form.recordingMethod == 1"
+                disabled
+                :value="getSampleQuantity('lossNumber')"
+              ><template slot="append">{{ sampleList[0]?.measureUnit }}</template></el-input>
+              <el-input
+                v-else
+                v-model="form.lossNumber"
+                @input="inputValue('lossNumber', 'sampleQualifiedNumber')"
+              ><template slot="append">{{ sampleList[0]?.measureUnit }}</template></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="6">
@@ -182,9 +218,17 @@
               prop="lossNumberUnqualified"
             >
               <el-input
+                v-if="form.recordingMethod == 1"
                 disabled
                 :value="getSampleQuantity('lossNumberUnqualified')"
-              />
+              ><template slot="append">{{ sampleList[0]?.measureUnit }}</template></el-input>
+              <el-input
+                v-else
+                v-model="form.lossNumberUnqualified"
+                @input="
+                  inputValue('lossNumberUnqualified', 'sampleNoQualifiedNumber')
+                "
+              ><template slot="append">{{ sampleList[0]?.measureUnit }}</template></el-input>
             </el-form-item>
           </el-col>
         </el-row>
@@ -442,6 +486,22 @@
         deep: true,
         immediate: true
       },
+      'form.sampleQualifiedNumber': {
+        handler(newVal) {
+          if (this.form.recordingMethod == 2) {
+            [
+              'retainedSampleQuantity',
+              'lossNumber',
+              'retainedSampleUnqualified',
+              'lossNumberUnqualified'
+            ].forEach((item) => {
+              this.form[item] = 0;
+            });
+          }
+        },
+        deep: true,
+        immediate: true
+      },
       'form.qualityResults': {
         handler(newVal, oldVal) {
           if (!newVal && oldVal) {
@@ -481,6 +541,32 @@
           }
         });
       },
+      inputValue(key, totalKey) {
+        if (totalKey == 'sampleQualifiedNumber') {
+          console.log(this.form.retainedSampleQuantity);
+          console.log(this.form.lossNumber);
+          console.log(this.form.sampleQualifiedNumber);
+          if (
+            Number(this.form.retainedSampleQuantity || 0) +
+              Number(this.form.lossNumber || 0) >
+            this.form.sampleQualifiedNumber
+          ) {
+            this.$message.error('留样合格数与损耗合格数之和不能大于样品合格数');
+            this.form[key] = 0;
+          }
+        } else {
+          if (
+            Number(this.form.retainedSampleUnqualified) +
+              Number(this.form.lossNumberUnqualified) >
+            this.form.sampleNoQualifiedNumber
+          ) {
+            this.$message.error(
+              '留样不合格数与损耗不合格数之和不能大于样品不合格数'
+            );
+            this.form[key] = 0;
+          }
+        }
+      },
 
       //
       calculate(list) {
@@ -817,6 +903,8 @@
       //质检项报工
       inspectionProjectReport({ index, list }) {
         this.$nextTick(() => {
+
+          
           if (this.form.taskMonadInfo) {
             delete this.form.taskMonadInfo.remainingSampleCount;
           }
@@ -840,7 +928,8 @@
                 accessory: this.form.accessory,
                 qualityNames: this.form.qualityNames,
                 qualityTimeEnd: this.form.qualityTimeEnd,
-                remainingSampleCount: this.form.remainingSampleCount
+                remainingSampleCount: this.form.remainingSampleCount,
+                measureUnit:this.sampleList[0]?.measureUnit
               },
               row: this.form.taskMonadInfo || {},
               list
@@ -856,8 +945,9 @@
           ...this.schemeList.filter((item) => item.correlationId)
         ];
         data.type = 2;
-         this.form.remainingSampleCount= this.form.remainingSampleCount-data.sampleQuantity;
-        this.form.taskMonadInfo = data
+        this.form.remainingSampleCount =
+          this.form.remainingSampleCount - data.sampleQuantity;
+        this.form.taskMonadInfo = data;
         this.form.hours = data.hours;
       },
       // 切换检验方式为全检后生成样品

+ 54 - 1
src/views/inspectionWork/mixins/detailMixins.js

@@ -787,6 +787,7 @@ export default {
           showOverflowTooltip: true,
           slot: 'defaultValue'
         },
+
         {
           label: '执行方法',
           prop: 'executionMethod',
@@ -810,6 +811,13 @@ export default {
           prop: 'sampleQuantity',
           align: 'center',
           label: '样品数',
+          formatter: (row) => {
+            if (row.sampleQuantity) {
+              return (
+                row.sampleQuantity + this.sourceData2[0]?.measureUnit || ''
+              );
+            }
+          },
           showOverflowTooltip: true
         },
         {
@@ -817,6 +825,13 @@ export default {
           prop: 'qualifiedQuantity',
           align: 'center',
           label: '合格数',
+          formatter: (row) => {
+            if (row.qualifiedQuantity) {
+              return (
+                row.qualifiedQuantity + this.sourceData2[0]?.measureUnit || ''
+              );
+            }
+          },
           showOverflowTooltip: true
         },
         {
@@ -824,6 +839,13 @@ export default {
           prop: 'noQualifiedQuantity',
           align: 'center',
           label: '不合格数',
+          formatter: (row) => {
+            if (row.noQualifiedQuantity) {
+              return (
+                row.noQualifiedQuantity + this.sourceData2[0]?.measureUnit || ''
+              );
+            }
+          },
           showOverflowTooltip: true
         },
         {
@@ -831,6 +853,11 @@ export default {
           prop: 'lossNumber',
           align: 'center',
           label: '损耗数(合格品)',
+          formatter: (row) => {
+            if (row.lossNumber) {
+              return row.lossNumber + this.sourceData2[0]?.measureUnit || '';
+            }
+          },
           showOverflowTooltip: true
         },
         {
@@ -838,6 +865,14 @@ export default {
           prop: 'lossNumberUnqualified',
           align: 'center',
           label: '损耗数(不合格品)',
+          formatter: (row) => {
+            if (row.lossNumberUnqualified) {
+              return (
+                row.lossNumberUnqualified + this.sourceData2[0]?.measureUnit ||
+                ''
+              );
+            }
+          },
           showOverflowTooltip: true
         },
         {
@@ -845,6 +880,14 @@ export default {
           prop: 'retainedSampleQuantity',
           align: 'center',
           label: '留样数(合格品)',
+          formatter: (row) => {
+            if (row.retainedSampleQuantity) {
+              return (
+                row.retainedSampleQuantity + this.sourceData2[0]?.measureUnit ||
+                ''
+              );
+            }
+          },
           showOverflowTooltip: true
         },
         {
@@ -852,6 +895,14 @@ export default {
           prop: 'retainedSampleUnqualified',
           align: 'center',
           label: '留样数(不合格品)',
+          formatter: (row) => {
+            if (row.retainedSampleUnqualified) {
+              return (
+                row.retainedSampleUnqualified +
+                  this.sourceData2[0]?.measureUnit || ''
+              );
+            }
+          },
           showOverflowTooltip: true
         },
         {
@@ -975,7 +1026,9 @@ export default {
       });
       this.tableData.forEach((item, index) => {
         this.keyArr.forEach((key) => {
-          this.form[key] += Number(item[key]) || 0;
+          this.form[key] = this.form[key] * 100;
+          this.form[key] += Number(item[key] * 100) || 0;
+          this.form[key] = this.form[key] / 100;
         });
       });
     }

+ 3 - 8
src/views/sample/sampleRecord/components/addSample.vue

@@ -132,10 +132,7 @@
         :selection.sync="selection"
       >
         <template v-slot:toolbar>
-          累计请样数量:{{ workSampleQuantity
-          }}{{
-            form.conditionType == '1' ? tableList[0]?.measureUnit : form.unit
-          }}
+          累计请样数量:{{ workSampleQuantity }}{{ sampleList[0]?.measureUnit }}
         </template>
       </ele-pro-table>
       <header-title title="请样信息"> </header-title>
@@ -305,7 +302,7 @@
         type="primary"
         @click="save('submit')"
         v-loading="loading"
-        v-if="type != 'view'&&isSamplingApproval==1"
+        v-if="type != 'view' && isSamplingApproval == 1"
         >提交</el-button
       >
 
@@ -1239,13 +1236,11 @@
               //取整样
               if (data.conditionType == 1) {
                 data.quantity = data.portion;
-
-                data.measureUnit = this.tableList[0].measureUnit;
               } else {
-                data.measureUnit = data.unit;
                 data.copies = data.portion;
               }
             }
+            data.measureUnit = this.sampleList[0].measureUnit;
             this.loading = true;
 
             api({