From 6816ee4cbdaa253c2cd452e0e582a351860ffbe7 Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期一, 07 四月 2025 16:35:36 +0800
Subject: [PATCH] 成品检验项分配人员

---
 src/views/business/materialOrderComponents/materialOrder/dataLookVisible.vue |   64 +++---
 src/views/CNAS/resourceDemand/device/component/management.vue                |    8 
 src/views/business/productOrder/components/issuedDialog.vue                  |  100 ++++++++++
 src/views/statisticalCharts/itemInspectionAnalysis/index.vue                 |  156 ++++++---------
 src/api/business/rawMaterialOrder.js                                         |    9 
 src/views/business/productOrder/index.vue                                    |  126 ++++++-----
 src/views/structural/capabilityAndLaboratory/capability/index.vue            |    2 
 src/views/business/inspectionTask/components/EditInspectionItem.vue          |   42 ---
 src/views/business/inspectionTask/index.vue                                  |   93 ++++----
 9 files changed, 334 insertions(+), 266 deletions(-)

diff --git a/src/api/business/rawMaterialOrder.js b/src/api/business/rawMaterialOrder.js
index 76ee2b2..f5cbd4b 100644
--- a/src/api/business/rawMaterialOrder.js
+++ b/src/api/business/rawMaterialOrder.js
@@ -295,3 +295,12 @@
     params: query,
   });
 }
+
+// 妫�楠岄」鍒嗛厤浜哄憳
+export function batchUpdateInsProductCheckUser(query) {
+  return request({
+    url: "/insOrder/batchUpdateInsProductCheckUser",
+    method: "post",
+    data: query,
+  });
+}
diff --git a/src/views/CNAS/resourceDemand/device/component/management.vue b/src/views/CNAS/resourceDemand/device/component/management.vue
index 07ac2d6..42ff186 100644
--- a/src/views/CNAS/resourceDemand/device/component/management.vue
+++ b/src/views/CNAS/resourceDemand/device/component/management.vue
@@ -490,10 +490,10 @@
 				{ label: "鎵�灞為儴闂�", prop: "laboratoryName" },
 				{ label: "妫�楠岄」鐩�", prop: "insProductItem" },
 				{ label: "鏍″噯鏈嶅姟鏈烘瀯", prop: "calibrationServices" },
-				{ label: "鏈�杩戞牎鍑嗘棩鏈�", prop: "lastCalibrationDateTwo" },
-				{ label: "鏈�杩戞牳鏌ユ棩鏈�", prop: "lastCalibrationDate" },
-				{ label: "涓嬫鏍″噯鏃ユ湡", prop: "nextCalibrationDateTwo" },
-				{ label: "涓嬫鏍告煡鏃ユ湡", prop: "nextCalibrationDate" },
+				{ label: "鏈�杩戞牎鍑嗘棩鏈�", prop: "lastCalibrationDate" },
+				{ label: "鏈�杩戞牳鏌ユ棩鏈�", prop: "lastCalibrationDateTwo" },
+				{ label: "涓嬫鏍″噯鏃ユ湡", prop: "nextCalibrationDate" },
+				{ label: "涓嬫鏍告煡鏃ユ湡", prop: "nextCalibrationDateTwo" },
 				{
 					label: "璁惧鍒嗙被", prop: "largeCategory", dataType: "tag",
 					formatData: (params) => {
diff --git a/src/views/business/inspectionTask/components/EditInspectionItem.vue b/src/views/business/inspectionTask/components/EditInspectionItem.vue
index fc13ce9..f2e9a21 100644
--- a/src/views/business/inspectionTask/components/EditInspectionItem.vue
+++ b/src/views/business/inspectionTask/components/EditInspectionItem.vue
@@ -1,11 +1,6 @@
 <template>
   <div>
-    <el-dialog
-      :visible.sync="editInspectionDia"
-      title="淇敼妫�楠岄」"
-      width="80%"
-      @close="editInspectionDia = false"
-    >
+    <el-dialog :visible.sync="editInspectionDia" title="淇敼妫�楠岄」" width="80%" @close="editInspectionDia = false">
       <div>
         <el-form :model="entity" :inline="true">
           <el-form-item label="妫�楠岄」" prop="outputWorkTime">
@@ -16,14 +11,8 @@
           </el-form-item>
         </el-form>
       </div>
-      <lims-table
-        :column="editColumn"
-        :table-data="editTableData"
-        :table-loading="editLoading"
-        :page="page"
-        height="560"
-        @pagination="pagination"
-      >
+      <lims-table :column="editColumn" :table-data="editTableData" :table-loading="editLoading" :page="page"
+        height="560" @pagination="pagination">
       </lims-table>
     </el-dialog>
     <el-dialog :visible.sync="editAskDia" title="淇敼" width="50%">
@@ -35,30 +24,16 @@
           <el-input v-model="editForm.tell" type="textarea"></el-input>
         </el-form-item>
         <el-form-item label="妫�楠屽�肩被鍨�">
-          <el-select
-            v-model="editForm.inspectionValueType"
-            clearable
-            placeholder="璇烽�夋嫨"
-            size="small"
-            style="width: 100%"
-          >
-            <el-option
-              v-for="dict in inspectionValueType"
-              :key="dict.value"
-              :label="dict.label"
-              :value="dict.value"
-            ></el-option>
+          <el-select v-model="editForm.inspectionValueType" clearable placeholder="璇烽�夋嫨" size="small"
+            style="width: 100%">
+            <el-option v-for="dict in inspectionValueType" :key="dict.value" :label="dict.label"
+              :value="dict.value"></el-option>
           </el-select>
         </el-form-item>
       </el-form>
       <span slot="footer" class="dialog-footer">
         <el-button @click="editAskDia = false">鍙� 娑�</el-button>
-        <el-button
-          :loading="handleEditLoading"
-          type="primary"
-          @click="handleEdit"
-          >纭� 瀹�</el-button
-        >
+        <el-button :loading="handleEditLoading" type="primary" @click="handleEdit">纭� 瀹�</el-button>
       </span>
     </el-dialog>
   </div>
@@ -137,6 +112,7 @@
           minWidth: "120px",
           prop: "model",
         },
+        { label: "妫�楠屼汉", prop: "checkUserName" },
         {
           dataType: "action",
           width: "80px",
diff --git a/src/views/business/inspectionTask/index.vue b/src/views/business/inspectionTask/index.vue
index 6d01292..98a7ed7 100644
--- a/src/views/business/inspectionTask/index.vue
+++ b/src/views/business/inspectionTask/index.vue
@@ -5,12 +5,12 @@
         <el-form :model="queryParams" ref="queryParams" size="small" :inline="true">
           <el-form-item label="濮旀墭缂栧彿" prop="entrustCode">
             <el-input v-model="queryParams.entrustCode" clearable placeholder="璇疯緭鍏�" size="small"
-                      @keyup.enter.native="refreshTable()"></el-input>
+              @keyup.enter.native="refreshTable()"></el-input>
           </el-form-item>
           <el-form-item label="妫�楠岀姸鎬�" prop="insState">
             <el-select v-model="queryParams.insState" size="small" style="width: 100%" @change="refreshTable()">
               <el-option v-for="(a, i) in dict.type.inspection_task_state" :key="i" :label="a.label"
-                         :value="a.value"></el-option>
+                :value="a.value"></el-option>
             </el-select>
           </el-form-item>
           <el-form-item>
@@ -30,7 +30,7 @@
             </ul>
             <div>
               <el-checkbox v-model="alone" class="view-self-checkbox"
-                           @change="changeCheckBox"><span>鎴戠殑浠诲姟</span></el-checkbox>
+                @change="changeCheckBox"><span>鎴戠殑浠诲姟</span></el-checkbox>
             </div>
           </div>
           <div class="center-title">
@@ -39,27 +39,24 @@
           </div>
         </div>
         <lims-table :tableData="tableData" :column="column" :page="page" :tableLoading="tableLoading"
-          :rowClassName="rowClassName" :height="'calc(100vh - 300px)'" @pagination="pagination"
-          key="tableData0">
+          :rowClassName="rowClassName" :height="'calc(100vh - 300px)'" @pagination="pagination" key="tableData0">
           <div slot="action" slot-scope="scope">
             <el-button size="small" type="text" @click="handleDataLook(scope.row)">鏁版嵁鏌ョ湅</el-button>
             <el-button type="text" size="small"
-                       :disabled="(scope.row.userName == null || scope.row.insState == 3 || scope.row.insState == 5) && checkPermi(['update:product:onPlan'])"
-                       @click="editInspection(scope.row)">淇敼妫�楠屽��</el-button>
+              :disabled="(scope.row.userName == null || scope.row.insState == 3 || scope.row.insState == 5) && checkPermi(['update:product:onPlan'])"
+              @click="editInspection(scope.row)">淇敼妫�楠屽��</el-button>
             <el-button type="text" size="small" :disabled="(
-                  scope.row.userName == null ||
-                  scope.row.insState == 3 ||
-                  scope.row.insState == 5 ||
-                  (scope.row.userName && !scope.row.userName.includes(nickName))
-                )"
-                       @click="handleInspection(scope.row)">妫�楠�</el-button>
+              scope.row.userName == null ||
+              scope.row.insState == 3 ||
+              scope.row.insState == 5 ||
+              (scope.row.userName && !scope.row.userName.includes(nickName))
+            )" @click="handleInspection(scope.row)">妫�楠�</el-button>
             <el-button type="text" size="small" :disabled="(
