Kaynağa Gözat

Merge branch 'master' of http://110.41.163.243:9980/kd-aiot/kd-aiot-frontend-wt

liujt 1 hafta önce
ebeveyn
işleme
00fc9ac76d

+ 36 - 0
src/api/bpm/components/qualityReportApproval/qualityReportApproval.js

@@ -92,4 +92,40 @@ export async function generateReport(data) {
     return res.data.data;
   }
   return Promise.reject(new Error(res.data.message));
+}
+
+/**
+ * 分页
+ */
+export async function getBadnameList(data) {
+  let par = new URLSearchParams(data);
+  const res = await request.get(`/qms/badname/page?` + par, {});
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}
+
+/**
+ * 分页
+ */
+export async function getBadtypeList(data) {
+  let par = new URLSearchParams(data);
+  const res = await request.get(`/qms/badtype/page?` + par, {});
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
+}
+
+/**
+ * 分页
+ */
+export async function getReasontypeList(data) {
+  let par = new URLSearchParams(data);
+  const res = await request.get(`/qms/reasontype/page?` + par, {});
+  if (res.data.code == 0) {
+    return res.data.data;
+  }
+  return Promise.reject(new Error(res.data.message));
 }

+ 7 - 7
src/views/bpm/handleTask/components/qualityReportApproval/detailDialog.vue

@@ -38,7 +38,7 @@
         <el-select
           v-model="basicInfoData.qualityResults"
           placeholder="请选择"
-          style="width: 140px"
+          style="width: 120px"
           @change="selectResult"
         >
           <el-option label="整单合格" :value="1" />
@@ -51,7 +51,7 @@
         <el-input
           v-model="basicInfoData.qualifiedNumber"
           placeholder="合格数"
-          style="width: 120px"
+          style="width: 110px"
           disabled
         ></el-input>
 
@@ -60,35 +60,35 @@
           v-model="basicInfoData.noQualifiedNumber"
           placeholder="不合格数"
           disabled
-          style="width: 120px"
+          style="width: 110px"
         ></el-input>
         留样数(合格):
         <el-input
           v-model="basicInfoData.retainedSampleQuantity"
           placeholder=" "
           disabled
-          style="width: 120px"
+          style="width: 80px"
         ></el-input>
         留样数(不合格):
         <el-input
           v-model="basicInfoData.retainedSampleUnqualified"
           placeholder=" "
           disabled
-          style="width: 120px"
+          style="width: 80px"
         ></el-input>
         消耗数(合格):
         <el-input
           v-model="basicInfoData.lossNumber"
           placeholder=" "
           disabled
-          style="width: 120px"
+          style="width: 80px"
         ></el-input>
         消耗数(不合格):
         <el-input
           v-model="basicInfoData.lossNumberUnqualified"
           placeholder=" "
           disabled
-          style="width: 120px"
+          style="width: 80px"
         ></el-input>
       </div>
     </div>

+ 7 - 4
src/views/bpm/handleTask/components/qualityReportApproval/submit.vue

@@ -121,10 +121,13 @@
             // userId: userInfo?.id,
             pass: !!status
           }
