8521520123jsy 1 год назад
Родитель
Сommit
5ab81edd3d
2 измененных файлов с 549 добавлено и 230 удалено
  1. 195 48
      src/views/inspectionWork/components/baseInfo.vue
  2. 354 182
      src/views/inspectionWork/edit.vue

+ 195 - 48
src/views/inspectionWork/components/baseInfo.vue

@@ -24,10 +24,15 @@
             :disabled="btnType == 'detail'"
             :disabled="btnType == 'detail'"
           ></DictSelection>
           ></DictSelection>
         </el-form-item>
         </el-form-item>
-      </el-col> -->
+      </el-col>-->
       <el-col :span="6">
       <el-col :span="6">
         <el-form-item label="产品名称:" prop="productName">
         <el-form-item label="产品名称:" prop="productName">
-          <el-input v-model="form.productName" @click.native="addProduct" readonly placeholder="请选择" />
+          <el-input
+            v-model="form.productName"
+            @click.native="addProduct"
+            readonly
+            placeholder="请选择"
+          />
         </el-form-item>
         </el-form-item>
       </el-col>
       </el-col>
       <el-col :span="6">
       <el-col :span="6">
@@ -65,29 +70,54 @@
     </el-row>
     </el-row>
     <div style="text-align: right;margin-bottom: 22px;">
     <div style="text-align: right;margin-bottom: 22px;">
       <div @click="toggleExpand">
       <div @click="toggleExpand">
-        <div v-if="isExpanded"><i class="el-icon-arrow-up"></i>收起</div>
-        <div v-if="!isExpanded"><i class="el-icon-arrow-down"></i>展开更多</div>
+        <div v-if="isExpanded">
+          <i class="el-icon-arrow-up"></i>收起
+        </div>
+        <div v-if="!isExpanded">
+          <i class="el-icon-arrow-down"></i>展开更多
+        </div>
       </div>
       </div>
     </div>
     </div>
     <div v-if="isExpanded">
     <div v-if="isExpanded">
       <el-row>
       <el-row>
         <el-col :span="6">
         <el-col :span="6">
           <el-form-item label="质检部门" prop="groupId">
           <el-form-item label="质检部门" prop="groupId">
-            <deptSelect :disabled="btnType == 'detail'" v-model="form.groupId" @changeGroup="searchDeptNodeClick" />
+            <deptSelect
+              :disabled="btnType == 'detail'"
+              v-model="form.groupId"
+              @changeGroup="searchDeptNodeClick"
+            />
           </el-form-item>
           </el-form-item>
         </el-col>
         </el-col>
         <el-col :span="6">
         <el-col :span="6">
           <el-form-item label="质检人" prop="qualityId">
           <el-form-item label="质检人" prop="qualityId">
-            <el-select :disabled="btnType == 'detail'" v-model="form.qualityId" @change="changeExecutor" size="small"
-              style="width: 100%" filterable>
-              <el-option v-for="item in executorList" :key="item.id" :value="item.id" :label="item.name"></el-option>
+            <el-select
+              :disabled="btnType == 'detail'"
+              v-model="form.qualityId"
+              @change="changeExecutor"
+              size="small"
+              style="width: 100%"
+              filterable
+            >
+              <el-option
+                v-for="item in executorList"
+                :key="item.id"
+                :value="item.id"
+                :label="item.name"
+              ></el-option>
             </el-select>
             </el-select>
           </el-form-item>
           </el-form-item>
         </el-col>
         </el-col>
         <el-col :span="6">
         <el-col :span="6">
           <el-form-item label="质检时间:" prop="qualityTime">
           <el-form-item label="质检时间:" prop="qualityTime">
-            <el-date-picker class="w100" v-model="form.qualityTime" type="date" value-format="yyyy-MM-dd"
-              :disabled="btnType == 'detail'" placeholder="请选择"></el-date-picker>
+            <el-date-picker
+              class="w100"
+              v-model="form.qualityTime"
+              type="date"
+              value-format="yyyy-MM-dd"
+              :disabled="btnType == 'detail'"
+              placeholder="请选择"
+            ></el-date-picker>
           </el-form-item>
           </el-form-item>
         </el-col>
         </el-col>
         <el-col :span="6">
         <el-col :span="6">
@@ -99,12 +129,26 @@
       <el-row>
       <el-row>
         <el-col :span="6">
         <el-col :span="6">
           <el-form-item label="合格数:" prop="qualifiedNumber">
           <el-form-item label="合格数:" prop="qualifiedNumber">