-                  scope.row.userName == null ||
-                  scope.row.insState == 5 ||
-                  scope.row.insState == 3 ||
-                  (scope.row.userName && !scope.row.userName.includes(nickName))
-                )"
-                       @click="handleConnect(scope.row)">浜ゆ帴</el-button>
+              scope.row.userName == null ||
+              scope.row.insState == 5 ||
+              scope.row.insState == 3 ||
+              (scope.row.userName && !scope.row.userName.includes(nickName))
+            )" @click="handleConnect(scope.row)">浜ゆ帴</el-button>
             <el-button type="text" size="small" @click="viewInspectInfo(scope.row)">鍘熷璁板綍</el-button>
             <el-popover placement="bottom" trigger="hover" style="margin-left: 6px">
               <template #reference>
@@ -67,23 +64,22 @@
               </template>
               <div>
                 <el-button :disabled="(scope.row.insState != 3 || scope.row.userName == null ||
-                  (scope.row.userName && !scope.row.userName.includes(nickName)))" style="margin-left: 10px" type="text" size="small" @click="download(scope.row)">涓嬭浇鎶ュ憡</el-button>
-                <el-upload ref='upload'
-                           :action="javaApi + '/insReport/inReport'"
-                           :before-upload="beforeUpload"
-                           :data="{id: scope.row.insReportId}"
-                           :headers="uploadHeader" :on-error="onError"
-                           :on-success="handleSuccessUp"
-                           :show-file-list="false"
-                           style="display: inline;margin: 0 6px"
-                           accept='.jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar'>
+                  (scope.row.userName && !scope.row.userName.includes(nickName)))" style="margin-left: 10px"
+                  type="text" size="small" @click="download(scope.row)">涓嬭浇鎶ュ憡</el-button>
+                <el-upload ref='upload' :action="javaApi + '/insReport/inReport'" :before-upload="beforeUpload"
+                  :data="{ id: scope.row.insReportId }" :headers="uploadHeader" :on-error="onError"
+                  :on-success="handleSuccessUp" :show-file-list="false" style="display: inline;margin: 0 6px"
+                  accept='.jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar'>
                   <el-button :disabled="(scope.row.insState != 3 || scope.row.userName == null ||
-                  (scope.row.userName && !scope.row.userName.includes(nickName)))" size="small" type="text">涓婁紶</el-button>
+                    (scope.row.userName && !scope.row.userName.includes(nickName)))" size="small"
+                    type="text">涓婁紶</el-button>
                 </el-upload>
                 <el-button :disabled="(scope.row.insState != 3 || scope.row.userName == null ||
-                  (scope.row.userName && !scope.row.userName.includes(nickName)))" type="text" size="small" @click="handleRestore(scope.row)">杩樺師</el-button>
+                  (scope.row.userName && !scope.row.userName.includes(nickName)))" type="text" size="small"
+                  @click="handleRestore(scope.row)">杩樺師</el-button>
                 <el-button :disabled="(scope.row.insState != 3 || scope.row.userName == null ||
-                  (scope.row.userName && !scope.row.userName.includes(nickName)))" type="text" size="small" @click="handleIssued(scope.row)">鏌ョ湅鎶ュ憡</el-button>
+                  (scope.row.userName && !scope.row.userName.includes(nickName)))" type="text" size="small"
+                  @click="handleIssued(scope.row)">鏌ョ湅鎶ュ憡</el-button>
               </div>
             </el-popover>
           </div>
@@ -155,7 +151,7 @@
         </el-button>
       </div>
       <el-table :data="bindTableData" style="width: 100%" height="70vh" v-loading="bindTableDataLoading"
-                :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border>
+        :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border>
         <el-table-column prop="inspectionItemClass" label="妫�楠岄」鍒嗙被" width="150">
         </el-table-column>
         <el-table-column prop="inspectionItem" label="妫�楠岄」" width="150">
@@ -171,7 +167,7 @@
     </el-dialog>
     <el-dialog :visible.sync="bindAddDialogVisible" title="閫夋嫨缁戝畾" width="600px">
       <el-table :data="bindAddTableData" style="width: 100%" height="60vh"
-                :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border
+        :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border
         @selection-change="handleBindAddSelectionChange">
         <el-table-column type="selection" width="55"> </el-table-column>
         <el-table-column prop="inspectionItemClass" label="妫�楠岄」鍒嗙被" width="150">
@@ -197,13 +193,14 @@
     <!--鏌ョ湅宸ユ椂寮规-->
     <viewManHourDia ref="viewManHourDia"></viewManHourDia>
     <!--涓嶅悎鏍煎娴嬫煡鐪嬪脊妗�-->
