From 379ad4226bc5a3ad175635b5c40e6bf5b68e4069 Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期三, 19 三月 2025 13:30:59 +0800
Subject: [PATCH] 能力范围功能更新70%

---
 src/components/Table/lims-table.vue                                                      |   13 
 src/views/standard/standardLibrary/index.vue                                             |   27 
 src/views/structural/capabilityAndLaboratory/capabilityComponents/bindPartDialog.vue     |  175 +++++++-
 src/assets/styles/sidebar.scss                                                           |   66 ++-
 src/views/business/rawMaterialInspection/index.vue                                       |   13 
 src/views/structural/capabilityAndLaboratory/capabilityComponents/EditForm.vue           |  161 ++++----
 src/views/structural/capabilityAndLaboratory/workshop/components/fileList.vue            |   24 
 src/views/business/materialOrder/customsInspection.vue                                   |  545 +++++++++++++---------------
 src/api/structural/structureTestObjectPart.js                                            |   18 
 src/views/structural/capabilityAndLaboratory/capabilityComponents/testObjectEditForm.vue |   12 
 src/views/structural/capabilityAndLaboratory/workshop/index.vue                          |    6 
 src/layout/components/Sidebar/SidebarItem.vue                                            |   24 
 src/components/Preview/filePreview.vue                                                   |    1 
 src/views/structural/capabilityAndLaboratory/capability/index.vue                        |   37 +
 14 files changed, 631 insertions(+), 491 deletions(-)

diff --git a/src/api/structural/structureTestObjectPart.js b/src/api/structural/structureTestObjectPart.js
index a2d9dce..83db6a7 100644
--- a/src/api/structural/structureTestObjectPart.js
+++ b/src/api/structural/structureTestObjectPart.js
@@ -64,3 +64,21 @@
     params: query,
   });
 }
+
+// 鏍规嵁妫�楠屽璞℃煡璇㈡楠�
+export function inspectionItems(query) {
+  return request({
+    url: "/productPart/inspectionItems",
+    method: "get",
+    params: query,
+  });
+}
+
+// 闆朵欢澶嶆牳
+export function productPartReview(query) {
+  return request({
+    url: "/productPart/productPartReview",
+    method: "post",
+    data: query,
+  });
+}
diff --git a/src/assets/styles/sidebar.scss b/src/assets/styles/sidebar.scss
index 8e69993..e6f52a7 100644
--- a/src/assets/styles/sidebar.scss
+++ b/src/assets/styles/sidebar.scss
@@ -1,18 +1,17 @@
 #app {