-            <el-input v-model="form.qualifiedNumber" placeholder="请输入"></el-input>
+            <el-input
+              type="number"
+              :min="0"
+              @input="limitation('qualifiedNumber')"
+              @blur="quantityCalculation"
+              v-model="form.qualifiedNumber"
+              placeholder="请输入"
+            ></el-input>
           </el-form-item>
           </el-form-item>
         </el-col>
         </el-col>
         <el-col :span="6">
         <el-col :span="6">
           <el-form-item label="不合格数:" prop="noQualifiedNumber">
           <el-form-item label="不合格数:" prop="noQualifiedNumber">
-            <el-input v-model="form.noQualifiedNumber" placeholder="请输入"></el-input>
+            <el-input
+              type="number"
+              :min="0"
+              @input="limitation('noQualifiedNumber')"
+              @blur="quantityCalculation"
+              v-model="form.noQualifiedNumber"
+              placeholder="请输入"
+            ></el-input>
           </el-form-item>
           </el-form-item>
         </el-col>
         </el-col>
         <el-col :span="6">
         <el-col :span="6">
@@ -127,21 +171,36 @@
         <el-col :span="6">
         <el-col :span="6">
           <el-form-item label="检验标准" prop="inspectionStandards">
           <el-form-item label="检验标准" prop="inspectionStandards">
             <!-- 计量 计重 -->
             <!-- 计量 计重 -->
-            <el-select style="width: 100%" v-model="form.inspectionStandards" placeholder="请选择"
-              :disabled="parseInt(qualityType1) == 1 || parseInt(qualityType1) == 3">
-              <el-option v-for="item in inspectionStandardsList" :label="item.label" :value="item.value"
-                :key="item.value">
-              </el-option>
+            <el-select
+              style="width: 100%"
+              v-model="form.inspectionStandards"
+              placeholder="请选择"
+              :disabled="parseInt(qualityType1) == 1 || parseInt(qualityType1) == 3"
+            >
+              <el-option
+                v-for="item in inspectionStandardsList"
+                :label="item.label"
+                :value="item.value"
+                :key="item.value"
+              ></el-option>
             </el-select>
             </el-select>
           </el-form-item>
           </el-form-item>
         </el-col>
         </el-col>
         <el-col :span="6">
         <el-col :span="6">
           <el-form-item label="检验方式:" prop="qualityMode">
           <el-form-item label="检验方式:" prop="qualityMode">
             <!-- <DictSelection dictName="取样类型" v-model="form.qualityMode" :disabled="qualityType == 1"></DictSelection> -->
             <!-- <DictSelection dictName="取样类型" v-model="form.qualityMode" :disabled="qualityType == 1"></DictSelection> -->
-            <el-select style="width: 100%" v-model="form.qualityMode" placeholder="请选择"
-              :disabled="parseInt(qualityType1) == 1 || parseInt(qualityType1) == 3">
-              <el-option v-for="item in qualityModeList" :label="item.label" :value="item.value" :key="item.value">
-              </el-option>
+            <el-select
+              style="width: 100%"
+              v-model="form.qualityMode"
+              placeholder="请选择"
+              :disabled="parseInt(qualityType1) == 1 || parseInt(qualityType1) == 3"
+            >
+              <el-option
+                v-for="item in qualityModeList"
+                :label="item.label"
+                :value="item.value"
+                :key="item.value"
+              ></el-option>
             </el-select>
             </el-select>
           </el-form-item>
           </el-form-item>
         </el-col>
         </el-col>
@@ -160,7 +219,7 @@
               </DictSelection>
               </DictSelection>
             </div>
             </div>
           </el-form-item>
           </el-form-item>
-        </el-col> -->
+        </el-col>-->
         <!-- <el-col :span="6" v-if="btnType != 'detail'">
         <!-- <el-col :span="6" v-if="btnType != 'detail'">
           <el-form-item label="取样数量:" prop="sampleNumber" :rules="{
           <el-form-item label="取样数量:" prop="sampleNumber" :rules="{
             required: form.qualityMode == 2 ? true : false,
             required: form.qualityMode == 2 ? true : false,
@@ -176,41 +235,88 @@
               </DictSelection>
               </DictSelection>
             </div>
             </div>
           </el-form-item>
           </el-form-item>
-        </el-col> -->
+        </el-col>-->
         <el-col :span="6">
         <el-col :span="6">
           <el-form-item label="合格证号:" prop="certificateNumber">
           <el-form-item label="合格证号:" prop="certificateNumber">