-    <un-pass-retest-result v-if="retestVisible" :retestInfo="retestInfo" :retestVisible="retestVisible" @closeRetestLook="closeRetestLook"></un-pass-retest-result>
+    <un-pass-retest-result v-if="retestVisible" :retestInfo="retestInfo" :retestVisible="retestVisible"
+      @closeRetestLook="closeRetestLook"></un-pass-retest-result>
     <!--鎶ュ憡鏌ョ湅-->
     <el-dialog title="鎶ュ憡鏌ョ湅" :visible.sync="issuedVisible" width="80vw" :modal-append-to-body="false"
-               :fullscreen="fullscreen">
+      :fullscreen="fullscreen">
       <div class="full-screen">
         <i class="el-icon-full-screen" style="cursor: pointer;font-size: 18px" @click="fullscreen = true;"
-           v-if="!fullscreen"></i>
+          v-if="!fullscreen"></i>
         <img src="@/assets/images/no-full.svg" alt="" v-else style="cursor: pointer;" @click="fullscreen = false;">
       </div>
       <div style="height: 80vh;" v-if="issuedVisible">
@@ -212,7 +209,7 @@
     </el-dialog>
     <el-dialog title="鏌ョ湅闄勪欢" :visible.sync="lookDialogVisible" width="800px" top="5vh" fullscreen>
       <filePreview v-if="lookDialogVisible" :fileUrl="javaApi + '/word/' + currentInfo.tempUrlPdf" :currentFile="{}"
-                   style="max-height: 90vh;overflow-y: auto;" />
+        style="max-height: 90vh;overflow-y: auto;" />
     </el-dialog>
   </div>
 </template>
@@ -237,8 +234,8 @@
   selectSampleAndProductByOrderId,
 } from "@/api/business/inspectionTask.js";
 import { mapGetters } from "vuex";
-import {getRetestResult} from "@/api/business/rawMaterialOrder";
-import {upReportUrl} from "@/api/business/insReport";
+import { getRetestResult } from "@/api/business/rawMaterialOrder";
+import { upReportUrl } from "@/api/business/insReport";
 import onlyoffice from "@/components/Onlyoffice/onlyoffice.vue";
 import filePreview from "@/components/Preview/filePreview.vue";
 export default {
@@ -499,6 +496,7 @@
             }
           },
         },
+        { label: "妫�楠屼汉", prop: "checkUserName" },
         {
           dataType: "action",
           fixed: "right",
@@ -511,7 +509,7 @@
                 this.getRetestResultInfo(row);
               },
               disabled: (row) => {
-                return row.insResult!=0
+                return row.insResult != 0
               },
             },
             {
@@ -639,7 +637,7 @@
     },
     // 涓嬭浇鎶ュ憡
     download(row) {
-      let url = (row.urlS===null||row.urlS==='')?row.url:row.urlS
+      let url = (row.urlS === null || row.urlS === '') ? row.url : row.urlS
       const link = document.createElement('a');
       link.href = this.javaApi + url;
       link.target = '_blank';
@@ -673,7 +671,7 @@
         fileName = row.tempUrlPdf
         fileType = "pdf"
       }
-      fileName = fileName.replace('/word/','')
+      fileName = fileName.replace('/word/', '')
       const userName = this.nickName
       this.option = {
         url: this.javaApi + "/word/" + fileName,
@@ -887,13 +885,13 @@
       });
     },
     // 鏌ョ湅涓嶅悎鏍煎娴嬬粨鏋�
-    getRetestResultInfo (row) {
-      getRetestResult({insProductId: row.insProductId}).then(res => {
+    getRetestResultInfo(row) {
+      getRetestResult({ insProductId: row.insProductId }).then(res => {
         this.retestVisible = true
         this.retestInfo = res.data
       })
     },
-    closeRetestLook () {
+    closeRetestLook() {
       this.retestVisible = false
     },
     // 缁戝畾妫�楠岄」缁戝畾
@@ -962,7 +960,7 @@
         });
       });
     },