-        });
-        this.$emit('handleAudit', {
-          status,
-          title: status === 0 ? '驳回' : ''
+        }).then((res) => {
+          if (res.data.code == 0) {
+            this.$emit('handleAudit', {
+              status,
+              title: status === 0 ? '驳回' : ''
+            });
+          }
         });
       },
       async rejectTask(status) {

+ 116 - 9
src/views/bpm/handleTask/components/qualityReportApproval/unqualifiedProduct.vue

@@ -4,11 +4,10 @@
       <ele-pro-table
         ref="table"
         :columns="columns"
-       :datasource="poList.filter((item) => item.disposalStatus != 2)"
+        :datasource="poList.filter((item) => item.disposalStatus != 2)"
         :selection.sync="selection"
         :needPage="false"
         row-key="id"
-        
       >
         <!-- 操作列 -->
         <template v-slot:toolbar v-if="showBtn">
@@ -36,6 +35,71 @@
             </template>
           </el-popconfirm>
         </template>
+
+        <template v-slot:badTypeName="{ row, $index }">
+          <el-select
+            v-model="row.badTypeId"
+            placeholder="请选择不良类型"
+            size="small"
+            style="width: 100%"
+            remote
+            filterable
+            clearable
+          >
+            <el-option
+              v-for="item in badTypeList"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+              @click="row.badTypeName = item.name"
+            >
+            </el-option>
+          </el-select>
+        </template>
+
+        <template v-slot:badNameName="{ row, $index }">
+          <el-select
+            v-model="row.badNameId"
+            placeholder="请选择不良名称"
+            size="small"
+            style="width: 100%"
+            remote
+            filterable
+            clearable
+          >
+            <el-option
+              v-for="item in badNameList"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+              @click="row.badNameName = item.name"
+            >
+            </el-option>
+          </el-select>
+        </template>
+        <template v-slot:reasonTypeName="{ row, $index }">
+          <el-select
+            v-model="row.reasonTypeId"
+            placeholder="请选择原因类型"
+            size="small"
+            style="width: 100%"
+            remote
+            filterable
+            clearable
+          >
+            <el-option
+              v-for="item in reasonTypeList"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+              @click="row.reasonTypeName = item.name"
+            >
+            </el-option>
+          </el-select>
+        </template>
+        <template v-slot:unqualifiedReason="{ row, $index }">
+          <el-input v-model="row.unqualifiedReason"></el-input>
+        </template>
       </ele-pro-table>
     </el-card>
 
@@ -316,7 +380,10 @@
   import {
     queryQualitySamplContent,
     queryQualityInventory,
-    getById
+    getById,
+    getBadnameList,
+    getBadtypeList,
+    getReasontypeList
   } from '@/api/bpm/components/qualityReportApproval/qualityReportApproval';
   export default {
     components: {
@@ -454,7 +521,10 @@
         retainedSampleQuantity: 0,
         retainedSampleUnqualified: 0,
         lossNumber: 0,
-        lossNumberUnqualified: 0
+        lossNumberUnqualified: 0,
+        badTypeList: [],
+        badNameList: [],
+        reasonTypeList: []
       };
     },
     computed: {
@@ -598,22 +668,26 @@
           {
             prop: 'badTypeName',
             label: '不良类型',
+            slot: 'badTypeName',
             width: '180',
             align: 'center'
           },
           {
             prop: 'badNameName',
+            slot: 'badNameName',
             label: '不良名称',
             width: '180',
             align: 'center'
           },
           {
+            slot: 'reasonTypeName',
             prop: 'reasonTypeName',
             label: '原因类型',
             width: '180',
             align: 'center'
           },
           {
+            slot: 'unqualifiedReason',
             prop: 'unqualifiedReason',
             label: '原因',
             width: '180',
@@ -656,8 +730,36 @@
         return { 0: '待处置', 1: '处置中', 2: '处置完成' };
       }
     },
-
+    created() {
+      this.getBadTypeList();
+      this.getBadNameList();
+      this.getReasonTypeList();
+    },
     methods: {
+      // 查询不良类型
+      async getBadTypeList() {
+        const res = await getBadtypeList({
+          pageNum: 1,
+          size: 999
+        });
+        this.badTypeList = res.list;
+      },
+      // 查询不良名称
+      async getBadNameList() {
+        const res = await getBadnameList({
+          pageNum: 1,
+          size: 999
+        });
+        this.badNameList = res.list;
+      },
+      // 查询原因类型
+      async getReasonTypeList() {
+        const res = await getReasontypeList({
+          pageNum: 1,
+          size: 999
+        });
+        this.reasonTypeList = res.list;
+      },
       async init(row) {
         this.qualityType = row.qualityType;
         this.id = row.id;
@@ -856,14 +958,19 @@
           const processedList = this.sampleList.filter(
             (item) => item.disposeType == 6 || item.disposeType == 7
           );
-          console.log(processedList.filter((item) => item.disposeType == 6),'qwewqe')
-          console.log(processedList.filter((item) => item.disposeType == 7),'123123')
+          console.log(
+            processedList.filter((item) => item.disposeType == 6),
+            'qwewqe'
+          );
+          console.log(
+            processedList.filter((item) => item.disposeType == 7),
+            '123123'
+          );
           processedList.forEach((sampleItem) => {
             if (sampleItem.disposeType == 6) {
               sampleItem.qualityResults == 2
                 ? (this.retainedSampleUnqualified += sampleItem.measureQuantity)
-                : (this.retainedSampleQuantity +=
-                    sampleItem.measureQuantity);
+                : (this.retainedSampleQuantity += sampleItem.measureQuantity);
             } else {
               sampleItem.qualityResults == 2
                 ? (this.lossNumberUnqualified += sampleItem.measureQuantity)