-            <el-input v-model="form.certificateNumber" :disabled="btnType == 'detail'" placeholder="请输入"></el-input>
+            <el-input
+              v-model="form.certificateNumber"
+              :disabled="btnType == 'detail'"
+              placeholder="请输入"
+            ></el-input>
           </el-form-item>
           </el-form-item>
         </el-col>
         </el-col>
       </el-row>
       </el-row>
       <el-row>
       <el-row>
         <el-col :span="6" v-if="parseInt(qualityType1) == 2">
         <el-col :span="6" v-if="parseInt(qualityType1) == 2">
           <el-form-item label="工艺路线:">
           <el-form-item label="工艺路线:">
-            <el-input @click.native="openVersion" clearable v-model="form.produceRoutingName"
-              :disabled="btnType == 'detail'" placeholder="请选择" />
+            <el-input
+              @click.native="openVersion"
+              clearable
+              v-model="form.produceRoutingName"
+              :disabled="btnType == 'detail'"
+              placeholder="请选择"
+            />
           </el-form-item>
           </el-form-item>
         </el-col>
         </el-col>
         <el-col :span="6" v-if="parseInt(qualityType1) == 2">
         <el-col :span="6" v-if="parseInt(qualityType1) == 2">
           <el-form-item label="工序:">
           <el-form-item label="工序:">
-            <el-select style="width: 100%" v-model="form.produceTaskId" placeholder="请选择" clearable
-              @change="produceTaskChange" :disabled="btnType == 'detail'">
-              <el-option v-for="item in produceTaskList" :key="item.id" :label="item.name" :value="item.id">
-              </el-option>
+            <el-select
+              style="width: 100%"
+              v-model="form.produceTaskId"
+              placeholder="请选择"
+              clearable
+              @change="produceTaskChange"
+              :disabled="btnType == 'detail'"
+            >
+              <el-option
+                v-for="item in produceTaskList"
+                :key="item.id"
+                :label="item.name"
+                :value="item.id"
+              ></el-option>
             </el-select>
             </el-select>
           </el-form-item>
           </el-form-item>
         </el-col>
         </el-col>
+        <!-- <el-col :span="6">
+          <el-form-item label="质检类型:">
+            <el-input
+              v-model="form.certificateNumber"
+              disabled
+              placeholder="请输入"
+            ></el-input>
+          </el-form-item>
+        </el-col> -->
+        <el-col :span="6">
+        <el-form-item label="质检类型:" prop="qualityType">
+          <DictSelection
+            dictName="质检计划类型"
+            v-model="form.qualityType"
+            disabled
+          ></DictSelection>
+        </el-form-item>
+      </el-col>
         <el-col :span="6">
         <el-col :span="6">
-          <el-form-item label="质检结果:" prop="qualityResults" v-if="form.qualityMode == 2">
-            <el-select v-model="form.qualityResults" placeholder="请选择" style="width: 100%"
-              :disabled="btnType == 'issued'" clearable>
-              <el-option label="合格" :value=1 />
-              <el-option label="不合格" :value=2 />
+          <!-- <el-form-item label="质检结果:" prop="qualityResults" v-if="form.qualityMode == 2"> -->
+          <el-form-item label="质检结果:" prop="qualityResults">
+            <el-select
+              v-model="form.qualityResults"
+              placeholder="请选择"
+              style="width: 100%"
+              :disabled="btnType == 'issued'"
+            >
+              <el-option label="合格" :value="1" />
+              <el-option label="不合格" :value="2" />
             </el-select>
             </el-select>
           </el-form-item>
           </el-form-item>
         </el-col>
         </el-col>
         <el-col :span="6">
         <el-col :span="6">
           <el-form-item label="备注:" prop="remark">
           <el-form-item label="备注:" prop="remark">
-            <el-input type="textarea" v-model="form.remark" placeholder="请输入" :disabled="btnType == 'issued'" />
+            <el-input
+              type="textarea"
+              v-model="form.remark"
+              placeholder="请输入"
+              :disabled="btnType == 'issued'"
+            />
           </el-form-item>
           </el-form-item>
         </el-col>
         </el-col>
         <el-col :span="8">
         <el-col :span="8">
@@ -234,7 +340,7 @@ import EquipmentDialog from './EquipmentDialog.vue';
 import { getUserPage } from '@/api/system/organization';
 import { getUserPage } from '@/api/system/organization';
 
 
 import { getProduceTaskList } from '@/api/aps';
 import { getProduceTaskList } from '@/api/aps';