-    beforeUpload (file) {
+    beforeUpload(file) {
       if (file.size > 1024 * 1024 * 10) {
         this.$message.error('涓婁紶鏂囦欢涓嶈秴杩�10M');
         this.$refs.upload.clearFiles()
@@ -1033,6 +1031,7 @@
   border-color: #3a7bfa;
   color: #3a7bfa;
 }
+
 .center-options {
   display: flex;
   align-items: center;
diff --git a/src/views/business/materialOrderComponents/materialOrder/dataLookVisible.vue b/src/views/business/materialOrderComponents/materialOrder/dataLookVisible.vue
index c829dac..c379f86 100644
--- a/src/views/business/materialOrderComponents/materialOrder/dataLookVisible.vue
+++ b/src/views/business/materialOrderComponents/materialOrder/dataLookVisible.vue
@@ -2,27 +2,28 @@
   <div>
     <el-dialog title="鏁版嵁鏌ョ湅" :visible.sync="isShow" width="80%" @closed="$emit('closeDataLook')">
       <ul class="tab">
-        <li v-for="(m,i) in dataVisibleTitle" :key="i" :class="{active:i===dataVisibleIndex}" @click="handleDataVisibleTab(m,i)">{{m.label}}</li>
+        <li v-for="(m, i) in dataVisibleTitle" :key="i" :class="{ active: i === dataVisibleIndex }"
+          @click="handleDataVisibleTab(m, i)">{{ m.label }}</li>
       </ul>
       <div>
-        <lims-table :tableData="tableData" :column="column"
-                    @pagination="pagination" height="500px" key="tableData"
-                    :page="page" :tableLoading="tableLoading"></lims-table>
+        <lims-table :tableData="tableData" :column="column" @pagination="pagination" height="500px" key="tableData"
+          :page="page" :tableLoading="tableLoading"></lims-table>
       </div>
     </el-dialog>
-    <un-pass-retest-result :retestVisible="retestVisible" :retestInfo="retestInfo" @closeRetestLook="closeRetestLook" v-if="retestVisible"></un-pass-retest-result>
+    <un-pass-retest-result :retestVisible="retestVisible" :retestInfo="retestInfo" @closeRetestLook="closeRetestLook"
+      v-if="retestVisible"></un-pass-retest-result>
   </div>
 </template>
 
 <script>
 import UnPassRetestResult from "./unPassRetestResult.vue";
 import limsTable from "@/components/Table/lims-table.vue";
-import {getRetestResult, selectSampleAndProductByOrderId} from "@/api/business/rawMaterialOrder";
+import { getRetestResult, selectSampleAndProductByOrderId } from "@/api/business/rawMaterialOrder";
 
 export default {
   name: "dataLookVisible",
   // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
-  components: {limsTable, UnPassRetestResult},
+  components: { limsTable, UnPassRetestResult },
   props: {
     dataDialogVisible: {
       type: Boolean,
@@ -30,7 +31,7 @@
     },
     dataLookInfo: {
       type: Object,
-      default: () => {}
+      default: () => { }
     },
   },
   data() {
@@ -39,17 +40,17 @@
       tableData: [],
       tableLoading: false,
       column: [
-        {label: '鏍峰搧缂栧彿', prop: 'sampleCode'},
-        {label: '鏍峰搧鍚嶇О', prop: 'sample'},
-        {label: '妫�楠岄」鍒嗙被', prop: 'inspectionItemClass'},
-        {label: '妫�楠岄」', prop: 'inspectionItem'},
-        {label: '妫�楠屽瓙椤�', prop: 'inspectionItemSubclass'},
-        {label: '鍗曚綅', prop: 'unit'},
-        {label: '鏍峰搧鍨嬪彿', prop: 'model'},
-        {label: '鏉′欢', prop: 'radius'},
-        {label: '鐢电紗鏍囪瘑', prop: 'cableTag'},
-        {label: '璇曢獙瑕佹眰', prop: 'tell'},
-        {label: '妫�楠岀粨鏋�', prop: 'lastValue'},
+        { label: '鏍峰搧缂栧彿', prop: 'sampleCode' },
+        { label: '鏍峰搧鍚嶇О', prop: 'sample' },
+        { label: '妫�楠岄」鍒嗙被', prop: 'inspectionItemClass' },
+        { label: '妫�楠岄」', prop: 'inspectionItem' },
+        { label: '妫�楠屽瓙椤�', prop: 'inspectionItemSubclass' },
+        { label: '鍗曚綅', prop: 'unit' },
+        { label: '鏍峰搧鍨嬪彿', prop: 'model' },
+        { label: '鏉′欢', prop: 'radius' },
+        { label: '鐢电紗鏍囪瘑', prop: 'cableTag' },
+        { label: '璇曢獙瑕佹眰', prop: 'tell' },
+        { label: '妫�楠岀粨鏋�', prop: 'lastValue' },
         {
           dataType: 'tag',
           label: '缁撴灉鍒ゅ畾',
@@ -72,11 +73,12 @@
               return 'danger'
             } else if (params == 3) {
               return ''
-            }  else {
+            } else {
               return null
             }
           }
         },
+        { label: "妫�楠屼汉", prop: "checkUserName" },
         {
           dataType: 'action',
           fixed: 'right',
@@ -89,17 +91,17 @@
               clickFun: (row) => {
                 this.getRetestResult(row);
               },
-              disabled: (row, index) =>  {
-                return row.insResult!=0
+              disabled: (row, index) => {
+                return row.insResult != 0
               }
             },
           ]
         }
       ],
       page: {
-        total:0,
-        size:10,
-        current:1
+        total: 0,
+        size: 10,
+        current: 1
       },
       isShow: this.dataDialogVisible,
       dataVisibleTitle: [
@@ -126,7 +128,7 @@
   // 鏂规硶闆嗗悎
   methods: {
     // 鍒囨崲鏁版嵁鏌ョ湅tab鏍�
-    handleDataVisibleTab (m, i) {
+    handleDataVisibleTab(m, i) {
       this.dataVisibleIndex = i
       this.refreshTable()
     },
@@ -138,7 +140,7 @@
         this.entity.id = this.dataLookInfo.quarterOrderId
       }
       this.tableLoading = true
-      const params = {...this.entity, ...this.page}
+      const params = { ...this.entity, ...this.page }
       selectSampleAndProductByOrderId(params).then(res => {
         this.tableLoading = false
         if (res.code === 200) {
@@ -149,18 +151,18 @@
         this.tableLoading = false
       })
     },
-    pagination (page) {
+    pagination(page) {
       this.page.size = page.limit
       this.refreshTable()
     },
     // 鏌ョ湅涓嶅悎鏍煎娴嬬粨鏋�
-    getRetestResult (row) {
-      getRetestResult({insProductId: row.insProductId}).then(res => {
+    getRetestResult(row) {
+      getRetestResult({ insProductId: row.insProductId }).then(res => {
         this.retestVisible = true
         this.retestInfo = res.data
       })
     },
-    closeRetestLook () {
+    closeRetestLook() {
       this.retestVisible = false
     },
   },
diff --git a/src/views/business/productOrder/components/issuedDialog.vue b/src/views/business/productOrder/components/issuedDialog.vue
new file mode 100644
index 0000000..484a3f4
--- /dev/null
+++ b/src/views/business/productOrder/components/issuedDialog.vue
@@ -0,0 +1,100 @@
+<template>
+  <div>
+    <!-- 妫�楠岄」鍒嗛厤 -->
+    <el-dialog :visible.sync="issuedDialog" title="鍒嗛厤妫�楠岄」" top="5vh" width="80%" :loading="tableLoading">
+      <el-table :data="tableData" style="width: 100%" height="70vh">
+        <el-table-column label="鏍峰搧缂栧彿" prop="sampleCode" width="160px">
+        </el-table-column>
+        <el-table-column label="鏍峰搧鍚嶇О" prop="sample">
+        </el-table-column>
+        <el-table-column label="鏍峰搧鍨嬪彿" prop="model" width="190px">
+        </el-table-column>
+        <el-table-column label="妫�楠岄」鍒嗙被" prop="inspectionItemClass">
+        </el-table-column>
+        <el-table-column label="妫�楠岄」" prop="inspectionItem">
+        </el-table-column>
+        <el-table-column label="妫�楠屽瓙椤�" prop="inspectionItemSubclass">
+        </el-table-column>
+        <el-table-column label="鍒嗛厤浜哄憳" prop="checkUserId">
+          <template slot-scope="scope">
+            <el-select v-model="scope.row.checkUserId" clearable filterable placeholder="璇烽�夋嫨" size="small"
+              style="width: 100%;">
+              <el-option v-for="(item, i) in personList" :key="i + 'gbnm.'" :label="item.label" :value="item.value">
+              </el-option>
+            </el-select>
+          </template>
+        </el-table-column>
+        <el-table-column label="璇曢獙瀹�" prop="sonLaboratory">
+        </el-table-column>
+      </el-table>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="issuedDialog = false">鍙� 娑�</el-button>
+        <el-button :loading="submitLoading" type="primary" @click="submit">纭� 瀹�</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { selectSampleAndProductByOrderId, batchUpdateInsProductCheckUser } from "@/api/business/rawMaterialOrder";
+import { selectUserCondition } from "@/api/performance/class";
+export default {
+  data() {
+    return {
+      issuedDialog: false,
+      tableData: [],
+      tableLoading: false,
+      submitLoading: false,
+      personList: []
+    }
+  },
+  mounted() {
+
+  },
+  methods: {
+    init(row) {
+      this.issuedDialog = true;
+      this.getList(row.id)
+      this.getAuthorizedPerson()
+    },
+    getList(id) {
+      this.tableLoading = true
+      selectSampleAndProductByOrderId({ page: -1, size: -1, id }).then(res => {
+        this.tableLoading = false
+        if (res.code === 200) {
+          this.tableData = res.data.records
+        }
+      }).catch(err => {
+        this.tableLoading = false
+      })
+    },
+    // 鑾峰彇鎸囨淳浜哄憳涓嬫媺鍒楄〃
+    getAuthorizedPerson() {
+      selectUserCondition({ type: 1 }).then(res => {
+        let data = []
+        res.data.forEach(a => {
+          data.push({
+            label: a.name,
+            value: a.id
+          })
+        })
+        this.personList = data
+      })
+    },
+    submit() {
+      this.submitLoading = true;
+      batchUpdateInsProductCheckUser({ insProductDtoList: this.tableData }).then(res => {
+        this.submitLoading = false;
+        if (res.code == 200) {
+          this.$message.success('鍒嗛厤鎴愬姛')
+          this.issuedDialog = false
+        }
+      }).catch(err => {
+        this.submitLoading = false;
+      })
+    }
+  }
+}
+</script>
+
+<style></style>
\ No newline at end of file
diff --git a/src/views/business/productOrder/index.vue b/src/views/business/productOrder/index.vue
index 027fda7..80e631e 100644
--- a/src/views/business/productOrder/index.vue
+++ b/src/views/business/productOrder/index.vue
@@ -32,7 +32,7 @@
         </el-form-item>
         <el-form-item>
           <el-button :icon="!more ? 'el-icon-arrow-down' : 'el-icon-arrow-up'" style="color: #3A7BFA;" type="text"
-                     @click="more = !more">{{ !more ? '鏇村' : '鏀惰捣' }}</el-button>
+            @click="more = !more">{{ !more ? '鏇村' : '鏀惰捣' }}</el-button>
           <el-button size="mini" type="primary" @click="refreshTable()">鏌ヨ</el-button>
           <el-button size="mini" @click="refresh()">閲嶇疆</el-button>
         </el-form-item>
@@ -41,12 +41,18 @@
     <div class="table-tab">
       <div>
         <ul class="tab">
-          <li :class="{ active: tabIndex === 0 }" v-if="checkPermi(['get:insOrder:reviewed'])" @click="handleTab(0)">寰呭鏍�</li>
-          <li :class="{ active: tabIndex === 1 }" v-if="checkPermi(['get:insOrder:checkout'])" @click="handleTab(1)">妫�楠屼腑</li>
-          <li :class="{ active: tabIndex === 2 }" v-if="checkPermi(['get:insOrder:customerOrdered'])" @click="handleTab(2)">濮旀墭宸叉</li>
-          <li :class="{ active: tabIndex === 3 }" v-if="checkPermi(['get:insOrder:spotCheck'])" @click="handleTab(3)">鎶芥牱宸叉</li>
-          <li :class="{ active: tabIndex === 4 }" v-if="checkPermi(['get:insOrder:sendBack'])" @click="handleTab(4)">閫�鍥�</li>
-          <li :class="{ active: tabIndex === 5 }" v-if="checkPermi(['get:insOrder:revocation'])" @click="handleTab(5)">鎾ら攢</li>
+          <li :class="{ active: tabIndex === 0 }" v-if="checkPermi(['get:insOrder:reviewed'])" @click="handleTab(0)">寰呭鏍�
+          </li>
+          <li :class="{ active: tabIndex === 1 }" v-if="checkPermi(['get:insOrder:checkout'])" @click="handleTab(1)">妫�楠屼腑
+          </li>
+          <li :class="{ active: tabIndex === 2 }" v-if="checkPermi(['get:insOrder:customerOrdered'])"
+            @click="handleTab(2)">濮旀墭宸叉</li>
+          <li :class="{ active: tabIndex === 3 }" v-if="checkPermi(['get:insOrder:spotCheck'])" @click="handleTab(3)">
+            鎶芥牱宸叉</li>
+          <li :class="{ active: tabIndex === 4 }" v-if="checkPermi(['get:insOrder:sendBack'])" @click="handleTab(4)">閫�鍥�
+          </li>
+          <li :class="{ active: tabIndex === 5 }" v-if="checkPermi(['get:insOrder:revocation'])" @click="handleTab(5)">
+            鎾ら攢</li>
           <li :class="{ active: tabIndex === 6 }" v-if="checkPermi(['get:insOrder:all'])" @click="handleTab(6)">鍏ㄩ儴</li>
         </ul>
       </div>
@@ -86,8 +92,8 @@
       </el-dialog>
       <!-- 鎾ら攢 -->
       <el-dialog :before-close="handleClose" :visible.sync="quashDialogVisible" title="涓嬪崟鎾ら攢" width="30%">
-        <p v-if="!isQuash" style="font-size:16px;color:#333333">濮旀墭缂栧彿<span
-            style="color:#34BD66">{{ this.insOrderRow.entrustCode }}</span>鐨勪俊鎭槸鍚︽挙閿�</p>
+        <p v-if="!isQuash" style="font-size:16px;color:#333333">濮旀墭缂栧彿<span style="color:#34BD66">{{
+          this.insOrderRow.entrustCode }}</span>鐨勪俊鎭槸鍚︽挙閿�</p>
         <el-form v-else ref="ruleForm" :label-position="labelPosition" :model="formData" label-width="150px">
           <el-form-item label="璇疯緭鍏ユ挙閿�鍘熷洜锛�">
             <el-input v-model="formData.specificationModel" size="small" style="width:60%"></el-input>
@@ -105,7 +111,7 @@
         </span>
       </el-dialog>
       <!-- 涓嬪彂 -->
-      <el-dialog :before-close="handleClose" :visible.sync="issuedDialogVisible" title="妫�楠屽垎閰�" width="400px">
+      <!-- <el-dialog :before-close="handleClose" :visible.sync="issuedDialogVisible" title="妫�楠屽垎閰�" width="400px">
         <div class="body" style="max-height: 60vh;">
           <el-row>
             <el-col class="search_thing" style="width: 95%;">
@@ -145,7 +151,7 @@
             <el-button :loading="upLoad" type="primary" @click="submitForm2">纭� 瀹�</el-button>
           </el-row>
         </span>
-      </el-dialog>
+      </el-dialog> -->
       <el-dialog :visible.sync="dataDialogVisible" title="鏁版嵁鏌ョ湅" width="80%" @close="closeDia">
         <div v-if="dataDialogVisible">
           <lims-table :tableData="tableDataLook" :column="tableDataLookColumn" @pagination="tableDataLookPagination"
@@ -168,7 +174,8 @@
         <span slot="footer" class="dialog-footer">
           <el-row>
             <el-button @click="handleNo">{{ deleteTilte == '鎾ら攢' ? '鍙� 娑�' : '涓嶉�氳繃' }}</el-button>
-            <el-button :loading="printLoading" type="primary" @click="submitDelete">{{ deleteTilte == '鎾ら攢' ? '纭� 瀹�' : '閫氳繃'}}</el-button>
+            <el-button :loading="printLoading" type="primary" @click="submitDelete">{{ deleteTilte == '鎾ら攢' ? '纭� 瀹�' :
+              '閫氳繃' }}</el-button>
           </el-row>
         </span>
       </el-dialog>
@@ -263,8 +270,8 @@
               <el-row style="margin-top: 0.01cm;font-size: 0.20cm;">
                 <el-col style="display: flex;align-items: center;"><span>鏍峰搧鐘舵��:&nbsp;
                   </span>
-                  <span style="white-space: nowrap;"><span v-if="item.insState == 0">鈭�</span><span v-if="item.insState != 0"
-                      class="scor"></span>寰呮
+                  <span style="white-space: nowrap;"><span v-if="item.insState == 0">鈭�</span><span
+                      v-if="item.insState != 0" class="scor"></span>寰呮
                     <span v-if="item.insState == 1">鈭�</span><span v-if="item.insState != 1" class="scor"></span>鍦ㄦ
                     <span v-if="item.insState == 2">鈭�</span><span v-if="item.insState != 2" class="scor"></span>宸叉
                     <span v-if="item.isLeave == 1">鈭�</span><span v-if="item.isLeave != 1" class="scor"></span>鐣欐牱</span>
@@ -293,6 +300,7 @@
       @closePrintDialog="closePrintDialog"></print-dialog>
     <!--娣诲姞閬楁紡妫�楠岄」寮规-->
     <add-inspection-dia v-if="addInspectionDia" ref="addInspectionDia"></add-inspection-dia>
+    <issuedDialog ref="issuedDialog" />
     <!--    <Inspection v-if="state>0" :key="InspectionKey" :inspectorList="inspectorList" :orderId="orderId"-->
     <!--                :sonLaboratory="sonLaboratory" :state="state"-->
     <!--                :typeSource="typeSource" @goback="goback" @refreshView="refreshView"/>-->
@@ -305,6 +313,7 @@
 import PrintDialog from "@/views/business/productOrder/components/printDialog.vue";
 import AddInspectionDia from "@/views/business/productOrder/components/addInspectionDia.vue";
 import limsTable from "@/components/Table/lims-table.vue";
+import issuedDialog from './components/issuedDialog.vue'
 import {
   checkUpdate, delInsOrder,
   rawAllInsOrderExport,
@@ -314,14 +323,15 @@
 } from "@/api/business/productOrder";
 import { selectUserCondition } from "@/api/performance/class";
 import { downFile, getFileList, selectSampleAndProductByOrderId } from "@/api/business/rawMaterialOrder";
-import {mapGetters} from "vuex";
+import { mapGetters } from "vuex";
 export default {
   name: 'ProductOrder',
   components: {
     limsTable,
     AddInspectionDia,
     PrintDialog,
-    vueQr
+    vueQr,
+    issuedDialog
   },
   data() {
     return {
@@ -498,7 +508,7 @@
                 this.handleIssued(row);
               },
               disabled: (row, index) => {
-                return row.state != 1 || !!row.assign
+                return row.state != 1
               },
               showHide: (row) => {
                 return this.tabIndex === 1
@@ -600,6 +610,7 @@
             }
           }
         },
+        { label: "妫�楠屼汉", prop: "checkUserName" },
       ],
       filesDialogVisible: false, // 闄勪欢鏌ョ湅寮规
       tableDataFile: [],
@@ -666,7 +677,7 @@
       entrustCodeInfo: {},
       submitCodeLoading: false,
       // 浜哄憳鍒楄〃
-      personList: [],
+      // personList: [],
       orderId: '',
       revocationInsProductIds: '',
       componentDataDelete: [],
@@ -753,7 +764,7 @@
   },
   mounted() {
     this.refreshTable()
-    this.getAuthorizedPerson()
+    // this.getAuthorizedPerson()
   },
   activated() {
     this.refreshTable()
@@ -772,7 +783,7 @@
       }
       const params = { ...this.entity, state: this.tabList[this.tabIndex].value }
       this.tableLoading = true
-      selectInsOrderParameter({...this.page,...params}).then(res => {
+      selectInsOrderParameter({ ...this.page, ...params }).then(res => {
         this.upIndex++
         this.tableLoading = false
         if (res.code === 200) {
@@ -914,18 +925,18 @@
       this.printDialog = false
     },
     // 鑾峰彇鎸囨淳浜哄憳涓嬫媺鍒楄〃
-    getAuthorizedPerson() {
-      selectUserCondition({ type: 1 }).then(res => {
-        let data = []
-        res.data.forEach(a => {
-          data.push({
-            label: a.name,
-            value: a.id
-          })
-        })
-        this.personList = data
-      })
-    },
+    // getAuthorizedPerson() {
+    //   selectUserCondition({ type: 1 }).then(res => {
+    //     let data = []
+    //     res.data.forEach(a => {
+    //       data.push({
+    //         label: a.name,
+    //         value: a.id
+    //       })
+    //     })
+    //     this.personList = data
+    //   })
+    // },
     handleClose() {
       this.verifyDialogVisible = false;
       this.quashDialogVisible = false;
@@ -974,7 +985,7 @@
       this.tableDataLookPage.size = page.limit
       this.getDataTableList(this.currentRow)
     },
-    closeDia () {
+    closeDia() {
       this.tableDataLookPage = {
         total: 0,
         size: 20,
@@ -1016,8 +1027,8 @@
     // 涓嬭浇鎶ュ憡
     download(row) {
       let url = row.urlS ? row.urlS : row.url;
-      if(url){
-        url = url.split('.')[0]+'.pdf'
+      if (url) {
+        url = url.split('.')[0] + '.pdf'
         const link = document.createElement('a');
         link.href = this.javaApi + url;
         link.target = '_blank';
@@ -1104,28 +1115,29 @@
     },
     // 涓嬪彂
     handleIssued(row) {
-      this.issuedDialogVisible = true;
-      selectOrderManDay({
-        id: row.id
-      }).then(res => {
-        this.distributeData.orderId = row.id
-        this.distributeData.sampleId = row.sampleId
-        this.distributeData.appointed = res.data
-        this.distributeData.type = row.type
-      })
-      upPlanUser2({
-        orderId: row.id,
-      }).then(res => {
-        if (res.code === 200 && res.data.length > 0) {
-          this.sonLaboratoryList = [];
-          res.data.forEach(m => {
-            this.sonLaboratoryList.push({
-              value: m,
-              label: m
-            })
-          })
-        }
-      })
+      // this.issuedDialogVisible = true;
+      this.$refs.issuedDialog.init(row)
+      // selectOrderManDay({
+      //   id: row.id
+      // }).then(res => {
+      //   this.distributeData.orderId = row.id
+      //   this.distributeData.sampleId = row.sampleId
+      //   this.distributeData.appointed = res.data
+      //   this.distributeData.type = row.type
+      // })
+      // upPlanUser2({
+      //   orderId: row.id,
+      // }).then(res => {
+      //   if (res.code === 200 && res.data.length > 0) {
+      //     this.sonLaboratoryList = [];
+      //     res.data.forEach(m => {
+      //       this.sonLaboratoryList.push({
+      //         value: m,
+      //         label: m
+      //       })
+      //     })
+      //   }
+      // })
     },
     submitForm2() {
       if (this.distributeData.appointed == null || this.distributeData.appointed == '') {
diff --git a/src/views/statisticalCharts/itemInspectionAnalysis/index.vue b/src/views/statisticalCharts/itemInspectionAnalysis/index.vue
index 315bd84..39c9d7d 100644
--- a/src/views/statisticalCharts/itemInspectionAnalysis/index.vue
+++ b/src/views/statisticalCharts/itemInspectionAnalysis/index.vue
@@ -3,16 +3,8 @@
     <div v-if="!isShowDataCom">
       <el-form ref="entity" size="small" :inline="true">
         <el-form-item style="width: 16%;">
-          <el-date-picker
-            v-model="datePicker"
-            end-placeholder="缁撴潫鏃ユ湡"
-            format="yyyy-MM-dd"
-            placeholder="閫夋嫨鏃ユ湡"
-            range-separator="鑷�"
-            size="small"
-            start-placeholder="寮�濮嬫棩鏈�"
-            style="width: 100%;"
-            type="daterange"
+          <el-date-picker v-model="datePicker" end-placeholder="缁撴潫鏃ユ湡" format="yyyy-MM-dd" placeholder="閫夋嫨鏃ユ湡"
+            range-separator="鑷�" size="small" start-placeholder="寮�濮嬫棩鏈�" style="width: 100%;" type="daterange"
             value-format="yyyy-MM-dd">
           </el-date-picker>
         </el-form-item>
@@ -26,13 +18,9 @@
           <el-input v-model="supplierName" clearable placeholder="璇疯緭鍏ヤ緵搴斿晢鍚嶇О" size="small"></el-input>
         </el-form-item>
         <el-form-item label="妫�楠岄」鍚嶇О" prop="supplierName">
-          <el-select v-model="itemNames" :loading="selectLoading" clearable multiple placeholder="璇烽�夋嫨"
-                     size="small" style="width: 90%;" @focus="getItemList">
-            <el-option
-              v-for="item in itemNamesList"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value">
+          <el-select v-model="itemNames" :loading="selectLoading" clearable multiple placeholder="璇烽�夋嫨" size="small"
+            style="width: 90%;" @focus="getItemList">
+            <el-option v-for="item in itemNamesList" :key="item.value" :label="item.label" :value="item.value">
             </el-option>
           </el-select>
         </el-form-item>
@@ -49,10 +37,8 @@
               <div>鍘熸潗鏂欓」妫�鍒嗘瀽鍒楄〃</div>
               <el-button size="small" type="primary" @click="openShowData">鏌ョ湅鏁版嵁鍒嗘瀽</el-button>
             </div>
-            <lims-table :tableData="editTableData" :column="editColumn"
-                        height="400" key="tableData" :isSelection="true"
-                        :handleSelectionChange="handleSelectionChange"
-                        :tableLoading="editLoading"></lims-table>
+            <lims-table :tableData="editTableData" :column="editColumn" height="400" key="tableData" :isSelection="true"
+              :handleSelectionChange="handleSelectionChange" :tableLoading="editLoading"></lims-table>
           </div>
         </el-col>
       </el-row>
@@ -60,14 +46,9 @@
         <el-col :span="6" style="padding-top: 14px">
           <div style="display: flex;margin-left: 10px;align-items: center">
             <span style="width: 100px">鍒嗙粍绫诲瀷锛�</span>
-            <el-select v-model="groupType" clearable placeholder="璇烽�夋嫨"
-                       size="small"
-                       style="width: 90%;" @change="getBarInfo">
-              <el-option
-                v-for="item in groupTypeList"
-                :key="item.value"
-                :label="item.label"
-                :value="item.value">
+            <el-select v-model="groupType" clearable placeholder="璇烽�夋嫨" size="small" style="width: 90%;"
+              @change="getBarInfo">
+              <el-option v-for="item in groupTypeList" :key="item.value" :label="item.label" :value="item.value">
               </el-option>
             </el-select>
           </div>
@@ -77,16 +58,8 @@
         <el-col :span="24">
           <div class="inspection-card">
             <div class="title">妫�楠岄」鏁版嵁瀵规瘮</div>
-            <Echarts ref="chart"
-                     :chartStyle="chartStyle"
-                     :dataset="dataset"
-                     :grid="grid"
-                     :options="echartsOptions"
-                     :series="echartsSeries"
-                     :tooltip="tooltip"
-                     :xAxis="xAxis"
-                     :yAxis="yAxis"
-                     style="height: 40vh;"></Echarts>
+            <Echarts ref="chart" :chartStyle="chartStyle" :dataset="dataset" :grid="grid" :options="echartsOptions"
+              :series="echartsSeries" :tooltip="tooltip" :xAxis="xAxis" :yAxis="yAxis" style="height: 40vh;"></Echarts>
           </div>
         </el-col>
       </el-row>
@@ -94,29 +67,21 @@
         <el-col :span="24">
           <div class="inspection-card">
             <div class="title">鍘熸潗鏂欓」妫�鍚堟牸鐜�</div>
-            <Echarts ref="chart"
-                     :chartStyle="chartStyle"
-                     :dataset="dataset1"
-                     :grid="grid"
-                     :options="echartsOptions1"
-                     :series="echartsSeries1"
-                     :tooltip="tooltip"
-                     :xAxis="xAxis"
-                     :yAxis="yAxis1"
-                     style="height: 40vh;"></Echarts>
+            <Echarts ref="chart" :chartStyle="chartStyle" :dataset="dataset1" :grid="grid" :options="echartsOptions1"
+              :series="echartsSeries1" :tooltip="tooltip" :xAxis="xAxis" :yAxis="yAxis1" style="height: 40vh;">
+            </Echarts>
           </div>
         </el-col>
       </el-row>
     </div>
     <el-dialog :visible.sync="dataDialogVisible" title="鏁版嵁鏌ョ湅" width="80%">
       <div v-if="dataDialogVisible" style="height: 70vh;overflow-y: auto;">
-        <lims-table :tableData="tableData" :column="column"
-                    @pagination="pagination" key="tableData"
-                    :page="page" :tableLoading="tableLoading"></lims-table>
+        <lims-table :tableData="tableData" :column="column" @pagination="pagination" key="tableData" :page="page"
+          :tableLoading="tableLoading"></lims-table>
       </div>
     </el-dialog>
-    <DataComparison v-if="isShowDataCom" :comparisonData="comparisonData"
-                    :selectRow="selectRow" @goBack="goBack"></DataComparison>
+    <DataComparison v-if="isShowDataCom" :comparisonData="comparisonData" :selectRow="selectRow" @goBack="goBack">
+    </DataComparison>
   </div>
 </template>
 
@@ -130,20 +95,20 @@
   getRawProductAnalysisAllList,
   getRawProductAnalysisRawPass, getRawSupplierCompare
 } from "@/api/statisticalCharts/dataAnalysis";
-import {selectSampleAndProductByOrderId} from "@/api/business/rawMaterialOrder";
+import { selectSampleAndProductByOrderId } from "@/api/business/rawMaterialOrder";
 
 export default {
   name: "ItemInspectionAnalysis",
   // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
-  components: {limsTable, Echarts, DataComparison},
+  components: { limsTable, Echarts, DataComparison },
   data() {
     // 杩欓噷瀛樻斁鏁版嵁
     return {
       selectChangeRows: [], // 閫変腑鐨勬暟鎹�
       groupTypeList: [
-        {label: '鏍峰搧', value: '0'},
-        {label: '鍚屼竴鍘傚, 鍚屼竴鍨嬪彿, 涓嶅悓鎵规', value: '1'},
-        {label: '鍚屼竴鍨嬪彿, 涓嶅悓鍘傚', value: '2'},
+        { label: '鏍峰搧', value: '0' },
+        { label: '鍚屼竴鍘傚, 鍚屼竴鍨嬪彿, 涓嶅悓鎵规', value: '1' },
+        { label: '鍚屼竴鍨嬪彿, 涓嶅悓鍘傚', value: '2' },
       ],
       itemNames: [], // 妫�楠岄」鍚嶇О
       itemNamesList: [],
@@ -241,15 +206,15 @@
           label: '鏍峰搧鍨嬪彿',
           minWidth: '300px',
           prop: 'sampleModel'
-        },{
+        }, {
           label: '涓嬪彂鏃堕棿',
           minWidth: '120px',
           prop: 'sendTime'
-        },{
+        }, {
           label: '鎶佃揪鐨勯噰璐暟閲�',
           minWidth: '130px',
           prop: 'qtyArrived'
-        },{
+        }, {
           label: '鍗曚綅',
           minWidth: '120px',
           prop: 'buyUnitMeas'
@@ -276,17 +241,17 @@
       tableData: [],
       tableLoading: false,
       column: [
-        {label: '鏍峰搧缂栧彿', prop: 'sampleCode'},
-        {label: '鏍峰搧鍚嶇О', prop: 'sample'},
-        {label: '妫�楠岄」鍒嗙被', prop: 'inspectionItemClass'},
-        {label: '妫�楠岄」', prop: 'inspectionItem'},
-        {label: '妫�楠屽瓙椤�', prop: 'inspectionItemSubclass'},
-        {label: '鍗曚綅', prop: 'unit'},
-        {label: '鏍峰搧鍨嬪彿', prop: 'model'},
-        {label: '鏉′欢', prop: 'radius'},
-        {label: '鐢电紗鏍囪瘑', prop: 'cableTag'},
-        {label: '璇曢獙瑕佹眰', prop: 'tell'},
-        {label: '妫�楠岀粨鏋�', prop: 'lastValue'},
+        { label: '鏍峰搧缂栧彿', prop: 'sampleCode' },
+        { label: '鏍峰搧鍚嶇О', prop: 'sample' },
+        { label: '妫�楠岄」鍒嗙被', prop: 'inspectionItemClass' },
+        { label: '妫�楠岄」', prop: 'inspectionItem' },
+        { label: '妫�楠屽瓙椤�', prop: 'inspectionItemSubclass' },
+        { label: '鍗曚綅', prop: 'unit' },
+        { label: '鏍峰搧鍨嬪彿', prop: 'model' },
+        { label: '鏉′欢', prop: 'radius' },
+        { label: '鐢电紗鏍囪瘑', prop: 'cableTag' },
+        { label: '璇曢獙瑕佹眰', prop: 'tell' },
+        { label: '妫�楠岀粨鏋�', prop: 'lastValue' },
         {
           dataType: 'tag',
           label: '缁撴灉鍒ゅ畾',
@@ -309,16 +274,17 @@
               return 'danger'
             } else if (params == 3) {
               return ''
-            }  else {
+            } else {
               return null
             }
           }
-        }
+        },
+        { label: "妫�楠屼汉", prop: "checkUserName" },
       ],
       page: {
-        total:0,
-        size:10,
-        current:1
+        total: 0,
+        size: 10,
+        current: 1
       },
       currentRow: {},
       isShowDataCom: false,
@@ -331,7 +297,7 @@
   },
   // 鏂规硶闆嗗悎
   methods: {
-    getBarInfo (val) {
+    getBarInfo(val) {
       if (val === '1') {
         if (!this.modelName || !this.supplierName) {
           this.$message.warning('鍨嬪彿鎴栦緵搴斿晢涓嶈兘涓虹┖')
@@ -371,10 +337,12 @@
           return
         }
         for (let i = 0; i < res.data.itemNames.length; i++) {
-          this.echartsSeries.push({type: 'line', label: {
+          this.echartsSeries.push({
+            type: 'line', label: {
               show: true,
               position: 'top'
-            },})
+            },
+          })
         }
         this.dataset.dimensions = this.HaveJson(res.data.itemNames)
         this.dataset.dimensions.unshift('product')
@@ -399,15 +367,17 @@
           return
         }
         for (let i = 0; i < res.data.itemNames.length; i++) {
-          this.echartsSeries1.push({type: 'line',tooltip: {
+          this.echartsSeries1.push({
+            type: 'line', tooltip: {
               valueFormatter: function (value) {
                 return value + '%';
               }
-            },label: {
+            }, label: {
               show: true,
               position: 'top',
               formatter: (params) => params.value[params.dimensionNames[params.encode.y[0]]] + '%'
-            },})
+            },
+          })
         }
         this.dataset1.dimensions = this.HaveJson(res.data.itemNames)
         this.dataset1.dimensions.unshift('product')
@@ -423,7 +393,7 @@
     },
     // 鏌ヨ鍥炶皟
     refreshTable(row) {
-      selectSampleAndProductByOrderId({id: row.id, ...this.page}).then(res => {
+      selectSampleAndProductByOrderId({ id: row.id, ...this.page }).then(res => {
         this.tableLoading = false
         if (res.code === 200) {
           this.tableData = res.data.records
@@ -433,11 +403,11 @@
         this.tableLoading = false
       })
     },
-    pagination (page) {
+    pagination(page) {
       this.page.size = page.limit
       this.refreshTable(this.currentRow)
     },
-    changeData () {
+    changeData() {
       if (this.datePicker !== null && this.datePicker.length > 0) {
         this.beginDate = this.datePicker[0] + ' 00:00:00'
         this.endDate = this.datePicker[1] + ' 23:59:59'
@@ -449,7 +419,7 @@
       this.getBar1()
       this.getTableData()
     },
-    getTableData () {
+    getTableData() {
       this.editLoading = true
       const params = {
         beginDate: this.beginDate,
@@ -467,7 +437,7 @@
       })
     },
     // 鑾峰彇妫�楠岄」涓嬫媺妗�
-    getItemList () {
+    getItemList() {
       this.selectLoading = true
       this.itemNamesList = []
       const params = {
@@ -490,10 +460,10 @@
         this.selectLoading = false
       })
     },
-    goBack () {
+    goBack() {
       this.isShowDataCom = false
     },
-    openShowData () {
+    openShowData() {
       if (this.selectChangeRows.length !== 5) {
         this.$message.warning('璇烽�夋嫨5鏉℃暟鎹�')
         return
@@ -520,7 +490,7 @@
         this.isShowDataCom = true
       })
     },
-    handleSelectionChange (val) {
+    handleSelectionChange(val) {
       this.selectChangeRows = val
     },
   },
@@ -528,7 +498,7 @@
 </script>
 
 <style scoped>
-.inspection-card{
+.inspection-card {
   width: 100%;
   margin-top: 10px;
 }
diff --git a/src/views/structural/capabilityAndLaboratory/capability/index.vue b/src/views/structural/capabilityAndLaboratory/capability/index.vue
index f184385..cbb2b79 100644
--- a/src/views/structural/capabilityAndLaboratory/capability/index.vue
+++ b/src/views/structural/capabilityAndLaboratory/capability/index.vue
@@ -283,7 +283,7 @@
                 this.bindPartFirst(row);
               },
               disabled: (row) => {
-                return row.product
+                return !!row.product
               }
             },
             {

--
Gitblit v1.9.3