-
   .main-container {
     height: 100%;
-    transition: margin-left .28s;
+    transition: margin-left 0.28s;
     margin-left: $base-sidebar-width;
     position: relative;
   }
 
   .sidebarHide {
-    margin-left: 0!important;
+    margin-left: 0 !important;
   }
 
   .sidebar-container {
-    -webkit-transition: width .28s;
+    -webkit-transition: width 0.28s;
     transition: width 0.28s;
     width: $base-sidebar-width !important;
     background-color: $base-menu-background;
@@ -24,12 +23,13 @@
     left: 0;
     z-index: 1001;
     overflow: hidden;
-    -webkit-box-shadow: 2px 0 6px rgba(0,21,41,.35);
+    -webkit-box-shadow: 2px 0 6px rgba(0, 21, 41, 0.35);
     //box-shadow: 2px 0 6px rgba(0,21,41,.35);
 
     // reset element-ui css
     .horizontal-collapse-transition {
-      transition: 0s width ease-in-out, 0s padding-left ease-in-out, 0s padding-right ease-in-out;
+      transition: 0s width ease-in-out, 0s padding-left ease-in-out,
+        0s padding-right ease-in-out;
     }
 
     .scrollbar-wrapper {
@@ -70,7 +70,8 @@
       width: 100% !important;
     }
 
-    .el-menu-item, .el-submenu__title {
+    .el-menu-item,
+    .el-submenu__title {
       overflow: hidden !important;
       text-overflow: ellipsis !important;
       white-space: nowrap !important;
@@ -88,7 +89,7 @@
       color: $base-menu-color-active !important;
     }
 
-    & .nest-menu .el-submenu>.el-submenu__title,
+    & .nest-menu .el-submenu > .el-submenu__title,
     & .el-submenu .el-menu-item {
       min-width: $base-sidebar-width !important;
 
@@ -97,7 +98,7 @@
       }
     }
 
-    & .theme-dark .nest-menu .el-submenu>.el-submenu__title,
+    & .theme-dark .nest-menu .el-submenu > .el-submenu__title,
     & .theme-dark .el-submenu .el-menu-item {
       background-color: $base-sub-menu-background !important;
 
@@ -109,11 +110,11 @@
 
   .hideSidebar {
     .sidebar-container {
-      width: 54px !important;
+      width: 70px !important;
     }
 
     .main-container {
-      margin-left: 54px;
+      margin-left: 70px;
     }
 
     .submenu-title-noDropdown {
@@ -124,33 +125,43 @@
         padding: 0 !important;
 
         .svg-icon {
-          margin-left: 20px;
+          width: 1.5em;
+          height: 1.5em;
+          margin-left: 25px;
         }
       }
     }
-
+    .el-menu-item.is-active,
+    .el-submenu.is-active > .el-submenu__title {
+      background-color: transparent !important;
+    }
     .el-submenu {
       overflow: hidden;
 
-      &>.el-submenu__title {
+      & > .el-submenu__title {
         padding: 0 !important;
 
         .svg-icon {
-          margin-left: 20px;
+          width: 1.5em;
+          height: 1.5em;
+          margin-left: 25px;
         }
-
       }
     }
 
     .el-menu--collapse {
       .el-submenu {
-        &>.el-submenu__title {
-          &>span {
-            height: 0;
-            width: 0;
-            overflow: hidden;
-            visibility: hidden;
-            display: inline-block;
+        & > .el-submenu__title {
+          height: auto; /* 鏍规嵁鍐呭鑷姩璋冩暣楂樺害 */
+          flex-direction: column; /* 鏀瑰彉甯冨眬鏂瑰悜涓哄瀭鐩� */
+          align-items: center; /* 灞呬腑瀵归綈 */
+          margin-bottom: 10px;
+          & > span {
+            display: block !important;
+            visibility: visible !important;
+            white-space: normal; /* 鍏佽鎹㈣ */
+            text-align: center; /* 鏂囨湰灞呬腑瀵归綈 */
+            line-height: normal;
           }
         }
       }
@@ -168,7 +179,7 @@
     }
 
     .sidebar-container {
-      transition: transform .28s;
+      transition: transform 0.28s;
       width: $base-sidebar-width !important;
     }
 
@@ -182,7 +193,6 @@
   }
 
   .withoutAnimation {
-
     .main-container,
     .sidebar-container {
       transition: none;
@@ -192,13 +202,13 @@
 
 // when menu collapsed
 .el-menu--vertical {
-  &>.el-menu {
+  & > .el-menu {
     .svg-icon {
       margin-right: 16px;
     }
   }
 
-  .nest-menu .el-submenu>.el-submenu__title,
+  .nest-menu .el-submenu > .el-submenu__title,
   .el-menu-item {
     &:hover {
       // you can use $subMenuHover
@@ -207,7 +217,7 @@
   }
 
   // the scroll bar appears when the subMenu is too long
-  >.el-menu--popup {
+  > .el-menu--popup {
     max-height: 100vh;
     overflow-y: auto;
 
diff --git a/src/components/Preview/filePreview.vue b/src/components/Preview/filePreview.vue
index 7633c5e..f1c8d13 100644
--- a/src/components/Preview/filePreview.vue
+++ b/src/components/Preview/filePreview.vue
@@ -96,6 +96,7 @@
       if (state) {
         this.imgUrl = this.fileUrl.replaceAll('word', 'img')
       }
+      console.log(2222, this.imgUrl)
       return state;
     },
     isPdf() {
diff --git a/src/components/Table/lims-table.vue b/src/components/Table/lims-table.vue
index 63c6f71..dad9288 100644
--- a/src/components/Table/lims-table.vue
+++ b/src/components/Table/lims-table.vue
@@ -99,7 +99,7 @@
         </template>
       </el-table-column>
     </el-table>
-    <pagination v-show="page.total > 0" :total="page.total" :layout="page.layout" :page.sync="page.current"
+    <pagination v-if="page" v-show="page.total > 0" :total="page.total" :layout="page.layout" :page.sync="page.current"
       :limit.sync="page.size" @pagination="pagination" />
   </div>
 </template>
@@ -422,6 +422,17 @@
       //   }
       // }
     },
+    // 鍥炴樉澶氶�夐�変腑鐘舵��
+    toggleRowSelection(list) {
+      this.$nextTick(() => {
+        this.tableData.forEach(row => {
+          let obj = list.find(m => m == row[this.rowKey])
+          if (obj) {
+            this.$refs.multipleTable.toggleRowSelection(obj, true);
+          }
+        });
+      });
+    }
   },
 };
 </script>
diff --git a/src/layout/components/Sidebar/SidebarItem.vue b/src/layout/components/Sidebar/SidebarItem.vue
index fabc61e..3b68ff2 100644
--- a/src/layout/components/Sidebar/SidebarItem.vue
+++ b/src/layout/components/Sidebar/SidebarItem.vue
@@ -1,9 +1,10 @@
 <template>
   <div v-if="!item.hidden">
-    <template v-if="hasOneShowingChild(item.children,item) && (!onlyOneChild.children||onlyOneChild.noShowingChildren)&&!item.alwaysShow">
+    <template
+      v-if="hasOneShowingChild(item.children, item) && (!onlyOneChild.children || onlyOneChild.noShowingChildren) && !item.alwaysShow">
       <app-link v-if="onlyOneChild.meta" :to="resolvePath(onlyOneChild.path, onlyOneChild.query)">
-        <el-menu-item :index="resolvePath(onlyOneChild.path)" :class="{'submenu-title-noDropdown':!isNest}">
-          <item :icon="onlyOneChild.meta.icon||(item.meta&&item.meta.icon)" :title="onlyOneChild.meta.title" />
+        <el-menu-item :index="resolvePath(onlyOneChild.path)" :class="{ 'submenu-title-noDropdown': !isNest }">
+          <item :icon="onlyOneChild.meta.icon || (item.meta && item.meta.icon)" :title="onlyOneChild.meta.title" />
         </el-menu-item>
       </app-link>
     </template>
@@ -12,14 +13,8 @@
       <template slot="title">
         <item v-if="item.meta" :icon="item.meta && item.meta.icon" :title="item.meta.title" />
       </template>
-      <sidebar-item
-        v-for="(child, index) in item.children"
-        :key="child.path + index"
-        :is-nest="true"
-        :item="child"
-        :base-path="resolvePath(child.path)"
-        class="nest-menu"
-      />
+      <sidebar-item v-for="(child, index) in item.children" :key="child.path + index" :is-nest="true" :item="child"
+        :base-path="resolvePath(child.path)" class="nest-menu" />
     </el-submenu>
   </div>
 </template>
@@ -75,7 +70,7 @@
 
       // Show parent if there are no child router to display
       if (showingChildren.length === 0) {
-        this.onlyOneChild = { ... parent, path: '', noShowingChildren: true }
+        this.onlyOneChild = { ...parent, path: '', noShowingChildren: true }
         return true
       }
 
@@ -97,3 +92,8 @@
   }
 }
 </script>
+<style scoped>
+::v-deep .el-submenu__title i {
+  color: #ffffff !important;
+}
+</style>
\ No newline at end of file
diff --git a/src/views/business/materialOrder/customsInspection.vue b/src/views/business/materialOrder/customsInspection.vue
index b7af486..2404734 100644
--- a/src/views/business/materialOrder/customsInspection.vue
+++ b/src/views/business/materialOrder/customsInspection.vue
@@ -5,23 +5,25 @@
         <div>
           <span>閲囪喘璁㈠崟淇℃伅</span>
           <ul class="tab" v-if="active > 1 && isShowTab">
-            <li v-for="(m,i) in dataTitle" :key="i" :class="{active:i===dataIndex}" @click="handleDataTab(m,i)">{{m.label}}</li>
+            <li v-for="(m, i) in dataTitle" :key="i" :class="{ active: i === dataIndex }" @click="handleDataTab(m, i)">
+              {{ m.label }}</li>
           </ul>
         </div>
         <div>
-          <el-select v-show="active==1" v-model="template" placeholder="涓嬪崟妯℃澘" size="small" style="margin-right: 10px;"
-                     @change="selectInsOrderTemplateByIdList">
+          <el-select v-show="active == 1" v-model="template" placeholder="涓嬪崟妯℃澘" size="small" style="margin-right: 10px;"
+            @change="selectInsOrderTemplateByIdList">
             <el-option v-for="(a, ai) in templates" :key="ai" :label="a.name" :value="a.id">
               <span style="float: left">{{ a.name }}</span>
               <i class="el-icon-delete" style="float: right; color: #66b1ff; font-size: 16px"
-                 @click.stop="handleDelete(a)"></i>
+                @click.stop="handleDelete(a)"></i>
             </el-option>
           </el-select>
-          <el-button v-show="active==1" size="small" @click="templateDia=true">
+          <el-button v-show="active == 1" size="small" @click="templateDia = true">
             <span style="color: #3A7BFA;">淇濆瓨妯℃澘</span>
           </el-button>
-          <el-button v-show="active==1 && addObj.orderType === '杩涘巶妫�楠�'" :loading="noNeedCheckLoad" size="small" type="primary" @click="noNeedCheck">鍏嶆</el-button>
-          <el-button v-show="active==1" :loading="saveLoad" size="small" type="primary" @click="save">鎻愪氦</el-button>
+          <el-button v-show="active == 1 && addObj.orderType === '杩涘巶妫�楠�'" :loading="noNeedCheckLoad" size="small"
+            type="primary" @click="noNeedCheck">鍏嶆</el-button>
+          <el-button v-show="active == 1" :loading="saveLoad" size="small" type="primary" @click="save">鎻愪氦</el-button>
           <el-button size="small" @click="goBack">
             <span style="color: #3A7BFA;">杩斿洖</span>
           </el-button>
@@ -33,42 +35,41 @@
         <el-row>
           <el-col :span="6">
             <el-form-item class="addObj-form-item" label="閲囪喘璁㈠崟鍙�:">
-              <el-input v-model="addObj.orderNo" class="addObj-info" clearable disabled placeholder="" size="small"></el-input>
+              <el-input v-model="addObj.orderNo" class="addObj-info" clearable disabled placeholder=""
+                size="small"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="6">
             <el-form-item class="addObj-form-item" label="濮旀墭鍗曚綅:">
-              <el-input v-model="addObj.company" class="addObj-info" clearable disabled placeholder="" size="small"></el-input>
+              <el-input v-model="addObj.company" class="addObj-info" clearable disabled placeholder=""
+                size="small"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="6">
             <el-form-item class="addObj-form-item" label="鎺ユ敹鏃堕棿:">
-              <el-date-picker
-                v-model="addObj.receiverDate"
-                disabled
-                placeholder="閫夋嫨鏃ユ湡"
-                size="small"
-                style="width: 100%;"
-                type="date"
-                value-format="yyyy-MM-dd">
+              <el-date-picker v-model="addObj.receiverDate" disabled placeholder="閫夋嫨鏃ユ湡" size="small"
+                style="width: 100%;" type="date" value-format="yyyy-MM-dd">
               </el-date-picker>
             </el-form-item>
           </el-col>
           <el-col :span="6">
             <el-form-item class="addObj-form-item" label="闆朵欢鍙�:">
-              <el-input v-model="addObj.partNo" class="addObj-info" clearable disabled placeholder="" size="small"></el-input>
+              <el-input v-model="addObj.partNo" class="addObj-info" clearable disabled placeholder=""
+                size="small"></el-input>
             </el-form-item>
           </el-col>
         </el-row>
         <el-row>
           <el-col :span="6">
             <el-form-item class="addObj-form-item" label="鏍峰搧鍚嶇О:">
-              <el-input v-model="addObj.sample" class="addObj-info" clearable disabled placeholder="" size="small"></el-input>
+              <el-input v-model="addObj.sample" class="addObj-info" clearable disabled placeholder=""
+                size="small"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="6">
             <el-form-item class="addObj-form-item" label="鏍峰搧鎬绘暟:">
-              <el-input v-model="addObj.qtyArrived" class="addObj-info" clearable disabled placeholder="" size="small"></el-input>
+              <el-input v-model="addObj.qtyArrived" class="addObj-info" clearable disabled placeholder=""
+                size="small"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="6">
@@ -90,22 +91,24 @@
           </el-col>
           <el-col :span="6">
             <el-form-item class="addObj-form-item" label="鎶芥鏁伴噺:" prop="testQuantity">
-              <el-input v-model="addObj.testQuantity" :disabled="active > 1" class="addObj-info"
-                        clearable
-                        placeholder="璇峰~鍐欐娊妫�鏁伴噺" size="small"></el-input>
+              <el-input v-model="addObj.testQuantity" :disabled="active > 1" class="addObj-info" clearable
+                placeholder="璇峰~鍐欐娊妫�鏁伴噺" size="small"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="6">
             <el-form-item class="addObj-form-item" label="妫�楠岀被鍒�:" prop="orderType">
-              <el-select v-model="addObj.orderType" :disabled="active>1 || orderType==1" clearable size="small" style="width: 100%">
-                <el-option v-for="a in dict.type.check_type" :key="a.value" :label="a.label" :value="a.value"></el-option>
+              <el-select v-model="addObj.orderType" :disabled="active > 1 || orderType == 1" clearable size="small"
+                style="width: 100%">
+                <el-option v-for="a in dict.type.check_type" :key="a.value" :label="a.label"
+                  :value="a.value"></el-option>
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="6">
             <el-form-item class="addObj-form-item" label="瑙勬牸鍨嬪彿:" placeholder="璇峰~鍐�" prop="partDetail">
               <el-tooltip :content="addObj.partDetail" :disabled="!addObj.partDetail">
-                <el-input v-model="addObj.partDetail" :disabled="active > 1" clearable class="addObj-info" size="small"></el-input>
+                <el-input v-model="addObj.partDetail" :disabled="active > 1" clearable class="addObj-info"
+                  size="small"></el-input>
               </el-tooltip>
             </el-form-item>
           </el-col>
@@ -113,29 +116,24 @@
         <el-row>
           <el-col :span="6">
             <el-form-item class="addObj-form-item" label="绱ф�ョ▼搴�:" placeholder="璇烽�夋嫨" prop="type">
-              <el-select v-model="addObj.type" :disabled="active>1" class="addObj-info" clearable size="small" style="width: 100%">
-                <el-option v-for="a in dict.type.urgency_level" :key="a.value" :label="a.label" :value="a.value"></el-option>
+              <el-select v-model="addObj.type" :disabled="active > 1" class="addObj-info" clearable size="small"
+                style="width: 100%">
+                <el-option v-for="a in dict.type.urgency_level" :key="a.value" :label="a.label"
+                  :value="a.value"></el-option>
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="6">
             <el-form-item class="addObj-form-item" label="绾﹀畾鏃堕棿:" prop="appointed">
-              <el-date-picker
-                v-model="addObj.appointed"
-                :disabled="active > 1"
-                format="yyyy-MM-dd"
-                placeholder="閫夋嫨鏃ユ湡"
-                size="small"
-                style="width: 100%"
-                type="date"
-                value-format="yyyy-MM-dd">
+              <el-date-picker v-model="addObj.appointed" :disabled="active > 1" format="yyyy-MM-dd" placeholder="閫夋嫨鏃ユ湡"
+                size="small" style="width: 100%" type="date" value-format="yyyy-MM-dd">
               </el-date-picker>
             </el-form-item>
           </el-col>
           <el-col :span="6">
             <el-form-item class="addObj-form-item" label="澶囨敞:">
-              <el-input v-model="addObj.remark" :autosize="{ minRows: 2, maxRows: 2}" :disabled="active>1" :placeholder="active>1 ? '' : '璇疯緭鍏�'" clearable
-                        size="small" type="textarea"></el-input>
+              <el-input v-model="addObj.remark" :autosize="{ minRows: 2, maxRows: 2 }" :disabled="active > 1"
+                :placeholder="active > 1 ? '' : '璇疯緭鍏�'" clearable size="small" type="textarea"></el-input>
             </el-form-item>
           </el-col>
         </el-row>
@@ -143,162 +141,146 @@
     </div>
     <div>
       <div style="display: flex;justify-content: space-between;background-color: #F5F7FB;margin-bottom: 6px">
-        <div v-if="active==1">
+        <div v-if="active == 1">
           <el-form :inline="true" :model="addObj1" label-width="90px">
             <el-form-item label="鏍峰搧鍨嬪彿:" style="margin-bottom: 6px;margin-top: 6px">
-              <el-select v-model="model" :placeholder="active>1 ? '' : '璇疯緭鍏�'"
-                         allow-create clearable default-first-option filterable
-                         size="small"
-                         @change="changeModel">
+              <el-select v-model="model" :placeholder="active > 1 ? '' : '璇疯緭鍏�'" allow-create clearable
+                default-first-option filterable size="small" @change="changeModel">
                 <el-option v-for="item in models" :key="item.value" :label="item.label" :value="item.value">
                 </el-option>
               </el-select>
             </el-form-item>
             <el-form-item label="妫�楠屾爣鍑�:" style="margin-bottom: 6px;margin-top: 6px">
-              <el-select v-model="standardMethodListId" :loading="methodLoad"
-                         :placeholder="active>1 ? '' : '璇疯緭鍏�'" clearable size="small"
-                         @change="changeStandardMethodListId" @focus="methodFocus">
+              <el-select v-model="standardMethodListId" :loading="methodLoad" :placeholder="active > 1 ? '' : '璇疯緭鍏�'"
+                clearable size="small" @change="changeStandardMethodListId" @focus="methodFocus">
                 <el-option v-for="item in methods" :key="item.id" :label="item.code" :value="item.id">
                 </el-option>
               </el-select>
             </el-form-item>
+            <el-form-item label="" style="margin-bottom: 6px;margin-top: 6px">
+              <el-button type="primary" size="small">杞﹂棿闄勪欢鏌ョ湅</el-button>
+            </el-form-item>
           </el-form>
         </div>
         <div style="margin-bottom: 6px;margin-top: 6px">
-          <el-button v-show="active==1" :disabled="sampleList.length === 2" size="small" type="primary" @click="handleSplitCountNum">鎷嗗垎</el-button>
+          <el-button v-show="active == 1" :disabled="sampleList.length === 2" size="small" type="primary"
+            @click="handleSplitCountNum">鎷嗗垎</el-button>
         </div>
       </div>
 
-      <el-table ref="sampleTable" :data="sampleList"
-                class="el-table sampleTable"
-                highlight-current-row
-                :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border
-                max-height="400px"
-                tooltip-effect="dark"
-                @selection-change="selectSample" @row-click="rowClick">
-        <el-table-column v-if="active==1" :selectable="selectable" type="selection" width="65"></el-table-column>
+      <el-table ref="sampleTable" :data="sampleList" class="el-table sampleTable" highlight-current-row
+        :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border max-height="400px" tooltip-effect="dark"
+        @selection-change="selectSample" @row-click="rowClick">
+        <el-table-column v-if="active == 1" :selectable="selectable" type="selection" width="65"></el-table-column>
         <el-table-column align="center" label="搴忓彿" prop="index" type="index" width="65"></el-table-column>
         <el-table-column align="center" label="鏍峰搧鍚嶇О" min-width="100" prop="sample">
           <template slot-scope="scope">
-            <el-input v-model="scope.row.sample" :disabled="active>1 || scope.$index !== 0" size="small" @change="(val)=>changeValue(val, 'sample')"></el-input>
+            <el-input v-model="scope.row.sample" :disabled="active > 1 || scope.$index !== 0" size="small"
+              @change="(val) => changeValue(val, 'sample')"></el-input>
           </template>
         </el-table-column>
         <el-table-column align="center" label="鏍峰搧缂栧彿" min-width="140" prop="sampleCode">
           <template slot-scope="scope">
-            <el-input v-model="scope.row.sampleCode" :disabled="active>1 || scope.$index !== 0" clearable placeholder="涓嶅~鍐欏垯绯荤粺鑷姩鐢熸垚"
-                      size="small"
-                      @change="(val)=>changeValue(val, 'sampleCode')"></el-input>
+            <el-input v-model="scope.row.sampleCode" :disabled="active > 1 || scope.$index !== 0" clearable
+              placeholder="涓嶅~鍐欏垯绯荤粺鑷姩鐢熸垚" size="small" @change="(val) => changeValue(val, 'sampleCode')"></el-input>
           </template>
         </el-table-column>
         <el-table-column align="center" label="鏍峰搧鍨嬪彿" min-width="100" prop="model">
           <template slot-scope="scope">
-            <el-select v-model="scope.row.model" :disabled="active>1 || scope.$index !== 0" allow-create default-first-option filterable
-                       placeholder="鏍峰搧鍨嬪彿" size="small" style="width: 100%;" @change="handleChangeModel">
+            <el-select v-model="scope.row.model" :disabled="active > 1 || scope.$index !== 0" allow-create
+              default-first-option filterable placeholder="鏍峰搧鍨嬪彿" size="small" style="width: 100%;"
+              @change="handleChangeModel">
               <el-option v-for="item in models" :key="item.value" :label="item.label" :value="item.value">
               </el-option>
             </el-select>
           </template>
         </el-table-column>
-        <el-table-column v-if="!(active>1)" align="center" label="鍨嬪彿鍙傛暟" prop="modelNum" width="130">
+        <el-table-column v-if="!(active > 1)" align="center" label="鍨嬪彿鍙傛暟" prop="modelNum" width="130">
           <template slot-scope="scope">
-            <el-input v-model="scope.row.modelNum" :disabled="active>1|| scope.$index !== 0" clearable placeholder="闈炲繀濉�"
-                      size="small"
-                      @input="methodChange(scope.row.standardMethodListId, scope.row)"></el-input>
+            <el-input v-model="scope.row.modelNum" :disabled="active > 1 || scope.$index !== 0" clearable
+              placeholder="闈炲繀濉�" size="small"
+              @input="methodChange(scope.row.standardMethodListId, scope.row)"></el-input>
           </template>
         </el-table-column>
         <el-table-column align="center" label="妫�楠屾爣鍑�" min-width="100" prop="standardMethodListId">
           <template slot-scope="scope">
-            <el-select v-model="scope.row.standardMethodListId" :disabled="scope.row.model==null||active>1|| scope.$index !== 0"
-                       :loading="methodLoad" clearable placeholder="妫�楠屾爣鍑�" size="small"
-                       style="width: 100%;" @change="(value)=>methodChange(value, scope.row)" @clear="productList = []" @focus="methodFocus">
+            <el-select v-model="scope.row.standardMethodListId"
+              :disabled="scope.row.model == null || active > 1 || scope.$index !== 0" :loading="methodLoad" clearable
+              placeholder="妫�楠屾爣鍑�" size="small" style="width: 100%;" @change="(value) => methodChange(value, scope.row)"
+              @clear="productList = []" @focus="methodFocus">
               <el-option v-for="item in methods" :key="item.id" :label="item.code" :value="item.id">
               </el-option>
             </el-select>
           </template>
         </el-table-column>
-        <el-table-column v-if="addObj.mating==1" align="center" label="閰嶅鏍峰搧鍚嶇О" prop="joinName" width="140">
+        <el-table-column v-if="addObj.mating == 1" align="center" label="閰嶅鏍峰搧鍚嶇О" prop="joinName" width="140">
           <template slot-scope="scope">
-            <el-input v-model="scope.row.joinName" :autosize="{ minRows: 1, maxRows: 1}" size="small"
-                      type="textarea"></el-input>
+            <el-input v-model="scope.row.joinName" :autosize="{ minRows: 1, maxRows: 1 }" size="small"
+              type="textarea"></el-input>
           </template>
         </el-table-column>
-        <el-table-column v-if="addObj.mating==1" align="center" label="閰嶅鏍峰搧鍨嬪彿" prop="joinModel" width="140">
+        <el-table-column v-if="addObj.mating == 1" align="center" label="閰嶅鏍峰搧鍨嬪彿" prop="joinModel" width="140">
           <template slot-scope="scope">
-            <el-input v-model="scope.row.joinModel" :autosize="{ minRows: 1, maxRows: 1}" size="small"
-                      type="textarea"></el-input>
+            <el-input v-model="scope.row.joinModel" :autosize="{ minRows: 1, maxRows: 1 }" size="small"
+              type="textarea"></el-input>
           </template>
         </el-table-column>
-        <el-table-column v-if="addObj.mating==1" align="center" label="閰嶅鏍峰搧鏁伴噺" prop="joinNum" width="140">
+        <el-table-column v-if="addObj.mating == 1" align="center" label="閰嶅鏍峰搧鏁伴噺" prop="joinNum" width="140">
           <template slot-scope="scope">
             <el-input-number v-model="scope.row.joinNum" :controls="false" :max="100" :min="1" :precision="0"
-                             size="small" style="width: 80%;"></el-input-number>
+              size="small" style="width: 80%;"></el-input-number>
           </template>
         </el-table-column>
         <el-table-column align="center" label="寰呮椤规暟閲�" prop="quantity" width="105">
           <template slot-scope="scope">
-            <el-select v-model="scope.row.quantity" disabled clearable
-                       size="small">
-              <el-option v-for="item in quantityList" :key="item.value" :label="item.label" :value="item.value"></el-option>
+            <el-select v-model="scope.row.quantity" disabled clearable size="small">
+              <el-option v-for="item in quantityList" :key="item.value" :label="item.label"
+                :value="item.value"></el-option>
             </el-select>
           </template>
         </el-table-column>
       </el-table>
-      <el-table ref="productTable" v-loading="getProductLoad" :data="productList"
-                :row-class-name="tableRowClassName"
-                class="el-table"
-                max-height="400px"
-                style="margin-bottom: 10px;"
-                :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border
-                tooltip-effect="dark"
-                @select="selectOne"
-                @selection-change="selectProduct"
-                @select-all="handleAll">
-        <el-table-column v-if="active==1" :selectable="selectable" type="selection" width="65"></el-table-column>
+      <el-table ref="productTable" v-loading="getProductLoad" :data="productList" :row-class-name="tableRowClassName"
+        class="el-table" max-height="400px" style="margin-bottom: 10px;"
+        :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border tooltip-effect="dark"
+        @select="selectOne" @selection-change="selectProduct" @select-all="handleAll">
+        <el-table-column v-if="active == 1" :selectable="selectable" type="selection" width="65"></el-table-column>
         <el-table-column label="妫�楠岄」" min-width="140" prop="inspectionItem" show-overflow-tooltip>
           <template slot="header" slot-scope="scope">
             <div style="display: flex;align-items: center;flex-direction: column;font-size: 14px">
               <span>妫�楠岄」</span>
-              <el-input
-                v-if="active==1"
-                v-model="inspectionItem"
-                placeholder="璇疯緭鍏�"
-                size="mini"
-                @input="searchFilterList"/>
+              <el-input v-if="active == 1" v-model="inspectionItem" placeholder="璇疯緭鍏�" size="mini"
+                @input="searchFilterList" />
             </div>
           </template>
         </el-table-column>
-        <el-table-column label="妫�楠岄」瀛愰」" min-width="140" prop="inspectionItemSubclass"
-                         show-overflow-tooltip>
+        <el-table-column label="妫�楠岄」瀛愰」" min-width="140" prop="inspectionItemSubclass" show-overflow-tooltip>
           <template slot="header" slot-scope="scope">
             <div style="display: flex;align-items: center;flex-direction: column;font-size: 14px">
               <span>妫�楠岄」瀛愰」</span>
-              <el-input
-                v-if="active==1"
-                v-model="inspectionItemSubclass"
-                placeholder="璇疯緭鍏�"
-                size="mini"
-                @input="searchFilterList"/>
+              <el-input v-if="active == 1" v-model="inspectionItemSubclass" placeholder="璇疯緭鍏�" size="mini"
+                @input="searchFilterList" />
             </div>
           </template>
         </el-table-column>
         <el-table-column label="瑕佹眰鍊�" min-width="220px" prop="ask">
           <template slot-scope="scope">
-            <el-input v-if="active==1&&isAskOnlyRead" v-model="scope.row.ask" :autosize="{ minRows: 1, maxRows: 3}" clearable placeholder="瑕佹眰鍊�"
-                      size="small" type="textarea"
-                      @change="e=>requestChange(e,scope.row)"></el-input>
+            <el-input v-if="active == 1 && isAskOnlyRead" v-model="scope.row.ask" :autosize="{ minRows: 1, maxRows: 3 }"
+              clearable placeholder="瑕佹眰鍊�" size="small" type="textarea"
+              @change="e => requestChange(e, scope.row)"></el-input>
             <span v-else>
-              <template >{{ scope.row.ask }}</template>
+              <template>{{ scope.row.ask }}</template>
             </span>
           </template>
         </el-table-column>
         <el-table-column label="瑕佹眰鎻忚堪" min-width="220px" prop="tell">
           <template slot-scope="scope">
-            <el-input v-if="active==1&&isAskOnlyRead" v-model="scope.row.tell" :autosize="{ minRows: 1, maxRows: 3}" clearable placeholder="瑕佹眰鎻忚堪"
-                      size="small" type="textarea"
-                      @change="e=>requestChange(e,scope.row,'tell')"></el-input>
+            <el-input v-if="active == 1 && isAskOnlyRead" v-model="scope.row.tell"
+              :autosize="{ minRows: 1, maxRows: 3 }" clearable placeholder="瑕佹眰鎻忚堪" size="small" type="textarea"
+              @change="e => requestChange(e, scope.row, 'tell')"></el-input>
             <span v-else>
-                <template >{{ scope.row.tell }}</template>
-              </span>
+              <template>{{ scope.row.tell }}</template>
+            </span>
           </template>
         </el-table-column>
         <el-table-column label="鏉′欢" min-width="140" prop="radius" show-overflow-tooltip></el-table-column>
@@ -306,35 +288,29 @@
           <template slot="header" slot-scope="scope">
             <div style="display: flex;align-items: center;flex-direction: column;font-size: 14px">
               <span>璇曢獙鏂规硶</span>
-              <el-input
-                v-if="active==1"
-                v-model="methodS"
-                placeholder="璇疯緭鍏�"
-                size="mini"
-                @input="searchFilterList"/>
+              <el-input v-if="active == 1" v-model="methodS" placeholder="璇疯緭鍏�" size="mini" @input="searchFilterList" />
             </div>
           </template>
         </el-table-column>
         <el-table-column label="璁¢噺鍗曚綅" prop="unit" show-overflow-tooltip width="100"></el-table-column>
         <el-table-column label="鍗曚环" prop="price" show-overflow-tooltip width="100"></el-table-column>
         <el-table-column label="鍖洪棿" min-width="120" prop="section" show-overflow-tooltip></el-table-column>
-        <el-table-column :filter-method="filterHandler" :filters="filters" label="瀛愬疄楠屽" min-width="130" prop="sonLaboratory"
-                         show-overflow-tooltip></el-table-column>
+        <el-table-column :filter-method="filterHandler" :filters="filters" label="瀛愬疄楠屽" min-width="130"
+          prop="sonLaboratory" show-overflow-tooltip></el-table-column>
       </el-table>
     </div>
     <!--鐗规畩鍊煎鐞嗘-->
-    <el-dialog :before-close="beforeClose" :close-on-click-modal="false" :close-on-press-escape="false" :show-close="false"
-               :visible.sync="bsm1DiaAll"
-               min-width="400px"
-               title="妫�娴嬪埌鐗规畩椤癸紝璇蜂綔鍑轰互涓嬮�夋嫨">
+    <el-dialog :before-close="beforeClose" :close-on-click-modal="false" :close-on-press-escape="false"
+      :show-close="false" :visible.sync="bsm1DiaAll" min-width="400px" title="妫�娴嬪埌鐗规畩椤癸紝璇蜂綔鍑轰互涓嬮�夋嫨">
       <div v-for="(item, index) in bsm1DiaList" :key="item.id" class="body" style="max-height: 60vh;">
-        <span>{{item.inspectionItem}}</span>
+        <span>{{ item.inspectionItem }}</span>
         <el-row v-if="item.bsm1">
           <el-col :span="24" class="search_thing" style="height: initial;margin: 5px 0;">
             <div class="search_label" style="width: 80px;"><span class="required-span">* </span>閫夐」锛�</div>
             <div class="search_input">
               <el-radio-group v-model="item.bsm1Val" v-removeAriaHidden @input="upBsmAll(item)">
-                <el-radio v-for="(a, ai) in JSON.parse(item.bsmRow.sectionCopy)" :key="ai" :label="a" style="margin-bottom: 2px;margin-top: 2px;"></el-radio>
+                <el-radio v-for="(a, ai) in JSON.parse(item.bsmRow.sectionCopy)" :key="ai" :label="a"
+                  style="margin-bottom: 2px;margin-top: 2px;"></el-radio>
               </el-radio-group>
             </div>
           </el-col>
@@ -342,8 +318,8 @@
             <div class="search_label" style="width: 80px;">瑕佹眰鍊硷細</div>
             <div class="search_input">
               <el-radio-group v-model="item.bsm1Val" v-removeAriaHidden @input="upBsmAll(item)">
-                <el-radio v-for="(a, ai) in JSON.parse(item.bsmRow.sectionCopy)" :key="ai"
-                          :label="a">{{JSON.parse(item.bsmRow.askCopy)[ai]}}</el-radio>
+                <el-radio v-for="(a, ai) in JSON.parse(item.bsmRow.sectionCopy)" :key="ai" :label="a">{{
+                  JSON.parse(item.bsmRow.askCopy)[ai] }}</el-radio>
               </el-radio-group>
             </div>
           </el-col>
@@ -356,9 +332,8 @@
       </span>
     </el-dialog>
     <el-dialog :close-on-click-modal="false" :close-on-press-escape="false"
-               :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border
-               :show-close="false" :visible.sync="bsm3Dia"
-               title="鍖洪棿鍊煎~鍐�" width="800px">
+      :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border :show-close="false"
+      :visible.sync="bsm3Dia" title="鍖洪棿鍊煎~鍐�" width="800px">
       <el-table :data="editTable" height="80vh" style="width: 100%">
         <!-- inspectionItemList -->
         <el-table-column label="妫�楠岄」" prop="inspectionItemList" width="180">
@@ -371,36 +346,27 @@
         </el-table-column>
         <el-table-column label="璇嗗埆绗﹀��" prop="value">
           <template slot-scope="scope">
-            <el-input v-model="scope.row.value" placeholder="璇疯緭鍏�" size="small" @input="inputValueHandler(scope.row,scope.$index)"></el-input>
+            <el-input v-model="scope.row.value" placeholder="璇疯緭鍏�" size="small"
+              @input="inputValueHandler(scope.row, scope.$index)"></el-input>
           </template>
         </el-table-column>
       </el-table>
       <span slot="footer" class="dialog-footer">
         <el-row>
-          <el-button @click="bsm3Dia=false">鍙� 娑�</el-button>
+          <el-button @click="bsm3Dia = false">鍙� 娑�</el-button>
           <el-button :loading="saveLoad" type="primary" @click="save0">纭� 瀹�</el-button>
         </el-row>
       </span>
     </el-dialog>
-    <el-dialog
-      :close-on-click-modal="false"
-      :close-on-press-escape="false"
-      :show-close="false"
-      :visible.sync="dialogVisible"
-      title="鎻愮ず"
-      width="32%">
+    <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :show-close="false"
+      :visible.sync="dialogVisible" title="鎻愮ず" width="32%">
       <span>{{ dialogMessage }}</span>
       <span slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="dialogVisible= false,closeOpenPage()">纭� 瀹�</el-button>
+        <el-button type="primary" @click="dialogVisible = false, closeOpenPage()">纭� 瀹�</el-button>
       </span>
     </el-dialog>
-    <el-dialog
-      :close-on-click-modal="false"
-      :close-on-press-escape="false"
-      :show-close="false"
-      :visible.sync="dialogVisible2"
-      title="鎻愮ず"
-      width="32%">
+    <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :show-close="false"
+      :visible.sync="dialogVisible2" title="鎻愮ず" width="32%">
       <span>{{ dialogMessage2 }}</span>
       <span slot="footer" class="dialog-footer">
         <el-button type="primary" @click="dialogVisible2 = false">纭� 瀹�</el-button>
@@ -418,13 +384,8 @@
         <el-button :loading="templateLoading" type="primary" @click="addTemplateDia">纭� 瀹�</el-button>
       </span>
     </el-dialog>
-    <el-dialog
-      :close-on-click-modal="false"
-      :close-on-press-escape="false"
-      :show-close="false"
-      :visible.sync="noNeedCheckDia"
-      title="鍏嶆鎻愮ず"
-      width="32%">
+    <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :show-close="false"
+      :visible.sync="noNeedCheckDia" title="鍏嶆鎻愮ず" width="32%">
       <span>纭鍏嶆褰撳墠妫�楠屽崟锛�</span>
       <span slot="footer" class="dialog-footer">
         <el-button :loading="noNeedCheckLoad" type="primary" @click="handleNoNeedCheck">纭� 瀹�</el-button>
@@ -462,7 +423,7 @@
       active: 0,
       currentId: 0,
       isReport: '',
-      editTable:[], // 鍖洪棿鐗规畩鍊煎~鍐�
+      editTable: [], // 鍖洪棿鐗规畩鍊煎~鍐�
       template: null,
       saveLoad: false, // 淇濆瓨鎸夐挳loading
       noNeedCheckLoad: false, // 鍏嶆鎸夐挳loading
@@ -555,9 +516,9 @@
       addObj1: {},
       model: null,
       standardMethodListId: null,
-      inspectionItem:null,
-      inspectionItemSubclass:null,
-      methodS:null,
+      inspectionItem: null,
+      inspectionItemSubclass: null,
+      methodS: null,
       codeLevel: '', // 鏍峰搧鎵�鍦ㄧ骇鍒�
       selectTreeTem: '', // 鏍峰搧鐖剁骇
       checkType: [], // 妫�楠岀被鍨嬮�夐」鏁版嵁
@@ -570,14 +531,14 @@
       templateName: '', // 淇濆瓨妯$増鍚嶇О
       templates: [], // 妯$増涓嬫媺妗嗘暟鎹�
       quantityList: [
-        { label: 1, value: 1},
-        { label: 2, value: 2},
-        { label: 3, value: 3},
-        { label: 4, value: 4},
-        { label: 5, value: 5},
-        { label: 6, value: 6},
-        { label: 7, value: 7},
-        { label: 8, value: 8},
+        { label: 1, value: 1 },
+        { label: 2, value: 2 },
+        { label: 3, value: 3 },
+        { label: 4, value: 4 },
+        { label: 5, value: 5 },
+        { label: 6, value: 6 },
+        { label: 7, value: 7 },
+        { label: 8, value: 8 },
       ],
       types: [], // 绱ф�ョ▼搴︿笅鎷夋
       dataTitle: [
@@ -592,7 +553,7 @@
       ],
       dataIndex: 0,
       isShowTab: false,
-      symbolList:['RTS'],
+      symbolList: ['RTS'],
       bsm3Dia: false, // 鍖洪棿鍊煎~鍐欏脊妗�
       bsmRow: {},
       bsm1: false,
@@ -658,7 +619,7 @@
     this.getInfo() // 鑾峰彇鏁版嵁
   },
   methods: {
-    save1 () {
+    save1() {
       if (this.bsm1DiaList.length > 0) {
         this.bsm1DiaList.forEach(item => {
           if (!item.bsm1Val) {
@@ -679,24 +640,24 @@
       done()
     },
     //鐗规畩鍊煎~鍐欏鐞�
-    inputValueHandler(row,index){
-      if(row){
-        const nextIndex = index+1
+    inputValueHandler(row, index) {
+      if (row) {
+        const nextIndex = index + 1
         for (let i = nextIndex; i < this.editTable.length; i++) {
           const element = this.editTable[i];
-          if(element.model==row.model&&row.symbolItem==element.symbolItem){
+          if (element.model == row.model && row.symbolItem == element.symbolItem) {
             this.editTable[i].value = row.value
           }
         }
       }
     },
     // 鏌ョ湅鏃跺垏鎹ab鏍�
-    handleDataTab (m, i) {
+    handleDataTab(m, i) {
       this.dataIndex = i
       this.getInfo()
     },
     // 鑾峰彇鏁版嵁
-    getInfo () {
+    getInfo() {
       if (this.active == 2) {
         let orderId = ''
         if (!this.customsInspection.enterOrderId && this.customsInspection.quarterOrderId) {
@@ -744,7 +705,7 @@
           }
         })
       } else {
-        notificationRawOrder({ifsInventoryId:this.customsInspection.id}).then(res => {
+        notificationRawOrder({ ifsInventoryId: this.customsInspection.id }).then(res => {
           if (res.code === 200) {
             if (res.data === 1) {
               if (this.orderType != 1) {
@@ -758,7 +719,7 @@
           }
         })
         // 鎶ユ娴佺▼
-        selectStandardTreeListByPartNo({partNo:this.customsInspection.partNo}).then(res => {
+        selectStandardTreeListByPartNo({ partNo: this.customsInspection.partNo }).then(res => {
           if (res.data !== null) {
             this.addObj.sample = res.data.label
             this.codeLevel = res.data.code
@@ -790,7 +751,7 @@
     },
     // 鏌ヨ妯℃澘-鍙嶆樉妯℃澘
     selectInsOrderTemplateByIdList(e) {
-      selectRawMaterOrderTemplateById({id: e}).then(res => {
+      selectRawMaterOrderTemplateById({ id: e }).then(res => {
         let obj = JSON.parse(res.data)
         this.sampleList = obj.sampleList;
         this.productList = obj.sampleList[0].insProduct
@@ -812,7 +773,7 @@
           thing: JSON.stringify({
             // addObj: this.addObj,
             sampleList: sampleList,
-            selectTree:this.selectTree
+            selectTree: this.selectTree
           })
         }).then(res => {
           this.templateLoading = false;
@@ -832,22 +793,22 @@
         cancelButtonText: "鍙栨秷",
         type: "warning"
       }).then(() => {
-        delRawMaterOrderTemplate({id: row.id}).then(res => {
+        delRawMaterOrderTemplate({ id: row.id }).then(res => {
           this.$message.success('鍒犻櫎鎴愬姛')
           this.selectInsOrderTemplate()
         }).catch(e => {
           this.$message.error('鍒犻櫎澶辫触')
         })
-      }).catch(() => {})
+      }).catch(() => { })
     },
     // 鏌ヨ妯℃澘鍒楄〃
     selectInsOrderTemplate() {
-      selectRawMaterOrderTemplate({partNo:this.addObj.partNo}).then(res => {
+      selectRawMaterOrderTemplate({ partNo: this.addObj.partNo }).then(res => {
         this.templates = res.data
       })
     },
     // 鎷嗗垎
-    handleSplitCountNum () {
+    handleSplitCountNum() {
       this.sample.joinName = null
       this.sample.joinModel = null
       this.sample.joinNum = 1
@@ -870,7 +831,7 @@
       this.computationalPairing(this.sampleList.length)
     },
     // 妫�楠岄」鍒楄〃绛涢��
-    searchFilterList () {
+    searchFilterList() {
       const vtw = {
         inspectionItem: this.inspectionItem, // 妫�楠岄」
         inspectionItemSubclass: this.inspectionItemSubclass, // 妫�楠岄」瀛愰」
@@ -881,7 +842,7 @@
       })
       this.changeProductList0()
       if (isHaveValue) {
-        for(let i in vtw) {
+        for (let i in vtw) {
           if (vtw[i]) {
             this.productList = this.productList0.filter((item) => {
               return item[i] && item[i].includes(vtw[i])
@@ -894,11 +855,11 @@
       }
     },
     containsValue(str) {
-      if(str){
+      if (str) {
         let symbolItem = ''
-        this.symbolList.some(value =>{
-          if(str.includes(value)){
-            symbolItem  = value
+        this.symbolList.some(value => {
+          if (str.includes(value)) {
+            symbolItem = value
             return true
           }
         })
@@ -919,18 +880,18 @@
           })
           this.getTotal(sampleList)
           let projectNum = this.totalArr.filter(a => a.state == 1).length
-          if(projectNum==0){
+          if (projectNum == 0) {
             this.$confirm('妫�楠岄」鐩负绌猴紝鏄惁纭鎻愪氦?', "鎻愮ず", {
               confirmButtonText: "纭畾",
               cancelButtonText: "鍙栨秷",
               type: "warning"
             }).then(() => {
               this.saveMethod(sampleList)
-            }).catch(() => {})
-          }else{
-            let isRTS = this.totalArr.find(a => a.ask != null && this.symbolList.find(b=>a.ask.includes(b)) && a.state == 1)
+            }).catch(() => { })
+          } else {
+            let isRTS = this.totalArr.find(a => a.ask != null && this.symbolList.find(b => a.ask.includes(b)) && a.state == 1)
             if (isRTS) {
-              this.editTable = this.handleData(sampleList,this.containsValue, 0)
+              this.editTable = this.handleData(sampleList, this.containsValue, 0)
               this.editTable.forEach(item => {
                 item.value = item.modelNum
               })
@@ -946,21 +907,21 @@
       });
     },
     // 鎻愪氦鍖洪棿鍊�
-    save0(){
-      if(this.editTable.every(m=>m.value)){
+    save0() {
+      if (this.editTable.every(m => m.value)) {
         this.sampleList.forEach(item => {
           item.insProduct = this.productList
         })
-        let sampleList = this.handleData(this.HaveJson(this.sampleList),this.handleAsk,1)
+        let sampleList = this.handleData(this.HaveJson(this.sampleList), this.handleAsk, 1)
         sampleList.forEach(a => {
-          a.insProduct = a.insProduct.filter(b=>b.state === 1)
+          a.insProduct = a.insProduct.filter(b => b.state === 1)
         })
         this.saveMethod(sampleList)
-      }else{
+      } else {
         this.$message.error('璇峰~鍐欒瘑鍒鍊�')
       }
     },
-    noNeedCheck () {
+    noNeedCheck() {
       this.$refs['addObj'].validate((valid) => {
         if (valid) {
           if (!this.sampleList.every(m => m.standardMethodListId)) {
@@ -974,7 +935,7 @@
           })
           this.getTotal(sampleList)
           let projectNum = this.totalArr.filter(a => a.state == 1).length
-          if (projectNum!=0){
+          if (projectNum != 0) {
             this.$message.error('鍏嶆涓嶅彲閫夋嫨妫�楠岄」')
             return
           }
@@ -985,7 +946,7 @@
         }
       });
     },
-    handleNoNeedCheck () {
+    handleNoNeedCheck() {
       // 妫�楠岀被鍨嬩负杩涘巶妫�楠屾椂鍙�夋嫨鍏嶆锛屼絾涓嶈兘閫夋嫨妫�楠岄」
       const sampleList = this.HaveJson(this.sampleList)
       sampleList.forEach(item => {
@@ -1025,7 +986,7 @@
           } else {
             a.model = a.model + ((a.modelNum == null || a.modelNum == '' || a.modelNum == 'null') ? '' : ('-' + a.modelNum))
           }
-          a.insProduct = a.insProduct.filter(b=>b.state === 1)
+          a.insProduct = a.insProduct.filter(b => b.state === 1)
           return a
         }),
       }).then(res => {
@@ -1033,11 +994,11 @@
         this.noNeedCheckDia = false
         this.$message.success('宸叉彁浜�')
         this.closeOpenPage()
-      }).catch(e=>{
+      }).catch(e => {
         this.noNeedCheckLoad = false
       })
     },
-    saveMethod(sampleList){
+    saveMethod(sampleList) {
       let trees = this.selectTree.split(" - ")
       if (trees.length < 3) {
         this.$message.error('鏈�夋嫨瀵硅薄')
@@ -1079,7 +1040,7 @@
           } else {
             a.model = a.model + ((a.modelNum == null || a.modelNum == '' || a.modelNum == 'null') ? '' : ('-' + a.modelNum))
           }
-          a.insProduct = a.insProduct.filter(b=>b.state === 1)
+          a.insProduct = a.insProduct.filter(b => b.state === 1)
           return a
         }),
       }).then(res => {
@@ -1087,12 +1048,12 @@
         this.$message.success('宸叉彁浜�')
         this.bsm3Dia = false;
         this.closeOpenPage()
-      }).catch(e=>{
+      }).catch(e => {
         this.saveLoad = false
       })
     },
-    handleAsk(ask,symbolItem, value) {
-      try{
+    handleAsk(ask, symbolItem, value) {
+      try {
         let code = [">", "<", "=", "锛�", "锛�", "鈮�", "鈮�", "卤", "*", "/"];
         let code2 = ['+', '*', '/', '-']
         if (ask.includes('&')) {
@@ -1136,42 +1097,42 @@
             return code[index] + '' + num
           }
         }
-      }catch(e){}
+      } catch (e) { }
     },
-    handleData(sampleList,calBack,type){
+    handleData(sampleList, calBack, type) {
       let editTable = []
       sampleList.forEach(item => {
         let obj = {
-          sampleCode:item.sampleCode,
-          model:item.model,
-          symbolList:[],
-          sampleId:item.id,
-          modelNum:item.modelNum,
+          sampleCode: item.sampleCode,
+          model: item.model,
+          symbolList: [],
+          sampleId: item.id,
+          modelNum: item.modelNum,
         }
         if (item.insProduct && item.insProduct.length > 0) {
           item.insProduct.forEach(a => {
             if (a.state == 1) {
-              if(type==0){
+              if (type == 0) {
                 let str = calBack(a.ask)
-                str&&obj.symbolList.push({
-                  symbolItem:str,
-                  inspectionItem:a.inspectionItem,
+                str && obj.symbolList.push({
+                  symbolItem: str,
+                  inspectionItem: a.inspectionItem,
                 })
-              }else if(type==1){
+              } else if (type == 1) {
                 let arr = this.editTable.filter(b => b.sampleId == item.id)
-                for (var i=0;i<arr.length;i++){
-                  if(a.ask){
-                    if(a.ask.includes(arr[i].symbolItem)){
-                      let ask = calBack(a.ask, arr[i].symbolItem,arr[i].value)
+                for (var i = 0; i < arr.length; i++) {
+                  if (a.ask) {
+                    if (a.ask.includes(arr[i].symbolItem)) {
+                      let ask = calBack(a.ask, arr[i].symbolItem, arr[i].value)
                       if (ask) {
                         a.ask = ask
                       }
-                      let tell = this.handleAsk(a.tell, arr[i].symbolItem,arr[i].value)
+                      let tell = this.handleAsk(a.tell, arr[i].symbolItem, arr[i].value)
                       if (tell) {
                         a.tell = tell
                       }
                     }
-                  }else{
+                  } else {
                     this.$message.error('瑕佹眰鍊间负绌猴紝闇�瑕佸幓鏍囧噯搴撶淮鎶わ紒')
                   }
                 }
@@ -1187,21 +1148,21 @@
                 if (b.productList && b.productList.length > 0) {
                   b.productList.forEach(c => {
                     if (c.state == 1) {
-                      if(type==0){
+                      if (type == 0) {
                         let str = calBack(c.ask)
-                        str&&obj.symbolList.push({
-                          symbolItem:str,
-                          inspectionItem:c.inspectionItem,
+                        str && obj.symbolList.push({
+                          symbolItem: str,
+                          inspectionItem: c.inspectionItem,
                         })
-                      }else if(type==1){
+                      } else if (type == 1) {
                         let arr = this.editTable.filter(b => b.sampleId == item.id)
                         arr.forEach(f => {
-                          if(c.ask.includes(f.symbolItem)){
-                            let ask = calBack(c.ask, f.symbolItem,f.value)
+                          if (c.ask.includes(f.symbolItem)) {
+                            let ask = calBack(c.ask, f.symbolItem, f.value)
                             if (ask) {
                               c.ask = ask
                             }
-                            let tell = this.handleTell(c.tell, f.symbolItem,f.value)
+                            let tell = this.handleTell(c.tell, f.symbolItem, f.value)
                             if (tell) {
                               c.tell = tell
                             }
@@ -1218,25 +1179,25 @@
                 if (b.productList && b.productList.length > 0) {
                   b.productList.forEach(c => {
                     if (c.state == 1) {
-                      if(type==0){
+                      if (type == 0) {
                         let str = calBack(c.ask)
-                        str&&obj.symbolList.push({
-                          symbolItem:str,
-                          inspectionItem:c.inspectionItem,
+                        str && obj.symbolList.push({
+                          symbolItem: str,
+                          inspectionItem: c.inspectionItem,
                         })
-                      }else if(type==1){
+                      } else if (type == 1) {
                         // let ask = calBack(c.ask, c.rts)
                         // if (ask && c.state == 1) {
                         //   c.ask = csk
                         // }
                         let arr = this.editTable.filter(b => b.sampleId == item.id)
                         arr.forEach(f => {
-                          if(c.ask.includes(f.symbolItem)){
-                            let ask = calBack(c.ask, f.symbolItem,f.value)
+                          if (c.ask.includes(f.symbolItem)) {
+                            let ask = calBack(c.ask, f.symbolItem, f.value)
                             if (ask) {
                               c.ask = ask
                             }
-                            let tell = this.handleTell(c.tell, f.symbolItem,f.value)
+                            let tell = this.handleTell(c.tell, f.symbolItem, f.value)
                             if (tell) {
                               c.tell = tell
                             }
@@ -1251,25 +1212,25 @@
                     if (c.productList && c.productList.length > 0) {
                       c.productList.forEach(d => {
                         if (d.state == 1) {
-                          if(type==0){
+                          if (type == 0) {
                             let str = calBack(d.ask)
-                            str&&obj.symbolList.push({
-                              symbolItem:str,
-                              inspectionItem:d.inspectionItem,
+                            str && obj.symbolList.push({
+                              symbolItem: str,
+                              inspectionItem: d.inspectionItem,
                             })
-                          }else if(type==1){
+                          } else if (type == 1) {
                             // let ask = calBack(d.ask, d.rts)
                             // if (ask && d.state == 1) {
                             //   d.ask = ask
                             // }
                             let arr = this.editTable.filter(b => b.sampleId == item.id)
                             arr.forEach(f => {
-                              if(d.ask.includes(f.symbolItem)){
-                                let ask = calBack(d.ask, f.symbolItem,f.value)
+                              if (d.ask.includes(f.symbolItem)) {
+                                let ask = calBack(d.ask, f.symbolItem, f.value)
                                 if (ask) {
                                   d.ask = ask
                                 }
-                                let tell = this.handleTell(d.tell, f.symbolItem,f.value)
+                                let tell = this.handleTell(d.tell, f.symbolItem, f.value)
                                 if (tell) {
                                   d.tell = tell
                                 }
@@ -1285,11 +1246,11 @@
             }
           })
         }
-        if(type==0){
+        if (type == 0) {
           editTable.push(obj)
         }
       })
-      if(type==0){
+      if (type == 0) {
         editTable.forEach(a => {
           a.symbolList.forEach(b => {
             let arr = a.symbolList.filter(c => c.symbolItem == b.symbolItem);
@@ -1298,13 +1259,13 @@
         })
         editTable.forEach(a => {
           let mySet = new Set();
-          a.symbolList = a.symbolList.filter(b =>{
+          a.symbolList = a.symbolList.filter(b => {
             let num0 = mySet.size;
             mySet.add(b.symbolItem);
             let num1 = mySet.size;
-            if(num0!=num1){
+            if (num0 != num1) {
               return true;
-            }else{
+            } else {
               return false
             }
           })
@@ -1313,19 +1274,19 @@
         editTable.forEach(a => {
           a.symbolList.forEach(b => {
             let obj = {
-              sampleCode:a.sampleCode,
-              model:a.model,
-              symbolItem:b.symbolItem,
-              sampleId:a.sampleId,
-              value:null,
-              inspectionItemList:b.inspectionItemList,
-              modelNum:a.modelNum,
+              sampleCode: a.sampleCode,
+              model: a.model,
+              symbolItem: b.symbolItem,
+              sampleId: a.sampleId,
+              value: null,
+              inspectionItemList: b.inspectionItemList,
+              modelNum: a.modelNum,
             }
             editTableNew.push(obj)
           })
         })
         return editTableNew
-      }else{
+      } else {
         return sampleList
       }
     },
@@ -1335,7 +1296,7 @@
       } catch (e) {
       }
     },
-    replaceAll(str,find,value) {
+    replaceAll(str, find, value) {
       if (str === undefined) {
         return str
       }
@@ -1413,10 +1374,10 @@
         let num1 = mySet0.size
         mySet0.add(item.sonLaboratory)
         let num2 = mySet0.size
-        if(num2>num1){
+        if (num2 > num1) {
           this.sonLaboratoryList.push({
-            label:item.sonLaboratory,
-            value:item.sonLaboratory,
+            label: item.sonLaboratory,
+            value: item.sonLaboratory,
           })
         }
       })
@@ -1464,11 +1425,11 @@
           } else {
             this.methods = res.data.standardMethodList
           }
-        } catch (e) {}
+        } catch (e) { }
       })
     },
     // 璧嬪�肩涓�鏉¢粯璁ゆ暟鎹�
-    addListInfo (codeLevel, data) {
+    addListInfo(codeLevel, data) {
       this.sampleList = []
       this.productList = []
       this.sample.model = this.addObj.model
@@ -1561,14 +1522,14 @@
       }
       this.bsm2Val3 = this.HaveJson(this.permute(nums))
     },
-    tableRowClassName({row, rowIndex}) {
+    tableRowClassName({ row, rowIndex }) {
       if (row.state === 0) {
         return '';
       }
       return 'warning-row';
     },
     // 淇敼鏍峰搧鍚嶇О
-    changeValue (val, string) {
+    changeValue(val, string) {
       if (this.sampleList.length > 1) {
         // 鏈変袱鏉℃牱鍝佹椂锛岀浜屾潯鏍峰搧淇℃伅鍜岀涓�鏉′繚鎸佷竴鑷�
         this.sampleList.forEach(item => {
@@ -1595,9 +1556,9 @@
       }
       this.getProductLoad = true
       let selectTreeList = this.selectTree.split(" - ")
-      this.addObj.model&&(selectTreeList[selectTreeList.length - 1] = this.addObj.model)
+      this.addObj.model && (selectTreeList[selectTreeList.length - 1] = this.addObj.model)
       selectStandardProductList({
-        model: this.addObj.model?this.addObj.model:row.model,
+        model: this.addObj.model ? this.addObj.model : row.model,
         modelNum: row.modelNum,
         standardMethodListId: val,
         factory: selectTreeList.join(" - "),
@@ -1617,7 +1578,7 @@
           })
         }, 200)
       }).catch(err => {
-        console.log('err-',err)
+        console.log('err-', err)
       })
     },
     // 閫夋嫨鏍峰搧鍨嬪彿鐨勫洖璋�
@@ -1678,7 +1639,7 @@
       }
     },
     // 鍏ㄩ�夌壒娈婂�煎鐞嗘閫夋嫨瑕佹眰鍊肩殑鍥炶皟
-    upBsmAll (item) {
+    upBsmAll(item) {
       const i = this.bsm1DiaList.findIndex(obj => obj.id === item.id)
       if (i > -1) {
         // 鎵惧埌鐩稿簲鐨勬楠岄」璧嬪��
@@ -1709,7 +1670,7 @@
     selectOne(selection, row) {
       this.bsm1DiaList = []
       row.state = row.state == 1 ? 0 : 1
-      if(row.section === null) {
+      if (row.section === null) {
         row.section = ""
       }
       if (row.sectionCopy === undefined && row.section) {
@@ -1723,18 +1684,18 @@
       if (row.tell.includes('[')) {
         this.$set(row, 'tellCopy', row.tell)
       }
-      let arr = this.productList.filter(m=>m.state==1&&row.sectionCopy&&row.sectionCopy.includes(m.sectionCopy)&&m.ask&&m.sectionCopy.indexOf('[')==-1)
-      if (row.bsm === '1' && row.sectionCopy !== '' && row.sectionCopy !== null && row.sectionCopy !== undefined && row.state === 1&&arr.length==0) {
+      let arr = this.productList.filter(m => m.state == 1 && row.sectionCopy && row.sectionCopy.includes(m.sectionCopy) && m.ask && m.sectionCopy.indexOf('[') == -1)
+      if (row.bsm === '1' && row.sectionCopy !== '' && row.sectionCopy !== null && row.sectionCopy !== undefined && row.state === 1 && arr.length == 0) {
         if (row.sectionCopy.indexOf('[') > -1) {
           row.bsmRow = this.HaveJson(row)
         }
         row.bsm1 = true
         this.bsm1DiaList.push(row)
         this.bsm1DiaAll = true
-      } else if (row.bsm === '1' && row.sectionCopy !== '' && row.sectionCopy !== null && row.state === 0&&arr.length==0) {
+      } else if (row.bsm === '1' && row.sectionCopy !== '' && row.sectionCopy !== null && row.state === 0 && arr.length == 0) {
         row.bsm1 = false
-      }else if(arr.length>0){
-        try{
+      } else if (arr.length > 0) {
+        try {
           row.bsmRow = this.HaveJson(row)
           let section = arr[0].section
           let arr0 = JSON.parse(row.section)
@@ -1744,7 +1705,7 @@
           row.section = section
           row.ask = arr1[index]
           row.tell = arr4[index]
-        } catch(e) {}
+        } catch (e) { }
       }
       this.sampleList.map(item => {
         if (this.sampleIds.indexOf(item.id) > -1) {
@@ -1764,7 +1725,7 @@
     handleAll(e) {
       if (e.length > 0) {
         this.productList.map(m => {
-          if(e.find(a=>a.id == m.id)){
+          if (e.find(a => a.id == m.id)) {
             m.state = 1
           }
           return m
@@ -1828,10 +1789,10 @@
         this.$refs.productTable.doLayout()
       })
     },
-    changeProductList0(){
-      this.productList0.forEach(a=>{
+    changeProductList0() {
+      this.productList0.forEach(a => {
         let obj = this.productList.find(m => m.id == a.id)
-        if(obj){
+        if (obj) {
           a.state = obj.state
           a.section = obj.section
           a.ask = obj.ask
@@ -1839,7 +1800,7 @@
           // a.price = obj.price
           a.tell = obj.tell
         }
-        if(a.state == 0&&a.bsmRow){
+        if (a.state == 0 && a.bsmRow) {
           a = this.HaveJson(a.bsmRow)
         }
       })
@@ -1848,7 +1809,7 @@
       const property = column['property'];
       return row[property] === value;
     },
-    goBack () {
+    goBack() {
       if (this.active == 1) {
         this.$router.go(-1)
       } else {
@@ -1869,6 +1830,7 @@
   justify-content: space-between;
   margin-bottom: 10px;
 }
+
 .tab {
   list-style-type: none;
   display: flex;
@@ -1897,5 +1859,4 @@
   background-color: #ffffff;
 
 }
-
 </style>
diff --git a/src/views/business/rawMaterialInspection/index.vue b/src/views/business/rawMaterialInspection/index.vue
index d3fa7e4..7b6f9e8 100644
--- a/src/views/business/rawMaterialInspection/index.vue
+++ b/src/views/business/rawMaterialInspection/index.vue
@@ -141,6 +141,11 @@
             <el-option :value="1" label="杩囨湡鐗╂枡"></el-option>
           </el-select>
         </el-form-item>
+        <!-- TODO:蹇呭~ -->
+        <el-form-item class="declareObj-form-item" label="渚涘簲鍟嗘壒鍙�:" prop="buyUnitMeas">
+          <el-input v-model="declareObj.buyUnitMeas" :disabled="declareType !== 'add'" clearable class="addObj-info"
+            size="small"></el-input>
+        </el-form-item>
       </el-form>
       <span slot="footer" class="dialog-footer">
         <el-row>
@@ -161,8 +166,8 @@
     </el-dialog>
     <!-- 鎾ら攢鎶ユ -->
     <el-dialog :visible.sync="declareDialogVisible1" title="鎶ユ鎾ら攢" width="30%">
-      <p style="font-size:16px;color:#333333">鎵瑰彿<span
-          style="color:#34BD66">{{ insOrderRow.updateBatchNo }}</span>鐨勪俊鎭槸鍚�<span style="color: #FF4902">鎾ら攢鎶ユ</span></p>
+      <p style="font-size:16px;color:#333333">鎵瑰彿<span style="color:#34BD66">{{ insOrderRow.updateBatchNo
+          }}</span>鐨勪俊鎭槸鍚�<span style="color: #FF4902">鎾ら攢鎶ユ</span></p>
       <span slot="footer" class="dialog-footer">
         <el-row>
           <el-button @click="declareDialogVisible1 = false">鍙� 娑�</el-button>
@@ -561,7 +566,7 @@
     // 宸插畬鎴愰儴鏌ヨ
     getIfsByFinishList() {
       this.tableLoading1 = true
-      if(null != this.componentData.date){
+      if (null != this.componentData.date) {
         this.componentData.beginDeclareDate = this.componentData.date[0]
         this.componentData.endDeclareDate = this.componentData.date[1]
       } else {
@@ -581,7 +586,7 @@
     // 鍏ㄩ儴鏌ヨ
     getIfsByAllList() {
       this.tableLoading1 = true
-      if(null != this.componentData.date){
+      if (null != this.componentData.date) {
         this.componentData.beginDeclareDate = this.componentData.date[0]
         this.componentData.endDeclareDate = this.componentData.date[1]
       } else {
diff --git a/src/views/standard/standardLibrary/index.vue b/src/views/standard/standardLibrary/index.vue
index e36597d..05bd11d 100644
--- a/src/views/standard/standardLibrary/index.vue
+++ b/src/views/standard/standardLibrary/index.vue
@@ -17,8 +17,7 @@
           height: calc(100% - 30px);
           overflow-y: scroll;
           scrollbar-width: none;
-        " @node-click="handleNodeClick"
-               @node-drop="handleDrop">
+        " @node-click="handleNodeClick" @node-drop="handleDrop">
         <div slot-scope="{ node, data }" class="custom-tree-node">
           <el-row style="width: 100%">
             <el-col :class="{ sort: node.level > 3 }" :span="19" :title="data.label" style="text-align: left">
@@ -66,9 +65,8 @@
       </el-row>
       <el-row v-loading="tableLoad" class="standard_table">
         <el-table ref="standard" :data="standardList" class="el-table" header-row-class-name="header-class" height="220"
-                  :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border
-          highlight-current-row style="width: 100%; height: 220px !important" tooltip-effect="dark"
-          @row-click="rowClick">
+          :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border highlight-current-row
+          style="width: 100%; height: 220px !important" tooltip-effect="dark" @row-click="rowClick">
           <el-table-column label="鏍囧噯缂栧彿" prop="code" show-overflow-tooltip width="200">
             <template slot-scope="scope">
               <span style="color: red; font-size: 14px">{{
@@ -82,11 +80,10 @@
       </el-row>
       <el-row v-loading="tableLoad2" class="product_table">
         <el-table id="templateParamTable" ref="productTable" v-loading="productTableLoading" :data="productList"
-                  :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border
-          :fit="true" :row-class-name="tableRowClassName" class="productTable"
-          header-row-class-name="header-class" height="100%" row-key="id" stripe style="width: 100%"
-          tooltip-effect="dark" @select="upProductSelect" @selection-change="handleSelectionChange"
-          @select-all="handleAll">
+          :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border :fit="true"
+          :row-class-name="tableRowClassName" class="productTable" header-row-class-name="header-class" height="100%"
+          row-key="id" stripe style="width: 100%" tooltip-effect="dark" @select="upProductSelect"
+          @selection-change="handleSelectionChange" @select-all="handleAll">
           <el-table-column type="selection" width="50"> </el-table-column>
           <el-table-column label="浜у搧" min-width="100" prop="sample" show-overflow-tooltip></el-table-column>
           <el-table-column label="鍨嬪彿" min-width="100" prop="model" show-overflow-tooltip></el-table-column>
@@ -176,8 +173,8 @@
             <template slot-scope="scope">
               <el-button type="text" @click="sectionUp(scope.row)" :disabled="!checkPermi(['standard:standardLibrary:upStandardProduct'])
                 ">鍖洪棿璁剧疆</el-button>
-              <el-button type="text" :disabled="!checkPermi(['standard:standardLibrary:upStandardProduct'])
-                " @click="bindSupplierDensitySecond(scope.row)">缁戝畾鍘傚</el-button>
+              <!-- <el-button type="text" :disabled="!checkPermi(['standard:standardLibrary:upStandardProduct'])
+                " @click="bindSupplierDensitySecond(scope.row)">缁戝畾鍘傚</el-button> -->
             </template>
           </el-table-column>
         </el-table>
@@ -225,7 +222,7 @@
     <el-dialog :close-on-click-modal="false" :visible.sync="sectionUpDia" title="鍖洪棿璁剧疆" width="80%">
       <div class="body" style="padding: 5px 0">
         <el-table :data="sectionList" border height="350px" style="width: 100%"
-                  :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }">
+          :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }">
           <el-table-column align="center" label="搴忓彿" type="index" width="70">
           </el-table-column>
           <el-table-column align="center" label="鍖洪棿">
@@ -498,7 +495,7 @@
       }
     },
     // 璋冪敤tree杩囨护鏂规硶 涓枃鑻辫繃婊�
-    filterNode (value, data, node) {
+    filterNode(value, data, node) {
       if (!value) {銆�銆�銆�銆�//濡傛灉鏁版嵁涓虹┖锛屽垯杩斿洖true,鏄剧ず鎵�鏈夌殑鏁版嵁椤�
         return true
       }
@@ -507,7 +504,7 @@
       return this.chooseNode(val, data, node) // 璋冪敤杩囨护浜屽眰鏂规硶
     },
     // 杩囨护鐖惰妭鐐� / 瀛愯妭鐐� (濡傛灉杈撳叆鐨勫弬鏁版槸鐖惰妭鐐逛笖鑳藉尮閰嶏紝鍒欒繑鍥炶鑺傜偣浠ュ強鍏朵笅鐨勬墍鏈夊瓙鑺傜偣锛涘鏋滃弬鏁版槸瀛愯妭鐐癸紝鍒欒繑鍥炶鑺傜偣鐨勭埗鑺傜偣銆俷ame鏄腑鏂囧瓧绗︼紝enName鏄嫳鏂囧瓧绗�.
-    chooseNode (value, data, node) {
+    chooseNode(value, data, node) {
       if (data.label.indexOf(value) !== -1) {
         return true
       }
diff --git a/src/views/structural/capabilityAndLaboratory/capability/index.vue b/src/views/structural/capabilityAndLaboratory/capability/index.vue
index 046c120..ea3b1cd 100644
--- a/src/views/structural/capabilityAndLaboratory/capability/index.vue
+++ b/src/views/structural/capabilityAndLaboratory/capability/index.vue
@@ -97,7 +97,8 @@
     <EditForm ref="editForm" @refreshList="refreshList1"></EditForm>
     <testObjectEditForm ref="testObjectEditForm" @refreshList="refreshList"></testObjectEditForm>
     <BindPartDialog v-if="bindPartDialog" :bindPartDialog="bindPartDialog" :currentRow="currentRow" :type="type"
-      @closeBindPartDialog="closeBindPartDialog"></BindPartDialog>
+      @closeBindPartDialog="closeBindPartDialog" :currentObj="currentObj">
+    </BindPartDialog>
     <BindSupplierDensityDialog v-if="bindSupplierDensityDialog" :bindSupplierDensityDialog="bindSupplierDensityDialog"
       :currentRow="currentSupplierDensityRow" @closeBindPartDialog="closeBindSupplierDensityDialog">
     </BindSupplierDensityDialog>
@@ -232,7 +233,7 @@
         { label: '妫�楠屽璞�', prop: 'specimenName' },
         { label: '妫�楠屽璞N', prop: 'specimenNameEn' },
         { label: '浜у搧', prop: 'product' },
-        { label: '瀵硅薄浠e彿', prop: 'code' },
+        // { label: '瀵硅薄浠e彿', prop: 'code' },
         {
           label: '瀵硅薄绫诲瀷', prop: 'objectType',
           dataType: 'tag',
@@ -274,13 +275,13 @@
                 this.upProduct(row);
               },
             },
-            // {
-            //   name: '闆朵欢缁戝畾',
-            //   type: 'text',
-            //   clickFun: (row) => {
-            //     this.bindPartFirst(row);
-            //   },
-            // },
+            {
+              name: '闆朵欢缁戝畾',
+              type: 'text',
+              clickFun: (row) => {
+                this.bindPartFirst(row);
+              },
+            },
           ]
         }
       ],
@@ -343,13 +344,13 @@
                 }
               }
             },
-            {
-              name: '鍘傚瀵嗗害缁戝畾',
-              type: 'text',
-              clickFun: (row) => {
-                this.bindSupplierDensitySecond(row);
-              },
-            },
+            // {
+            //   name: '鍘傚瀵嗗害缁戝畾',
+            //   type: 'text',
+            //   clickFun: (row) => {
+            //     this.bindSupplierDensitySecond(row);
+            //   },
+            // },
           ]
         }
       ],
@@ -674,6 +675,7 @@
       this.bindPart(row, 1)
     },
     bindWokshop(row) {
+      this.workshopForm.workShopId = row.workShopId
       this.currentProduct = row;
       this.workshopVisible = true
     },
@@ -688,6 +690,9 @@
     },
     // 鎵撳紑闆朵欢缁戝畾寮规
     bindPart(row, index) {
+      if (index == 0) {
+        this.currentObj = row
+      }
       this.type = index
       this.currentRow = row
       this.bindPartDialog = true
diff --git a/src/views/structural/capabilityAndLaboratory/capabilityComponents/EditForm.vue b/src/views/structural/capabilityAndLaboratory/capabilityComponents/EditForm.vue
index 4755b92..b060f50 100644
--- a/src/views/structural/capabilityAndLaboratory/capabilityComponents/EditForm.vue
+++ b/src/views/structural/capabilityAndLaboratory/capabilityComponents/EditForm.vue
@@ -30,9 +30,8 @@
           <el-col :span="12">
             <el-form-item label="妫�楠屽璞★細" prop="sample">
               <el-cascader v-model="editForm.sample" :options="itemParameterData.cascaderField.sample.tree"
-                           :props="{value:'name',label:'name',checkStrictly: true, multiple: true}"
-                           :show-all-levels="false"  clearable
-                           filterable placeholder="璇烽�夋嫨" size="small" style="width: 100%;"></el-cascader>
+                :props="{ value: 'name', label: 'name', checkStrictly: true, multiple: true }" :show-all-levels="false"
+                clearable filterable placeholder="璇烽�夋嫨" size="small" style="width: 100%;"></el-cascader>
             </el-form-item>
           </el-col>
           <el-col :span="12">
@@ -45,14 +44,16 @@
           <el-col :span="12">
             <el-form-item label="鍦烘墍锛�" prop="laboratory">
               <el-select v-model="editForm.laboratory" clearable placeholder="璇烽�夋嫨" size="small" style="width: 100%">
-                <el-option v-for="item in laboratoryList" :key="item.label" :label="item.label" :value="item.label"></el-option>
+                <el-option v-for="item in laboratoryList" :key="item.label" :label="item.label"
+                  :value="item.label"></el-option>
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="璇曢獙瀹わ細" prop="sonLaboratory">
               <el-select v-model="editForm.sonLaboratory" clearable placeholder="璇烽�夋嫨" size="small" style="width: 100%">
-                <el-option v-for="item in dict.type.sys_sub_lab" :key="item.value" :label="item.label" :value="item.value"></el-option>
+                <el-option v-for="item in dict.type.sys_sub_lab" :key="item.value" :label="item.label"
+                  :value="item.value"></el-option>
               </el-select>
             </el-form-item>
           </el-col>
@@ -73,7 +74,8 @@
           <el-col :span="12">
             <el-form-item label="璁¢噺鍗曚綅锛�" prop="unit">
               <el-select v-model="editForm.unit" clearable placeholder="璇烽�夋嫨" size="small" style="width: 100%">
-                <el-option v-for="item in dict.type.sys_unit" :key="item.value" :label="item.label" :value="item.value"></el-option>
+                <el-option v-for="item in dict.type.sys_unit" :key="item.value" :label="item.label"
+                  :value="item.value"></el-option>
               </el-select>
             </el-form-item>
           </el-col>
@@ -98,15 +100,19 @@
         <el-row>
           <el-col :span="12">
             <el-form-item label="妫�楠岄」绫诲瀷锛�" prop="inspectionItemType">
-              <el-select v-model="editForm.inspectionItemType" clearable placeholder="璇烽�夋嫨" size="small" style="width: 100%">
-                <el-option v-for="item in dict.type.inspection_item_type" :key="item.value" :label="item.label" :value="item.value"></el-option>
+              <el-select v-model="editForm.inspectionItemType" clearable placeholder="璇烽�夋嫨" size="small"
+                style="width: 100%">
+                <el-option v-for="item in dict.type.inspection_item_type" :key="item.value" :label="item.label"
+                  :value="item.value"></el-option>
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="妫�楠屽�肩被鍨嬶細" prop="inspectionValueType">
-              <el-select v-model="editForm.inspectionValueType" clearable placeholder="璇烽�夋嫨" size="small" style="width: 100%">
-                <el-option v-for="item in dict.type.inspection_value_type" :key="item.value" :label="item.label" :value="item.value"></el-option>
+              <el-select v-model="editForm.inspectionValueType" clearable placeholder="璇烽�夋嫨" size="small"
+                style="width: 100%">
+                <el-option v-for="item in dict.type.inspection_value_type" :key="item.value" :label="item.label"
+                  :value="item.value"></el-option>
               </el-select>
             </el-form-item>
           </el-col>
@@ -115,14 +121,16 @@
           <el-col :span="12">
             <el-form-item label="鐗规畩鏍囪瘑锛�" prop="bsm">
               <el-select v-model="editForm.bsm" clearable placeholder="璇烽�夋嫨" size="small" style="width: 100%">
-                <el-option v-for="item in dict.type.inspection_bsm" :key="item.value" :label="item.label" :value="item.value"></el-option>
+                <el-option v-for="item in dict.type.inspection_bsm" :key="item.value" :label="item.label"
+                  :value="item.value"></el-option>
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item label="鍘熷璁板綍妯℃澘锛�" prop="templateId">
               <el-select v-model="editForm.templateId" clearable placeholder="璇烽�夋嫨" size="small" style="width: 100%">
-                <el-option v-for="item in templateIdList" :key="item.value" :label="item.label" :value="item.value"></el-option>
+                <el-option v-for="item in templateIdList" :key="item.value" :label="item.label"
+                  :value="item.value"></el-option>
               </el-select>
             </el-form-item>
           </el-col>
@@ -142,18 +150,19 @@
         <el-row>
           <el-col :span="12">
             <el-form-item label="璇曢獙鏂规硶锛�" prop="method">
-              <el-select v-model="editForm.method" clearable multiple placeholder="璇烽�夋嫨" size="small" style="width: 100%">
-                <el-option v-for="item in methodList" :key="item.value" :label="item.label" :value="item.label"></el-option>
+              <el-select v-model="editForm.method" clearable multiple placeholder="璇烽�夋嫨" size="small"
+                style="width: 100%">
+                <el-option v-for="item in methodList" :key="item.value" :label="item.label"
+                  :value="item.label"></el-option>
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item label="鏉′欢锛�" prop="radiusList">
+            <el-form-item label="璇曢獙鏉′欢锛�" prop="radiusList">
               <el-select v-model="editForm.radiusList" allow-create default-first-option filterable multiple
-                         placeholder="璇烽�夋嫨"
-                         size="small"
-                         style="width: 100%">
-                <el-option v-for="item in radiusListList" :key="item.value" :label="item.label" :value="item.value"></el-option>
+                placeholder="璇烽�夋嫨" size="small" style="width: 100%">
+                <el-option v-for="item in radiusListList" :key="item.value" :label="item.label"
+                  :value="item.value"></el-option>
               </el-select>
             </el-form-item>
           </el-col>
@@ -165,13 +174,13 @@
             </el-form-item>
           </el-col>
         </el-row>
-<!--        <el-col :span="12">-->
-<!--          <el-form-item label="瀛楀吀绫诲瀷锛�" prop="dic">-->
-<!--            <el-select v-model="editForm.dic" clearable placeholder="璇烽�夋嫨" size="small" style="width: 100%">-->
-<!--              <el-option v-for="item in dicList" :key="item.value" :label="item.label" :value="item.value"></el-option>-->
-<!--            </el-select>-->
-<!--          </el-form-item>-->
-<!--        </el-col>-->
+        <!--        <el-col :span="12">-->
+        <!--          <el-form-item label="瀛楀吀绫诲瀷锛�" prop="dic">-->
+        <!--            <el-select v-model="editForm.dic" clearable placeholder="璇烽�夋嫨" size="small" style="width: 100%">-->
+        <!--              <el-option v-for="item in dicList" :key="item.value" :label="item.label" :value="item.value"></el-option>-->
+        <!--            </el-select>-->
+        <!--          </el-form-item>-->
+        <!--        </el-col>-->
       </el-form>
       <span slot="footer" class="dialog-footer">
         <el-button @click="closeDia">鍙� 娑�</el-button>
@@ -190,7 +199,7 @@
   obtainItemParameterList,
   upItemParameter
 } from "@/api/structural/capability";
-import {selectStandardMethods} from "@/api/structural/standardMethod";
+import { selectStandardMethods } from "@/api/structural/standardMethod";
 
 export default {
   name: "EditForm",
@@ -267,7 +276,7 @@
   },
   // 鏂规硶闆嗗悎
   methods: {
-    openDia (type, row) {
+    openDia(type, row) {
       this.operationType = type
       this.editFormDia = true
       this.obtainItemParameterList() // 鍦烘墍绫诲瀷
@@ -277,29 +286,29 @@
       if (type === 'add') {
         this.editForm = {
           inspectionItem: '', // 妫�楠岄」
-            inspectionItemEn: '', // 妫�楠岄」EN
-            inspectionItemSubclass: '', // 妫�楠屽瓙椤�
-            inspectionItemSubclassEn: '', // 妫�楠屽瓙椤笶N
-            sample: [], // 妫�楠屽璞�
-            price: '', // 鍗曚环
-            laboratory: '', // 鍦烘墍
-            sonLaboratory: '', // 璇曢獙瀹�
-            askTell: '', // 瑕佹眰鎻忚堪
-            ask: '', // 瑕佹眰鍊�
-            unit: '', // 璁¢噺鍗曚綅
-            manHour: '', // 宸ユ椂
-            manDay: '', // 棰勮鏃堕棿
-            manHourGroup: '', // 宸ユ椂鍒嗙粍
-            inspectionItemType: '', // 妫�楠岄」绫诲瀷
-            inspectionValueType: '', // 妫�楠屽�肩被鍨�
-            dic: '', // 瀛楀吀绫诲瀷
-            bsm: '', // 鐗规畩鏍囪瘑
-            templateId: '', // 鍘熷璁板綍妯℃澘
-            inspectionItemClass: '', // 妫�楠岄」鍒嗙被
-            inspectionItemClassEn: '', // 妫�楠岄」鍒嗙被EN
-            method: '', // 璇曢獙鏂规硶
-            radiusList: [], // 鏉′欢
-            rates: '', // 鏉′欢
+          inspectionItemEn: '', // 妫�楠岄」EN
+          inspectionItemSubclass: '', // 妫�楠屽瓙椤�
+          inspectionItemSubclassEn: '', // 妫�楠屽瓙椤笶N
+          sample: [], // 妫�楠屽璞�
+          price: '', // 鍗曚环
+          laboratory: '', // 鍦烘墍
+          sonLaboratory: '', // 璇曢獙瀹�
+          askTell: '', // 瑕佹眰鎻忚堪
+          ask: '', // 瑕佹眰鍊�
+          unit: '', // 璁¢噺鍗曚綅
+          manHour: '', // 宸ユ椂
+          manDay: '', // 棰勮鏃堕棿
+          manHourGroup: '', // 宸ユ椂鍒嗙粍
+          inspectionItemType: '', // 妫�楠岄」绫诲瀷
+          inspectionValueType: '', // 妫�楠屽�肩被鍨�
+          dic: '', // 瀛楀吀绫诲瀷
+          bsm: '', // 鐗规畩鏍囪瘑
+          templateId: '', // 鍘熷璁板綍妯℃澘
+          inspectionItemClass: '', // 妫�楠岄」鍒嗙被
+          inspectionItemClassEn: '', // 妫�楠岄」鍒嗙被EN
+          method: '', // 璇曢獙鏂规硶
+          radiusList: [], // 鏉′欢
+          rates: '', // 鏉′欢
         }
         this.resetForm('editForm')
       } else {
@@ -310,7 +319,7 @@
       }
     },
     // 鎻愪氦缂栬緫
-    handleEdit () {
+    handleEdit() {
       this.$refs.editForm.validate(valid => {
         if (valid) {
           this.editLoad = true
@@ -322,7 +331,7 @@
           } else {
             obj.radiusList = null
           }
-          if(obj.id){
+          if (obj.id) {
             // 淇敼
             upItemParameter(obj).then(res => {
               this.editLoad = false
@@ -335,7 +344,7 @@
             }).catch(e => {
               this.editLoad = false
             })
-          }else{
+          } else {
             // 鏂板
             addItemParameter(obj).then(res => {
               this.editLoad = false
@@ -353,31 +362,31 @@
       })
     },
     // 鍏抽棴寮规
-    closeDia () {
+    closeDia() {
       this.editFormDia = false
       this.resetForm("editForm");
     },
     selectTestObjectByName() {
       getItemTree().then(res => {
         if (res.data.length > 0) {
-          res.data.forEach(a=>{
+          res.data.forEach(a => {
             this.cascaderFieldData(a)
           })
           this.itemParameterData.cascaderField.sample.tree = res.data
         }
       })
     },
-    cascaderFieldData(val){
-      if(val.children === undefined) {
+    cascaderFieldData(val) {
+      if (val.children === undefined) {
         return
-      }else if(val.children.length==0){
+      } else if (val.children.length == 0) {
         val.label = val.name
         val.value = val.id
         delete val.children
-      }else{
+      } else {
         val.label = val.name
         val.value = val.id
-        val.children.forEach(a=>{
+        val.children.forEach(a => {
           a.label = a.name
           a.value = a.id
           this.cascaderFieldData(a)
@@ -387,28 +396,28 @@
     getSelectStandardMethods() {
       selectStandardMethods().then(res => {
         let data = []
-          if (res.data.length > 0) {
-            res.data.forEach(a => {
-              data.push({
-                label: a.code,
-                value: a.id,
-              })
+        if (res.data.length > 0) {
+          res.data.forEach(a => {
+            data.push({
+              label: a.code,
+              value: a.id,
             })
-            this.methodList = data
-          }
+          })
+          this.methodList = data
+        }
       })
     },
     obtainItemParameterList() {
       obtainItemParameterList().then(res => {
         let data = []
-          if (res.data.length > 0) {
-            res.data.forEach(a => {
-              data.push({
-                label: a.laboratoryName,
-                value: a.id
-              })
+        if (res.data.length > 0) {
+          res.data.forEach(a => {
+            data.push({
+              label: a.laboratoryName,
+              value: a.id
             })
-          }
+          })
+        }
         this.laboratoryList = data
       })
     },
diff --git a/src/views/structural/capabilityAndLaboratory/capabilityComponents/bindPartDialog.vue b/src/views/structural/capabilityAndLaboratory/capabilityComponents/bindPartDialog.vue
index bf2716e..92e3e56 100644
--- a/src/views/structural/capabilityAndLaboratory/capabilityComponents/bindPartDialog.vue
+++ b/src/views/structural/capabilityAndLaboratory/capabilityComponents/bindPartDialog.vue
@@ -1,22 +1,20 @@
 <template>
   <div>
     <el-dialog title="闆朵欢缁戝畾" :visible.sync="isShow" width="800px" @close="$emit('closeBindPartDialog')">
-      <lims-table :tableData="tableData" :column="column" height="460"
-                  :page="page" :tableLoading="tableLoading"></lims-table>
+      <lims-table :tableData="tableData" :column="column" height="460" :page="page" :tableLoading="tableLoading"
+        :key="1"></lims-table>
       <span slot="footer" class="dialog-footer">
         <el-button @click="$emit('closeBindPartDialog')">鍙� 娑�</el-button>
         <el-button type="primary" @click="addBindPart('add')" :loading="addBindLoad">鏂� 澧�</el-button>
       </span>
     </el-dialog>
     <el-dialog :title="dialogTitle" :visible.sync="addBindPartDialog" width="400px" @close="closeBindPartDialog"
-               :close-on-click-modal="false" >
+      :close-on-click-modal="false">
       <div class="body" v-if="addBindPartDialog">
-        <el-form label-position="right" label-width="80px"
-                 ref="bindPartData"
-                 :rules="bindPartDataRules"
-                 :model="bindPartData">
+        <el-form label-position="right" label-width="80px" ref="bindPartData" :rules="bindPartDataRules"
+          :model="bindPartData">
           <el-form-item label="闆朵欢鍙凤細" prop="partNo">
-            <el-input v-model="bindPartData.partNo" size="small"></el-input>
+            <el-input v-model="bindPartData.partNo" size="small" :disabled="dialogTitle == '淇敼闆朵欢缁戝畾'"></el-input>
           </el-form-item>
           <el-form-item label="棰滆壊锛�" prop="color">
             <el-input v-model="bindPartData.color" size="small"></el-input>
@@ -24,12 +22,30 @@
           <el-form-item label="鑹叉爣锛�" prop="colorCode">
             <el-input v-model="bindPartData.colorCode" size="small"></el-input>
           </el-form-item>
+          <el-form-item label="杩涘巶妫�楠岄」锛�" prop="inspectionItem" v-if="currentObj.objectType == '鍘熸潗鏂�'" label-width="100px">
+            <!-- <el-input v-model="bindPartData.inspectionItem" disabled placeholder="閫夋嫨妫�楠岄」" size="small">
+              <template slot="append">
+                <el-button slot="append" icon="el-icon-search" @click="openItems"></el-button>
+              </template>
+</el-input> -->
+            <el-select v-model="bindPartData.inspectionItem" multiple collapse-tags placeholder="璇烽�夋嫨" size="small">
+              <el-option v-for="item in itemList" :key="item.inspectionItem" :label="item.inspectionItem"
+                :value="item.inspectionItem">
+              </el-option>
+            </el-select>
+          </el-form-item>
         </el-form>
       </div>
       <span slot="footer" class="dialog-footer">
         <el-button @click="closeBindPartDialog">鍙� 娑�</el-button>
         <el-button type="primary" @click="submitBind" :loading="bindLoad">纭� 璁�</el-button>
       </span>
+    </el-dialog>
+    <el-dialog title="淇敼璁板綍" :visible.sync="editItem" width="600px">
+      <div class="body" v-if="editItem">
+        <lims-table :tableData="editList" :column="editColumn" height="460px" :tableLoading="tableLoading0" :key="2"
+          :page="editPage" @pagination="editPagination"></lims-table>
+      </div>
     </el-dialog>
   </div>
 </template>
@@ -40,14 +56,13 @@
   addProductPart,
   addTestObjectPart, deleteProductPart, deleteTestObjectPart,
   selectByProductId,
-  selectByTestObjectId, updateProductPart, updateTestObjectPart
+  selectByTestObjectId, updateProductPart, updateTestObjectPart, inspectionItems, productPartReview
 } from "@/api/structural/structureTestObjectPart";
-import {delProduct} from "@/api/structural/capability";
 
 export default {
   name: "bindPartDialog",
   // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
-  components: {limsTable},
+  components: { limsTable },
   props: {
     bindPartDialog: {
       type: Boolean,
@@ -57,10 +72,14 @@
       type: Number,
       default: () => null
     },
-    currentRow : { // 閫夋嫨鏈潯鏁版嵁鐨勪俊鎭�
+    currentRow: { // 閫夋嫨鏈潯鏁版嵁鐨勪俊鎭�
       type: Object,
-      default: () => {}
-    }
+      default: () => { }
+    },
+    currentObj: {//褰撳墠瀵硅薄
+      type: Object,
+      default: () => { }
+    },
   },
   data() {
     // 杩欓噷瀛樻斁鏁版嵁
@@ -71,9 +90,20 @@
       tableData: [],
       tableLoading: false,
       column: [
-        {label: '闆朵欢鍙�', prop: 'partNo'},
-        {label: '棰滆壊', prop: 'color'},
-        {label: '鑹叉爣', prop: 'colorCode'},
+        { label: '闆朵欢鍙�', prop: 'partNo' },
+        { label: '棰滆壊', prop: 'color' },
+        { label: '鑹叉爣', prop: 'colorCode' },
+        {
+          label: '鐘舵��', prop: 'review',
+          dataType: "tag",
+          formatType: (params) => {
+            if (params == '寰呭鏍�') {
+              return 'danger'
+            } else {
+              return 'success'
+            }
+          },
+        },
         {
           dataType: 'action',
           fixed: 'right',
@@ -93,13 +123,40 @@
                 this.delete(row);
               },
             },
+            {
+              name: '澶嶆牳',
+              type: 'text',
+              clickFun: (row) => {
+                this.$confirm("鏄惁澶嶆牳閫氳繃?", "澶嶆牳", {
+                  confirmButtonText: "纭畾",
+                  cancelButtonText: "鍙栨秷",
+                  type: "warning",
+                })
+                  .then(() => {
+                    productPartReview({ id: row.id }).then((res) => {
+                      if (res.code == 200) {
+                        this.$message.success("澶嶆牳閫氳繃");
+                        this.getList()();
+                      }
+                    });
+                  })
+                  .catch(() => { });
+              },
+            },
+            {
+              name: '璁板綍',
+              type: 'text',
+              clickFun: (row) => {
+                this.lookList(row);
+              },
+            },
           ]
         }
       ],
       page: {
-        total:0,
-        size:10,
-        current:1,
+        total: 0,
+        size: 10,
+        current: 1,
         layout: 'total, prev, pager, next'
       },
       bindPartComponent: {
@@ -135,6 +192,7 @@
         partNo: '', // 闆朵欢鍙�
         color: '', // 棰滆壊
         colorCode: '', // 鑹叉爣
+        inspectionItem: [],//鍘熸潗鏂欒繘鍘傛楠屽璞″垪琛�
       },
       bindPartDataRules: {
         partNo: [
@@ -143,19 +201,60 @@
       },
       bindLoad: false,
       upIndex: 0,
+
       addBindLoad: false,
+      itemList: [],//鍘熸潗鏂欒繘鍘傛楠屽璞″垪琛�
+      editItem: false,
+      editList: [],
+      editColumn: [
+        { label: '闆朵欢鍙�', prop: 'inspectionItem' },
+        { label: '棰滆壊', prop: 'inspectionItemSubclass' },
+        { label: '鑹叉爣', prop: 'ask' },
+        { label: '杩涘巶妫�楠岄」', prop: 'askTell' },
+        { label: '淇敼鏃堕棿', prop: 'method' },
+        { label: '淇敼浜�', prop: 'method' },
+      ],
+      editPage: {
+        total: 0,
+        size: 10,
+        current: 0,
+      },
+      tableLoading0: false,
+      // mutilSelect: []
     }
   },
   mounted() {
     this.getList()
+    this.getItemList()
   },
   // 鏂规硶闆嗗悎
   methods: {
+    getItemList() {
+      // this.tableLoading0 = true;
+      inspectionItems({
+        sample: this.currentObj.specimenName,
+        productName: this.type == 0 ? null : this.currentRow.name
+      }).then(res => {
+        this.itemList = res.data
+        // this.tableLoading0 = false;
+      })
+    },
+    // 淇敼璁板綍
+    lookList() {
+      this.editItem = true;
+      this.getEditList()
+    },
+    getEditList() { },
+    editPagination() {
+      this.editPage.current = page;
+      this.editPage.size = limit;
+      this.getEditList();
+    },
     getList() {
       this.tableLoading = true
       // 鏍规嵁绫诲瀷鍒ゆ柇鏄楠屽璞¢浂浠剁粦瀹氳繕鏄骇鍝佺淮鎶ら浂浠剁粦瀹�
       if (this.type === 0) {
-        selectByTestObjectId({testObjectId: this.currentRow.id}).then(res => {
+        selectByTestObjectId({ testObjectId: this.currentRow.id }).then(res => {
           this.tableLoading = false
           if (res.code === 200) {
             this.tableData = res.data.records
@@ -165,7 +264,7 @@
           this.tableLoading = false
         })
       } else {
-        selectByProductId({productId: this.currentRow.id}).then(res => {
+        selectByProductId({ productId: this.currentRow.id }).then(res => {
           this.tableLoading = false
           if (res.code === 200) {
             this.tableData = res.data.records
@@ -176,16 +275,17 @@
         })
       }
     },
-    addBindPart (type, row) {
+    addBindPart(type, row) {
       this.addBindPartDialog = true
       this.dialogTitle = type === 'add' ? '鏂板闆朵欢缁戝畾' : '淇敼闆朵欢缁戝畾'
       this.operationType = type
       if (type === 'edit') {
         this.bindPartData = this.HaveJson(row)
+        this.bindPartData.inspectionItem = this.bindPartData.inspectionItem ? this.bindPartData.inspectionItem.split(',') : []
       }
     },
     // 鎻愪氦闆朵欢缁戝畾
-    submitBind () {
+    submitBind() {
       this.$refs['bindPartData'].validate((valid) => {
         if (valid) {
           // 鏍规嵁绫诲瀷鍒ゆ柇鏄楠屽璞¢浂浠剁粦瀹氳繕鏄骇鍝佺淮鎶ら浂浠剁粦瀹�
@@ -194,16 +294,19 @@
             color: this.bindPartData.color,
             colorCode: this.bindPartData.colorCode,
             partNo: this.bindPartData.partNo,
-            } : {
+            inspectionItem: this.bindPartData.inspectionItem && this.bindPartData.inspectionItem.length > 0 ? this.bindPartData.inspectionItem.join(',') : ''
+          } : {
             productId: this.currentRow.id,
             color: this.bindPartData.color,
             colorCode: this.bindPartData.colorCode,
             partNo: this.bindPartData.partNo,
+            inspectionItem: this.bindPartData.inspectionItem && this.bindPartData.inspectionItem.length > 0 ? this.bindPartData.inspectionItem.join(',') : ''
           }
           this.bindLoad = true
           if (this.operationType === 'add') {
             if (this.type === 0) {
               addTestObjectPart(params).then(res => {
+                this.bindLoad = false
                 if (res.code === 200) {
                   this.resetForm('bindPartData')
                   this.addBindPartDialog = false
@@ -260,21 +363,21 @@
         }
       })
     },
-    delete (row) {
+    delete(row) {
       this.$confirm('姝ゆ搷浣滃皢鍒犻櫎璇ユ暟鎹�, 鏄惁缁х画?', '鎻愮ず', {
         confirmButtonText: '纭畾',
         cancelButtonText: '鍙栨秷',
         type: 'warning'
       }).then(() => {
         if (this.type === 0) {
-          deleteTestObjectPart({id:row.id}).then(res => {
+          deleteTestObjectPart({ id: row.id }).then(res => {
             if (res.code === 200) {
               this.$message.success('鍒犻櫎鎴愬姛')
               this.getList();
             }
           })
         } else {
-          deleteProductPart({id:row.id}).then(res => {
+          deleteProductPart({ id: row.id }).then(res => {
             if (res.code === 200) {
               this.$message.success('鍒犻櫎鎴愬姛')
               this.getList();
@@ -288,13 +391,23 @@
         });
       })
     },
-    closeBindPartDialog () {
+    closeBindPartDialog() {
       this.resetForm('bindPartData')
       this.addBindPartDialog = false
     },
+    // openItems() {
+    //   this.mutilSelect = this.bindPartData.inspectionItem ? this.bindPartData.inspectionItem.split(',') : []
+    //   this.$refs.itemTable.toggleRowSelection(this.mutilSelect)
+    //   this.addBindItem = true;
+    // },
+    // submitBindItem() {
+    //   this.bindPartData.inspectionItem = this.mutilSelect.join(',')
+    // },
+    // handleSelectionChange(val) {
+    //   this.mutilSelect = val
+    // }
   },
 }
 </script>
 
-<style scoped>
-</style>
+<style scoped></style>
diff --git a/src/views/structural/capabilityAndLaboratory/capabilityComponents/testObjectEditForm.vue b/src/views/structural/capabilityAndLaboratory/capabilityComponents/testObjectEditForm.vue
index 3a8bfe1..ecdd9f2 100644
--- a/src/views/structural/capabilityAndLaboratory/capabilityComponents/testObjectEditForm.vue
+++ b/src/views/structural/capabilityAndLaboratory/capabilityComponents/testObjectEditForm.vue
@@ -15,9 +15,9 @@
         <el-form-item label="妫�楠屽璞N锛�" prop="specimenNameEn">
           <el-input v-model="editForm.specimenNameEn" clearable size="small"></el-input>
         </el-form-item>
-        <el-form-item label="瀵硅薄浠e彿锛�" prop="code">
+        <!-- <el-form-item label="瀵硅薄浠e彿锛�" prop="code">
           <el-input v-model="editForm.code" clearable size="small"></el-input>
-        </el-form-item>
+        </el-form-item> -->
         <el-form-item label="瀵硅薄绫诲瀷锛�" prop="objectType">
           <el-select v-model="editForm.objectType" clearable placeholder="璇烽�夋嫨" size="small" style="width: 100%">
             <el-option v-for="item in dict.type.product_classification" :key="item.value" :label="item.label"
@@ -53,7 +53,7 @@
         laboratoryId: '', // 鍦烘墍
         specimenName: '', // 妫�楠屽璞�
         specimenNameEn: '', // 妫�楠屽璞N
-        code: '', // 瀵硅薄浠e彿
+        // code: '', // 瀵硅薄浠e彿
         objectType: '', // 瀵硅薄绫诲瀷
       },
       laboratoryList: [],
@@ -64,9 +64,9 @@
         specimenName: [
           { required: true, message: '璇疯緭鍏ユ楠屽璞�', trigger: 'blur' }
         ],
-        code: [
-          { required: true, message: '璇疯緭鍏ュ璞′唬鍙�', trigger: 'blur' }
-        ],
+        // code: [
+        //   { required: true, message: '璇疯緭鍏ュ璞′唬鍙�', trigger: 'blur' }
+        // ],
       },
       operationType: ''
     }
diff --git a/src/views/structural/capabilityAndLaboratory/workshop/components/fileList.vue b/src/views/structural/capabilityAndLaboratory/workshop/components/fileList.vue
index 5d420d3..11287cd 100644
--- a/src/views/structural/capabilityAndLaboratory/workshop/components/fileList.vue
+++ b/src/views/structural/capabilityAndLaboratory/workshop/components/fileList.vue
@@ -10,15 +10,21 @@
     </div>
     <lims-table :tableData="tableDataFile" :column="columnFile" height="500px" key="tableDataFile"
       :tableLoading="tableLoadingFile"></lims-table>
+    <el-dialog title="鏌ョ湅闄勪欢" :visible.sync="lookDialogVisible" width="800px" top="5vh" fullscreen append-to-body>
+      <filePreview v-if="lookDialogVisible" :fileUrl="javaApi + '/word/' + currentInfo.fileUrl" :currentFile="{}"
+        style="max-height: 90vh;overflow-y: auto;" />
+    </el-dialog>
   </div>
 </template>
 
 <script>
 import limsTable from "@/components/Table/lims-table.vue";
 import { fileList, delFile } from "@/api/structural/workshop.js"
+import filePreview from "@/components/Preview/filePreview.vue";
 export default {
   components: {
     limsTable,
+    filePreview,
   },
   props: ['currentId'],
   computed: {
@@ -75,11 +81,21 @@
                 this.delete(row);
               }
             },
+            {
+              name: '棰勮',
+              type: 'text',
+              clickFun: (row) => {
+                this.currentInfo = row
+                this.lookDialogVisible = true
+              }
+            },
           ]
         }
       ],
       tableDataFile: [],
       tableLoadingFile: false,
+      lookDialogVisible: false,
+      currentInfo: {},
     }
   },
   mounted() {
@@ -119,13 +135,7 @@
     },
     // 涓嬭浇闄勪欢鐨勬枃浠�
     handleDown(row) {
-      downFile({
-        id: row.id,
-      }).then(res => {
-        this.$download.saveAs(res.data.fileUrl, row.fileName);
-      }).catch(error => {
-
-      })
+      this.$download.saveAs(row.fileUrl, row.fileName);
     },
     // 鍒犻櫎闄勪欢鏂囦欢
     delete(row) {
diff --git a/src/views/structural/capabilityAndLaboratory/workshop/index.vue b/src/views/structural/capabilityAndLaboratory/workshop/index.vue
index 12e0053..5ccdf89 100644
--- a/src/views/structural/capabilityAndLaboratory/workshop/index.vue
+++ b/src/views/structural/capabilityAndLaboratory/workshop/index.vue
@@ -2,7 +2,7 @@
   <div class="workshop">
     <div class="search">
       <div class="search_thing">
-        <div class="search_label">鍚嶇О锛�</div>
+        <div class="search_label">杞﹂棿鍚嶇О锛�</div>
         <div class="search_input">
           <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="queryParams.name"
             @keyup.enter.native="refreshTable()"></el-input>
@@ -32,7 +32,7 @@
       </span>
     </el-dialog>
     <el-dialog :visible.sync="filesDialogVisible" title="闄勪欢鏌ョ湅" width="80%">
-      <fileList :currentId="id" />
+      <fileList :currentId="id" v-if="filesDialogVisible" />
     </el-dialog>
   </div>
 </template>
@@ -223,7 +223,7 @@
 }
 
 .search_label {
-  width: 70px;
+  width: 90px;
   font-size: 14px;
   text-align: right;
 }

--
Gitblit v1.9.3