-import { getByCode } from "@/api/system/dictionary-data";
+import { getByCode } from '@/api/system/dictionary-data';
 
 
 export default {
 export default {
   components: {
   components: {
@@ -246,7 +352,7 @@ export default {
   props: {
   props: {
     form: {
     form: {
       type: Object,
       type: Object,
-      default: () => { }
+      default: () => {}
     },
     },
     btnType: {
     btnType: {
       type: String,
       type: String,
@@ -259,7 +365,7 @@ export default {
     sampleList: {
     sampleList: {
       type: Array,
       type: Array,
       default: () => []
       default: () => []
-    },
+    }
   },
   },
   watch: {
   watch: {
     'form.qualityMode': {
     'form.qualityMode': {
@@ -281,9 +387,22 @@ export default {
           console.log('清空样品清单');
           console.log('清空样品清单');
           // this.$emit('table2');
           // this.$emit('table2');
         }
         }
-     },
-     immediate: false
+      },
+      immediate: false
     },
     },
+    // 新增 *** 监听合格率更改 质检结果
+    'form.qualificationRate': {
+      handler(newVal) {
+        if (newVal == '100.00%' || newVal == '100%' || newVal == '100.0%') {
+          this.$set(this.form, 'qualityResults', 1);
+        } else {
+          this.$set(this.form, 'qualityResults', 2);
+          // this.$emit('table2');
+        }
+      },
+      immediate: false,
+      deep: true
+    }
   },
   },
   data() {
   data() {
     return {
     return {
@@ -310,13 +429,15 @@ export default {
         ],
         ],
         qualityResults: [
         qualityResults: [
           { required: true, message: '请选择质检结果', trigger: 'change' }
           { required: true, message: '请选择质检结果', trigger: 'change' }
+        ],
+        inspectionStandards: [
+          { required: true, message: '请选择检验标准', trigger: 'change' }
         ]
         ]
       },
       },
       produceTaskList: [],
       produceTaskList: [],
       inspectionStandardsList: [],
       inspectionStandardsList: [],
       qualityModeList: [],
       qualityModeList: [],
       isExpanded: false
       isExpanded: false
-
     };
     };
   },
   },
   created() {
   created() {
@@ -324,6 +445,27 @@ export default {
     this.getQualityModeList('quality_method_code');
     this.getQualityModeList('quality_method_code');
   },
   },
   methods: {
   methods: {
+    // *** 只能输入大于0的数字
+    limitation(val) {
+      this.form[val] =
+        this.form[val].replace(/[^\d]/g, '').replace(/^0+/, '') || '0';
+    },
+    // *** 计算合格数 不合格数
+    quantityCalculation() {
+      let qualifiedNumber = this.form.qualifiedNumber - 0;
+      let noQualifiedNumber = this.form.noQualifiedNumber - 0;
+      let total = qualifiedNumber + noQualifiedNumber;
+      let passRate = ((qualifiedNumber / total) * 100).toFixed(2);
+      let failureRate = ((noQualifiedNumber / total) * 100).toFixed(2);
+      this.form.qualificationRate = passRate + '%';
+      this.form.noQualificationRate = failureRate + '%';
+      if (total != this.form.total) {
+        this.$message.warning('合格数加上不合格数需要等于总数量');
+        return false;
+      }
+      return true;
+    },
+
     toggleExpand() {
     toggleExpand() {
       this.isExpanded = !this.isExpanded;
       this.isExpanded = !this.isExpanded;
     },
     },
@@ -419,7 +561,7 @@ export default {
         }
         }
         const res = await getUserPage(data);
         const res = await getUserPage(data);
         this.executorList = res.list;
         this.executorList = res.list;
-      } catch (error) { }
+      } catch (error) {}
     },
     },
     // 人员选择
     // 人员选择
     changeExecutor(val) {
     changeExecutor(val) {
@@ -443,11 +585,16 @@ export default {
     },
     },
 
 
     //更新合格率
     //更新合格率
-    updateQualificationRate(qualifiedNumber,noQualifiedNumber,qualificationRate, noQualificationRate) {
-        this.form.qualifiedNumber = qualifiedNumber;
-        this.form.noQualifiedNumber = noQualifiedNumber;
-        this.form.qualificationRate = qualificationRate + '%';
-        this.form.noQualificationRate = noQualificationRate + '%';
+    updateQualificationRate(
+      qualifiedNumber,
+      noQualifiedNumber,
+      qualificationRate,
+      noQualificationRate
+    ) {
+      this.form.qualifiedNumber = qualifiedNumber;
+      this.form.noQualifiedNumber = noQualifiedNumber;
+      this.form.qualificationRate = qualificationRate + '%';
+      this.form.noQualificationRate = noQualificationRate + '%';
     }
     }
   }
   }
 };
 };

Разница между файлами не показана из-за своего большого размера
+ 354 - 182
src/views/inspectionWork/edit.vue


Некоторые файлы не были показаны из-за большого количества измененных файлов