From 6140eb0f56b7adae1d4e41dbd4a1ac582dd17d9b Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期三, 12 三月 2025 11:23:29 +0800
Subject: [PATCH] Merge branch 'dev' of http://114.132.189.42:9002/r/center-lims-before-ruoyi into dev

---
 src/components/Table/lims-table.vue                                     |  290 ++
 src/api/cnas/resourceDemand/device.js                                   |   45 
 src/api/system/user.js                                                  |   10 
 src/views/CNAS/resourceDemand/device/index.vue                          |    6 
 src/store/modules/user.js                                               |   11 
 src/views/CNAS/resourceDemand/device/component/files.vue                |    5 
 src/views/CNAS/resourceDemand/device/component/management.vue           | 2022 +++++++++++++++----------
 src/layout/components/Navbar.vue                                        |    3 
 src/assets/styles/element-ui.scss                                       |   46 
 src/layout/components/TagsView/index.vue                                |  245 +-
 src/router/index.js                                                     |    9 
 src/api/standard/standardLibrary.js                                     |   25 
 src/views/CNAS/resourceDemand/device/component/operationInstruction.vue |   19 
 src/views/CNAS/resourceDemand/device/component/device-overview.vue      |   27 
 src/views/business/inspectionOrder/add.vue                              | 1770 +++++++++++++++-------
 src/api/business/insBushing.js                                          |   10 
 src/store/getters.js                                                    |    2 
 src/views/business/inspectionOrder/index.vue                            |  114 
 src/views/CNAS/resourceDemand/device/component/resource-reservation.vue |   48 
 19 files changed, 2,991 insertions(+), 1,716 deletions(-)

diff --git a/src/api/business/insBushing.js b/src/api/business/insBushing.js
new file mode 100644
index 0000000..73c0ab0
--- /dev/null
+++ b/src/api/business/insBushing.js
@@ -0,0 +1,10 @@
+import request from '@/utils/request'
+
+// 鏌ョ湅鎵�灞炲崟浣嶆楠屽崟
+export function selectBushingBySampleId(query) {
+  return request({
+    url: '/insBushing/selectBushingBySampleId',
+    method: 'get',
+    params: query
+  })
+}
diff --git a/src/api/cnas/resourceDemand/device.js b/src/api/cnas/resourceDemand/device.js
index 8f66b90..08b9d6d 100644
--- a/src/api/cnas/resourceDemand/device.js
+++ b/src/api/cnas/resourceDemand/device.js
@@ -660,7 +660,7 @@
 //鏂板璁惧妗f
 export function addDocument(data) {
   return request({
-    url: "/deviceDocuments/addDocument",
+    url: "/documents/add",
     method: "post",
     data: data,
   });
@@ -669,7 +669,7 @@
 // 鑾峰彇鐩稿叧鏂囨。鏁版嵁鐨刟pi-鏇存柊
 export function updateDocument(data) {
   return request({
-    url: "/deviceDocuments/updateDocument",
+    url: "/documents/updateDocument",
     method: "post",
     data: data,
   });
@@ -678,7 +678,7 @@
 //鍒犻櫎璁惧妗f
 export function deleteDocumentById(query) {
   return request({
-    url: "/deviceDocuments/deleteDocumentById",
+    url: "/documents/delete",
     method: "delete",
     params: query,
   });
@@ -814,9 +814,9 @@
 }
 
 //鏌ヨ璁惧妗f鍒楄〃
-export function getAllDocuments(query) {
+export function getListByDId(query) {
   return request({
-    url: `/deviceDocuments/getAllDocuments`,
+    url: '/documents/getListByDId',
     method: "get",
     params: query,
   });
@@ -1198,11 +1198,18 @@
     data: data,
   });
 }
-
+//浣滀笟鎸囧涔︽煡璇�
+export function pageByPageQueryOfHomeworkInstructions(query) {
+  return request({
+    url: "/instruction/pageByPageQueryOfHomeworkInstructions",
+    method: "get",
+    params: query,
+  });
+}
 //浣滀笟鎸囧涔� 瀹℃壒
 export function approvalOfHomeworkInstructionManual(data) {
   return request({
-    url: "/deviceInstruction/approvalOfHomeworkInstructionManual",
+    url: "/instruction/approvalOfHomeworkInstructionManual",
     method: "post",
     data: data,
   });
@@ -1211,7 +1218,7 @@
 //浣滀笟鎸囧涔� 鍒犻櫎
 export function homeworkGuidebook(query) {
   return request({
-    url: "/deviceInstruction/homeworkGuidebook",
+    url: "/instruction/homeworkGuidebook",
     method: "delete",
     params: query,
   });
@@ -1220,7 +1227,7 @@
 //浣滀笟鎸囧涔� 缂栬緫鏌ヨ
 export function homeworkGuidebookEditor(query) {
   return request({
-    url: "/deviceInstruction/homeworkGuidebookEditor",
+    url: "/instruction/homeworkGuidebookEditor",
     method: "get",
     params: query,
   });
@@ -1229,7 +1236,7 @@
 //浣滀笟鎸囧涔︽柊澧�
 export function newHomeworkGuidebookAdded(data) {
   return request({
-    url: "/deviceInstruction/newHomeworkGuidebookAdded",
+    url: "/instruction/newHomeworkGuidebookAdded",
     method: "post",
     data: data,
   });
@@ -1238,20 +1245,12 @@
 //浣滀笟鎸囧涔﹀彈鎺ф枃浠跺垹闄�
 export function deleteHomeworkGuidebook(query) {
   return request({
-    url: "/deviceInstruction/deleteHomeworkGuidebook",
+    url: "/instruction/deleteHomeworkGuidebook",
     method: "delete",
     params: query,
   });
 }
 
-//浣滀笟鎸囧涔� 鏌ヨ
-export function pageByPageQueryOfHomeworkInstructions(query) {
-  return request({
-    url: "/deviceInstruction/pageByPageQueryOfHomeworkInstructions",
-    method: "get",
-    params: query,
-  });
-}
 //璁惧棰勭害鎺ュ彛
 export function reservationSelectDevice(query) {
   return request({
@@ -1260,7 +1259,7 @@
     params: query,
   });
 }
-//璁惧棰勭害鎺ュ彛
+//璁惧棰勭害鎺ュ彛 鍒犻櫎
 export function reservationDelete(query) {
   return request({
     url: "/reservation/delete",
@@ -1268,7 +1267,7 @@
     params: query,
   });
 }
-//璁惧棰勭害鎺ュ彛
+//璁惧棰勭害鎺ュ彛 淇濆瓨
 export function reservationSave(query) {
   return request({
     url: "/reservation/save",
@@ -1284,10 +1283,10 @@
     params: query,
   });
 }
-//璁惧棰勭害鎺ュ彛
+// 璁惧杩愯鎬昏-鏍规嵁id鑾峰彇璁惧鏁呴殰鏁版嵁
 export function device(query) {
   return request({
-    url: "/api/device-faults/device",
+    url: "/deviceFaults/device",
     method: "get",
     params: query,
   });
diff --git a/src/api/standard/standardLibrary.js b/src/api/standard/standardLibrary.js
index 7817c92..63752ea 100644
--- a/src/api/standard/standardLibrary.js
+++ b/src/api/standard/standardLibrary.js
@@ -99,6 +99,15 @@
   });
 }
 
+// 閫氳繃鏍囧噯鏍戞煡璇㈠搴旂殑妫�楠岄」鐩�
+export function selectStandardProductList(query) {
+  return request({
+    url: "/standardTree/selectStandardProductList",
+    method: "get",
+    params: query,
+  });
+}
+
 // 鏌ヨ鍘熷璁板綍妯℃澘鏋氫妇
 export function getStandardTemplate(query) {
   return request({
@@ -134,3 +143,19 @@
     params: query,
   });
 }
+
+// 鑾峰彇鏍囧噯鏍戜笅鏍囧噯鏂规硶鏋氫妇
+export function selectStandardMethodEnum() {
+  return request({
+    url: "/standardTree/selectStandardMethodEnum",
+    method: "get",
+  });
+}
+
+// 鑾峰彇鏍囧噯鏍�(妫�楠屼笅鍗�)
+export function selectStandardTreeList2() {
+  return request({
+    url: "/standardTree/selectStandardTreeList2",
+    method: "get",
+  });
+}
diff --git a/src/api/system/user.js b/src/api/system/user.js
index 7579fd2..cb4750c 100644
--- a/src/api/system/user.js
+++ b/src/api/system/user.js
@@ -185,9 +185,17 @@
 }
 
 // 鑾峰彇褰撳墠鐧诲綍浜哄憳閮ㄩ棬
-export function selectUserDepartmentLimsName(query) {
+export function selectUserDepartmentLimsName() {
   return request({
     url: "/system/newUser/selectUserDepartmentLimsName",
     method: "get",
   });
 }
+
+// 鑾峰彇瀹為獙瀹や笅鐨勬楠屽憳鍒楄〃
+export function getLaboratoryPersonList() {
+  return request({
+    url: "/system/newUser/getLaboratoryPersonList",
+    method: "get",
+  });
+}
diff --git a/src/assets/styles/element-ui.scss b/src/assets/styles/element-ui.scss
index 363092a..c0bd317 100644
--- a/src/assets/styles/element-ui.scss
+++ b/src/assets/styles/element-ui.scss
@@ -89,4 +89,48 @@
   > .el-submenu__title
   .el-submenu__icon-arrow {
   display: none;
-}
\ No newline at end of file
+}
+
+/* 鍏ㄥ眬琛ㄦ牸鏍峰紡 */
+.el-table th.el-table__cell,
+.has-gutter .el-table__cell {
+  background-color: #f0f1f5 !important;
+  color: #333;
+}
+
+/* 琛ㄦ牸琛岄�変腑鑳屾櫙鑹� */
+.el-table__body tr.current-row>td.el-table__cell,
+.el-table__body tr.selection-row>td.el-table__cell {
+  background-color: #c1ddf1;
+}
+
+.el-table__header .has-gutter .el-table__cell .cell {
+  font-size: 14px !important;
+  font-weight: 500;
+}
+
+.cell {
+  color: #333;
+  padding: 0 15px !important;
+  font-size: 12px;
+}
+
+.cell span {
+  font-size: 12px;
+  font-weight: 400;
+}
+
+.el-table .el-table__cell {
+  padding: 0 0;
+}
+
+.el-table .el-table__row {
+  height: 41px;
+}
+
+.el-table th.el-table__cell>.cell {
+  font-size: 14px;
+  font-weight: 400;
+  color: #333;
+  padding: 6px 15px !important;
+}
diff --git a/src/components/Table/lims-table.vue b/src/components/Table/lims-table.vue
index ad93b9e..2d5fce6 100644
--- a/src/components/Table/lims-table.vue
+++ b/src/components/Table/lims-table.vue
@@ -1,29 +1,85 @@
 <template>
   <div>
     <!-- 琛ㄦ牸 -->
-    <el-table ref="multipleTable" v-loading="tableLoading" :border="border" :data="tableData"
-      :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" :height="height"
-      :highlight-current-row="highlightCurrentRow" :row-class-name="rowClassName" :row-style="rowStyle"
-      :row-key="rowKey" :span-method="spanMethod" stripe style="width: 100%" tooltip-effect="dark" @row-click="rowClick"
-      @current-change="currentChange" @selection-change="handleSelectionChange" class="lims-table">
-      <el-table-column align="center" type="selection" width="55" v-if="isSelection" />
-      <el-table-column align="center" label="搴忓彿" type="index" width="60" :index="indexMethod" />
+    <el-table
+      ref="multipleTable"
+      v-loading="tableLoading"
+      :border="border"
+      :data="tableData"
+      :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }"
+      :height="height"
+      :highlight-current-row="highlightCurrentRow"
+      :row-class-name="rowClassName"
+      :row-style="rowStyle"
+      :row-key="rowKey"
+      :span-method="spanMethod"
+      :stripe="stripe"
+      style="width: 100%"
+      tooltip-effect="dark"
+      @row-click="rowClick"
+      @current-change="currentChange"
+      @selection-change="handleSelectionChange"
+      class="lims-table"
+    >
+      <el-table-column
+        align="center"
+        type="selection"
+        width="55"
+        v-if="isSelection"
+      />
+      <el-table-column
+        align="center"
+        label="搴忓彿"
+        type="index"
+        width="60"
+        :index="indexMethod"
+      />
 
-      <el-table-column v-for="(item, index) in column" :key="index" :column-key="item.columnKey"
-        :filter-method="item.filterHandler" :filter-multiple="item.filterMultiple" :filtered-value="item.filteredValue"
-        :filters="item.filters" :fixed="item.fixed" :label="item.label" :min-width="item.minWidth" :prop="item.prop"
-        :show-overflow-tooltip="item.dataType === 'action' || item.dataType === 'slot' ? false : true
-          " :sortable="item.sortable ? true : false" :type="item.type" :width="item.dataType === 'action' ? getWidth(item.operation) : item.width
-            " align="center">
+      <el-table-column
+        v-for="(item, index) in column"
+        :key="index"
+        :column-key="item.columnKey"
+        :filter-method="item.filterHandler"
+        :filter-multiple="item.filterMultiple"
+        :filtered-value="item.filteredValue"
+        :filters="item.filters"
+        :fixed="item.fixed"
+        :label="item.label"
+        :min-width="item.minWidth"
+        :prop="item.prop"
+        :show-overflow-tooltip="
+          item.dataType === 'action' || item.dataType === 'slot' ? false : true
+        "
+        :sortable="item.sortable ? true : false"
+        :type="item.type"
+        :width="
+          item.dataType === 'action' ? getWidth(item.operation) : item.width
+        "
+        align="center"
+      >
         <!-- <div class="123" v-if="item.type == ''"> -->
-        <template v-if="item.hasOwnProperty('colunmTemplate')" :slot="item.colunmTemplate" slot-scope="scope">
-          <slot v-if="item.theadSlot" :index="index" :name="item.theadSlot" :row="scope.row" />
+        <template
+          v-if="item.hasOwnProperty('colunmTemplate')"
+          :slot="item.colunmTemplate"
+          slot-scope="scope"
+        >
+          <slot
+            v-if="item.theadSlot"
+            :index="index"
+            :name="item.theadSlot"
+            :row="scope.row"
+          />
         </template>
 
         <template slot-scope="scope">
           <!-- 鎻掓Ы -->
           <div v-if="item.dataType == 'slot'">
-            <slot v-if="item.slot" :index="scope.$index" :name="item.slot" :row="scope.row" />
+            <slot
+              v-if="item.slot"
+              :index="scope.$index"
+              :name="item.slot"
+              :row="scope.row"
+            />
           </div>
           <!-- 杩涘害鏉� -->
           <div v-else-if="item.dataType == 'progress'">
@@ -31,77 +87,143 @@
           </div>
           <!-- 鍥剧墖 -->
           <div v-else-if="item.dataType == 'image'">
-            <img :src="javaApi + '/img/' + scope.row[item.prop]" alt=""
-              style="width: 40px; height: 40px; margin-top: 10px" />
+            <img
+              :src="javaApi + '/img/' + scope.row[item.prop]"
+              alt=""
+              style="width: 40px; height: 40px; margin-top: 10px"
+            />
           </div>
 
           <!-- tag -->
           <div v-else-if="item.dataType == 'tag'">
-            <el-tag v-if="
-              typeof dataTypeFn(scope.row[item.prop], item.formatData) ==
-              'string'
-            " :title="scope.row[item.prop] | formatters(item.formatData)"
-              :type="formatType(scope.row[item.prop], item.formatType)">{{ scope.row[item.prop] |
-                formatters(item.formatData) }}</el-tag>
-            <el-tag v-for="(tag, index) in dataTypeFn(
-              scope.row[item.prop],
-              item.formatData
-            )" v-else-if="
-              typeof dataTypeFn(scope.row[item.prop], item.formatData) ==
-              'object'
-            " :key="index" :title="scope.row[item.prop] | formatters(item.formatData)"
-              :type="formatType(tag, item.formatType)">{{
+            <el-tag
+              v-if="
+                typeof dataTypeFn(scope.row[item.prop], item.formatData) ==
+                'string'
+              "
+              :title="scope.row[item.prop] | formatters(item.formatData)"
+              :type="formatType(scope.row[item.prop], item.formatType)"
+              >{{ scope.row[item.prop] | formatters(item.formatData) }}</el-tag
+            >
+            <el-tag
+              v-for="(tag, index) in dataTypeFn(
+                scope.row[item.prop],
+                item.formatData
+              )"
+              v-else-if="
+                typeof dataTypeFn(scope.row[item.prop], item.formatData) ==
+                'object'
+              "
+              :key="index"
+              :title="scope.row[item.prop] | formatters(item.formatData)"
+              :type="formatType(tag, item.formatType)"
+              >{{
                 item.tagGroup
                   ? tag[item.tagGroup.label]
                     ? tag[item.tagGroup.label]
                     : tag
                   : tag
-              }}</el-tag>
-            <el-tag v-else :title="scope.row[item.prop] | formatters(item.formatData)"
-              :type="formatType(scope.row[item.prop], item.formatType)">{{ scope.row[item.prop] |
-                formatters(item.formatData) }}</el-tag>
+              }}</el-tag
+            >
+            <el-tag
+              v-else
+              :title="scope.row[item.prop] | formatters(item.formatData)"
+              :type="formatType(scope.row[item.prop], item.formatType)"
+              >{{ scope.row[item.prop] | formatters(item.formatData) }}</el-tag
+            >
           </div>
 
           <!-- 鎸夐挳 -->
           <div v-else-if="item.dataType == 'action'">
             <template v-for="(o, key) in item.operation">
-              <el-button v-show="o.type != 'upload'" size="mini" v-if="o.showHide ? o.showHide(scope.row) : true"
-                :disabled="o.disabled ? o.disabled(scope.row) : false" :icon="iconFn(o)" :plain="o.plain"
-                :style="{ color: o.name === '鍒犻櫎' ? '#f56c6c' : o.color }" :type="o.type | typeFn(scope.row)"
-                @click="o.clickFun(scope.row)" :key="key">
+              <el-button
+                v-show="o.type != 'upload'"
+                size="mini"
+                v-if="o.showHide ? o.showHide(scope.row) : true"
+                :disabled="o.disabled ? o.disabled(scope.row) : false"
+                :icon="iconFn(o)"
+                :plain="o.plain"
+                :style="{ color: o.name === '鍒犻櫎' ? '#f56c6c' : o.color }"
+                :type="o.type | typeFn(scope.row)"
+                @click="o.clickFun(scope.row)"
+                :key="key"
+              >
                 {{ o.name }}
               </el-button>
-              <el-upload :action="javaApi +
-                o.url +
-                '?id=' +
-                (o.uploadIdFun ? o.uploadIdFun(scope.row) : scope.row.id)
-                " size="mini" ref="upload" :multiple="o.multiple ? o.multiple : false" :limit="1"
-                :disabled="o.disabled ? o.disabled(scope.row) : false" :accept="o.accept
-                  ? o.accept
-                  : '.jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar'
-                  " v-if="o.type == 'upload' && o.url" style="display: inline-block; width: 50px"
-                v-show="o.showHide ? o.showHide(scope.row) : true" :headers="uploadHeader" :on-error="onError"
-                :on-exceed="onExceed" :on-success="handleSuccessUp" :show-file-list="false" :key="key">
-                <el-button :size="o.size ? o.size : 'small'" type="text"
-                  :disabled="o.disabled ? o.disabled(scope.row) : false">{{ o.name }}</el-button>
+              <el-upload
+                :action="
+                  javaApi +
+                  o.url +
+                  '?id=' +
+                  (o.uploadIdFun ? o.uploadIdFun(scope.row) : scope.row.id)
+                "
+                size="mini"
+                ref="upload"
+                :multiple="o.multiple ? o.multiple : false"
+                :limit="1"
+                :disabled="o.disabled ? o.disabled(scope.row) : false"
+                :accept="
+                  o.accept
+                    ? o.accept
+                    : '.jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar'
+                "
+                v-if="o.type == 'upload' && o.url"
+                style="display: inline-block; width: 50px"
+                v-show="o.showHide ? o.showHide(scope.row) : true"
+                :headers="uploadHeader"
+                :on-error="onError"
+                :on-exceed="onExceed"
+                :on-success="handleSuccessUp"
+                :show-file-list="false"
+                :key="key"
+              >
+                <el-button
+                  :size="o.size ? o.size : 'small'"
+                  type="text"
+                  :disabled="o.disabled ? o.disabled(scope.row) : false"
+                  >{{ o.name }}</el-button
+                >
               </el-upload>
-              <el-upload action="#" :on-change="(file, fileList) => o.clickFun(scope.row, file, fileList)
-                " :multiple="o.multiple ? o.multiple : false" :limit="o.limit ? o.limit : 1"
-                :disabled="o.disabled ? o.disabled(scope.row) : false" :accept="o.accept
-                  ? o.accept
-                  : '.jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar'
-                  " v-if="o.type == 'upload' && !o.url" style="display: inline-block; width: 50px"
-                v-show="o.showHide ? o.showHide(scope.row) : true" :auto-upload="false" :on-exceed="onExceed"
-                :show-file-list="false" :key="key">
-                <el-button :size="o.size ? o.size : 'small'" type="text"
-                  :disabled="o.disabled ? o.disabled(scope.row) : false">{{ o.name }}</el-button>
+              <el-upload
+                action="#"
+                :on-change="
+                  (file, fileList) => o.clickFun(scope.row, file, fileList)
+                "
+                :multiple="o.multiple ? o.multiple : false"
+                :limit="o.limit ? o.limit : 1"
+                :disabled="o.disabled ? o.disabled(scope.row) : false"
+                :accept="
+                  o.accept
+                    ? o.accept
+                    : '.jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar'
+                "
+                v-if="o.type == 'upload' && !o.url"
+                style="display: inline-block; width: 50px"
+                v-show="o.showHide ? o.showHide(scope.row) : true"
+                :auto-upload="false"
+                :on-exceed="onExceed"
+                :show-file-list="false"
+                :key="key"
+              >
+                <el-button
+                  :size="o.size ? o.size : 'small'"
+                  type="text"
+                  :disabled="o.disabled ? o.disabled(scope.row) : false"
+                  >{{ o.name }}</el-button
+                >
               </el-upload>
             </template>
           </div>
           <!-- 鍙偣鍑荤殑鏂囧瓧 -->
-          <div v-else-if="item.dataType == 'link'" class="cell link" style="width: 100%"
-            @click="goLink(scope.row, item.linkMethod)">
-            <span v-if="!item.formatData">{{ scope.row[item.prop] }}</span>
+          <div
+            v-else-if="item.dataType == 'link'"
+            class="cell"
+            style="width: 100%"
+            @click="goLink(scope.row, item.linkEvent)"
+          >
+            <span class="link" v-if="!item.formatData">
+              {{ scope.row[item.prop] }}
+            </span>
           </div>
           <!-- 榛樿绾睍绀烘暟鎹� -->
           <div v-else class="cell" style="width: 100%">
@@ -113,8 +235,16 @@
         </template>
       </el-table-column>
     </el-table>
-    <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" style="background-color: #fff" />
+    <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"
+      style="background-color: #fff"
+    />
   </div>
 </template>
 
@@ -203,19 +333,19 @@
     handleSelectionChange: {
       type: Function,
       default: () => {
-        return () => { };
+        return () => {};
       },
     },
     rowClick: {
       type: Function,
       default: () => {
-        return () => { };
+        return () => {};
       },
     },
     currentChange: {
       type: Function,
       default: () => {
-        return () => { };
+        return () => {};
       },
     },
     border: {
@@ -223,6 +353,10 @@
       default: true,
     },
     highlightCurrentRow: {
+      type: Boolean,
+      default: false,
+    },
+    stripe: {
       type: Boolean,
       default: false,
     },
@@ -240,7 +374,7 @@
     },
     rowClassName: {
       type: Function,
-      default: () => { },
+      default: () => {},
     },
     rowStyle: {
       type: Function,
@@ -342,11 +476,11 @@
       return (this.page.current - 1) * this.page.size + index + 1;
     },
     // 鐐瑰嚮鍗曞厓鏍糽ink浜嬩欢
-    goLink(row, linkMethod) {
-      if (!linkMethod) {
+    goLink(row, linkEvent) {
+      if (!linkEvent) {
         return this.$message.warning("璇烽厤缃甽ingk浜嬩欢");
       }
-      this.$parent[linkMethod](row);
+      linkEvent.vueComponent[linkEvent.method](row);
     },
     // 鍚堝苟鍗曞厓鏍�
     calculateSpanInfo() {
@@ -435,11 +569,11 @@
 </script>
 
 <style scoped>
-.el-table>>>.el-table__empty-text {
+.el-table >>> .el-table__empty-text {
   text-align: center;
 }
 
->>>.cell {
+>>> .cell {
   padding: 0 !important;
 }
 
@@ -456,7 +590,7 @@
   cursor: pointer;
 }
 
->>>.el-table__body-wrapper::-webkit-scrollbar {
+>>> .el-table__body-wrapper::-webkit-scrollbar {
   height: 14px;
   /* 璁剧疆婊氬姩鏉″搴� */
 }
diff --git a/src/layout/components/Navbar.vue b/src/layout/components/Navbar.vue
index da89cf9..79b01c4 100644
--- a/src/layout/components/Navbar.vue
+++ b/src/layout/components/Navbar.vue
@@ -10,7 +10,8 @@
     </div>
     <div class="right-menu">
       <div class="avatar-wrapper">
-        <img :src="avatar" class="user-avatar" />
+        <!-- <img :src="avatar" class="user-avatar" /> -->
+        <el-avatar :size="28">{{ nickName.substring(0, 1) }}</el-avatar>
         <span class="userName">{{ nickName }}</span>
         <img
           class="logoout"
diff --git a/src/layout/components/TagsView/index.vue b/src/layout/components/TagsView/index.vue
index 73d03a4..714163b 100644
--- a/src/layout/components/TagsView/index.vue
+++ b/src/layout/components/TagsView/index.vue
@@ -1,245 +1,278 @@
 <template>
   <div id="tags-view-container" class="tags-view-container">
-    <scroll-pane ref="scrollPane" class="tags-view-wrapper" @scroll="handleScroll">
-      <hamburger id="hamburger-container" :is-active="sidebar.opened" class="hamburger-container" @toggleClick="toggleSideBar" />
+    <scroll-pane
+      ref="scrollPane"
+      class="tags-view-wrapper"
+      @scroll="handleScroll"
+    >
+      <hamburger
+        id="hamburger-container"
+        :is-active="sidebar.opened"
+        class="hamburger-container"
+        @toggleClick="toggleSideBar"
+      />
       <router-link
         v-for="tag in visitedViews"
         ref="tag"
         :key="tag.path"
-        :class="isActive(tag)?'active':''"
+        :class="isActive(tag) ? 'active' : ''"
         :to="{ path: tag.path, query: tag.query, fullPath: tag.fullPath }"
         tag="span"
         class="tags-view-item"
         :style="activeStyle(tag)"
-        @click.middle.native="!isAffix(tag)?closeSelectedTag(tag):''"
-        @contextmenu.prevent.native="openMenu(tag,$event)"
+        @click.middle.native="!isAffix(tag) ? closeSelectedTag(tag) : ''"
+        @contextmenu.prevent.native="openMenu(tag, $event)"
       >
         {{ tag.title }}
-        <span v-if="!isAffix(tag)" class="el-icon-close" @click.prevent.stop="closeSelectedTag(tag)" />
+        <span
+          v-if="!isAffix(tag)"
+          class="el-icon-close"
+          @click.prevent.stop="closeSelectedTag(tag)"
+        />
       </router-link>
     </scroll-pane>
-    <ul v-show="visible" :style="{left:left+'px',top:top+'px'}" class="contextmenu">
-      <li @click="refreshSelectedTag(selectedTag)"><i class="el-icon-refresh-right"></i> 鍒锋柊椤甸潰</li>
-      <li v-if="!isAffix(selectedTag)" @click="closeSelectedTag(selectedTag)"><i class="el-icon-close"></i> 鍏抽棴褰撳墠</li>
-      <li @click="closeOthersTags"><i class="el-icon-circle-close"></i> 鍏抽棴鍏朵粬</li>
-      <li v-if="!isFirstView()" @click="closeLeftTags"><i class="el-icon-back"></i> 鍏抽棴宸︿晶</li>
-      <li v-if="!isLastView()" @click="closeRightTags"><i class="el-icon-right"></i> 鍏抽棴鍙充晶</li>
-      <li @click="closeAllTags(selectedTag)"><i class="el-icon-circle-close"></i> 鍏ㄩ儴鍏抽棴</li>
+    <ul
+      v-show="visible"
+      :style="{ left: left + 'px', top: top + 'px' }"
+      class="contextmenu"
+    >
+      <li @click="refreshSelectedTag(selectedTag)">
+        <i class="el-icon-refresh-right"></i> 鍒锋柊椤甸潰
+      </li>
+      <li v-if="!isAffix(selectedTag)" @click="closeSelectedTag(selectedTag)">
+        <i class="el-icon-close"></i> 鍏抽棴褰撳墠
+      </li>
+      <li @click="closeOthersTags">
+        <i class="el-icon-circle-close"></i> 鍏抽棴鍏朵粬
+      </li>
+      <li v-if="!isFirstView()" @click="closeLeftTags">
+        <i class="el-icon-back"></i> 鍏抽棴宸︿晶
+      </li>
+      <li v-if="!isLastView()" @click="closeRightTags">
+        <i class="el-icon-right"></i> 鍏抽棴鍙充晶
+      </li>
+      <li @click="closeAllTags(selectedTag)">
+        <i class="el-icon-circle-close"></i> 鍏ㄩ儴鍏抽棴
+      </li>
     </ul>
   </div>
 </template>
 
 <script>
-import ScrollPane from './ScrollPane'
-import path from 'path'
+import ScrollPane from "./ScrollPane";
+import path from "path";
 import Hamburger from "@/components/Hamburger/index.vue";
-import {mapGetters} from "vuex";
+import { mapGetters } from "vuex";
 
 export default {
-  components: {Hamburger, ScrollPane },
+  components: { Hamburger, ScrollPane },
   data() {
     return {
       visible: false,
       top: 0,
       left: 0,
       selectedTag: {},
-      affixTags: []
-    }
+      affixTags: [],
+    };
   },
   computed: {
-    ...mapGetters([
-      'sidebar',
-    ]),
+    ...mapGetters(["sidebar"]),
     visitedViews() {
-      return this.$store.state.tagsView.visitedViews
+      return this.$store.state.tagsView.visitedViews;
     },
     routes() {
-      return this.$store.state.permission.routes
+      return this.$store.state.permission.routes;
     },
     theme() {
       return this.$store.state.settings.theme;
-    }
+    },
   },
   watch: {
     $route() {
-      this.addTags()
-      this.moveToCurrentTag()
+      this.addTags();
+      this.moveToCurrentTag();
     },
     visible(value) {
       if (value) {
-        document.body.addEventListener('click', this.closeMenu)
+        document.body.addEventListener("click", this.closeMenu);
       } else {
-        document.body.removeEventListener('click', this.closeMenu)
+        document.body.removeEventListener("click", this.closeMenu);
       }
-    }
+    },
   },
   mounted() {
-    this.initTags()
-    this.addTags()
+    this.initTags();
+    this.addTags();
   },
   methods: {
     toggleSideBar() {
-      this.$store.dispatch('app/toggleSideBar')
+      this.$store.dispatch("app/toggleSideBar");
     },
     isActive(route) {
-      return route.path === this.$route.path
+      return route.path === this.$route.path;
     },
     activeStyle(tag) {
       if (!this.isActive(tag)) return {};
       return {
         "background-color": this.theme,
-        "border-color": this.theme
+        "border-color": this.theme,
       };
     },
     isAffix(tag) {
-      return tag.meta && tag.meta.affix
+      return tag.meta && tag.meta.affix;
     },
     isFirstView() {
       try {
-        return this.selectedTag.fullPath === '/index' || this.selectedTag.fullPath === this.visitedViews[1].fullPath
+        return (
+          this.selectedTag.fullPath === "/index" ||
+          this.selectedTag.fullPath === this.visitedViews[1].fullPath
+        );
       } catch (err) {
-        return false
+        return false;
       }
     },
     isLastView() {
       try {
-        return this.selectedTag.fullPath === this.visitedViews[this.visitedViews.length - 1].fullPath
+        return (
+          this.selectedTag.fullPath ===
+          this.visitedViews[this.visitedViews.length - 1].fullPath
+        );
       } catch (err) {
-        return false
+        return false;
       }
     },
-    filterAffixTags(routes, basePath = '/') {
-      let tags = []
-      routes.forEach(route => {
+    filterAffixTags(routes, basePath = "/") {
+      let tags = [];
+      routes.forEach((route) => {
         if (route.meta && route.meta.affix) {
-          const tagPath = path.resolve(basePath, route.path)
+          const tagPath = path.resolve(basePath, route.path);
           tags.push({
             fullPath: tagPath,
             path: tagPath,
             name: route.name,
-            meta: { ...route.meta }
-          })
+            meta: { ...route.meta },
+          });
         }
         if (route.children) {
-          const tempTags = this.filterAffixTags(route.children, route.path)
+          const tempTags = this.filterAffixTags(route.children, route.path);
           if (tempTags.length >= 1) {
-            tags = [...tags, ...tempTags]
+            tags = [...tags, ...tempTags];
           }
         }
-      })
-      return tags
+      });
+      return tags;
     },
     initTags() {
-      const affixTags = this.affixTags = this.filterAffixTags(this.routes)
+      const affixTags = (this.affixTags = this.filterAffixTags(this.routes));
       for (const tag of affixTags) {
         // Must have tag name
         if (tag.name) {
-          this.$store.dispatch('tagsView/addVisitedView', tag)
+          this.$store.dispatch("tagsView/addVisitedView", tag);
         }
       }
     },
     addTags() {
-      const { name } = this.$route
+      const { name } = this.$route;
       if (name) {
-        this.$store.dispatch('tagsView/addView', this.$route)
+        this.$store.dispatch("tagsView/addView", this.$route);
       }
     },
     moveToCurrentTag() {
-      const tags = this.$refs.tag
+      const tags = this.$refs.tag;
       this.$nextTick(() => {
         for (const tag of tags) {
           if (tag.to.path === this.$route.path) {
-            this.$refs.scrollPane.moveToTarget(tag)
+            this.$refs.scrollPane.moveToTarget(tag);
             // when query is different then update
             if (tag.to.fullPath !== this.$route.fullPath) {
-              this.$store.dispatch('tagsView/updateVisitedView', this.$route)
+              this.$store.dispatch("tagsView/updateVisitedView", this.$route);
             }
-            break
+            break;
           }
         }
-      })
+      });
     },
     refreshSelectedTag(view) {
       this.$tab.refreshPage(view);
       if (this.$route.meta.link) {
-        this.$store.dispatch('tagsView/delIframeView', this.$route)
+        this.$store.dispatch("tagsView/delIframeView", this.$route);
       }
     },
     closeSelectedTag(view) {
       this.$tab.closePage(view).then(({ visitedViews }) => {
         if (this.isActive(view)) {
-          this.toLastView(visitedViews, view)
+          this.toLastView(visitedViews, view);
         }
-      })
+      });
     },
     closeRightTags() {
-      this.$tab.closeRightPage(this.selectedTag).then(visitedViews => {
-        if (!visitedViews.find(i => i.fullPath === this.$route.fullPath)) {
-          this.toLastView(visitedViews)
+      this.$tab.closeRightPage(this.selectedTag).then((visitedViews) => {
+        if (!visitedViews.find((i) => i.fullPath === this.$route.fullPath)) {
+          this.toLastView(visitedViews);
         }
-      })
+      });
     },
     closeLeftTags() {
-      this.$tab.closeLeftPage(this.selectedTag).then(visitedViews => {
-        if (!visitedViews.find(i => i.fullPath === this.$route.fullPath)) {
-          this.toLastView(visitedViews)
+      this.$tab.closeLeftPage(this.selectedTag).then((visitedViews) => {
+        if (!visitedViews.find((i) => i.fullPath === this.$route.fullPath)) {
+          this.toLastView(visitedViews);
         }
-      })
+      });
     },
     closeOthersTags() {
-      this.$router.push(this.selectedTag.fullPath).catch(()=>{});
+      this.$router.push(this.selectedTag.fullPath).catch(() => {});
       this.$tab.closeOtherPage(this.selectedTag).then(() => {
-        this.moveToCurrentTag()
-      })
+        this.moveToCurrentTag();
+      });
     },
     closeAllTags(view) {
       this.$tab.closeAllPage().then(({ visitedViews }) => {
-        if (this.affixTags.some(tag => tag.path === this.$route.path)) {
-          return
+        if (this.affixTags.some((tag) => tag.path === this.$route.path)) {
+          return;
         }
-        this.toLastView(visitedViews, view)
-      })
+        this.toLastView(visitedViews, view);
+      });
     },
     toLastView(visitedViews, view) {
-      const latestView = visitedViews.slice(-1)[0]
+      const latestView = visitedViews.slice(-1)[0];
       if (latestView) {
-        this.$router.push(latestView.fullPath)
+        this.$router.push(latestView.fullPath);
       } else {
         // now the default is to redirect to the home page if there is no tags-view,
         // you can adjust it according to your needs.
-        if (view.name === 'Dashboard') {
+        if (view.name === "Dashboard") {
           // to reload home page
-          this.$router.replace({ path: '/redirect' + view.fullPath })
+          this.$router.replace({ path: "/redirect" + view.fullPath });
         } else {
-          this.$router.push('/')
+          this.$router.push("/");
         }
       }
     },
     openMenu(tag, e) {
-      const menuMinWidth = 105
-      const offsetLeft = this.$el.getBoundingClientRect().left // container margin left
-      const offsetWidth = this.$el.offsetWidth // container width
-      const maxLeft = offsetWidth - menuMinWidth // left boundary
-      const left = e.clientX - offsetLeft + 15 // 15: margin right
+      const menuMinWidth = 105;
+      const offsetLeft = this.$el.getBoundingClientRect().left; // container margin left
+      const offsetWidth = this.$el.offsetWidth; // container width
+      const maxLeft = offsetWidth - menuMinWidth; // left boundary
+      const left = e.clientX - offsetLeft + 15; // 15: margin right
 
       if (left > maxLeft) {
-        this.left = maxLeft
+        this.left = maxLeft;
       } else {
-        this.left = left
+        this.left = left;
       }
 
-      this.top = e.clientY
-      this.visible = true
-      this.selectedTag = tag
+      this.top = e.clientY;
+      this.visible = true;
+      this.selectedTag = tag;
     },
     closeMenu() {
-      this.visible = false
+      this.visible = false;
     },
     handleScroll() {
-      this.closeMenu()
-    }
-  }
-}
+      this.closeMenu();
+    },
+  },
+};
 </script>
 
 <style lang="scss" scoped>
@@ -251,19 +284,19 @@
   z-index: 1000; /* 纭繚澶撮儴鍦ㄥ叾浠栧唴瀹逛箣涓� */
   background: #fff;
   border-bottom: 1px solid #d8dce5;
-  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, .12), 0 0 3px 0 rgba(0, 0, 0, .04);
+  box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.12), 0 0 3px 0 rgba(0, 0, 0, 0.04);
   .tags-view-wrapper {
     .hamburger-container {
       display: inline-block;
       line-height: 46px;
       height: 100%;
       cursor: pointer;
-      transition: background .3s;
-      -webkit-tap-highlight-color:transparent;
+      transition: background 0.3s;
+      -webkit-tap-highlight-color: transparent;
       padding: 0 10px !important;
 
       &:hover {
-        background: rgba(0, 0, 0, .025)
+        background: rgba(0, 0, 0, 0.025);
       }
     }
     .tags-view-item {
@@ -290,7 +323,7 @@
         color: #fff;
         border-color: #42b983;
         &::before {
-          content: '';
+          content: "";
           background: #fff;
           display: inline-block;
           width: 8px;
@@ -303,7 +336,7 @@
     }
   }
   .contextmenu {
-    margin: 0;
+    margin: -20px;
     background: #fff;
     z-index: 3000;
     position: absolute;
@@ -313,7 +346,7 @@
     font-size: 12px;
     font-weight: 400;
     color: #333;
-    box-shadow: 2px 2px 3px 0 rgba(0, 0, 0, .3);
+    box-shadow: 2px 2px 3px 0 rgba(0, 0, 0, 0.3);
     li {
       margin: 0;
       padding: 7px 16px;
@@ -336,10 +369,10 @@
       vertical-align: 2px;
       border-radius: 50%;
       text-align: center;
-      transition: all .3s cubic-bezier(.645, .045, .355, 1);
+      transition: all 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);
       transform-origin: 100% 50%;
       &:before {
-        transform: scale(.6);
+        transform: scale(0.6);
         display: inline-block;
         vertical-align: -3px;
       }
diff --git a/src/router/index.js b/src/router/index.js
index 912bf88..b9675e1 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -100,11 +100,18 @@
     permissions: ['business:order'],
     children: [
       {
-        // 閾滄潗鏂欎笅鍗�
+        // 鏂板濮旀墭鍗曢〉闈�
         path: 'addOrder',
         component: () => import('@/views/business/inspectionOrder/add'),
         name: 'addOrder',
         meta: { title: '鏂板濮旀墭鍗�', activeMenu: '/business/inspectionOrder' }
+      },
+      {
+        // 鏌ョ湅濮旀墭鍗曡鎯呴〉闈�
+        path: 'showDetails',
+        component: () => import('@/views/business/inspectionOrder/add'),
+        name: 'showDetails',
+        meta: { title: '濮旀墭鍗曡鎯�', activeMenu: '/business/inspectionOrder' }
       }
     ]
   },
diff --git a/src/store/getters.js b/src/store/getters.js
index 0d93723..099391b 100644
--- a/src/store/getters.js
+++ b/src/store/getters.js
@@ -9,6 +9,8 @@
   avatar: (state) => state.user.avatar,
   name: (state) => state.user.name,
   nickName: (state) => state.user.nickName,
+  companyName: (state) => state.user.companyName,
+  loginUserInfo: (state) => state.user.loginUserInfo,
   userId: (state) => state.user.id,
   introduction: (state) => state.user.introduction,
   roles: (state) => state.user.roles,
diff --git a/src/store/modules/user.js b/src/store/modules/user.js
index 8626ba0..8c7bda4 100644
--- a/src/store/modules/user.js
+++ b/src/store/modules/user.js
@@ -11,6 +11,8 @@
     name: "",
     avatar: "",
     nickName: "",
+    companyName: "",
+    loginUserInfo: {},
     roles: [],
     permissions: [],
   },
@@ -30,6 +32,12 @@
     },
     SET_NICKNAME: (state, nickName) => {
       state.nickName = nickName;
+    },
+    SET_COMPANYNAME: (state, companyName) => {
+      state.companyName = companyName;
+    },
+    SET_LOGINUSERINFO: (state, loginUserInfo) => {
+      state.loginUserInfo = loginUserInfo;
     },
     SET_ROLES: (state, roles) => {
       state.roles = roles;
@@ -67,7 +75,6 @@
       return new Promise((resolve, reject) => {
         getInfo()
           .then((res) => {
-            console.log("store-->",res);
             const user = res.user;
             let avatar = user.avatar || "";
             if (!isHttp(avatar)) {
@@ -82,10 +89,12 @@
             } else {
               commit("SET_ROLES", ["ROLE_DEFAULT"]);
             }
+            commit("SET_LOGINUSERINFO", user);
             commit("SET_ID", user.userId);
             commit("SET_NAME", user.userName);
             commit("SET_AVATAR", avatar);
             commit("SET_NICKNAME", user.nickName);
+            commit("SET_COMPANYNAME", user.companyName);
             resolve(res);
           })
           .catch((error) => {
diff --git a/src/views/CNAS/resourceDemand/device/component/device-overview.vue b/src/views/CNAS/resourceDemand/device/component/device-overview.vue
index ae3e069..2efabd0 100644
--- a/src/views/CNAS/resourceDemand/device/component/device-overview.vue
+++ b/src/views/CNAS/resourceDemand/device/component/device-overview.vue
@@ -145,8 +145,8 @@
 
 <template>
   <div class="role_manage">
-    <div>
-      <el-form :model="entity" inline label-position="right" label-width="80px">
+    <div style="margin-top: 10px">
+      <el-form :model="entity" inline label-position="right">
         <el-form-item label="鐘舵��:">
           <el-select v-model="entity.deviceStatus" placeholder="鍏ㄩ儴" size="small" clearable>
             <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
@@ -164,24 +164,6 @@
           @click="currentPage = 1, keyMap = {}, list = [], finishLoding = false, refreshTable()">鏌� 璇�</el-button>
         </el-form-item>
       </el-form>
-      <!-- <div class="search_thing">
-        <div class="search_label">鐘舵�侊細</div>
-        <el-select v-model="entity.deviceStatus" placeholder="鍏ㄩ儴" size="small" clearable>
-          <el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
-          </el-option>
-        </el-select>
-      </div>
-      <div class="search_thing">
-        <div class="search_label">璁惧鍚嶇О锛�</div>
-        <div class="search_input">
-          <el-input size="small" placeholder="璇疯緭鍏�" clearable
-            v-model="entity.deviceName"></el-input>
-            </div>
-      </div> -->
-
-
-      <!-- <div class="search_thing" style="padding-left: 30px;">
-      </div> -->
     </div>
     <div class="table" v-loading="loading">
       <scroll-pagination @load="refreshTable()" :finishLoding="finishLoding" :list="list"
@@ -255,7 +237,6 @@
       entity: {
         deviceStatus: null,
         deviceName: null,
-        orderBy: { field: "id", order: "asc" }
       },
       options: [],
       list: [],
@@ -298,8 +279,8 @@
         ...this.entity
       }).then(res => {
         if (res.code == 200) {
-          this.total = res.data.body.total
-          let list = res.data.body.records.map(m => {
+          this.total = res.data.total
+          let list = res.data.records.map(m => {
             switch (m.deviceStatus) {
               case 0:
                 // 姝e父
diff --git a/src/views/CNAS/resourceDemand/device/component/files.vue b/src/views/CNAS/resourceDemand/device/component/files.vue
index feabc51..1850918 100644
--- a/src/views/CNAS/resourceDemand/device/component/files.vue
+++ b/src/views/CNAS/resourceDemand/device/component/files.vue
@@ -470,11 +470,10 @@
   updateDocument,
   addDocument,
   deleteDocumentById,
-  getAllDocuments,
   selectDeviceByCode,
   upDeviceParameter,
   exportDeviceFile,
-  getInsProduction,
+  getInsProduction, getListByDId,
 } from '@/api/cnas/resourceDemand/device.js'
 import { selectUserCondition } from "@/api/system/user";
 import {
@@ -719,7 +718,7 @@
     },
     // 鑾峰彇鐩稿叧鏂囨。鏁版嵁鐨刟pi
     getPage() {
-      getAllDocuments({ deviceId: this.clickNodeVal.value }).then(res => {
+      getListByDId({ id: this.clickNodeVal.value }).then(res => {
         if (res.code == 200)
           this.tableDataA = res.data
       })
diff --git a/src/views/CNAS/resourceDemand/device/component/management.vue b/src/views/CNAS/resourceDemand/device/component/management.vue
index e2e7602..bfc3c45 100644
--- a/src/views/CNAS/resourceDemand/device/component/management.vue
+++ b/src/views/CNAS/resourceDemand/device/component/management.vue
@@ -1,178 +1,378 @@
 <!-- 璁惧宸ュ叿鏄庣粏 -->
 <template>
-	<div class="role_manage">
-		<div class="search" v-show="!showData">
-			<div class="search_thing">
-				<div class="search_label">鐘舵�侊細</div>
-				<el-select v-model="queryParams.deviceStatus" placeholder="鍏ㄩ儴" size="small">
-					<el-option v-for="item in deviceStatusList" :key="item.value" :label="item.label" :value="item.value">
-					</el-option>
-				</el-select>
-			</div>
-			<div class="search_thing">
-				<div class="search_label">璁惧鍚嶇О锛�</div>
-				<div class="search_input">
-					<el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="queryParams.deviceName"
-						@keyup.enter.native="refreshTable()">
-					</el-input>
-				</div>
-			</div>
-			<div class="search_thing">
-				<div class="search_label">瑙勬牸鍨嬪彿锛�</div>
-				<div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable
-						v-model="queryParams.specificationModel" @keyup.enter.native="refreshTable()"></el-input>
-				</div>
-			</div>
-			<div style="padding-left: 30px;">
-				<el-button size="small" @click="refresh()">閲� 缃�</el-button>
-				<el-button size="small" type="primary" @click="refreshTable()">鏌� 璇�</el-button>
-				<el-button size="small" type="primary" @click="dialogVisible2 = true">鏂� 澧�</el-button>
-				<el-button size="small" type="primary" @click="handleDownOne">瀵� 鍑�</el-button>
-			</div>
-		</div>
-		<div class="table" v-show="!showData">
-			<lims-table :tableData="tableData" :column="column" :tableLoading="tableLoading" :height="'calc(100vh - 320px)'"
-				:page="page" @pagination="pagination"></lims-table>
-		</div>
-    <el-dialog :title="isUp ? '璁惧璇︽儏' : '妗f淇'" :visible.sync="dialogVisible" width="70%"
-               top="5vh"
-               :before-close="handleClose">
-      <el-row style="display:flex;justify-content: space-around;">
+  <div class="role_manage">
+    <div class="search" v-show="!showData">
+      <div class="search_thing">
+        <div class="search_label">鐘舵�侊細</div>
+        <el-select
+          v-model="queryParams.deviceStatus"
+          placeholder="鍏ㄩ儴"
+          size="small"
+        >
+          <el-option
+            v-for="item in deviceStatusList"
+            :key="item.value"
+            :label="item.label"
+            :value="item.value"
+          >
+          </el-option>
+        </el-select>
+      </div>
+      <div class="search_thing">
+        <div class="search_label">璁惧鍚嶇О锛�</div>
+        <div class="search_input">
+          <el-input
+            size="small"
+            placeholder="璇疯緭鍏�"
+            clearable
+            v-model="queryParams.deviceName"
+            @keyup.enter.native="refreshTable()"
+          >
+          </el-input>
+        </div>
+      </div>
+      <div class="search_thing">
+        <div class="search_label">瑙勬牸鍨嬪彿锛�</div>
+        <div class="search_input">
+          <el-input
+            size="small"
+            placeholder="璇疯緭鍏�"
+            clearable
+            v-model="queryParams.specificationModel"
+            @keyup.enter.native="refreshTable()"
+          ></el-input>
+        </div>
+      </div>
+      <div style="padding-left: 30px">
+        <el-button size="small" @click="refresh()">閲� 缃�</el-button>
+        <el-button size="small" type="primary" @click="refreshTable()"
+          >鏌� 璇�</el-button
+        >
+        <el-button size="small" type="primary" @click="dialogVisible2 = true"
+          >鏂� 澧�</el-button
+        >
+        <el-button size="small" type="primary" @click="handleDownOne"
+          >瀵� 鍑�</el-button
+        >
+      </div>
+    </div>
+    <div class="table" v-show="!showData">
+      <lims-table
+        :tableData="tableData"
+        :column="column"
+        :tableLoading="tableLoading"
+        :height="'calc(100vh - 320px)'"
+        :page="page"
+        @pagination="pagination"
+      ></lims-table>
+    </div>
+    <el-dialog
+      :title="isUp ? '璁惧璇︽儏' : '妗f淇'"
+      :visible.sync="dialogVisible"
+      width="70%"
+      top="5vh"
+      :before-close="handleClose"
+    >
+      <el-row style="display: flex; justify-content: space-around">
         <!-- 宸﹁竟甯冨眬 -->
         <el-col :span="7">
           <el-col>
             <!-- 鍥剧墖 -->
-            <el-image class="img" style="width:100%;height: 320px;marginBottom:16px"
-                      :src="javaApi + '/img/' + formData.imageUpload">
-              <div slot="error" class="image-error" style="width: calc(100% -2px);
-            height: 318px;
-            border-radius: 16px;
-            display: flex;
-            align-items: center;
-            justify-content: center;
-            border: 1px solid #EEEEEE;">
-                <i class="el-icon-picture-outline" style="font-size:60px;color:#666666;"></i>
+            <el-image
+              class="img"
+              style="width: 100%; height: 320px; marginbottom: 16px"
+              :src="javaApi + '/img/' + formData.imageUpload"
+            >
+              <div
+                slot="error"
+                class="image-error"
+                style="
+                  width: calc(100% -2px);
+                  height: 318px;
+                  border-radius: 16px;
+                  display: flex;
+                  align-items: center;
+                  justify-content: center;
+                  border: 1px solid #eeeeee;
+                "
+              >
+                <i
+                  class="el-icon-picture-outline"
+                  style="font-size: 60px; color: #666666"
+                ></i>
               </div>
             </el-image>
             <!-- 琛ㄥ崟 -->
-            <el-form :label-position="labelPosition" :model="formData" label-width="120px">
+            <el-form
+              :label-position="labelPosition"
+              :model="formData"
+              label-width="120px"
+            >
               <el-form-item label="浠櫒鍚嶇О:" required>
-                <el-input :disabled="isUp" v-model="formData.deviceName" size="small"></el-input>
+                <el-input
+                  :disabled="isUp"
+                  v-model="formData.deviceName"
+                  size="small"
+                ></el-input>
               </el-form-item>
               <el-form-item label="浠櫒鍚嶇ОEN:" required>
-                <el-input :disabled="isUp" v-model="formData.enDeviceName" size="small"></el-input>
+                <el-input
+                  :disabled="isUp"
+                  v-model="formData.enDeviceName"
+                  size="small"
+                ></el-input>
               </el-form-item>
               <el-form-item label="瑙勬牸鍨嬪彿:" required>
-                <el-input :disabled="isUp" v-model="formData.specificationModel"
-                          size="small"></el-input>
+                <el-input
+                  :disabled="isUp"
+                  v-model="formData.specificationModel"
+                  size="small"
+                ></el-input>
               </el-form-item>
               <el-form-item label="鐢熶骇鍘傚:">
-                <el-input :disabled="isUp" v-model="formData.manufacturer" size="small"></el-input>
+                <el-input
+                  :disabled="isUp"
+                  v-model="formData.manufacturer"
+                  size="small"
+                ></el-input>
               </el-form-item>
             </el-form>
           </el-col>
         </el-col>
         <!-- 涓棿甯冨眬 -->
         <el-col :span="7">
-          <el-form :label-position="labelPosition" :model="formData" label-width="116px">
+          <el-form
+            :label-position="labelPosition"
+            :model="formData"
+            label-width="116px"
+          >
             <el-form-item label="鏍″噯鏈嶅姟鏈烘瀯:">
-              <el-input disabled v-model="formData.calibrationServices" size="small"></el-input>
+              <el-input
+                disabled
+                v-model="formData.calibrationServices"
+                size="small"
+              ></el-input>
             </el-form-item>
             <el-form-item label="鍑哄巶缂栧彿:">
-              <el-input :disabled="isUp" v-model="formData.factoryNo" size="small"></el-input>
+              <el-input
+                :disabled="isUp"
+                v-model="formData.factoryNo"
+                size="small"
+              ></el-input>
             </el-form-item>
             <el-form-item label="绠$悊缂栧彿:" required>
-              <el-input :disabled="isUp" v-model="formData.managementNumber" size="small"></el-input>
+              <el-input
+                :disabled="isUp"
+                v-model="formData.managementNumber"
+                size="small"
+              ></el-input>
             </el-form-item>
             <el-form-item label="璐疆鏃ユ湡:">
-              <el-date-picker :disabled="isUp" style="width:100%" v-model="formData.acquisitionDate"
-                              type="date" format="yyyy-MM-dd" value-format="yyyy-MM-dd HH:mm:ss" size="small"
-                              placeholder="閫夋嫨鏃ユ湡">
+              <el-date-picker
+                :disabled="isUp"
+                style="width: 100%"
+                v-model="formData.acquisitionDate"
+                type="date"
+                format="yyyy-MM-dd"
+                value-format="yyyy-MM-dd HH:mm:ss"
+                size="small"
+                placeholder="閫夋嫨鏃ユ湡"
+              >
               </el-date-picker>
             </el-form-item>
             <el-form-item label="鍚敤鏃ユ湡:" required>
-              <el-date-picker :disabled="isUp" style="width:100%" v-model="formData.activationDate"
-                              type="date" format="yyyy-MM-dd" value-format="yyyy-MM-dd HH:mm:ss" size="small"
-                              placeholder="閫夋嫨鏃ユ湡">
+              <el-date-picker
+                :disabled="isUp"
+                style="width: 100%"
+                v-model="formData.activationDate"
+                type="date"
+                format="yyyy-MM-dd"
+                value-format="yyyy-MM-dd HH:mm:ss"
+                size="small"
+                placeholder="閫夋嫨鏃ユ湡"
+              >
               </el-date-picker>
             </el-form-item>
             <el-form-item label="绠$悊浜�:">
-              <el-select v-model="formData.equipmentManager" placeholder="璇烽�夋嫨" size="small"
-                         style="width:100%">
-                <el-option :disabled="isUp" v-for="item in responsiblePersonList" :key="item.value"
-                           :label="item.label" :value="item.value">
+              <el-select
+                v-model="formData.equipmentManager"
+                placeholder="璇烽�夋嫨"
+                size="small"
+                style="width: 100%"
+              >
+                <el-option
+                  :disabled="isUp"
+                  v-for="item in responsiblePersonList"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value"
+                >
                 </el-option>
               </el-select>
             </el-form-item>
             <el-form-item label="瀛樻斁鐐�:">
-              <el-input :disabled="isUp" v-model="formData.storagePoint" size="small"></el-input>
+              <el-input
+                :disabled="isUp"
+                v-model="formData.storagePoint"
+                size="small"
+              ></el-input>
             </el-form-item>
             <el-form-item label="鎶�鏈寚鏍�:">
-              <el-input :disabled="isUp" v-model="formData.technicalIndicators" :rows="7" type="textarea"
-                        size="small"></el-input>
+              <el-input
+                :disabled="isUp"
+                v-model="formData.technicalIndicators"
+                :rows="7"
+                type="textarea"
+                size="small"
+              ></el-input>
             </el-form-item>
           </el-form>
         </el-col>
         <!-- 鍙宠竟甯冨眬 -->
         <el-col :span="7">
-          <el-form :label-position="labelPosition" :model="formData" label-width="140px" ref="ruleForm">
+          <el-form
+            :label-position="labelPosition"
+            :model="formData"
+            label-width="140px"
+            ref="ruleForm"
+          >
             <!-- 瀹為獙瀹ゅ垪琛� -->
             <el-form-item label="鎵�灞為儴闂�:">
-              <el-select :disabled="isUp" v-model="formData.subordinateDepartmentsId" placeholder="璇烽�夋嫨"
-                         size="small" style="width:100%">
-                <el-option v-for="item in subordinateDepartmentsList" :key="item.value"
-                           :label="item.label" :value="item.value">
+              <el-select
+                :disabled="isUp"
+                v-model="formData.subordinateDepartmentsId"
+                placeholder="璇烽�夋嫨"
+                size="small"
+                style="width: 100%"
+              >
+                <el-option
+                  v-for="item in subordinateDepartmentsList"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value"
+                >
                 </el-option>
               </el-select>
             </el-form-item>
             <el-form-item label="妫�娴嬮」鐩�:">
-              <el-cascader :disabled="isUp" v-model="formData.insProductIds" :options="options"
-                           :show-all-levels="false" :props="props" placeholder="璇烽�夋嫨" size="small"
-                           style="width:100%;" :collapse-tags="!isUp" separator="," filterable
-                           clearable></el-cascader>
+              <el-cascader
+                :disabled="isUp"
+                v-model="formData.insProductIds"
+                :options="options"
+                :show-all-levels="false"
+                :props="props"
+                placeholder="璇烽�夋嫨"
+                size="small"
+                style="width: 100%"
+                :collapse-tags="!isUp"
+                separator=","
+                filterable
+                clearable
+              ></el-cascader>
             </el-form-item>
             <el-form-item label="鏈�杩戞牎鍑嗘棩鏈�:" v-if="isUp">
-              <el-date-picker :disabled="isUp" style="width:100%" v-model="formData.latestTraceability"
-                              format="yyyy-MM-dd" value-format="yyyy-MM-dd" type="date" size="small"
-                              placeholder="閫夋嫨鏃ユ湡">
+              <el-date-picker
+                :disabled="isUp"
+                style="width: 100%"
+                v-model="formData.latestTraceability"
+                format="yyyy-MM-dd"
+                value-format="yyyy-MM-dd"
+                type="date"
+                size="small"
+                placeholder="閫夋嫨鏃ユ湡"
+              >
               </el-date-picker>
             </el-form-item>
             <el-form-item label="涓嬫鏍″噯鏃ユ湡:" v-if="isUp">
-              <el-date-picker :disabled="isUp" style="width:100%" v-model="formData.latestTraceability"
-                              format="yyyy-MM-dd" value-format="yyyy-MM-dd" type="date" size="small"
-                              placeholder="閫夋嫨鏃ユ湡">
+              <el-date-picker
+                :disabled="isUp"
+                style="width: 100%"
+                v-model="formData.latestTraceability"
+                format="yyyy-MM-dd"
+                value-format="yyyy-MM-dd"
+                type="date"
+                size="small"
+                placeholder="閫夋嫨鏃ユ湡"
+              >
               </el-date-picker>
             </el-form-item>
             <el-form-item label="璁惧绫诲瀷:">
-              <el-select :disabled="isUp" v-model="formData.largeCategory" placeholder="璇烽�夋嫨" size="small"
-                         style="width:100%">
-                <el-option v-for="item in equipmentList" :key="item.value" :label="item.label"
-                           :value="item.value">
+              <el-select
+                :disabled="isUp"
+                v-model="formData.largeCategory"
+                placeholder="璇烽�夋嫨"
+                size="small"
+                style="width: 100%"
+              >
+                <el-option
+                  v-for="item in equipmentList"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value"
+                >
                 </el-option>
               </el-select>
             </el-form-item>
             <el-form-item label="鍗曚环(涓囧厓):">
-              <el-input :disabled="isUp" v-model="formData.unitPrice" size="small"></el-input>
+              <el-input
+                :disabled="isUp"
+                v-model="formData.unitPrice"
+                size="small"
+              ></el-input>
             </el-form-item>
             <el-form-item label="褰撳墠鐘舵��:" required>
-              <el-select :disabled="isUp" v-model="formData.deviceStatus" placeholder="璇烽�夋嫨" size="small"
-                         style="width:100%">
-                <el-option v-for="item in deviceStatusList" :key="item.value" :label="item.label"
-                           :value="item.value">
+              <el-select
+                :disabled="isUp"
+                v-model="formData.deviceStatus"
+                placeholder="璇烽�夋嫨"
+                size="small"
+                style="width: 100%"
+              >
+                <el-option
+                  v-for="item in deviceStatusList"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value"
+                >
                 </el-option>
               </el-select>
             </el-form-item>
             <el-form-item label="鏍″噯鍛ㄦ湡锛堟湀锛�:" required>
-              <el-input :disabled="isUp" v-model="formData.calibrationDate" size="small"></el-input>
+              <el-input
+                :disabled="isUp"
+                v-model="formData.calibrationDate"
+                size="small"
+              ></el-input>
             </el-form-item>
             <el-form-item label="鍥剧墖:">
               <div
-                style="border: 1px solid #DCDFE6;border-radius:4px;height:32px;lineHeight:32px;display:flex;justify-content: space-around;font-size: 13px;">
-                <div v-show="formData.imageName" class="picName">{{ formData.imageName }}</div>
-                <el-upload :disabled="isUp" :action="action" :on-success="handleSuccessUpImg2"
-                           :show-file-list="false" accept='image/jpg,image/jpeg,image/png' :headers="uploadHeader"
-                           :on-change="beforeUpload" :on-error="onError" ref='upload'>
-                  <el-button type="text" style="height:30px;padding-top:8px">涓婁紶</el-button>
+                style="
+                  border: 1px solid #dcdfe6;
+                  border-radius: 4px;
+                  height: 32px;
+                  lineheight: 32px;
+                  display: flex;
+                  justify-content: space-around;
+                  font-size: 13px;
+                "
+              >
+                <div v-show="formData.imageName" class="picName">
+                  {{ formData.imageName }}
+                </div>
+                <el-upload
+                  :disabled="isUp"
+                  :action="action"
+                  :on-success="handleSuccessUpImg2"
+                  :show-file-list="false"
+                  accept="image/jpg,image/jpeg,image/png"
+                  :headers="uploadHeader"
+                  :on-change="beforeUpload"
+                  :on-error="onError"
+                  ref="upload"
+                >
+                  <el-button type="text" style="height: 30px; padding-top: 8px"
+                    >涓婁紶</el-button
+                  >
                 </el-upload>
               </div>
             </el-form-item>
@@ -180,112 +380,218 @@
         </el-col>
       </el-row>
       <span slot="footer" class="dialog-footer">
-				<el-row v-if="!isUp">
-					<el-button @click="handleClose">鍙� 娑�</el-button>
-					<el-button type="primary" @click="submitForm" :loading="upLoad">纭� 瀹�</el-button>
-				</el-row>
-			</span>
+        <el-row v-if="!isUp">
+          <el-button @click="handleClose">鍙� 娑�</el-button>
+          <el-button type="primary" @click="submitForm" :loading="upLoad"
+            >纭� 瀹�</el-button
+          >
+        </el-row>
+      </span>
     </el-dialog>
     <!-- 鏂板-->
-    <el-dialog title="鏂板璁惧" top="5vh" :visible.sync="dialogVisible2" width="70%" :before-close="handleClose2">
-      <el-row style="display:flex;justify-content: space-around;">
+    <el-dialog
+      title="鏂板璁惧"
+      top="5vh"
+      :visible.sync="dialogVisible2"
+      width="70%"
+      :before-close="handleClose2"
+    >
+      <el-row style="display: flex; justify-content: space-around">
         <!-- 宸﹁竟甯冨眬 -->
         <el-col :span="7">
           <el-col>
             <!-- 鍥剧墖 -->
-            <el-image class="img" style="width:100%;height: 320px;margin-bottom:16px"
-                      :src="javaApi + '/img/' + formData2.imageUpload">
-              <div slot="error" class="image-error" style="width: calc(100% -2px);
-          height: 318px;
-          border-radius: 16px;
-          display: flex;
-          align-items: center;
-          justify-content: center;
-          border: 1px solid #EEEEEE;">
-                <i class="el-icon-picture-outline" style="font-size:60px;color:#666666;"></i>
+            <el-image
+              class="img"
+              style="width: 100%; height: 320px; margin-bottom: 16px"
+              :src="javaApi + '/img/' + formData2.imageUpload"
+            >
+              <div
+                slot="error"
+                class="image-error"
+                style="
+                  width: calc(100% -2px);
+                  height: 318px;
+                  border-radius: 16px;
+                  display: flex;
+                  align-items: center;
+                  justify-content: center;
+                  border: 1px solid #eeeeee;
+                "
+              >
+                <i
+                  class="el-icon-picture-outline"
+                  style="font-size: 60px; color: #666666"
+                ></i>
               </div>
             </el-image>
             <!-- 琛ㄥ崟 -->
-            <el-form :label-position="labelPosition" :model="formData2" label-width="120px">
+            <el-form
+              :label-position="labelPosition"
+              :model="formData2"
+              label-width="120px"
+            >
               <el-form-item label="浠櫒鍚嶇О:" required>
-                <el-input v-model="formData2.deviceName" size="small"></el-input>
+                <el-input
+                  v-model="formData2.deviceName"
+                  size="small"
+                ></el-input>
               </el-form-item>
               <el-form-item label="浠櫒鍚嶇ОEN:" required>
-                <el-input v-model="formData2.enDeviceName" size="small"></el-input>
+                <el-input
+                  v-model="formData2.enDeviceName"
+                  size="small"
+                ></el-input>
               </el-form-item>
               <el-form-item label="瑙勬牸鍨嬪彿:" required>
-                <el-input v-model="formData2.specificationModel" size="small"></el-input>
+                <el-input
+                  v-model="formData2.specificationModel"
+                  size="small"
+                ></el-input>
               </el-form-item>
               <el-form-item label="鐢熶骇鍘傚:">
-                <el-input v-model="formData2.manufacturer" size="small"></el-input>
+                <el-input
+                  v-model="formData2.manufacturer"
+                  size="small"
+                ></el-input>
               </el-form-item>
             </el-form>
           </el-col>
         </el-col>
         <!-- 涓棿甯冨眬 -->
         <el-col :span="7">
-          <el-form :label-position="labelPosition" :model="formData2" label-width="110px">
+          <el-form
+            :label-position="labelPosition"
+            :model="formData2"
+            label-width="110px"
+          >
             <!-- <el-form-item label="鐢熶骇鍘傚EN:">
               <el-input v-model="formData2.factoryNo" size="small"></el-input>
             </el-form-item> -->
             <el-form-item label="鏍″噯鏈嶅姟鏈烘瀯:">
-              <el-input v-model="formData2.calibrationServices" size="small"></el-input>
+              <el-input
+                v-model="formData2.calibrationServices"
+                size="small"
+              ></el-input>
             </el-form-item>
             <el-form-item label="鍑哄巶缂栧彿:">
               <el-input v-model="formData2.factoryNo" size="small"></el-input>
             </el-form-item>
             <el-form-item label="绠$悊缂栧彿:" required>
-              <el-input v-model="formData2.managementNumber" size="small"></el-input>
+              <el-input
+                v-model="formData2.managementNumber"
+                size="small"
+              ></el-input>
             </el-form-item>
             <el-form-item label="璐疆鏃ユ湡:">
-              <el-date-picker style="width:100%" v-model="formData2.acquisitionDate" type="date"
-                              format="yyyy-MM-dd" value-format="yyyy-MM-dd HH:mm:ss" size="small" placeholder="閫夋嫨鏃ユ湡">
+              <el-date-picker
+                style="width: 100%"
+                v-model="formData2.acquisitionDate"
+                type="date"
+                format="yyyy-MM-dd"
+                value-format="yyyy-MM-dd HH:mm:ss"
+                size="small"
+                placeholder="閫夋嫨鏃ユ湡"
+              >
               </el-date-picker>
             </el-form-item>
             <el-form-item label="鍚敤鏃ユ湡:" required>
-              <el-date-picker style="width:100%" v-model="formData2.activationDate" type="date"
-                              format="yyyy-MM-dd" value-format="yyyy-MM-dd HH:mm:ss" size="small" placeholder="閫夋嫨鏃ユ湡">
+              <el-date-picker
+                style="width: 100%"
+                v-model="formData2.activationDate"
+                type="date"
+                format="yyyy-MM-dd"
+                value-format="yyyy-MM-dd HH:mm:ss"
+                size="small"
+                placeholder="閫夋嫨鏃ユ湡"
+              >
               </el-date-picker>
             </el-form-item>
             <el-form-item label="绠$悊浜�:">
-              <el-select v-model="formData2.equipmentManager" placeholder="璇烽�夋嫨" size="small"
-                         style="width:100%">
-                <el-option v-for="item in responsiblePersonList" :key="item.value" :label="item.label"
-                           :value="item.value">
+              <el-select
+                v-model="formData2.equipmentManager"
+                placeholder="璇烽�夋嫨"
+                size="small"
+                style="width: 100%"
+              >
+                <el-option
+                  v-for="item in responsiblePersonList"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value"
+                >
                 </el-option>
               </el-select>
             </el-form-item>
             <el-form-item label="瀛樻斁鐐�:">
-              <el-input v-model="formData2.storagePoint" size="small"></el-input>
+              <el-input
+                v-model="formData2.storagePoint"
+                size="small"
+              ></el-input>
             </el-form-item>
             <el-form-item label="鎶�鏈寚鏍�:">
-              <el-input v-model="formData2.technicalIndicators" :rows="7" type="textarea"
-                        size="small"></el-input>
+              <el-input
+                v-model="formData2.technicalIndicators"
+                :rows="7"
+                type="textarea"
+                size="small"
+              ></el-input>
             </el-form-item>
           </el-form>
         </el-col>
         <!-- 鍙宠竟甯冨眬 -->
         <el-col :span="7">
-          <el-form :label-position="labelPosition" :model="formData2" label-width="120px" ref="ruleForm">
+          <el-form
+            :label-position="labelPosition"
+            :model="formData2"
+            label-width="120px"
+            ref="ruleForm"
+          >
             <!-- 瀹為獙瀹ゅ垪琛� -->
             <el-form-item label="鎵�灞為儴闂�:">
-              <el-select v-model="formData2.subordinateDepartmentsId" placeholder="璇烽�夋嫨" size="small"
-                         style="width:100%">
-                <el-option v-for="item in subordinateDepartmentsList" :key="item.value"
-                           :label="item.label" :value="item.value">
+              <el-select
+                v-model="formData2.subordinateDepartmentsId"
+                placeholder="璇烽�夋嫨"
+                size="small"
+                style="width: 100%"
+              >
+                <el-option
+                  v-for="item in subordinateDepartmentsList"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value"
+                >
                 </el-option>
               </el-select>
             </el-form-item>
             <el-form-item label="妫�娴嬮」鐩�:">
-              <el-cascader v-model="formData2.insProductIds" :options="options" :show-all-levels="false"
-                           :props="props" placeholder="璇烽�夋嫨" size="small" style="width:100%" collapse-tags
-                           separator="," filterable clearable></el-cascader>
+              <el-cascader
+                v-model="formData2.insProductIds"
+                :options="options"
+                :show-all-levels="false"
+                :props="props"
+                placeholder="璇烽�夋嫨"
+                size="small"
+                style="width: 100%"
+                collapse-tags
+                separator=","
+                filterable
+                clearable
+              ></el-cascader>
             </el-form-item>
             <el-form-item label="璁惧绫诲瀷:">
-              <el-select v-model="formData2.largeCategory" placeholder="璇烽�夋嫨" size="small"
-                         style="width:100%">
-                <el-option v-for="item in equipmentList" :key="item.value" :label="item.label"
-                           :value="item.value">
+              <el-select
+                v-model="formData2.largeCategory"
+                placeholder="璇烽�夋嫨"
+                size="small"
+                style="width: 100%"
+              >
+                <el-option
+                  v-for="item in equipmentList"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value"
+                >
                 </el-option>
               </el-select>
             </el-form-item>
@@ -293,24 +599,55 @@
               <el-input v-model="formData2.unitPrice" size="small"></el-input>
             </el-form-item>
             <el-form-item label="褰撳墠鐘舵��:" required>
-              <el-select v-model="formData2.deviceStatus" placeholder="璇烽�夋嫨" size="small"
-                         style="width:100%">
-                <el-option v-for="item in deviceStatusList" :key="item.id" :label="item.label"
-                           :value="item.value">
+              <el-select
+                v-model="formData2.deviceStatus"
+                placeholder="璇烽�夋嫨"
+                size="small"
+                style="width: 100%"
+              >
+                <el-option
+                  v-for="item in deviceStatusList"
+                  :key="item.id"
+                  :label="item.label"
+                  :value="item.value"
+                >
                 </el-option>
               </el-select>
             </el-form-item>
             <el-form-item label="鏍″噯鍛ㄦ湡锛堟湀锛�:" required>
-              <el-input v-model="formData2.calibrationDate" size="small"></el-input>
+              <el-input
+                v-model="formData2.calibrationDate"
+                size="small"
+              ></el-input>
             </el-form-item>
             <el-form-item label="鍥剧墖:">
               <div
-                style="border: 1px solid #DCDFE6;border-radius:4px;height:32px;line-height:32px;display:flex;justify-content: space-around;font-size: 13px;">
-                <div v-show="formData2.imageName" class="picName">{{ formData2.imageName }}</div>
-                <el-upload :action="action" :on-success="handleSuccessUpImg2" :show-file-list="false"
-                           accept='image/jpg,image/jpeg,image/png' :headers="uploadHeader" :on-change="beforeUpload"
-                           :on-error="onError" ref='upload'>
-                  <el-button type="text" style="height:30px;padding-top:8px">涓婁紶</el-button>
+                style="
+                  border: 1px solid #dcdfe6;
+                  border-radius: 4px;
+                  height: 32px;
+                  line-height: 32px;
+                  display: flex;
+                  justify-content: space-around;
+                  font-size: 13px;
+                "
+              >
+                <div v-show="formData2.imageName" class="picName">
+                  {{ formData2.imageName }}
+                </div>
+                <el-upload
+                  :action="action"
+                  :on-success="handleSuccessUpImg2"
+                  :show-file-list="false"
+                  accept="image/jpg,image/jpeg,image/png"
+                  :headers="uploadHeader"
+                  :on-change="beforeUpload"
+                  :on-error="onError"
+                  ref="upload"
+                >
+                  <el-button type="text" style="height: 30px; padding-top: 8px"
+                    >涓婁紶</el-button
+                  >
                 </el-upload>
               </div>
             </el-form-item>
@@ -318,695 +655,776 @@
         </el-col>
       </el-row>
       <span slot="footer" class="dialog-footer">
-				<el-row>
-					<el-button @click="handleClose2">鍙� 娑�</el-button>
-					<el-button type="primary" @click="submitForm2" :loading="upLoad2">纭� 瀹�</el-button>
-				</el-row>
-			</span>
+        <el-row>
+          <el-button @click="handleClose2">鍙� 娑�</el-button>
+          <el-button type="primary" @click="submitForm2" :loading="upLoad2"
+            >纭� 瀹�</el-button
+          >
+        </el-row>
+      </span>
     </el-dialog>
     <el-dialog title="鏁伴噰閰嶇疆" :visible.sync="dialogVisible3" width="400px">
-      <div class="search_thing" style="margin-bottom: 14px;">
-        <div class="search_label"><span style="color:red;margin-right: 4px;">*</span>IP锛�</div>
-        <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="configForm.ip"></el-input>
+      <div class="search_thing" style="margin-bottom: 14px">
+        <div class="search_label">
+          <span style="color: red; margin-right: 4px">*</span>IP锛�
+        </div>
+        <el-input
+          size="small"
+          placeholder="璇疯緭鍏�"
+          clearable
+          v-model="configForm.ip"
+        ></el-input>
       </div>
-      <div class="search_thing" style="margin-bottom: 14px;">
-        <div class="search_label"><span style="color:red;margin-right: 4px;">*</span>閲囬泦鍦板潃锛�</div>
-        <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="configForm.collectUrl"></el-input>
+      <div class="search_thing" style="margin-bottom: 14px">
+        <div class="search_label">
+          <span style="color: red; margin-right: 4px">*</span>閲囬泦鍦板潃锛�
+        </div>
+        <el-input
+          size="small"
+          placeholder="璇疯緭鍏�"
+          clearable
+          v-model="configForm.collectUrl"
+        ></el-input>
       </div>
-      <div class="search_thing" style="margin-bottom: 14px;">
-        <div class="search_label"><span style="color:red;margin-right: 4px;">*</span>鍌ㄥ瓨鍦板潃锛�</div>
-        <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="configForm.storageUrl"></el-input>
+      <div class="search_thing" style="margin-bottom: 14px">
+        <div class="search_label">
+          <span style="color: red; margin-right: 4px">*</span>鍌ㄥ瓨鍦板潃锛�
+        </div>
+        <el-input
+          size="small"
+          placeholder="璇疯緭鍏�"
+          clearable
+          v-model="configForm.storageUrl"
+        ></el-input>
       </div>
-      <div class="search_thing" style="margin-bottom: 14px;">
-        <div class="search_label"><span style="color:red;margin-right: 4px;">*</span>鍙傜収锛�</div>
-        <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="configForm.refer"></el-input>
+      <div class="search_thing" style="margin-bottom: 14px">
+        <div class="search_label">
+          <span style="color: red; margin-right: 4px">*</span>鍙傜収锛�
+        </div>
+        <el-input
+          size="small"
+          placeholder="璇疯緭鍏�"
+          clearable
+          v-model="configForm.refer"
+        ></el-input>
       </div>
-      <div class="search_thing" style="margin-bottom: 14px;">
-        <div class="search_label"><span style="color:red;margin-right: 4px;">*</span>X锛�</div>
-        <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="configForm.x"></el-input>
+      <div class="search_thing" style="margin-bottom: 14px">
+        <div class="search_label">
+          <span style="color: red; margin-right: 4px">*</span>X锛�
+        </div>
+        <el-input
+          size="small"
+          placeholder="璇疯緭鍏�"
+          clearable
+          v-model="configForm.x"
+        ></el-input>
       </div>
-      <div class="search_thing" style="margin-bottom: 14px;">
-        <div class="search_label"><span style="color:red;margin-right: 4px;">*</span>Y锛�</div>
-        <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="configForm.y"></el-input>
+      <div class="search_thing" style="margin-bottom: 14px">
+        <div class="search_label">
+          <span style="color: red; margin-right: 4px">*</span>Y锛�
+        </div>
+        <el-input
+          size="small"
+          placeholder="璇疯緭鍏�"
+          clearable
+          v-model="configForm.y"
+        ></el-input>
       </div>
       <div class="search_thing">
         <div class="search_label">鍏紡锛�</div>
-        <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="configForm.formula"></el-input>
+        <el-input
+          size="small"
+          placeholder="璇疯緭鍏�"
+          clearable
+          v-model="configForm.formula"
+        ></el-input>
       </div>
       <span slot="footer" class="dialog-footer">
-				<el-row>
-					<el-button @click="dialogVisible3 = false">鍙� 娑�</el-button>
-					<el-button type="primary" @click="submitForm3" :loading="upLoad3">纭� 瀹�</el-button>
-				</el-row>
-			</span>
+        <el-row>
+          <el-button @click="dialogVisible3 = false">鍙� 娑�</el-button>
+          <el-button type="primary" @click="submitForm3" :loading="upLoad3"
+            >纭� 瀹�</el-button
+          >
+        </el-row>
+      </span>
     </el-dialog>
-		<dataAcquisitionConfig v-if="showData" :deviceId="deviceId" />
-	</div>
+    <dataAcquisitionConfig v-if="showData" :deviceId="deviceId" />
+  </div>
 </template>
 
 <script>
 import limsTable from "@/components/Table/lims-table.vue";
-import dataAcquisitionConfig from './acquisitionConfig.vue'
+import dataAcquisitionConfig from "./acquisitionConfig.vue";
 import {
-	obtainItemParameterList,
-	exportEquipmentDetails,
-	getInsProduction,
-	upDeviceParameter,
-	addDeviceParameter,
-	numberCollect,
-	getDeviceParameter,
-	delDeviceParameter,
-} from '@/api/cnas/resourceDemand/device.js'
+  obtainItemParameterList,
+  exportEquipmentDetails,
+  getInsProduction,
+  upDeviceParameter,
+  addDeviceParameter,
+  numberCollect,
+  getDeviceParameter,
+  delDeviceParameter,
+} from "@/api/cnas/resourceDemand/device.js";
 import { selectUserCondition } from "@/api/system/user";
 export default {
-	props: {
-		clickNodeVal: {
-			type: Object,
-			default: () => {
-				return {};
-			}
-		}
-	},
-	components: {
-		limsTable,
-		dataAcquisitionConfig,
-	},
-	data() {
-		return {
-			dateFormat: 'yyyy-MM-dd',
-			deviceId: '',
-			fileTypeOptions: [
-				{ label: 'csv', value: '.csv' },
-				{ label: 'db', value: '.db' },
-				{ label: 'mdb', value: '.mdb' },
-				{ label: 'word', value: '.docx' },
-				{ label: 'excel', value: '.xlsx' },
-				{ label: 'txt', value: '.txt' },
-				{ label: 'png', value: '.png' },
-			],
-			//鏄惁鏄。妗堜慨璁�  true涓嶆槸 false鏄�
-			isUp: true,
-			formData: {
-				authorizedPerson: []
-			},
-			formData2: {
-				imageUpload: '',
-				imageName: '',
-				deviceStatus: '',
-				authorizedPerson: []
-			},
-			value: '',
-			props: { multiple: true, emitPath: false, value: 'id', label: 'name' },
-			options: [],
-			labelPosition: 'right',
-			dialogVisible: false,
-			dialogVisible2: false,
-			addPower: false,
-			showData: false, // 鏁伴噰閰嶇疆椤甸潰
-			tableList: [],
-			addDia: true,
-			addPower: true,
-			//璁惧绫诲瀷鍒楄〃
-			equipmentList: [],
-			// 璐熻矗浜哄垪琛�
-			responsiblePersonList: [],
-			// 鎺堟潈浜哄垪琛�
-			authorizerList: [],
-			// 褰撳墠鐘舵�佸垪琛�
-			deviceStatusList: [],
-			// 鎵�灞為儴闂�
-			subordinateDepartmentsList: [],
-			upLoad: false,
-			upLoad2: false,
-			dialogVisible3: false,
-			upLoad3: false,
-			configForm: {},
-			laboratoryNameIsNull: false,
-			queryParams: {},
-			tableData: [],
-			column: [
-				{ label: "璁惧鍚嶇О", prop: "deviceName", dataType: 'link', linkMethod: 'selectAllByOne' },
-				{ label: "璁惧鍚嶇ОEN", prop: "enDeviceName" },
-				{
-					label: "瑙勬牸鍨嬪彿",
-					prop: "specificationModel",
-				},
-				{ label: "鐢熶骇鍘傚", prop: "manufacturer" },
-				{ label: "鍑哄巶缂栧彿", prop: "factoryNo" },
-				{ label: "绠$悊缂栧彿", prop: "managementNumber" },
-				{ label: "鎶�鏈寚鏍�", prop: "technicalIndicators" },
-				{ label: "璐疆鏃ユ湡", prop: "acquisitionDate" },
-				{ label: "鍚敤鏃ユ湡", prop: "activationDate" },
-				{ label: "绠$悊浜�", prop: "equipmentManagerUser" },
-				{ label: "瀛樻斁鐐�", prop: "storagePoint" },
-				{ label: "鎵�灞為儴闂�", prop: "laboratoryName" },
-				{ label: "妫�楠岄」鐩�", prop: "insProductItem" },
-				{ label: "鏍″噯鏈嶅姟鏈烘瀯", prop: "calibrationServices" },
-				{ label: "鏈�杩戞牎鍑嗘棩鏈�", prop: "lastCalibrationDateTwo" },
-				{ label: "鏈�杩戞牳鏌ユ棩鏈�", prop: "lastCalibrationDate" },
-				{ label: "涓嬫鏍″噯鏃ユ湡", prop: "nextCalibrationDateTwo" },
-				{ label: "涓嬫鏍告煡鏃ユ湡", prop: "nextCalibrationDate" },
-				{
-					label: "璁惧鍒嗙被", prop: "largeCategory", dataType: "tag",
-					formatData: (params) => {
-						return this.equipmentList.find(m => m.value == params).label
-					},
-					formatType: (params) => {
-						return this.equipmentList.find(m => m.value == params).type
-					}
-				},
-				{ label: "鍗曚环", prop: "unitPrice" },
-				{
-					label: "璁惧鐘舵��", prop: "deviceStatus", dataType: "tag",
-					formatData: (params) => {
-						return this.deviceStatusList.find(m => m.value == params).label
-					},
-					formatType: (params) => {
-						return this.deviceStatusList.find(m => m.value == params).type
-					}
-				},
-				{ label: "鏍″噯鍛ㄦ湡(鏈�)", prop: "calibrationDate" },
-				{
-					dataType: "action",
-					fixed: "right",
-					label: "鎿嶄綔",
-					operation: [
-						{
-							name: "妗f淇",
-							type: "text",
-							clickFun: (row) => {
-								this.isUpdate(row);
-							},
-						},
-						{
-							name: "鏁伴噰閰嶇疆",
-							type: "text",
-							clickFun: (row) => {
-								this.handleConfig(row);
-							},
-							disabled: (row) => {
-								return row.insProductItem == null || row.insProductItem === ''
-							}
-						},
-						{
-							name: "鍒犻櫎",
-							type: "text",
-							clickFun: (row) => {
-								this.handleDelete(row);
-							},
-						},
-					],
-				},
-			],
-			page: {
-				total: 0,
-				size: 10,
-				current: 0,
-			},
-			tableLoading: false,
-		}
-	},
-	computed: {
-		action() {
-			return this.javaApi + '/deviceScope/uploadFile'
-		}
-	},
-	mounted() {
-		this.selectEnumByCategory()
-		this.selectDevicePrincipal()
-		this.obtainItemParameterList()
-		this.getInsProductIds()
-		// 鍒濆鍖�
-		this.clickSidebar(this.clickNodeVal)
-	},
-	methods: {
-		//鍒嗙被
-		handleNotification(cate) {
-			this.queryParams.largeCategory = cate
-		},
-		obtainItemParameterList() {
-			obtainItemParameterList().then(res => {
-				let data = []
-				res.data.forEach(a => {
-					data.push({
-						label: a.laboratoryName,
-						value: a.id
-					})
-				})
-				this.subordinateDepartmentsList = data
-			})
-		},
-		getList() {
-			this.tableLoading = true;
-			let param = { laboratoryNameIsNull: this.laboratoryNameIsNull, ...this.queryParams, ...this.page };
-			delete param.total;
-			getDeviceParameter({ ...param })
-				.then((res) => {
-					this.tableLoading = false;
-					if (res.code === 200) {
-						this.tableData = res.data.records;
-						this.page.total = res.data.total;
-					}
-				})
-				.catch((err) => {
-					this.tableLoading = false;
-				});
-		},
-		pagination({ page, limit }) {
-			this.page.current = page;
-			this.page.size = limit;
-			this.getList();
-		},
-		refresh() {
-			this.queryParams = {};
-			this.page.current = 1;
-			this.getList();
-		},
-		refreshTable() {
-			this.page.current = 1;
-			this.getList();
-		},
-		// 瀵煎嚭
-		handleDownOne() {
-			this.outLoading = true
-			exportEquipmentDetails().then(res => {
-				this.outLoading = false
-				const blob = new Blob([res], { type: 'application/octet-stream' });
-				this.$download.saveAs(blob, '璁惧浠櫒涓�瑙堣〃.doc')
-			})
-		},
-		// 鑾峰彇瀛楀吀
-		selectEnumByCategory() {
-			// 璁惧鐘舵��
-			this.getDicts("device_status").then((response) => {
-				this.deviceStatusList = this.dictToValue(response.data);
-			});
-			// 璁惧鍒嗙被
-			this.getDicts("device_type").then((response) => {
-				this.equipmentList = this.dictToValue(response.data);
-			});
-		},
-		// 鑾峰彇璐熻矗浜哄垪琛�
-		selectDevicePrincipal() {
-			selectUserCondition().then(res => {
-				let data = [];
-				res.data.forEach((a) => {
-					data.push({
-						label: a.name,
-						value: a.id,
-					});
-				});
-				this.responsiblePersonList = data
-				this.authorizerList = data
-			})
-		},
-		getInsProductIds() {
-			getInsProduction().then(res => {
-				this.options = res.data.map((m, i) => {
-					m.id = m.name;
-					let children = m.children.map(n => {
-						n.label = n.name;
-						n.value = n.id;
-						return n
-					})
-					return m
-				})
-				this.options.forEach(item => {
-					if (item.children.length == 0) {
-						item.children = null;
-					} else {
-						item.children.forEach(m => {
-							if (m.children.length == 0) {
-								m.children = null;
-							} else {
-								m.children.forEach(n => {
-									if (n.children && n.children.length == 0) {
-										n.children = null;
-									}
-								})
-							}
-						})
-					}
-				})
-			})
-		},
-		handleClose() {
-			this.formData = {
-				authorizedPerson: []
-			}
-			this.formData2 = {
-				imageUpload: '',
-				imageName: '',
-				authorizedPerson: []
-			}
-			this.dialogVisible = false;
-			this.upLoad = false;
-		},
-		handleClose2() {
-			this.formData = {
-				authorizedPerson: []
-			}
-			this.formData2 = {
-				imageUpload: '',
-				imageName: '',
-				authorizedPerson: []
-			}
-			this.dialogVisible2 = false;
-			this.upLoad = false;
-		},
-		selectAllByOne(row) {
-			this.isUp = true
-			//鎵撳紑寮规
-			this.dialogVisible = true;
-			//row = 鐐瑰嚮瀵瑰簲琛屽��
-			//澶嶅埗缁檉ormData
-			this.formData = this.HaveJson(row);
-			console.log(row.insProductIds + 'valll');
-			this.formData.insProductIds = row.insProductIds ? row.insProductIds.split(',') : [];
-		},
-		isUpdate(row) {
-			//淇敼  isUp 涓烘。妗堜慨鏀�
-			this.isUp = false
-			//鎵撳紑寮规
-			this.dialogVisible = true;
-			//row = 鐐瑰嚮瀵瑰簲琛屽�间竴琛屽��
-			//澶嶅埗缁檉ormData
-			this.formData = this.HaveJson(row);
-			if (typeof (row.insProductIds) === 'number') {
-				row.insProductIds = row.insProductIds + ''
-			}
-			this.formData.deviceStatus = this.formData.deviceStatus + ''
-			this.formData.insProductIds = row.insProductIds ? row.insProductIds.split(',') : [];
-			// 灏嗘椂闂存牸寮忎负yyyy-MM-dd 杩涜杞崲
-			const dateRegex = /^\d{4}-\d{2}-\d{2}$/
-			Object.keys(this.formData).forEach(key => {
-				if (dateRegex.test(this.formData[key])) {
-					this.formData[key] = `${this.formData[key]} 00:00:00`
-				}
-			})
-		},
-		beforeUpload(file) {
-			if (file.size > 1024 * 1024 * 10) {
-				this.$message.error('涓婁紶鏂囦欢涓嶈秴杩�10M');
-				this.$refs.upload.clearFiles()
-				return false;
-			} else {
-				return true;
-			}
-		},
-		onError(err, file, fileList) {
-			this.$message.error('涓婁紶澶辫触')
-			this.$refs.upload.clearFiles()
-		},
-		// 涓婁紶鍥剧墖鎴愬姛
-		handleSuccessUpImg(response,) {
-			if (response.code == 200) {
-				this.formData.imageUpload = response.data.url;
-				this.formData.imageName = response.data.name;
-			}
-		},
-		handleSuccessUpImg2(response) {
-			if (response.code == 200) {
-				this.$nextTick(() => {
-					this.formData.imageUpload = response.data.url;
-					this.formData.imageName = response.data.name;
-					this.formData2.imageUpload = response.data.url;
-					this.formData2.imageName = response.data.name;
-				})
-			}
-		},
-		submitForm() {
-			if (!this.formData.deviceName) {
-				this.$message.error('鏈緭鍏ヤ华鍣ㄥ悕绉�')
-				return
-			}
-			if (!this.formData.enDeviceName) {
-				this.$message.error('鏈緭鍏ヤ华鍣ㄥ悕绉癊N')
-				return
-			}
-			if (!this.formData.specificationModel) {
-				this.$message.error('鏈緭鍏ヨ鏍煎瀷鍙�')
-				return
-			}
-			if (!this.formData.managementNumber) {
-				this.$message.error('鏈緭鍏ョ鐞嗙紪鍙�')
-				return
-			}
-			if (!this.formData.activationDate) {
-				this.$message.error('鏈緭鍏ユ牎鍑嗘湁鏁堟湡')
-				return
-			}
-			if (!this.formData.subordinateDepartmentsId) {
-				this.$message.error('鏈�夋嫨鎵�灞為儴闂�')
-				return
-			}
-			if (this.formData.deviceStatus === '' || this.formData.deviceStatus === null) {
-				this.$message.error('鏈�夋嫨褰撳墠鐘舵��')
-				return
-			}
-			if (!this.formData.calibrationDate) {
-				this.$message.error('鏈緭鍏ユ牎鍑嗗懆鏈燂紙鏈堬級')
-				return
-			}
-			delete this.formData.createTime
-			delete this.formData.updateTime
-			delete this.formData.createUser
-			delete this.formData.updateUser
-			const formData = this.HaveJson(this.formData)
-			formData.insProductIds = formData.insProductIds ? formData.insProductIds.join() : ''
-			if (formData.authorizedPerson.length === 0) {
-				formData.authorizedPerson = ''
-			} else {
-				formData.authorizedPerson = JSON.stringify(formData.authorizedPerson)
-			}
-			this.upLoad = true;
-			upDeviceParameter(formData).then(res => {
-				this.$message.success('淇敼鎴愬姛')
-				this.upLoad = false
-				this.refreshTable('page')
-				this.dialogVisible = false
-			}).catch(e => {
-				this.$message.error('淇敼澶辫触')
-				this.dialogVisible = false
-				this.upLoad = false
-			})
-		},
-		// 鎻愪氦妗f淇--鏂板
-		submitForm2() {
-			if (!this.formData2.deviceName) {
-				this.$message.error('鏈緭鍏ヤ华鍣ㄥ悕绉�')
-				return
-			}
-			if (!this.formData2.enDeviceName) {
-				this.$message.error('鏈緭鍏ヤ华鍣ㄥ悕绉癊N')
-				return
-			}
-			if (!this.formData2.specificationModel) {
-				this.$message.error('鏈緭鍏ヨ鏍煎瀷鍙�')
-				return
-			}
-			if (!this.formData2.managementNumber) {
-				this.$message.error('鏈緭鍏ョ鐞嗙紪鍙�')
-				return
-			}
-			if (!this.formData2.activationDate) {
-				this.$message.error('鏈緭鍏ユ牎鍑嗘湁鏁堟湡')
-				return
-			}
-			if (!this.formData2.deviceStatus) {
-				this.$message.error('鏈�夋嫨褰撳墠鐘舵��')
-				return
-			}
-			if (!this.formData2.calibrationDate) {
-				this.$message.error('杈撳叆鏍″噯鍛ㄦ湡锛堟湀锛�')
-				return
-			}
-			const formData = this.HaveJson(this.formData2)
-			formData.insProductIds = formData.insProductIds ? formData.insProductIds.join() : ''
-			if (formData.authorizedPerson.length === 0) {
-				formData.authorizedPerson = ''
-			} else {
-				formData.authorizedPerson = JSON.stringify(formData.authorizedPerson)
-			}
-			this.upLoad2 = true;
-			addDeviceParameter(formData).then(res => {
-				this.$message.success('鎻愪氦鎴愬姛')
-				this.upLoad2 = false
-				this.refreshTable('page')
-				this.dialogVisible2 = false
-				this.formData2 = {
-					imageUpload: '',
-					imageName: '',
-					authorizedPerson: []
-				}
-			}).catch(e => {
-				this.$message.error('鎻愪氦澶辫触')
-				this.dialogVisible2 = false
-				this.upLoad2 = false
-			})
-		},
-		handleConfig(row) {
-			let list = []
-			if (row.insProductItem) {
-				list = row.insProductItem.split(';')
-			}
-			let list2 = []
-			list.map((item) => {
-				const obj = Object.assign({
-					deviceId: row.id,
-					insProductItem: item,
-				})
-				list2.push(obj)
-			})
-			this.tableList = list2
-			this.deviceId = row.id
-			this.$nextTick(() => {
-				this.showData = true
-			})
-		},
-		closeDataVue() {
-			this.clickSidebar(this.clickNodeVal)
-			this.showData = false
-		},
-		submitForm3() {
-			if (!this.configForm.ip) {
-				this.$message.error('璇峰~鍐橧P');
-				return
-			}
-			if (!this.configForm.collectUrl) {
-				this.$message.error('璇峰~鍐欓噰闆嗗湴鍧�');
-				return
-			}
-			if (!this.configForm.storageUrl) {
-				this.$message.error('璇峰~鍐欏偍瀛樺湴鍧�');
-				return
-			}
-			if (!this.configForm.refer) {
-				this.$message.error('璇峰~鍐欏弬鐓�');
-				return
-			}
-			if (!this.configForm.x) {
-				this.$message.error('璇峰~鍐橷');
-				return
-			}
-			if (!this.configForm.y) {
-				this.$message.error('璇峰~鍐橸');
-				return
-			}
+  props: {
+    clickNodeVal: {
+      type: Object,
+      default: () => {
+        return {};
+      },
+    },
+  },
+  components: {
+    limsTable,
+    dataAcquisitionConfig,
+  },
+  data() {
+    return {
+      dateFormat: "yyyy-MM-dd",
+      deviceId: "",
+      fileTypeOptions: [
+        { label: "csv", value: ".csv" },
+        { label: "db", value: ".db" },
+        { label: "mdb", value: ".mdb" },
+        { label: "word", value: ".docx" },
+        { label: "excel", value: ".xlsx" },
+        { label: "txt", value: ".txt" },
+        { label: "png", value: ".png" },
+      ],
+      //鏄惁鏄。妗堜慨璁�  true涓嶆槸 false鏄�
+      isUp: true,
+      formData: {
+        authorizedPerson: [],
+      },
+      formData2: {
+        imageUpload: "",
+        imageName: "",
+        deviceStatus: "",
+        authorizedPerson: [],
+      },
+      value: "",
+      props: { multiple: true, emitPath: false, value: "id", label: "name" },
+      options: [],
+      labelPosition: "right",
+      dialogVisible: false,
+      dialogVisible2: false,
+      addPower: false,
+      showData: false, // 鏁伴噰閰嶇疆椤甸潰
+      tableList: [],
+      addDia: true,
+      addPower: true,
+      //璁惧绫诲瀷鍒楄〃
+      equipmentList: [],
+      // 璐熻矗浜哄垪琛�
+      responsiblePersonList: [],
+      // 鎺堟潈浜哄垪琛�
+      authorizerList: [],
+      // 褰撳墠鐘舵�佸垪琛�
+      deviceStatusList: [],
+      // 鎵�灞為儴闂�
+      subordinateDepartmentsList: [],
+      upLoad: false,
+      upLoad2: false,
+      dialogVisible3: false,
+      upLoad3: false,
+      configForm: {},
+      laboratoryNameIsNull: false,
+      queryParams: {},
+      tableData: [],
+      column: [
+        {
+          label: "璁惧鍚嶇О",
+          prop: "deviceName",
+          dataType: "link",
+          linkEvent: { method: "selectAllByOne", vueComponent: this },
+        },
+        { label: "璁惧鍚嶇ОEN", prop: "enDeviceName" },
+        {
+          label: "瑙勬牸鍨嬪彿",
+          prop: "specificationModel",
+        },
+        { label: "鐢熶骇鍘傚", prop: "manufacturer" },
+        { label: "鍑哄巶缂栧彿", prop: "factoryNo" },
+        { label: "绠$悊缂栧彿", prop: "managementNumber" },
+        { label: "鎶�鏈寚鏍�", prop: "technicalIndicators" },
+        { label: "璐疆鏃ユ湡", prop: "acquisitionDate" },
+        { label: "鍚敤鏃ユ湡", prop: "activationDate" },
+        { label: "绠$悊浜�", prop: "equipmentManagerUser" },
+        { label: "瀛樻斁鐐�", prop: "storagePoint" },
+        { label: "鎵�灞為儴闂�", prop: "laboratoryName" },
+        { label: "妫�楠岄」鐩�", prop: "insProductItem" },
+        { label: "鏍″噯鏈嶅姟鏈烘瀯", prop: "calibrationServices" },
+        { label: "鏈�杩戞牎鍑嗘棩鏈�", prop: "lastCalibrationDateTwo" },
+        { label: "鏈�杩戞牳鏌ユ棩鏈�", prop: "lastCalibrationDate" },
+        { label: "涓嬫鏍″噯鏃ユ湡", prop: "nextCalibrationDateTwo" },
+        { label: "涓嬫鏍告煡鏃ユ湡", prop: "nextCalibrationDate" },
+        {
+          label: "璁惧鍒嗙被",
+          prop: "largeCategory",
+          dataType: "tag",
+          formatData: (params) => {
+            return this.equipmentList.find((m) => m.value == params).label;
+          },
+          formatType: (params) => {
+            return this.equipmentList.find((m) => m.value == params).type;
+          },
+        },
+        { label: "鍗曚环", prop: "unitPrice" },
+        {
+          label: "璁惧鐘舵��",
+          prop: "deviceStatus",
+          dataType: "tag",
+          formatData: (params) => {
+            return this.deviceStatusList.find((m) => m.value == params).label;
+          },
+          formatType: (params) => {
+            return this.deviceStatusList.find((m) => m.value == params).type;
+          },
+        },
+        { label: "鏍″噯鍛ㄦ湡(鏈�)", prop: "calibrationDate" },
+        {
+          dataType: "action",
+          fixed: "right",
+          label: "鎿嶄綔",
+          operation: [
+            {
+              name: "妗f淇",
+              type: "text",
+              clickFun: (row) => {
+                this.isUpdate(row);
+              },
+            },
+            {
+              name: "鏁伴噰閰嶇疆",
+              type: "text",
+              clickFun: (row) => {
+                this.handleConfig(row);
+              },
+              disabled: (row) => {
+                return row.insProductItem == null || row.insProductItem === "";
+              },
+            },
+            {
+              name: "鍒犻櫎",
+              type: "text",
+              clickFun: (row) => {
+                this.handleDelete(row);
+              },
+            },
+          ],
+        },
+      ],
+      page: {
+        total: 0,
+        size: 10,
+        current: 0,
+      },
+      tableLoading: false,
+    };
+  },
+  computed: {
+    action() {
+      return this.javaApi + "/deviceScope/uploadFile";
+    },
+  },
+  mounted() {
+    this.selectEnumByCategory();
+    this.selectDevicePrincipal();
+    this.obtainItemParameterList();
+    this.getInsProductIds();
+    // 鍒濆鍖�
+    this.clickSidebar(this.clickNodeVal);
+  },
+  methods: {
+    //鍒嗙被
+    handleNotification(cate) {
+      this.queryParams.largeCategory = cate;
+    },
+    obtainItemParameterList() {
+      obtainItemParameterList().then((res) => {
+        let data = [];
+        res.data.forEach((a) => {
+          data.push({
+            label: a.laboratoryName,
+            value: a.id,
+          });
+        });
+        this.subordinateDepartmentsList = data;
+      });
+    },
+    getList() {
+      this.tableLoading = true;
+      let param = {
+        laboratoryNameIsNull: this.laboratoryNameIsNull,
+        ...this.queryParams,
+        ...this.page,
+      };
+      delete param.total;
+      getDeviceParameter({ ...param })
+        .then((res) => {
+          this.tableLoading = false;
+          if (res.code === 200) {
+            this.tableData = res.data.records;
+            this.page.total = res.data.total;
+          }
+        })
+        .catch((err) => {
+          this.tableLoading = false;
+        });
+    },
+    pagination({ page, limit }) {
+      this.page.current = page;
+      this.page.size = limit;
+      this.getList();
+    },
+    refresh() {
+      this.queryParams = {};
+      this.page.current = 1;
+      this.getList();
+    },
+    refreshTable() {
+      this.page.current = 1;
+      this.getList();
+    },
+    // 瀵煎嚭
+    handleDownOne() {
+      this.outLoading = true;
+      exportEquipmentDetails().then((res) => {
+        this.outLoading = false;
+        const blob = new Blob([res], { type: "application/octet-stream" });
+        this.$download.saveAs(blob, "璁惧浠櫒涓�瑙堣〃.doc");
+      });
+    },
+    // 鑾峰彇瀛楀吀
+    selectEnumByCategory() {
+      // 璁惧鐘舵��
+      this.getDicts("device_status").then((response) => {
+        this.deviceStatusList = this.dictToValue(response.data);
+      });
+      // 璁惧鍒嗙被
+      this.getDicts("device_type").then((response) => {
+        this.equipmentList = this.dictToValue(response.data);
+      });
+    },
+    // 鑾峰彇璐熻矗浜哄垪琛�
+    selectDevicePrincipal() {
+      selectUserCondition().then((res) => {
+        let data = [];
+        res.data.forEach((a) => {
+          data.push({
+            label: a.name,
+            value: a.id,
+          });
+        });
+        this.responsiblePersonList = data;
+        this.authorizerList = data;
+      });
+    },
+    getInsProductIds() {
+      getInsProduction().then((res) => {
+        this.options = res.data.map((m, i) => {
+          m.id = m.name;
+          let children = m.children.map((n) => {
+            n.label = n.name;
+            n.value = n.id;
+            return n;
+          });
+          return m;
+        });
+        this.options.forEach((item) => {
+          if (item.children.length == 0) {
+            item.children = null;
+          } else {
+            item.children.forEach((m) => {
+              if (m.children.length == 0) {
+                m.children = null;
+              } else {
+                m.children.forEach((n) => {
+                  if (n.children && n.children.length == 0) {
+                    n.children = null;
+                  }
+                });
+              }
+            });
+          }
+        });
+      });
+    },
+    handleClose() {
+      this.formData = {
+        authorizedPerson: [],
+      };
+      this.formData2 = {
+        imageUpload: "",
+        imageName: "",
+        authorizedPerson: [],
+      };
+      this.dialogVisible = false;
+      this.upLoad = false;
+    },
+    handleClose2() {
+      this.formData = {
+        authorizedPerson: [],
+      };
+      this.formData2 = {
+        imageUpload: "",
+        imageName: "",
+        authorizedPerson: [],
+      };
+      this.dialogVisible2 = false;
+      this.upLoad = false;
+    },
+    selectAllByOne(row) {
+      this.isUp = true;
+      //鎵撳紑寮规
+      this.dialogVisible = true;
+      //row = 鐐瑰嚮瀵瑰簲琛屽��
+      //澶嶅埗缁檉ormData
+      this.formData = this.HaveJson(row);
+      console.log(row.insProductIds + "valll");
+      this.formData.insProductIds = row.insProductIds
+        ? row.insProductIds.split(",")
+        : [];
+    },
+    isUpdate(row) {
+      //淇敼  isUp 涓烘。妗堜慨鏀�
+      this.isUp = false;
+      //鎵撳紑寮规
+      this.dialogVisible = true;
+      //row = 鐐瑰嚮瀵瑰簲琛屽�间竴琛屽��
+      //澶嶅埗缁檉ormData
+      this.formData = this.HaveJson(row);
+      if (typeof row.insProductIds === "number") {
+        row.insProductIds = row.insProductIds + "";
+      }
+      this.formData.deviceStatus = this.formData.deviceStatus + "";
+      this.formData.insProductIds = row.insProductIds
+        ? row.insProductIds.split(",")
+        : [];
+      // 灏嗘椂闂存牸寮忎负yyyy-MM-dd 杩涜杞崲
+      const dateRegex = /^\d{4}-\d{2}-\d{2}$/;
+      Object.keys(this.formData).forEach((key) => {
+        if (dateRegex.test(this.formData[key])) {
+          this.formData[key] = `${this.formData[key]} 00:00:00`;
+        }
+      });
+    },
+    beforeUpload(file) {
+      if (file.size > 1024 * 1024 * 10) {
+        this.$message.error("涓婁紶鏂囦欢涓嶈秴杩�10M");
+        this.$refs.upload.clearFiles();
+        return false;
+      } else {
+        return true;
+      }
+    },
+    onError(err, file, fileList) {
+      this.$message.error("涓婁紶澶辫触");
+      this.$refs.upload.clearFiles();
+    },
+    // 涓婁紶鍥剧墖鎴愬姛
+    handleSuccessUpImg(response) {
+      if (response.code == 200) {
+        this.formData.imageUpload = response.data.url;
+        this.formData.imageName = response.data.name;
+      }
+    },
+    handleSuccessUpImg2(response) {
+      if (response.code == 200) {
+        this.$nextTick(() => {
+          this.formData.imageUpload = response.data.url;
+          this.formData.imageName = response.data.name;
+          this.formData2.imageUpload = response.data.url;
+          this.formData2.imageName = response.data.name;
+        });
+      }
+    },
+    submitForm() {
+      if (!this.formData.deviceName) {
+        this.$message.error("鏈緭鍏ヤ华鍣ㄥ悕绉�");
+        return;
+      }
+      if (!this.formData.enDeviceName) {
+        this.$message.error("鏈緭鍏ヤ华鍣ㄥ悕绉癊N");
+        return;
+      }
+      if (!this.formData.specificationModel) {
+        this.$message.error("鏈緭鍏ヨ鏍煎瀷鍙�");
+        return;
+      }
+      if (!this.formData.managementNumber) {
+        this.$message.error("鏈緭鍏ョ鐞嗙紪鍙�");
+        return;
+      }
+      if (!this.formData.activationDate) {
+        this.$message.error("鏈緭鍏ユ牎鍑嗘湁鏁堟湡");
+        return;
+      }
+      if (!this.formData.subordinateDepartmentsId) {
+        this.$message.error("鏈�夋嫨鎵�灞為儴闂�");
+        return;
+      }
+      if (
+        this.formData.deviceStatus === "" ||
+        this.formData.deviceStatus === null
+      ) {
+        this.$message.error("鏈�夋嫨褰撳墠鐘舵��");
+        return;
+      }
+      if (!this.formData.calibrationDate) {
+        this.$message.error("鏈緭鍏ユ牎鍑嗗懆鏈燂紙鏈堬級");
+        return;
+      }
+      delete this.formData.createTime;
+      delete this.formData.updateTime;
+      delete this.formData.createUser;
+      delete this.formData.updateUser;
+      const formData = this.HaveJson(this.formData);
+      formData.insProductIds = formData.insProductIds
+        ? formData.insProductIds.join()
+        : "";
+      if (formData.authorizedPerson.length === 0) {
+        formData.authorizedPerson = "";
+      } else {
+        formData.authorizedPerson = JSON.stringify(formData.authorizedPerson);
+      }
+      this.upLoad = true;
+      upDeviceParameter(formData)
+        .then((res) => {
+          this.$message.success("淇敼鎴愬姛");
+          this.upLoad = false;
+          this.refreshTable("page");
+          this.dialogVisible = false;
+        })
+        .catch((e) => {
+          this.$message.error("淇敼澶辫触");
+          this.dialogVisible = false;
+          this.upLoad = false;
+        });
+    },
+    // 鎻愪氦妗f淇--鏂板
+    submitForm2() {
+      if (!this.formData2.deviceName) {
+        this.$message.error("鏈緭鍏ヤ华鍣ㄥ悕绉�");
+        return;
+      }
+      if (!this.formData2.enDeviceName) {
+        this.$message.error("鏈緭鍏ヤ华鍣ㄥ悕绉癊N");
+        return;
+      }
+      if (!this.formData2.specificationModel) {
+        this.$message.error("鏈緭鍏ヨ鏍煎瀷鍙�");
+        return;
+      }
+      if (!this.formData2.managementNumber) {
+        this.$message.error("鏈緭鍏ョ鐞嗙紪鍙�");
+        return;
+      }
+      if (!this.formData2.activationDate) {
+        this.$message.error("鏈緭鍏ユ牎鍑嗘湁鏁堟湡");
+        return;
+      }
+      if (!this.formData2.deviceStatus) {
+        this.$message.error("鏈�夋嫨褰撳墠鐘舵��");
+        return;
+      }
+      if (!this.formData2.calibrationDate) {
+        this.$message.error("杈撳叆鏍″噯鍛ㄦ湡锛堟湀锛�");
+        return;
+      }
+      const formData = this.HaveJson(this.formData2);
+      formData.insProductIds = formData.insProductIds
+        ? formData.insProductIds.join()
+        : "";
+      if (formData.authorizedPerson.length === 0) {
+        formData.authorizedPerson = "";
+      } else {
+        formData.authorizedPerson = JSON.stringify(formData.authorizedPerson);
+      }
+      this.upLoad2 = true;
+      addDeviceParameter(formData)
+        .then((res) => {
+          this.$message.success("鎻愪氦鎴愬姛");
+          this.upLoad2 = false;
+          this.refreshTable("page");
+          this.dialogVisible2 = false;
+          this.formData2 = {
+            imageUpload: "",
+            imageName: "",
+            authorizedPerson: [],
+          };
+        })
+        .catch((e) => {
+          this.$message.error("鎻愪氦澶辫触");
+          this.dialogVisible2 = false;
+          this.upLoad2 = false;
+        });
+    },
+    handleConfig(row) {
+      let list = [];
+      if (row.insProductItem) {
+        list = row.insProductItem.split(";");
+      }
+      let list2 = [];
+      list.map((item) => {
+        const obj = Object.assign({
+          deviceId: row.id,
+          insProductItem: item,
+        });
+        list2.push(obj);
+      });
+      this.tableList = list2;
+      this.deviceId = row.id;
+      this.$nextTick(() => {
+        this.showData = true;
+      });
+    },
+    closeDataVue() {
+      this.clickSidebar(this.clickNodeVal);
+      this.showData = false;
+    },
+    submitForm3() {
+      if (!this.configForm.ip) {
+        this.$message.error("璇峰~鍐橧P");
+        return;
+      }
+      if (!this.configForm.collectUrl) {
+        this.$message.error("璇峰~鍐欓噰闆嗗湴鍧�");
+        return;
+      }
+      if (!this.configForm.storageUrl) {
+        this.$message.error("璇峰~鍐欏偍瀛樺湴鍧�");
+        return;
+      }
+      if (!this.configForm.refer) {
+        this.$message.error("璇峰~鍐欏弬鐓�");
+        return;
+      }
+      if (!this.configForm.x) {
+        this.$message.error("璇峰~鍐橷");
+        return;
+      }
+      if (!this.configForm.y) {
+        this.$message.error("璇峰~鍐橸");
+        return;
+      }
 
-			this.upLoad3 = true
-			numberCollect(this.configForm).then(res => {
-				this.upLoad3 = false
-				this.$message.success('鎿嶄綔鎴愬姛')
-				this.refreshTable('page')
-				this.dialogVisible3 = false
-			}).catch(e => {
-				this.$message.error('鎿嶄綔澶辫触')
-				this.dialogVisible3 = false
-				this.upLoad3 = false
-			})
-		},
-		// 鐐瑰嚮渚ц竟鏍忓埛鏂�
-		clickSidebar(clickNodeVal) {
-			this.laboratoryNameIsNull = false
-			// 鏄惁瀛樺湪value锛屽瓨鍦╲alue浠h〃涓轰笁绾�
-			if (!clickNodeVal.value) {
-				this.list = [];
-				this.queryParams.laboratoryName = null
-				this.queryParams.storagePoint = null
-				// 绛変簬1浠h〃涓烘爲鐨勪竴绾э紝label涓洪儴闂�
-				if (clickNodeVal.label == '鍏朵粬') {
-					this.laboratoryNameIsNull = true
-					this.refreshTable('page')
-					return
-				}
-				if (clickNodeVal.level == 1) {
-					this.queryParams.laboratoryName = clickNodeVal.label
-					// 绛変簬浜岀骇銆俵abel涓哄瓨鍌ㄥ湴鐐�
-				} else if (clickNodeVal.level == 2) {
-					// 鍏朵粬琛ㄧず娌℃湁閰嶇疆瀹為獙瀹わ紝鍙厤缃簡鍦扮偣
-					if (clickNodeVal.parent.label == '鍏朵粬') {
-						this.laboratoryNameIsNull = true
-					} else {
-						this.queryParams.laboratoryName = clickNodeVal.parent.label
-					}
-					this.queryParams.storagePoint = clickNodeVal.label
-				}
-				this.refreshTable('page')
-			}
-		},
-		handleDelete(row) {
-			this.$confirm("鏄惁鍒犻櫎璇ユ潯鏁版嵁?", "鎻愮ず", {
-				confirmButtonText: "纭畾",
-				cancelButtonText: "鍙栨秷",
-				type: "warning",
-			})
-				.then(() => {
-					delDeviceParameter({ id: row.id }).then((res) => {
-						this.$message.success("鍒犻櫎鎴愬姛");
-						this.refresh();
-					});
-				})
-				.catch(() => { });
-		},
-	},
-	watch: {
-		// 鐩戝惉鐐瑰嚮el-tree鐨勬暟鎹紝杩涜鏁版嵁鍒锋柊
-		clickNodeVal(newVal) {
-			this.clickSidebar(newVal)
-		}
-	}
-}
+      this.upLoad3 = true;
+      numberCollect(this.configForm)
+        .then((res) => {
+          this.upLoad3 = false;
+          this.$message.success("鎿嶄綔鎴愬姛");
+          this.refreshTable("page");
+          this.dialogVisible3 = false;
+        })
+        .catch((e) => {
+          this.$message.error("鎿嶄綔澶辫触");
+          this.dialogVisible3 = false;
+          this.upLoad3 = false;
+        });
+    },
+    // 鐐瑰嚮渚ц竟鏍忓埛鏂�
+    clickSidebar(clickNodeVal) {
+      this.laboratoryNameIsNull = false;
+      // 鏄惁瀛樺湪value锛屽瓨鍦╲alue浠h〃涓轰笁绾�
+      if (!clickNodeVal.value) {
+        this.list = [];
+        this.queryParams.laboratoryName = null;
+        this.queryParams.storagePoint = null;
+        // 绛変簬1浠h〃涓烘爲鐨勪竴绾э紝label涓洪儴闂�
+        if (clickNodeVal.label == "鍏朵粬") {
+          this.laboratoryNameIsNull = true;
+          this.refreshTable("page");
+          return;
+        }
+        if (clickNodeVal.level == 1) {
+          this.queryParams.laboratoryName = clickNodeVal.label;
+          // 绛変簬浜岀骇銆俵abel涓哄瓨鍌ㄥ湴鐐�
+        } else if (clickNodeVal.level == 2) {
+          // 鍏朵粬琛ㄧず娌℃湁閰嶇疆瀹為獙瀹わ紝鍙厤缃簡鍦扮偣
+          if (clickNodeVal.parent.label == "鍏朵粬") {
+            this.laboratoryNameIsNull = true;
+          } else {
+            this.queryParams.laboratoryName = clickNodeVal.parent.label;
+          }
+          this.queryParams.storagePoint = clickNodeVal.label;
+        }
+        this.refreshTable("page");
+      }
+    },
+    handleDelete(row) {
+      this.$confirm("鏄惁鍒犻櫎璇ユ潯鏁版嵁?", "鎻愮ず", {
+        confirmButtonText: "纭畾",
+        cancelButtonText: "鍙栨秷",
+        type: "warning",
+      })
+        .then(() => {
+          delDeviceParameter({ id: row.id }).then((res) => {
+            this.$message.success("鍒犻櫎鎴愬姛");
+            this.refresh();
+          });
+        })
+        .catch(() => {});
+    },
+  },
+  watch: {
+    // 鐩戝惉鐐瑰嚮el-tree鐨勬暟鎹紝杩涜鏁版嵁鍒锋柊
+    clickNodeVal(newVal) {
+      this.clickSidebar(newVal);
+    },
+  },
+};
 </script>
 
 <style scoped>
 .role_manage {
-	width: 100%;
-	height: 100%;
+  width: 100%;
+  height: 100%;
 }
 
 .title {
-	line-height: 15px;
+  line-height: 15px;
 }
 
 .search {
-	display: flex;
-	align-items: center;
-	justify-content: space-between;
-	margin-top: 10px;
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+  margin-top: 10px;
 }
 
 .search_thing {
-	width: 14em;
-	display: flex;
-	align-items: center;
+  width: 14em;
+  display: flex;
+  align-items: center;
 }
 
 .search_label {
-	width: 80px;
-	font-size: 14px;
-	text-align: right;
+  width: 80px;
+  font-size: 14px;
+  text-align: right;
 }
 
 .search_input {
-	width: calc(100% - 80px);
+  width: calc(100% - 80px);
 }
 
 .table {
-	margin-top: 12px;
-	background-color: #fff;
-	height: calc(100vh - 17em);
+  margin-top: 12px;
+  background-color: #fff;
+  height: calc(100vh - 17em);
 }
 
 .el-form-item {
-	margin-bottom: 16px;
+  margin-bottom: 16px;
 }
 
 .picName {
-	overflow: hidden;
-	text-overflow: ellipsis;
-	white-space: nowrap;
-	word-break: break-all;
-	width: 120px;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+  word-break: break-all;
+  width: 120px;
 }
 </style>
diff --git a/src/views/CNAS/resourceDemand/device/component/operationInstruction.vue b/src/views/CNAS/resourceDemand/device/component/operationInstruction.vue
index 436b01f..ab82ea4 100644
--- a/src/views/CNAS/resourceDemand/device/component/operationInstruction.vue
+++ b/src/views/CNAS/resourceDemand/device/component/operationInstruction.vue
@@ -31,9 +31,9 @@
         <template v-slot="scope">
           <el-button type="text" size="small" @click="downloadFile(scope.row.fileSystemName)">涓嬭浇</el-button>
           <el-button type="text" size="small" style="color: red;"
-            @click="deleteHomeworkGuidebook(scope.row)">鍒犻櫎</el-button>
-          <el-button type="text" size="small" @click="instructionEditFun(scope.row)">缂栬緫</el-button>
-          <el-button type="text" size="small" @click="approval(scope.row)">瀹℃壒</el-button>
+            @click="deleteHomeworkGuidebook(scope.row)" :disabled="scope.row.status === true">鍒犻櫎</el-button>
+          <el-button type="text" size="small" @click="instructionEditFun(scope.row)" :disabled="scope.row.status === true">缂栬緫</el-button>
+          <el-button type="text" size="small" @click="approval(scope.row)" :disabled="scope.row.status === true">瀹℃壒</el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -309,18 +309,7 @@
       });
     },
     downloadFile(fileName) {
-      let state = /\.(jpg|jpeg|png|gif)$/i.test(fileName)
-      if (state) {
-        let url = this.javaApi + '/img/' + fileName;
-        fileDownload.downloadIamge(url, fileName)
-      } else {
-        const url = this.javaApi + '/word/' + fileName
-        const link = document.createElement('a');
-        link.href = url;
-        link.download = fileName;
-        link.click();
-        this.$message.success('涓嬭浇鎴愬姛')
-      }
+      this.$download.saveAs(fileName, fileName)
     },
     instructionEditFun(row) {
       this.dialogVisible = true
diff --git a/src/views/CNAS/resourceDemand/device/component/resource-reservation.vue b/src/views/CNAS/resourceDemand/device/component/resource-reservation.vue
index b23611b..7f3806b 100644
--- a/src/views/CNAS/resourceDemand/device/component/resource-reservation.vue
+++ b/src/views/CNAS/resourceDemand/device/component/resource-reservation.vue
@@ -2,8 +2,7 @@
 <template>
   <div class="role_manage">
     <el-row class="title">
-      <el-col :span="8" style="text-align: left;">棰勫畾鎬昏</el-col>
-      <el-col :span="16" style="text-align: right;padding-bottom:10px">
+      <el-col :span="24" style="text-align: right;padding:10px 0">
         <el-date-picker
           v-model="startTime"
           format="yyyy-MM-dd"
@@ -19,7 +18,7 @@
           size="mini"
           type="date"
           value-format="yyyy-MM-dd"/>
-        <el-button size="mini" type="primary" @click="ValidateAndQuery">鏌� 璇�</el-button>
+        <el-button size="mini" type="primary" @click="ValidateAndQuery" style="margin-left: 10px">鏌� 璇�</el-button>
       </el-col>
     </el-row>
     <div class="table-container">
@@ -134,7 +133,6 @@
     }
   },
   data() {
-
     return {
       timeSlots: ['09:00-12:00', '13:00-18:00', '18:00-22:00'],
       dates: [],
@@ -154,7 +152,6 @@
       startTime: '',
       endTime: '',
       entity: {
-        deviceName: null,
         laboratoryName: '',
         storagePoint: '',
       },
@@ -169,15 +166,6 @@
         reservationSpecification: ''
       },
       total: '',
-      componentData: {
-        entity: {
-          largeCategory: null,
-          orderBy: {
-            field: 'id',
-            order: 'asc'
-          }
-        },
-      },
       yuyue: null,
       yuyuetime: '',
       rules: {
@@ -202,14 +190,12 @@
       this.clickSidebar(newVal)
     }
   },
-
   created() {
     this.clickSidebar(this.clickNodeVal)
     this.initDate();
   },
   mounted() {
-    this.getStartTimeAndEndTime();
-
+    // this.getStartTimeAndEndTime();
   },
   methods: {
     isBeforeDate() {
@@ -218,7 +204,7 @@
       const appointment = this.appointment && this.appointment.split('-')
       let appointment0 = ''
       let appointment1 = ''
-      if (appointment !== '') {
+      if (appointment) {
         appointment0 = appointment[0].slice(0, 2)
         appointment1 = appointment[1].slice(0, 2)
       }
@@ -238,7 +224,7 @@
       if (!row || row.dateList === null || row.dateList === undefined || row.dateList === "") {
         return '棰勭害';
       }
-      var dateLst = row.dateList
+      const dateLst = row.dateList
       for (const dateLstElement of dateLst) {
         if (dateLstElement.date === date) {
           if (dateLstElement.value === 0) {
@@ -312,12 +298,16 @@
     getStartTimeAndEndTime() {
       //鏌ヨ閫昏緫
       this.tableLoading = true;
-      reservationSelectDevice({
-          current: this.currentPage,
-          size: this.pageSize,
-        ...this.entity,
-        laboratoryNameIsNull: this.laboratoryNameIsNull
-      }).then(res => {
+      const params = {
+        current: this.currentPage,
+        size: this.pageSize,
+        starttime: this.startTime,
+        endtime: this.endTime,
+        laboratoryNameIsNull: this.laboratoryNameIsNull,
+        laboratoryName: this.entity.laboratoryName,
+        storagePoint: this.entity.storagePoint,
+      }
+      reservationSelectDevice(params).then(res => {
         this.tableLoading = false;
         if (res.code === 200) {
           this.tableData = res.data;
@@ -326,17 +316,20 @@
         this.tableLoading = false;
       })
     },
+    // 鎵撳紑棰勭害寮规
     openModal(date, row) {
+      console.log('date', date);
+      console.log('row', row);
       this.yuyue = row;
       this.yuyuetime = date;
       this.appointment = row.time
       this.showModal = true;
       this.getList();
     },
+    // 鎵撳紑鏂板缓棰勫畾寮规
     openAdd() {
       this.addVisiable = true;
       this.addReservation.deviceId = this.yuyue.id;
-      // this.addReservation.deviceNumber = this.yuyue.deviceNumber;
       this.addReservation.deviceName = this.yuyue.deviceName;
       this.addReservation.reservationTime = this.yuyuetime + " " + this.yuyue.time;
       this.addReservation.specificTime = this.yuyue.time;
@@ -393,9 +386,10 @@
         }
       });
     },
+    // 棰勫畾淇℃伅鏌ヨ
     getList() {
       const params = {
-        selectReservationParameterPage: this.yuyue.id,
+        deviceId: this.yuyue.id,
         reservationTime: this.yuyuetime,
         specificTime: this.yuyue.time,
       }
diff --git a/src/views/CNAS/resourceDemand/device/index.vue b/src/views/CNAS/resourceDemand/device/index.vue
index 8206ced..a12de51 100644
--- a/src/views/CNAS/resourceDemand/device/index.vue
+++ b/src/views/CNAS/resourceDemand/device/index.vue
@@ -47,7 +47,7 @@
       <div v-if="!isShowAll" style="height: 100%;">
         <el-tabs v-model="tabListActiveName" class="main_right" type="border-card" @tab-click="handleClick">
           <el-tab-pane label="璁惧杩愯鎬昏" name="璁惧杩愯鎬昏">
-            <operationOverview v-if="tabListActiveName == '璁惧杩愯鎬昏'" :clickNodeVal="clickNodeVal"/>
+            <operationOverview view v-if="tabListActiveName == '璁惧杩愯鎬昏'" :clickNodeVal="clickNodeVal"/>
           </el-tab-pane>
           <el-tab-pane label="璁惧妗f" name="璁惧妗f">
             <files v-if="tabListActiveName == '璁惧妗f'" :clickNodeVal="clickNodeVal" />
@@ -123,7 +123,7 @@
       isShowAll: true,
       deviceName: "", // 渚ц竟鏍忔悳绱�
       loading: false,
-      tabListActiveName: '璁惧妗f',
+      tabListActiveName: '璁惧杩愯鎬昏',
       menuListActiveName: '璁惧鎬昏',
       list: [],
       clickNodeVal: {}
@@ -200,7 +200,7 @@
 .device-right {
   background: #fff;
   width: calc(100% - 250px);
-  height: calc(100vh - 100px);
+  height: calc(100vh - 40px);
   border-radius: 16px;
   box-sizing: border-box;
   padding: 10px;
diff --git a/src/views/business/inspectionOrder/add.vue b/src/views/business/inspectionOrder/add.vue
index b726824..ade64a8 100644
--- a/src/views/business/inspectionOrder/add.vue
+++ b/src/views/business/inspectionOrder/add.vue
@@ -80,7 +80,7 @@
             v-show="active == 3 && addObj.companyId"
             >閫氳繃</el-button
           >
-          <el-button size="medium" @click="$parent.playOrder(0)">
+          <el-button size="medium" @click="$router.go(-1)">
             <span style="color: #3a7bfa">杩斿洖</span>
           </el-button>
         </el-col>
@@ -172,7 +172,7 @@
                   placeholder="璇疯緭鍏�"
                   class="search_input"
                   clearable
-                  :readonly="active > 1"
+                  :disabled="active > 1"
                   v-model="addObj.phone"
                 ></el-input>
               </el-form-item>
@@ -248,7 +248,7 @@
             </el-col>
             <el-col :span="6">
               <el-form-item label="鎶ュ憡鍙戦�佹柟寮忥細" prop="send">
-                <el-radio-group v-model="addObj.send">
+                <el-radio-group v-model="addObj.send" :disabled="active > 1">
                   <el-radio :label="1">鑷彇</el-radio>
                   <el-radio :label="0">鍏朵粬</el-radio>
                 </el-radio-group>
@@ -260,7 +260,11 @@
                 prop="processing"
                 class="processing_input"
               >
-                <el-radio-group v-model="addObj.processing" size="mini">
+                <el-radio-group
+                  v-model="addObj.processing"
+                  :disabled="active > 1"
+                  size="mini"
+                >
                   <el-radio :label="0">濮旀墭鍗曚綅鍙栧洖</el-radio>
                   <el-radio :label="1">瀹為獙瀹ゅ鐞�</el-radio>
                 </el-radio-group>
@@ -274,7 +278,7 @@
                   :placeholder="active > 1 ? '' : '璇疯緭鍏�'"
                   clearable
                   v-model="addObj.engineering"
-                  :readonly="active > 1"
+                  :disabled="active > 1"
                 ></el-input>
               </el-form-item>
             </el-col>
@@ -291,7 +295,7 @@
                   :placeholder="active > 1 ? '' : '璇疯緭鍏�'"
                   clearable
                   v-model="addObj.engineeringEn"
-                  :readonly="active > 1"
+                  :disabled="active > 1"
                 ></el-input>
               </el-form-item>
             </el-col>
@@ -303,7 +307,7 @@
                   placeholder="璇疯緭鍏�"
                   clearable
                   v-model="addObj.production"
-                  :readonly="active > 1"
+                  :disabled="active > 1"
                 ></el-input>
               </el-form-item>
             </el-col>
@@ -319,13 +323,13 @@
                   placeholder="璇疯緭鍏�"
                   clearable
                   v-model="addObj.productionEn"
-                  :readonly="active > 1"
+                  :disabled="active > 1"
                 ></el-input>
               </el-form-item>
             </el-col>
             <el-col :span="6">
               <el-form-item label="鏄惁鐣欐牱锛�" prop="isLeave">
-                <el-radio-group v-model="addObj.isLeave">
+                <el-radio-group v-model="addObj.isLeave" :disabled="active > 1">
                   <el-radio :label="0">涓嶇暀鏍�</el-radio>
                   <el-radio :label="1">鐣欐牱</el-radio>
                 </el-radio-group>
@@ -336,6 +340,7 @@
             <el-col :span="6">
               <el-form-item label="鏄惁娑夊強閰嶅鏍峰搧锛�" prop="mating">
                 <el-radio-group
+                  :disabled="active > 1"
                   v-model="addObj.mating"
                   @change="$refs.sampleTable.doLayout()"
                 >
@@ -355,7 +360,7 @@
                   :placeholder="active > 1 ? '' : '璇疯緭鍏�'"
                   clearable
                   v-model="addObj.otcCode"
-                  :readonly="active > 1"
+                  :disabled="active > 1"
                 ></el-input>
               </el-form-item>
             </el-col>
@@ -367,7 +372,7 @@
                   :placeholder="active > 1 ? '' : '璇疯緭鍏�'"
                   clearable
                   v-model="addObj.prepareUser"
-                  :readonly="active > 1"
+                  :disabled="active > 1"
                 ></el-input>
               </el-form-item>
             </el-col>
@@ -380,7 +385,7 @@
                   clearable
                   :placeholder="active > 1 ? '' : '璇疯緭鍏�'"
                   v-model="addObj.remark"
-                  :readonly="active > 1"
+                  :disabled="active > 1"
                 ></el-input>
               </el-form-item>
             </el-col>
@@ -388,58 +393,58 @@
         </el-form>
       </div>
     </basic-container>
+    <div
+      class="search"
+      v-if="active == 1"
+      style="display: flex; background: transparent"
+    >
+      <div style="display: flex; align-items: center">
+        <div class="search_label">鏍峰搧鍨嬪彿锛�</div>
+        <div class="search_input">
+          <el-select
+            v-model="model"
+            :placeholder="active > 1 ? '' : '璇疯緭鍏�'"
+            filterable
+            allow-create
+            default-first-option
+            size="small"
+            @change="changeModel"
+          >
+            <el-option
+              v-for="item in models"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            >
+            </el-option>
+          </el-select>
+        </div>
+      </div>
+      <div style="display: flex; align-items: center">
+        <div class="search_label">妫�楠屾爣鍑嗭細</div>
+        <div class="search_input">
+          <el-select
+            filterable
+            v-model="standardMethodListId"
+            :placeholder="active > 1 ? '' : '璇疯緭鍏�'"
+            size="small"
+            @focus="methodFocus"
+            :loading="methodLoad"
+            @change="changeStandardMethodListId"
+          >
+            <el-option
+              v-for="item in methods"
+              :key="item.id"
+              :label="item.code"
+              :value="item.id"
+            >
+            </el-option>
+          </el-select>
+        </div>
+      </div>
+    </div>
     <basic-container>
       <div style="height: auto">
-        <div
-          class="search"
-          v-if="active == 1"
-          style="display: flex; background: transparent"
-        >
-          <div>
-            <div class="search_label">鏍峰搧鍨嬪彿锛�</div>
-            <div class="search_input">
-              <el-select
-                v-model="model"
-                :placeholder="active > 1 ? '' : '璇疯緭鍏�'"
-                filterable
-                allow-create
-                default-first-option
-                size="small"
-                @change="changeModel"
-              >
-                <el-option
-                  v-for="item in models"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value"
-                >
-                </el-option>
-              </el-select>
-            </div>
-          </div>
-          <div>
-            <div class="search_label">妫�楠屾爣鍑嗭細</div>
-            <div class="search_input">
-              <el-select
-                filterable
-                v-model="standardMethodListId"
-                :placeholder="active > 1 ? '' : '璇疯緭鍏�'"
-                size="small"
-                @focus="methodFocus"
-                :loading="methodLoad"
-                @change="changeStandardMethodListId"
-              >
-                <el-option
-                  v-for="item in methods"
-                  :key="item.id"
-                  :label="item.code"
-                  :value="item.id"
-                >
-                </el-option>
-              </el-select>
-            </div>
-          </div>
-        </div>
         <el-table
           class="el-table sampleTable"
           ref="sampleTable"
@@ -802,10 +807,767 @@
         </el-table>
       </div>
     </basic-container>
+    <el-dialog
+      title="閫夋嫨鏍峰搧"
+      :visible.sync="selectStandardTree"
+      width="500px"
+    >
+      <div
+        class="body"
+        style="height: 60vh; overflow-y: auto; user-select: none"
+        v-if="selectStandardTree"
+      >
+        <el-row>
+          <el-col :span="24">
+            <el-input
+              placeholder="杈撳叆鍏抽敭瀛楄繘琛屾悳绱�"
+              suffix-icon="el-icon-search"
+              v-model="search"
+              size="small"
+              style="margin-bottom: 5px"
+              clearable
+              @blur="searchFilter"
+              @clear="searchFilter"
+              @keyup.enter.native="searchFilter"
+            ></el-input>
+          </el-col>
+        </el-row>
+        <el-tree
+          :data="list"
+          ref="tree"
+          :props="{ children: 'children', label: 'label' }"
+          node-key="label"
+          :filter-node-method="filterNode"
+          @node-click="handleNodeClick"
+          highlight-current
+          @node-expand="nodeOpen"
+          @node-collapse="nodeClose"
+          :default-expanded-keys="expandedKeys"
+          @dblclick.native="activeStandardTree"
+        >
+          <div class="custom-tree-node" slot-scope="{ node, data }">
+            <el-row>
+              <el-col :span="24">
+                <span
+                  ><i
+                    :class="`node_i ${
+                      data.children != undefined
+                        ? data.code === '[1]'
+                          ? 'el-icon-folder-opened'
+                          : 'el-icon-folder'
+                        : 'el-icon-tickets'
+                    }`"
+                  ></i>
+                  {{ data.code }} {{ data.label }}</span
+                >
+              </el-col>
+            </el-row>
+          </div>
+        </el-tree>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="selectStandardTree = false">鍙� 娑�</el-button>
+        <el-button type="primary" @click="activeStandardTree">纭� 瀹�</el-button>
+      </span>
+    </el-dialog>
+    <el-dialog title="閫夋嫨鍗曚綅" :visible.sync="selectUserDia" width="70%">
+      <div class="body" style="height: 60vh" v-if="selectUserDia">
+        <ValueTable
+          ref="ValueTable2"
+          :url="$api.user.selectCustomPageList"
+          :componentData="componentData2"
+        />
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="selectUserDia = false">鍙� 娑�</el-button>
+        <el-button type="primary" @click="selectUser">纭� 瀹�</el-button>
+      </span>
+    </el-dialog>
+    <el-dialog title="淇濆瓨妯℃澘" :visible.sync="templateDia" width="400px">
+      <div
+        class="body"
+        style="display: flex; align-items: center"
+        v-if="templateDia"
+      >
+        <div class="search_label" style="width: 90px">
+          <span class="required-span">* </span>妯℃澘鍚嶇О锛�
+        </div>
+        <div class="search_input">
+          <el-input size="small" clearable v-model="templateName"></el-input>
+        </div>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="templateDia = false">鍙� 娑�</el-button>
+        <el-button
+          type="primary"
+          @click="addTemplateDia"
+          :loading="templateLoading"
+          >纭� 瀹�</el-button
+        >
+      </span>
+    </el-dialog>
+    <el-dialog
+      title="妫�楠屼笅鍙�"
+      :visible.sync="issuedDialogVisible"
+      width="400px"
+      :close-on-click-modal="false"
+      :close-on-press-escape="false"
+      :show-close="false"
+    >
+      <div class="body" style="max-height: 60vh">
+        <el-row>
+          <el-col class="search_thing" :span="22">
+            <div class="search_label">
+              <span class="required-span">* </span>绾﹀畾鏃堕棿锛�
+            </div>
+            <div class="search_input">
+              <el-date-picker
+                size="small"
+                v-model="distributeData.appointed"
+                :picker-options="pickerOptions"
+                type="date"
+                placeholder="閫夋嫨鏃ユ湡"
+                value-format="yyyy-MM-dd"
+                style="width: 100%"
+                format="yyyy-MM-dd"
+              >
+              </el-date-picker>
+            </div>
+          </el-col>
+          <el-col class="search_thing" :span="22">
+            <div class="search_label">
+              <span class="required-span" v-if="addObj.type == 2">* </span
+              >鎸囨淳浜哄憳锛�
+            </div>
+            <div class="search_input">
+              <el-select
+                multiple
+                v-model="distributeData.userId"
+                placeholder="璇烽�夋嫨"
+                size="small"
+                filterable
+                style="width: 100%"
+                @change="changeUser"
+              >
+                <el-option-group
+                  v-for="(item, index) in Object.keys(personList)"
+                  :key="index"
+                  :label="item"
+                >
+                  <el-option
+                    v-for="op in personList[item]"
+                    :key="op.id"
+                    :label="op.name"
+                    :value="op.id"
+                  >
+                  </el-option>
+                </el-option-group>
+              </el-select>
+            </div>
+          </el-col>
+          <el-col
+            class="search_thing"
+            :span="22"
+            v-if="distributeData.userId.length > 0"
+          >
+            <div class="search_label">
+              <span class="required-span">* </span>璇曢獙瀹わ細
+            </div>
+            <div class="search_input">
+              <el-select
+                v-model="distributeData.sonLaboratory"
+                placeholder="璇烽�夋嫨"
+                size="small"
+                filterable
+                style="width: 100%"
+              >
+                <el-option
+                  v-for="item in sonLaboratoryList"
+                  :key="item.value"
+                  :label="item.label"
+                  :value="item.value"
+                >
+                </el-option>
+              </el-select>
+            </div>
+          </el-col>
+          <el-col class="search_thing" :span="22">
+            <div class="search_label">
+              <span class="required-span">* </span>鍒涘缓濮旀墭鍗曪細
+            </div>
+            <div class="search_input">
+              <el-select
+                v-model="distributeData.isCreate"
+                placeholder="璇烽�夋嫨"
+                size="small"
+                filterable
+                style="width: 100%"
+              >
+                <el-option label="鏄�" :value="true"></el-option>
+                <el-option label="鍚�" :value="false"></el-option>
+              </el-select>
+            </div>
+          </el-col>
+        </el-row>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-row>
+          <el-button @click="issuedDialogVisible = false">鍙� 娑�</el-button>
+          <el-button type="primary" @click="submitForm2" :loading="upLoad"
+            >纭� 瀹�</el-button
+          >
+        </el-row>
+      </span>
+    </el-dialog>
+    <el-dialog title="涓嶉�氳繃鍘熷洜" :visible.sync="noDialogVisible" width="400px">
+      <div class="body" style="max-height: 60vh">
+        <el-row>
+          <el-col class="search_thing" :span="22">
+            <div class="search_label">
+              <span class="required-span">* </span>涓嶉�氳繃鍘熷洜锛�
+            </div>
+            <div class="search_input">
+              <el-input
+                v-model="tell"
+                size="small"
+                placeholder="璇疯緭鍏ヤ笉閫氳繃鍘熷洜"
+              ></el-input>
+            </div>
+          </el-col>
+        </el-row>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-row>
+          <el-button @click="(noDialogVisible = false), (tell = '')"
+            >鍙� 娑�</el-button
+          >
+          <el-button type="primary" @click="submitTell" :loading="noLoading"
+            >纭� 瀹�</el-button
+          >
+        </el-row>
+      </span>
+    </el-dialog>
+    <fiberOpticConfig
+      :fiberPairing="fiberPairing"
+      :currentId="currentId"
+      @saveFiberopticConfig="saveFiberConfigEvent($event)"
+      v-if="configShow && examine == 0"
+      :active="active"
+      :inspectionItemST="inspectionItemST"
+    />
+    <fiberOpticConfigTwo
+      :currentId="currentId"
+      v-if="configShow && examine == 1"
+      :active="active"
+    />
+    <equipConfig
+      :currentId="currentId"
+      v-if="equipConfigShow"
+      :active="active"
+    />
+    <cableConfig v-if="cableConfigShow" :active="active" />
+    <!--    鍗曢�夌壒娈婂�煎鐞嗘-->
+    <el-dialog
+      title="妫�娴嬪埌鐗规畩椤癸紝璇蜂綔鍑轰互涓嬮�夋嫨"
+      :visible.sync="bsm1Dia"
+      :close-on-press-escape="false"
+      :close-on-click-modal="false"
+      min-width="400px"
+      :show-close="false"
+      :before-close="beforeClose"
+    >
+      <div class="body" style="max-height: 60vh">
+        <el-row v-if="bsm1">
+          <el-col
+            class="search_thing"
+            :span="24"
+            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="bsm1Val" @input="upBsm1">
+                <el-radio
+                  v-for="(a, ai) in JSON.parse(bsmRow.section)"
+                  :key="ai"
+                  :label="a"
+                  style="margin-bottom: 2px; margin-top: 2px"
+                ></el-radio>
+              </el-radio-group>
+            </div>
+          </el-col>
+          <el-col
+            class="search_thing"
+            :span="24"
+            style="height: initial; margin: 5px 0"
+          >
+            <div class="search_label" style="width: 80px">瑕佹眰鍊硷細</div>
+            <div
+              class="search_input"
+              v-show="bsm1Val !== null && bsm1Val !== ''"
+            >
+              <el-radio-group v-model="bsm1Val" @input="upBsm1">
+                <el-radio
+                  v-for="(a, ai) in JSON.parse(bsmRow.section)"
+                  :key="ai"
+                  :label="a"
+                  >{{ JSON.parse(bsmRow.ask)[ai] }}</el-radio
+                >
+              </el-radio-group>
+            </div>
+          </el-col>
+        </el-row>
+        <el-row v-if="bsm2">
+          <el-col class="search_thing" :span="22">
+            <div class="search_label" style="width: 220px">
+              <span class="required-span">* </span>鏍峰搧鐔旀帴閰嶅鏁伴噺锛�
+            </div>
+            <div class="search_input">
+              <el-input-number
+                size="medium"
+                v-model="bsm2Val"
+                :min="1"
+                :max="bsm2Val3.length"
+                :precision="0"
+                style="width: 70%"
+                :controls="false"
+                @change="bsm2Up"
+              ></el-input-number>
+              <span>MAX锛歿{ bsm2Val3.length }}</span>
+            </div>
+          </el-col>
+          <el-col style="margin-top: 6px">
+            <el-col v-for="(a, ai) in bsm2Val2" :key="ai">
+              <el-col :span="10">
+                <el-select
+                  v-model="a[0]"
+                  placeholder="璇烽�夋嫨"
+                  size="small"
+                  style="width: 100%"
+                >
+                  <el-option
+                    v-for="(item, index) in sampleList"
+                    :key="index"
+                    :label="index + 1"
+                    :value="index + 1"
+                  >
+                  </el-option>
+                </el-select>
+              </el-col>
+              <el-col
+                :span="4"
+                class="pairing"
+                style="border: 0; color: rgba(0, 0, 0, 0.2)"
+                >鈥斺��</el-col
+              >
+              <el-col :span="10">
+                <el-select
+                  v-model="a[1]"
+                  placeholder="璇烽�夋嫨"
+                  size="small"
+                  style="width: 100%"
+                >
+                  <el-option
+                    v-for="(item, index) in sampleList"
+                    :key="index"
+                    :label="index + 1"
+                    :value="index + 1"
+                  >
+                  </el-option>
+                </el-select>
+              </el-col>
+            </el-col>
+          </el-col>
+        </el-row>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-row>
+          <el-button type="primary" @click="save2" :loading="saveLoad"
+            >纭� 瀹�</el-button
+          >
+        </el-row>
+      </span>
+    </el-dialog>
+    <!--    鍏ㄩ�夌壒娈婂�煎鐞嗘-->
+    <el-dialog
+      title="妫�娴嬪埌鐗规畩椤癸紝璇蜂綔鍑轰互涓嬮�夋嫨"
+      :visible.sync="bsm1DiaAll"
+      min-width="400px"
+      :show-close="false"
+      :close-on-press-escape="false"
+      :close-on-click-modal="false"
+      :before-close="beforeClose"
+    >
+      <div
+        class="body"
+        style="max-height: 60vh"
+        v-for="(item, index) in bsm1DiaList"
+        :key="index"
+      >
+        <el-row v-if="item.bsm1">
+          <el-col
+            class="search_thing"
+            :span="24"
+            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" @input="upBsmAll(item)">
+                <el-radio
+                  v-for="(a, ai) in JSON.parse(item.bsmRow.section)"
+                  :key="ai"
+                  :label="a"
+                  style="margin-bottom: 2px; margin-top: 2px"
+                ></el-radio>
+              </el-radio-group>
+            </div>
+          </el-col>
+          <el-col
+            class="search_thing"
+            :span="24"
+            style="height: initial; margin: 5px 0"
+          >
+            <div class="search_label" style="width: 80px">瑕佹眰鍊硷細</div>
+            <div
+              class="search_input"
+              v-show="item.bsm1Val !== null && item.bsm1Val !== ''"
+            >
+              <el-radio-group v-model="item.bsm1Val" @input="upBsmAll(item)">
+                <el-radio
+                  v-for="(a, ai) in JSON.parse(item.bsmRow.section)"
+                  :key="ai"
+                  :label="a"
+                  >{{ JSON.parse(item.bsmRow.ask)[ai] }}</el-radio
+                >
+              </el-radio-group>
+            </div>
+          </el-col>
+        </el-row>
+        <el-row v-if="item.bsm2">
+          <el-col class="search_thing" :span="22">
+            <div class="search_label" style="width: 220px">
+              <span class="required-span">* </span>鏍峰搧鐔旀帴閰嶅鏁伴噺锛�
+            </div>
+            <div class="search_input">
+              <el-input-number
+                size="medium"
+                v-model="item.bsm2Val"
+                :min="1"
+                :max="item.bsm2Val3.length"
+                :precision="0"
+                style="width: 70%"
+                :controls="false"
+                @change="bsm2Up"
+              ></el-input-number>
+              <span>MAX锛歿{ item.bsm2Val3.length }}</span>
+            </div>
+          </el-col>
+          <el-col style="margin-top: 6px">
+            <el-col v-for="(a, ai) in item.bsm2Val2" :key="ai">
+              <el-col :span="10">
+                <el-select
+                  v-model="a[0]"
+                  placeholder="璇烽�夋嫨"
+                  size="small"
+                  style="width: 100%"
+                >
+                  <el-option
+                    v-for="(item, index) in item.sampleList"
+                    :key="index"
+                    :label="index + 1"
+                    :value="index + 1"
+                  >
+                  </el-option>
+                </el-select>
+              </el-col>
+              <el-col
+                :span="4"
+                class="pairing"
+                style="border: 0; color: rgba(0, 0, 0, 0.2)"
+                >鈥斺��</el-col
+              >
+              <el-col :span="10">
+                <el-select
+                  v-model="a[1]"
+                  placeholder="璇烽�夋嫨"
+                  size="small"
+                  style="width: 100%"
+                >
+                  <el-option
+                    v-for="(item, index) in item.sampleList"
+                    :key="index"
+                    :label="index + 1"
+                    :value="index + 1"
+                  >
+                  </el-option>
+                </el-select>
+              </el-col>
+            </el-col>
+          </el-col>
+        </el-row>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-row>
+          <el-button type="primary" @click="save1" :loading="saveLoad"
+            >纭� 瀹�</el-button
+          >
+        </el-row>
+      </span>
+    </el-dialog>
+    <el-dialog
+      title="鐗规畩鍊煎~鍐�"
+      :visible.sync="bsm3Dia"
+      top="5vh"
+      :close-on-click-modal="false"
+      :close-on-press-escape="false"
+      width="800px"
+      :show-close="false"
+    >
+      <el-table :data="editTable" style="width: 100%" height="500px">
+        <!-- inspectionItemList -->
+        <el-table-column prop="inspectionItemList" label="妫�楠岄」" width="180">
+        </el-table-column>
+        <el-table-column prop="sampleCode" label="鏍峰搧缂栧彿" width="180">
+        </el-table-column>
+        <el-table-column prop="model" label="鏍峰搧鍨嬪彿" width="180">
+        </el-table-column>
+        <el-table-column prop="symbolItem" label="璇嗗埆绗﹀彿"> </el-table-column>
+        <el-table-column prop="value" label="璇嗗埆绗﹀��">
+          <template slot-scope="scope">
+            <el-input
+              v-model="scope.row.value"
+              placeholder="璇疯緭鍏�"
+              @input="inputValueHandler(scope.row, scope.$index)"
+              size="small"
+              type="number"
+            ></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 type="primary" @click="save0" :loading="saveLoad"
+            >纭� 瀹�</el-button
+          >
+        </el-row>
+      </span>
+    </el-dialog>
+    <el-dialog
+      title="娓╁害寰幆瑕佹眰濉啓"
+      :visible.sync="circulateShow"
+      width="900px"
+      :close-on-click-modal="false"
+      :close-on-press-escape="false"
+      :before-close="beforeCirculateShowClose"
+      :show-close="false"
+    >
+      <div class="search" style="display: flex; background: transparent">
+        <div class="search_thing">
+          <div class="search_label">淇濇俯鏃堕棿锛�</div>
+          <div class="search_input">
+            <el-input
+              v-model="circulateForm.entrustTime"
+              size="small"
+              placeholder=""
+              type="number"
+            ></el-input>
+          </div>
+        </div>
+        <div class="search_thing">
+          <div class="search_label">寰幆娆℃暟锛�</div>
+          <div class="search_input">
+            <el-input
+              v-model="circulateForm.entrustNum"
+              size="small"
+              placeholder=""
+              type="number"
+            ></el-input>
+          </div>
+        </div>
+        <div class="search_thing">
+          <div class="search_label">娓╁害鐐癸細</div>
+          <div class="search_input">
+            <el-input
+              @focus="() => (isFocus = true)"
+              @blur="changeTemperatureData"
+              v-model="circulateForm.entrustPoint"
+              size="small"
+              placeholder=""
+              type="number"
+            ></el-input>
+          </div>
+        </div>
+      </div>
+      <div class="circulateTable">
+        <div class="opticalProject">
+          <div style="line-height: 30px">鍏夌氦椤圭洰</div>
+          <el-divider></el-divider>
+          <div>
+            <el-table
+              ref="multipleTable"
+              border
+              :header-cell-style="{ 'text-align': 'center' }"
+              :cell-style="{ 'text-align': 'center' }"
+              :data="opticalProject"
+              tooltip-effect="dark"
+              style="width: 100%"
+              @row-click="rowClickOptical"
+              @select="selectOpticalProject"
+              @select-all="selectAllOptical"
+              @selection-change="handleSelectionChange"
+            >
+              <el-table-column type="selection" width="55"> </el-table-column>
+              <el-table-column
+                prop="value"
+                label="鍏夌氦椤圭洰"
+                show-overflow-tooltip
+              ></el-table-column>
+            </el-table>
+          </div>
+        </div>
+        <div class="temperatureList">
+          <div class="temperatureListTitle">
+            <span>娓╁害鐐归泦鍚�</span>
+            <span>
+              <el-button
+                type="primary"
+                size="mini"
+                :disabled="isFocus"
+                @click="addTemperatureData"
+                >鏂板</el-button
+              >
+              <el-button size="mini" @click="deleteTemperatureData"
+                >鍒犻櫎</el-button
+              >
+            </span>
+          </div>
+          <el-divider></el-divider>
+          <el-table
+            :data="temperatureData"
+            border
+            :header-cell-style="{ 'text-align': 'center' }"
+            :cell-style="{ 'text-align': 'center' }"
+            style="width: 100%"
+          >
+            <el-table-column prop="date" label="娓╁害鐐�(鈩�)" width="120px">
+              <template slot-scope="scope">
+                <el-input
+                  size="small"
+                  v-model="scope.row.temperaturePoint"
+                  clearable
+                  placeholder="璇疯緭鍏�"
+                  @change="changeTemperature"
+                ></el-input>
+              </template>
+            </el-table-column>
+            <el-table-column prop="name" label="瑕佹眰(dB/Km)">
+              <template slot-scope="scope">
+                <span>x</span>
+                <el-select
+                  v-model="scope.row.askSymbol"
+                  placeholder="璇烽�夋嫨"
+                  size="small"
+                  style="width: 120px"
+                  @change="changeTemperature"
+                >
+                  <el-option
+                    v-for="item in temperatureDataList"
+                    :key="item.value"
+                    :label="item.label"
+                    :value="item.value"
+                  >
+                  </el-option>
+                </el-select>
+                <el-input
+                  size="small"
+                  v-model="scope.row.askNum"
+                  clearable
+                  placeholder="璇疯緭鍏�"
+                  style="width: 120px"
+                  @change="changeTemperature"
+                ></el-input>
+              </template>
+            </el-table-column>
+          </el-table>
+        </div>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="cleanSpliceData">鍙栨秷</el-button>
+        <el-button type="primary" @click="spliceData">淇濆瓨</el-button>
+      </span>
+    </el-dialog>
+    <!-- 鐢靛姏璇曢獙瀹�---娓╁崌璇曢獙/鐑惊鐜� -->
+    <el-dialog
+      :title="temperatureTitle"
+      :visible.sync="temperatureShow"
+      :close-on-click-modal="false"
+      :close-on-press-escape="false"
+      width="260px"
+      :before-close="temperatureShowClose"
+      :show-close="false"
+    >
+      <div>
+        <div v-if="isShowInput" style="margin-bottom: 6px">
+          <span>寰幆娆℃暟:</span>
+          <!-- <el-input size="small" type="number" v-model="temperatureTestNum" style="width: 120px"></el-input> -->
+          <el-input-number
+            v-model="temperatureTestNum"
+            :min="2"
+            :max="1000000"
+            size="small"
+            label=""
+          ></el-input-number>
+        </div>
+        <el-checkbox-group
+          v-model="temperatureTest"
+          @change="handleTemperatureTestChange"
+          style="display: flex; flex-direction: column"
+        >
+          <el-checkbox
+            v-for="item in temperatureList"
+            :label="item"
+            :key="item"
+            style="margin-bottom: 6px"
+            >{{ item }}</el-checkbox
+          >
+        </el-checkbox-group>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="cleanTemperatureTest">鍙栨秷</el-button>
+        <el-button type="primary" @click="spliceTemperatureTest"
+          >淇濆瓨</el-button
+        >
+      </span>
+    </el-dialog>
   </div>
 </template>
 
 <script>
+import {
+  selectInsOrderTemplate,
+  hasSendUrgentOrder,
+  addInsOrder,
+  selectOrderManDay,
+  selectInsOrderTemplateById,
+  upInsOrderOfState,
+  upInsOrder,
+  getInsOrder,
+  addInsOrderTemplate,
+  delInsOrderTemplate,
+  labelPrinting,
+} from "@/api/business/inspectionOrder";
+import {
+  selectStandardTreeList2,
+  selectStandardMethodEnum,
+  selectsStandardMethodByFLSSM,
+  selectStandardProductList,
+} from "@/api/standard/standardLibrary";
+import { selectBushingBySampleId } from "@/api/business/insBushing";
+import { getLaboratoryPersonList } from "@/api/system/user";
 import { mapGetters } from "vuex";
 import fiberOpticConfig from "./fiberoptic-config.vue";
 import fiberOpticConfigReadOnly from "./fiberoptic-config-readonly.vue";
@@ -822,24 +1584,15 @@
     cableConfig,
   },
   computed: {
-    ...mapGetters(["nickName", "company"]),
+    ...mapGetters(["nickName", "loginUserInfo"]),
   },
-  props: {
-    examine: {
-      type: Number,
-      default: () => 0,
-    },
-    active: {
-      type: Number,
-      default: () => 0,
-    },
-    currentId: {
-      type: Number,
-      default: () => 0,
-    },
-  },
+  props: {},
   data() {
     return {
+      isReview: false, //鏄惁鏄煡鐪嬭鎯�
+      examine: 0,
+      active: 0,
+      currentId: 0,
       pickerOptions: {
         disabledDate(time) {
           // 褰撳墠鏃堕棿鍔犱笂涓夊ぉ鐨勬椂闂存埑
@@ -1133,18 +1886,20 @@
       this.standardMethodListId = null;
     },
   },
+  created() {
+    this.active = this.$route.query.active;
+    this.currentId = this.$route.query.currentId;
+    this.examine = this.$route.query.examine;
+    this.isReview = this.$route.query.isReview;
+  },
   mounted() {
-    if (this.addObj.custom == "" || this.addObj.custom == null) {
-      this.addObj.custom = this.nickName; //璁剧疆鍒跺崟浜轰负褰撳墠鐧诲綍浜�
-    }
-    this.addObj.company = this.company;
+    //鏌ヨ瀛楀吀
     this.selectDictForType();
     this.selectDictForOrderType();
     this.selectDictForUnit();
     this.selectDictForSampleForm();
-
     if (this.active != 3) {
-      this.getUserNow();
+      this.init();
     }
     this.selectStandardTreeList();
     this.getAuthorizedPerson();
@@ -1152,25 +1907,29 @@
     if (this.active != 1) {
       // 鏌ョ湅/瀹℃牳娴佺▼
       // 璇锋眰鎺ュ彛锛屽洖鏄炬暟鎹�
-      this.$axios
-        .post(this.$api.insOrder.getInsOrder, {
-          orderId: this.currentId,
-        })
+      getInsOrder({
+        orderId: this.currentId,
+      })
         .then((res) => {
-          this.addObj = {
-            ...res.data.insOrder,
-          };
-          this.addObj.type = String(this.addObj.type);
-          this.sampleList = this.HaveJson(res.data.sampleProduct);
-          this.getProNum();
-          this.addObj.sampleNum = this.sampleList.length;
-          this.$nextTick(() => {
-            this.$refs.sampleTable.doLayout();
-            if (this.addObj.sampleNum > 0) {
-              this.$refs.sampleTable.setCurrentRow(this.sampleList[0], true);
-              this.rowClick(this.sampleList[0]);
-            }
-          });
+          if (res.code === 200) {
+            this.addObj = {
+              ...res.data.insOrder,
+            };
+            this.addObj.type = String(this.addObj.type);
+            this.sampleList = this.HaveJson(res.data.sampleProduct);
+            this.getProNum();
+            this.addObj.sampleNum = this.sampleList.length;
+            this.$nextTick(() => {
+              this.$refs.sampleTable.doLayout();
+              if (this.addObj.sampleNum > 0) {
+                this.$refs.sampleTable.setCurrentRow(this.sampleList[0], true);
+                this.rowClick(this.sampleList[0]);
+              }
+            });
+          }
+        })
+        .catch((error) => {
+          console.error(error);
         });
     }
   },
@@ -1194,16 +1953,13 @@
       let flag = true;
       //濡傛灉鏄被鍨嬫槸绱ф�ワ紝鍒ゆ柇褰撳墠瀹㈡埛褰撳ぉ鐨勭揣鎬ラ搴︽槸鍚︾敤瀹�
       if (type == 2) {
-        await this.$axios
-          .post(this.$api.insOrder.hasSendUrgentOrder, {})
+        await hasSendUrgentOrder()
           .then((res) => {
             flag = res.data;
             return flag;
-            // if (!res.data) {
-            //   this.addObj.type = "1";
-            //   this.$message.error("褰撳ぉ绱ф�ラ搴﹀凡鐢ㄥ畬");
-            //   throw "褰撳ぉ绱ф�ラ搴﹀凡鐢ㄥ畬";
-            // }
+          })
+          .catch((error) => {
+            console.error(error);
           });
       }
       return flag;
@@ -1613,9 +2369,15 @@
       }
     },
     getAuthorizedPerson() {
-      this.$axios.get(this.$api.user.getLaboratoryPersonList).then((res) => {
-        this.personList = res.data;
-      });
+      getLaboratoryPersonList()
+        .then((res) => {
+          if (res.code === 200) {
+            this.personList = res.data;
+          }
+        })
+        .catch((error) => {
+          console.error(error);
+        });
     },
     selectDictForType() {
       getDicts("urgency_level")
@@ -2559,6 +3321,7 @@
       let sampleList = this.HaveJson(sampleList0);
       sampleList.forEach((a) => {
         a.insProduct.forEach((b) => {
+          b.id = null;
           delete b.bsmRow;
         });
       });
@@ -2577,141 +3340,76 @@
       console.log(this.sampleList);
       console.log(this.fiberPairing);
       this.saveLoad = true;
-      this.$axios
-        .post(this.$api.insOrder.addInsOrder, {
-          str: JSON.stringify({
-            insOrder: this.addObj,
-            list: JSON.stringify(
-              sampleList.map((a) => {
-                if (this.PROJECT === "瑁呭鐢电紗") {
-                  if (a.modelNum) {
-                    const index = a.modelNum.indexOf("脳");
-                    if (index === 0) {
-                      a.model = a.model + a.modelNum;
-                    } else if (index === -1) {
-                      a.model = a.model + "-" + a.modelNum;
-                    } else {
-                      a.model = a.modelNum + a.model;
-                    }
-                  } else {
-                    a.model =
-                      a.model +
-                      (a.modelNum == null ||
-                      a.modelNum == "" ||
-                      a.modelNum == "null"
-                        ? ""
-                        : "-" + a.modelNum);
-                  }
-                } else {
-                  a.model =
-                    a.model +
-                    (a.modelNum == null ||
-                    a.modelNum == "" ||
-                    a.modelNum == "null"
-                      ? ""
-                      : "-" + a.modelNum);
-                }
-                a.insProduct = a.insProduct.filter((b) => b.state === 1);
-                return a;
-              })
-            ),
-            pairing: JSON.stringify(this.bsm2Val2),
-            fiberPairing: JSON.stringify(this.fiberPairing),
-          }),
-        })
+      addInsOrder({
+        insOrder: this.addObj,
+        list: sampleList.map((a) => {
+          a.model =
+            a.model +
+            (a.modelNum == null || a.modelNum == "" || a.modelNum == "null"
+              ? ""
+              : "-" + a.modelNum);
+          a.insProduct = a.insProduct.filter((b) => b.state === 1);
+          return a;
+        }),
+        pairing: this.bsm2Val2,
+        fiberPairing: this.fiberPairing,
+      })
         .then((res) => {
+          if (res.code === 200) {
+            this.$message.success("宸叉彁浜�");
+            this.bsm3Dia = false;
+            this.$router.go(-1);
+          }
           this.saveLoad = false;
-          if (res.code == 201) return;
-          this.$message.success("宸叉彁浜�");
-          this.bsm3Dia = false;
-          this.$parent.playOrder(0);
         })
-        .catch((e) => {
+        .catch((error) => {
           this.saveLoad = false;
+          console.error(error);
         });
     },
     upInsOrderOfState(state) {
       if (state == 1) {
         //this.saveLoad = true
         this.issuedDialogVisible = true;
-        this.$axios
-          .post(this.$api.insOrder.selectOrderManDay, {
-            id: this.currentId,
+        selectOrderManDay({
+          id: this.currentId,
+        })
+          .then((res) => {
+            if (res.code === 200) {
+              this.distributeData.orderId = this.currentId;
+              this.distributeData.appointed = res.data;
+              console.log("绾﹀畾鏃堕棿", this.distributeData.appointed);
+            }
           })
-          .then((ress) => {
-            this.distributeData.orderId = this.currentId;
-            this.distributeData.appointed = ress.data;
-            console.log("绾﹀畾鏃堕棿", this.distributeData.appointed);
+          .catch((error) => {
+            console.error(error);
           });
         setTimeout(() => {
           this.issuedDialogVisible = true;
         }, 1000);
-        // this.$axios.post(this.$api.insOrder.upInsOrderOfState, {
-        //   state,
-        //   id: this.currentId,
-        //   companyId:this.addObj.companyId,
-        //   laboratory:this.addObj.laboratory,
-        //   company: this.addObj.company
-        // }, {
-        //   headers: {
-        //     'Content-Type': 'application/json'
-        //   }
-        // }).then(res => {
-        //   this.saveLoad = false
-        //   if (res.code == 201) return
-        //   this.$message.success('鎻愪氦鎴愬姛')
-
-        // this.$parent.multipleSelection = [{id: this.currentId}]
-        // this.$parent.print()
-        // 濡傛灉绱ф�ョ▼搴︿负绱ф�ワ紝闇�瑕佺洿鎺ヤ笅鍙戜汉鍛�
-        // if (this.addObj.type == 2) {
-        // 	this.issuedDialogVisible = true;
-        // 	this.$axios.post(this.$api.insOrder.selectOrderManDay, {
-        // 		id: this.currentId
-        // 	}).then(ress => {
-        // 		this.distributeData.orderId = this.currentId
-        // 		this.distributeData.appointed = ress.data
-        // 	})
-        // } else {
-        // 	this.$parent.playOrder(0)
-        // }
-
-        //   this.$axios.post(this.$api.insOrder.selectOrderManDay, {
-        //     id: this.currentId
-        //   }).then(ress => {
-        //     this.distributeData.orderId = this.currentId
-        //     this.distributeData.appointed = ress.data
-        //   })
-        //   setTimeout(() => {
-        //     this.issuedDialogVisible = true;
-        //   }, 1000)
-        // })
       } else {
         // 涓嶉�氳繃
         this.noDialogVisible = true;
       }
     },
     getLabelPrinting(currentId) {
-      this.$axios
-        .post(this.$api.insOrder.labelPrinting, {
-          ids: currentId,
-        })
+      labelPrinting({
+        ids: currentId,
+      })
         .then((res) => {
-          //瀹℃牳閫氳繃锛岄粯璁ゅ彧鎵撳嵃绗竴涓牱鍝佹爣绛�
-          let firstSample = res.data[0];
-          let arr1 = [];
-          firstSample.insProduct.forEach((b) => {
-            arr1.push(b.inspectionItem);
-          });
-          firstSample.item = [...new Set(arr1)].join(",");
-          // arr.forEach((a) => {
-          //   let arr1 = [];
-          //   a.insProduct.forEach((b) => {
-          //     arr1.push(b.inspectionItem);
-          //   });
-          //   a.item = [...new Set(arr1)].join(",");
-          // });
-          this.beginPrint(firstSample);
+          if (res.code === 200) {
+            //瀹℃牳閫氳繃锛岄粯璁ゅ彧鎵撳嵃绗竴涓牱鍝佹爣绛�
+            let firstSample = res.data[0];
+            let arr1 = [];
+            firstSample.insProduct.forEach((b) => {
+              arr1.push(b.inspectionItem);
+            });
+            firstSample.item = [...new Set(arr1)].join(",");
+            this.beginPrint(firstSample);
+          }
+        })
+        .catch((error) => {
+          console.error(error);
         });
     },
     //寮�濮嬫爣绛炬墦鍗�
@@ -2807,92 +3505,74 @@
         return;
       }
       // let flag = true;
-      this.$axios
-        .post(
-          this.$api.insOrder.upInsOrderOfState,
-          {
-            state: 1,
-            id: this.currentId,
-            companyId: this.addObj.companyId,
-            laboratory: this.addObj.laboratory,
-            company: this.addObj.company,
-            isCreate: this.distributeData.isCreate,
-          },
-          {
-            headers: {
-              "Content-Type": "application/json",
-            },
-          }
-        )
+      upInsOrderOfState({
+        state: 1,
+        id: this.currentId,
+        companyId: this.addObj.companyId,
+        laboratory: this.addObj.laboratory,
+        company: this.addObj.company,
+        isCreate: this.distributeData.isCreate,
+      })
         .then((res) => {
-          // flag = false;
-
-          // if (flag) {
-          //   this.$message.error("濮旀墭缂栧彿鐢熸垚澶辫触");
-          //   return;
-          // }
-          this.upLoad = true;
-          this.$axios
-            .post(
-              this.$api.insOrder.upInsOrder,
-              {
-                orderId: this.distributeData.orderId,
-                appointed: this.distributeData.appointed,
-                userIdList: this.distributeData.userId,
-                sonLaboratory: this.distributeData.sonLaboratory,
-              },
-              {
-                headers: {
-                  "Content-Type": "application/json",
-                },
-              }
-            )
-            .then((res) => {
-              if (res.code === 201) {
-                this.upLoad = false;
-                return;
-              }
-              this.$message.success("鎻愪氦鎴愬姛");
-              this.upLoad = false;
-              this.issuedDialogVisible = false;
-              this.$parent.playOrder(0);
-              //瀹℃牳閫氳繃鍚庯紝鑷姩鎵撳嵃浜岀淮鐮�
-              //TODO: 鐢靛姏璇曢獙瀹ゆ殏鏃朵笉鐢ㄦ爣绛炬墦鍗�
-              if (
-                this.sonLaboratoryList.filter((f) => f.value === "鐢靛姏璇曢獙瀹�")
-                  .length === 0
-              ) {
-                this.$nextTick(() => {
-                  this.getLabelPrinting(this.currentId);
-                });
-              }
+          if (res.code === 200) {
+            this.upLoad = true;
+            upInsOrder({
+              orderId: this.distributeData.orderId,
+              appointed: this.distributeData.appointed,
+              userIdList: this.distributeData.userId,
+              sonLaboratory: this.distributeData.sonLaboratory,
             })
-            .catch((e) => {
-              this.$message.error("鎻愪氦澶辫触");
-              this.upLoad = false;
-            });
+              .then((res) => {
+                if (res.code === 201) {
+                  this.upLoad = false;
+                  return;
+                }
+                this.$message.success("鎻愪氦鎴愬姛");
+                this.issuedDialogVisible = false;
+                this.upLoad = false;
+                this.$router.go(-1);
+                //瀹℃牳閫氳繃鍚庯紝鑷姩鎵撳嵃浜岀淮鐮�
+                //TODO: 鐢靛姏璇曢獙瀹ゆ殏鏃朵笉鐢ㄦ爣绛炬墦鍗�
+                if (
+                  this.sonLaboratoryList.filter((f) => f.value === "鐢靛姏璇曢獙瀹�")
+                    .length === 0
+                ) {
+                  this.$nextTick(() => {
+                    this.getLabelPrinting(this.currentId);
+                  });
+                }
+              })
+              .catch((error) => {
+                this.$message.error("鎻愪氦澶辫触");
+                this.upLoad = false;
+                console.error(error);
+              });
+          }
+        })
+        .catch((error) => {
+          console.error(error);
         });
     },
-    getUserNow() {
-      this.$axios.get(this.$api.user.getUserNow).then((res) => {
-        let selects = res.data;
-        if (selects == null) return;
-        this.addObj.userId = selects.id;
-        this.addObj.company = selects.company;
-        this.addObj.custom = selects.name;
-        this.addObj.code = selects.code;
-        this.addObj.phone = selects.phone;
-        this.addObj.companyId = selects.departId;
-        this.addObj.production = "/";
-        this.addObj.productionEn = "/";
-        if (this.active == 1) {
-          this.selectInsOrderTemplate();
-        }
-      });
+    init() {
+      if (this.addObj.custom == "" || this.addObj.custom == null) {
+        this.addObj.custom = this.loginUserInfo.nickName; //璁剧疆鍒跺崟浜轰负褰撳墠鐧诲綍浜�
+      } else {
+        this.addObj.custom = this.loginUserInfo.nickName;
+      }
+      this.addObj.company = this.loginUserInfo.companyName;
+      this.addObj.companyId = this.loginUserInfo.company;
+      this.addObj.userId = this.loginUserInfo.userId;
+      // this.addObj.code = this.loginUserInfo.code;
+      this.addObj.phone = this.loginUserInfo.phoneNumber;
+      this.addObj.production = "/";
+      this.addObj.productionEn = "/";
+      if (this.active == 1) {
+        this.selectInsOrderTemplate();
+      }
     },
     getProNum() {
       this.sampleSelectionList.forEach((m, i) => {
-        Vue.set(
+        this.$set(
           this.sampleSelectionList[i],
           "proNum",
           m.insProduct.filter((a) => a.state == 1).length
@@ -2950,13 +3630,17 @@
       }
     },
     selectStandardTreeList() {
-      this.$axios
-        .get(this.$api.standardTree.selectStandardTreeList2)
+      selectStandardTreeList2()
         .then((res) => {
-          this.list = res.data;
-          this.list.forEach((a) => {
-            this.expandedKeys.push(a.label);
-          });
+          if (res.code === 200) {
+            this.list = res.data;
+            this.list.forEach((a) => {
+              this.expandedKeys.push(a.label);
+            });
+          }
+        })
+        .catch((error) => {
+          console.error(error);
         });
     },
     filterNode(value, data) {
@@ -3001,33 +3685,50 @@
     },
     selectsStandardMethodByFLSSM() {
       this.methodLoad = true;
-      this.$axios
-        .post(this.$api.standardTree.selectsStandardMethodByFLSSM, {
-          tree: this.selectTree,
-        })
+      selectsStandardMethodByFLSSM({
+        tree: this.selectTree,
+      })
         .then((res) => {
-          this.methodLoad = false;
-          try {
-            if (
-              res.data.standardMethodList.length == 0 &&
-              this.selectTree.split("-").length == 5
-            ) {
-              let arr = this.selectTree.split("-");
-              let arr0 = arr.slice(0, arr.length - 1);
-              let selectTree = arr0
-                .join("-")
-                .substring(0, arr0.join("-").length - 1);
-              this.$axios
-                .post(this.$api.standardTree.selectsStandardMethodByFLSSM, {
+          if (res.code === 200) {
+            this.methodLoad = false;
+            try {
+              if (
+                res.data.standardMethodList.length == 0 &&
+                this.selectTree.split("-").length == 5
+              ) {
+                let arr = this.selectTree.split("-");
+                let arr0 = arr.slice(0, arr.length - 1);
+                let selectTree = arr0
+                  .join("-")
+                  .substring(0, arr0.join("-").length - 1);
+                template()
+                  .then((res) => {
+                    if (res.status === 200) {
+                      console.log(res);
+                    }
+                  })
+                  .catch((error) => {
+                    console.error(error);
+                  });
+                selectsStandardMethodByFLSSM({
                   tree: selectTree,
                 })
-                .then((ress) => {
-                  this.methods = ress.data.standardMethodList;
-                });
-            } else {
-              this.methods = res.data.standardMethodList;
-            }
-          } catch (e) {}
+                  .then((res) => {
+                    if (res.code === 200) {
+                      this.methods = ress.data.standardMethodList;
+                    }
+                  })
+                  .catch((error) => {
+                    console.error(error);
+                  });
+              } else {
+                this.methods = res.data.standardMethodList;
+              }
+            } catch (e) {}
+          }
+        })
+        .catch((error) => {
+          console.error(error);
         });
     },
     addStandardTree(currentValue, oldValue) {
@@ -3339,12 +4040,14 @@
       console.log("upProductSelect", this.sampleList);
     },
     searchProject() {
-      this.$axios
-        .post(this.$api.enums.selectEnumByCategory, {
-          category: "鍏夌氦椤圭洰",
-        })
+      getDicts("fiber_type")
         .then((res) => {
-          this.opticalProject = res.data;
+          if (res.code === 200) {
+            this.opticalProject = res.data;
+          }
+        })
+        .catch((error) => {
+          console.error(error);
         });
     },
     permute(nums) {
@@ -3381,15 +4084,14 @@
       return "warning-row";
     },
     selectInsOrderTemplate() {
-      this.$axios
-        .get(
-          this.$api.insOrder.selectInsOrderTemplate +
-            "?company=" +
-            this.addObj.company
-        )
+      selectInsOrderTemplate({ company: this.addObj.company })
         .then((res) => {
-          if (res.code == 201) return;
-          this.templates = res.data;
+          if (res.code === 200) {
+            this.templates = res.data;
+          }
+        })
+        .catch((error) => {
+          console.error(error);
         });
     },
     // 鍒犻櫎妯℃澘--璋冪敤鎺ュ彛
@@ -3400,19 +4102,18 @@
         type: "warning",
       })
         .then(() => {
-          this.$axios
-            .post(this.$api.insOrder.delInsOrderTemplate, {
-              id: row.id,
-            })
+          delInsOrderTemplate({
+            id: row.id,
+          })
             .then((res) => {
-              if (res.code === 201) {
-                return;
+              if (res.code === 200) {
+                this.$message.success("鍒犻櫎鎴愬姛");
+                this.selectInsOrderTemplate();
               }
-              this.$message.success("鍒犻櫎鎴愬姛");
-              this.selectInsOrderTemplate();
             })
-            .catch((e) => {
+            .catch((error) => {
               this.$message.error("鍒犻櫎澶辫触");
+              console.error(error);
             });
         })
         .catch(() => {});
@@ -3421,30 +4122,25 @@
     addTemplateDia() {
       if (this.templateName) {
         this.templateLoading = true;
-        this.$axios
-          .post(
-            this.$api.insOrder.addInsOrderTemplate,
-            {
-              name: this.templateName,
-              thing: JSON.stringify({
-                addObj: this.addObj,
-                sampleList: this.sampleList,
-                selectTree: this.selectTree,
-              }),
-            },
-            {
-              headers: {
-                "Content-Type": "application/json",
-              },
-            }
-          )
+        addInsOrderTemplate({
+          name: this.templateName,
+          thing: JSON.stringify({
+            addObj: this.addObj,
+            sampleList: this.sampleList,
+            selectTree: this.selectTree,
+          }),
+        })
           .then((res) => {
-            if (res.code == 201) return;
-            this.templateLoading = false;
-            this.templateDia = false;
-            this.$message.success("淇濆瓨鎴愬姛");
-            this.selectInsOrderTemplate();
-            this.templateName = "";
+            if (res.code === 200) {
+              this.templateLoading = false;
+              this.templateDia = false;
+              this.$message.success("淇濆瓨鎴愬姛");
+              this.selectInsOrderTemplate();
+              this.templateName = "";
+            }
+          })
+          .catch((error) => {
+            console.error(error);
           });
       } else {
         this.$message.error("璇峰~鍐欐ā鏉垮悕绉�");
@@ -3452,26 +4148,27 @@
     },
     // 鏌ヨ妯℃澘
     selectInsOrderTemplateById(e) {
-      this.$axios
-        .post(this.$api.insOrder.selectInsOrderTemplateById + "?id=" + e)
+      selectInsOrderTemplateById({ id: e })
         .then((res) => {
-          if (res.code == 201) return;
-          // let obj = JSON.parse(res.data)
-          let obj = res.data;
-          console.log(obj);
-          //鍒跺崟浜鸿缃负褰撳墠鐧诲綍鐢ㄦ埛
-          let user = JSON.parse(localStorage.getItem("user"));
-          obj.addObj.custom = user.name;
-          obj.addObj.userId = user.userId;
-          this.addObj = obj.addObj;
-          this.sampleList = obj.sampleList;
-          this.selectTree = obj.selectTree;
-          //榛樿閫変腑绗竴涓牱鍝�
-          this.$nextTick(() => {
-            if (this.sampleList.length > 0) {
-              this.rowClick(this.sampleList[0]);
-            }
-          });
+          if (res.code === 200) {
+            let obj = res.data;
+            console.log(obj);
+            //鍒跺崟浜鸿缃负褰撳墠鐧诲綍鐢ㄦ埛
+            obj.addObj.custom = this.loginUserInfo.nickName;
+            obj.addObj.userId = this.loginUserInfo.userId;
+            this.addObj = obj.addObj;
+            this.sampleList = obj.sampleList;
+            this.selectTree = obj.selectTree;
+            //榛樿閫変腑绗竴涓牱鍝�
+            this.$nextTick(() => {
+              if (this.sampleList.length > 0) {
+                this.rowClick(this.sampleList[0]);
+              }
+            });
+          }
+        })
+        .catch((error) => {
+          console.error(error);
         });
     },
     delSampleAndProduct() {
@@ -3533,43 +4230,39 @@
       let selectTreeList = this.selectTree.split(" - ");
       this.addObj.model &&
         (selectTreeList[selectTreeList.length - 1] = this.addObj.model);
-      this.$axios
-        .post(
-          this.$api.standardTree.selectStandardProductList,
-          {
-            model:
-              (this.addObj.model ? this.addObj.model : row.model) +
-              "-" +
-              row.modelNum,
-            standardMethodListId: val,
-            factory: selectTreeList.join(" - "),
-          },
-          {
-            headers: {
-              "Content-Type": "application/json",
-            },
-          }
-        )
+      selectStandardProductList({
+        model:
+          (this.addObj.model ? this.addObj.model : row.model) +
+          "-" +
+          row.modelNum,
+        standardMethodListId: val,
+        factory: selectTreeList.join(" - "),
+      })
         .then((res) => {
-          res.data.forEach((a) => {
-            a.state = 0;
-          });
-          row.insProduct = this.HaveJson(res.data);
-          this.productList = row.insProduct;
-          this.productList0 = JSON.parse(JSON.stringify(this.productList));
-          // this.$refs.sampleTable.setCurrentRow(row)
-          // setTimeout(() => {
-          //   this.productList.forEach(a => {
-          //     if (a.state == 1) this.toggleSelection(a)
-          //   })
-          // }, 200)
-          this.$nextTick(() => {
-            this.methodCount++;
-            this.getProductLoad = false;
-            if (this.sampleSelectionList.length == this.methodCount) {
-              this.standardLoading = false;
-            }
-          });
+          if (res.code === 200) {
+            res.data.forEach((a) => {
+              a.state = 0;
+            });
+            row.insProduct = this.HaveJson(res.data);
+            this.productList = row.insProduct;
+            this.productList0 = JSON.parse(JSON.stringify(this.productList));
+            // this.$refs.sampleTable.setCurrentRow(row)
+            // setTimeout(() => {
+            //   this.productList.forEach(a => {
+            //     if (a.state == 1) this.toggleSelection(a)
+            //   })
+            // }, 200)
+            this.$nextTick(() => {
+              this.methodCount++;
+              this.getProductLoad = false;
+              if (this.sampleSelectionList.length == this.methodCount) {
+                this.standardLoading = false;
+              }
+            });
+          }
+        })
+        .catch((error) => {
+          console.error(error);
         });
       this.searchProject();
       this.searchTemList();
@@ -3590,60 +4283,56 @@
       let selectTreeList = this.selectTree.split(" - ");
       this.addObj.model &&
         (selectTreeList[selectTreeList.length - 1] = this.addObj.model);
-      this.$axios
-        .post(
-          this.$api.standardTree.selectStandardProductList,
-          {
-            model:
-              (this.addObj.model ? this.addObj.model : row.model) +
-              "-" +
-              row.modelNum,
-            standardMethodListId: val,
-            factory: selectTreeList.join(" - "),
-          },
-          {
-            headers: {
-              "Content-Type": "application/json",
-            },
-          }
-        )
+      selectStandardProductList({
+        model:
+          (this.addObj.model ? this.addObj.model : row.model) +
+          "-" +
+          row.modelNum,
+        standardMethodListId: val,
+        factory: selectTreeList.join(" - "),
+      })
         .then((res) => {
-          res.data.forEach((a) => {
-            a.state = 0;
-          });
-          row.insProduct = this.HaveJson(res.data);
-          this.productList = row.insProduct;
-          this.productList0 = JSON.parse(JSON.stringify(this.productList));
-          // this.$refs.sampleTable.setCurrentRow(row)
-          // setTimeout(() => {
-          //   this.productList.forEach(a => {
-          //     if (a.state == 1) this.toggleSelection(a)
-          //   })
-          // }, 200)
-          this.$nextTick(() => {
-            this.methodCount++;
-            this.getProductLoad = false;
-            if (this.sampleSelectionList.length == this.methodCount) {
-              this.standardLoading = false;
-            }
-          });
+          if (res.code === 200) {
+            res.data.forEach((a) => {
+              a.state = 0;
+            });
+            row.insProduct = this.HaveJson(res.data);
+            this.productList = row.insProduct;
+            this.productList0 = JSON.parse(JSON.stringify(this.productList));
+            // this.$refs.sampleTable.setCurrentRow(row)
+            // setTimeout(() => {
+            //   this.productList.forEach(a => {
+            //     if (a.state == 1) this.toggleSelection(a)
+            //   })
+            // }, 200)
+            this.$nextTick(() => {
+              this.methodCount++;
+              this.getProductLoad = false;
+              if (this.sampleSelectionList.length == this.methodCount) {
+                this.standardLoading = false;
+              }
+            });
+          }
+        })
+        .catch((error) => {
+          console.error(error);
         });
       this.searchProject();
       this.searchTemList();
     },
     searchTemList() {
       this.temperatureList = [];
-      this.$axios
-        .post(this.$api.enums.selectEnumByCategory, {
-          category: "鐢靛姏娓╁害寰幆妫�楠�",
-        })
+      getDicts("temperature_cycling_type")
         .then((res) => {
-          if (res.data.length > 0) {
+          if (res.code === 200) {
             this.temperatureEngList = res.data;
             res.data.forEach((item) => {
-              this.temperatureList.push(item.label);
+              this.temperatureList.push(item.dictLabel);
             });
           }
+        })
+        .catch((error) => {
+          console.error(error);
         });
     },
     changeModel() {
@@ -3733,10 +4422,14 @@
       // })
     },
     selectStandardMethods() {
-      this.$axios
-        .get(this.$api.standardTree.selectStandardMethodEnum)
+      selectStandardMethodEnum()
         .then((res) => {
-          this.methods = res.data;
+          if (res.code === 200) {
+            this.methods = res.data;
+          }
+        })
+        .catch((error) => {
+          console.error(error);
         });
     },
     selectable() {
@@ -3918,42 +4611,39 @@
         return;
       }
       this.noLoading = true;
-      this.$axios
-        .post(
-          this.$api.insOrder.upInsOrderOfState,
-          {
-            state: 2,
-            id: this.currentId,
-            tell: this.tell,
-          },
-          {
-            headers: {
-              "Content-Type": "application/json",
-            },
-          }
-        )
+      upInsOrderOfState({
+        state: 2,
+        id: this.currentId,
+        tell: this.tell,
+      })
         .then((res) => {
-          this.noLoading = false;
-          this.tell = "";
-          if (res.code == 201) return;
-          this.$message.success("鎻愪氦鎴愬姛");
-          this.issuedDialogVisible = false;
-          this.$parent.playOrder(0);
+          if (res.code === 200) {
+            this.noLoading = false;
+            this.tell = "";
+            this.$message.success("鎻愪氦鎴愬姛");
+            this.issuedDialogVisible = false;
+            this.$router.go(-1);
+          }
+        })
+        .catch((error) => {
+          console.error(error);
         });
     },
     selectEnumByCategoryForSonLaboratory() {
-      this.$axios
-        .post(this.$api.enums.selectEnumByCategory, {
-          category: "瀛愬疄楠屽",
-        })
+      getDicts("sys_sub_lab")
         .then((res) => {
-          this.factory = [];
-          res.data.forEach((a) => {
-            this.filters.push({
-              text: a.label,
-              value: a.value,
+          if (res.code === 200) {
+            this.factory = [];
+            res.data.forEach((a) => {
+              this.filters.push({
+                text: a.dictLabel,
+                value: a.dictValue,
+              });
             });
-          });
+          }
+        })
+        .catch((error) => {
+          console.error(error);
         });
     },
     filterHandler(value, row, column) {
@@ -3973,24 +4663,28 @@
           return;
         }
         this.sampleIds = [this.sampleId];
-        this.$axios
-          .post(this.$api.insBushing.selectBushingBySampleId, {
-            sampleId: this.sampleId,
-          })
+        selectBushingBySampleId({
+          sampleId: this.sampleId,
+        })
           .then((res) => {
-            if (res.data.length === 0) {
-              this.$message.error("璇ユ牱鍝佹病鏈夐厤缃厜绾�");
-              return;
-            }
-            for (var i in this.sampleList) {
-              if ((this.sampleList[i].id = this.sampleId)) {
-                this.sampleList[i].bushing = res.data;
-                break;
+            if (res.code === 200) {
+              if (res.data.length === 0) {
+                this.$message.error("璇ユ牱鍝佹病鏈夐厤缃厜绾�");
+                return;
               }
+              for (var i in this.sampleList) {
+                if ((this.sampleList[i].id = this.sampleId)) {
+                  this.sampleList[i].bushing = res.data;
+                  break;
+                }
+              }
+              this.$nextTick(() => {
+                this.configShow = true;
+              });
             }
-            this.$nextTick(() => {
-              this.configShow = true;
-            });
+          })
+          .catch((error) => {
+            console.error(error);
           });
       }
     },
@@ -4006,21 +4700,6 @@
           this.$message.error("鏈�変腑鏍峰搧");
           return;
         }
-        // this.$axios.post(this.$api.insBushing.selectBushingBySampleId, {
-        //   sampleId: this.sampleId
-        // }).then(res => {
-        //   if (res.data.length === 0) {
-        //     this.$message.error('璇ユ牱鍝佹病鏈夐厤缃厜绾�')
-        //     return
-        //   }
-        //   for (var i in this.sampleList) {
-        //     if (this.sampleList[i].id = this.sampleId) {
-        //       this.sampleList[i].bushing = res.data
-        //       break
-        //     }
-        //   }
-        //   this.configShow = true
-        // })
       }
     },
     openCableConfig() {
@@ -4035,21 +4714,6 @@
           this.$message.error("鏈�変腑鏍峰搧");
           return;
         }
-        // this.$axios.post(this.$api.insBushing.selectBushingBySampleId, {
-        //   sampleId: this.sampleId
-        // }).then(res => {
-        //   if (res.data.length === 0) {
-        //     this.$message.error('璇ユ牱鍝佹病鏈夐厤缃厜绾�')
-        //     return
-        //   }
-        //   for (var i in this.sampleList) {
-        //     if (this.sampleList[i].id = this.sampleId) {
-        //       this.sampleList[i].bushing = res.data
-        //       break
-        //     }
-        //   }
-        //   this.configShow = true
-        // })
       }
     },
     upBsm1(val) {
diff --git a/src/views/business/inspectionOrder/index.vue b/src/views/business/inspectionOrder/index.vue
index bc6d5ce..01efcc4 100644
--- a/src/views/business/inspectionOrder/index.vue
+++ b/src/views/business/inspectionOrder/index.vue
@@ -177,6 +177,7 @@
             </li>
           </ul>
           <lims-table
+            highlightCurrentRow
             isSelection
             :tableData="tableData"
             :height="tableHeight + ''"
@@ -374,6 +375,7 @@
           fullscreen
         >
           <lims-table
+            highlightCurrentRow
             :heigt="'80vh'"
             :tableData="dataLooktableData"
             :column="dataLookcolumn"
@@ -835,7 +837,7 @@
 import getLodop from "@/utils/lodop";
 import Add from "./add.vue";
 import { mapGetters } from "vuex";
-import LimsTable from "../../../components/Table/lims-table.vue";
+import LimsTable from "@/components/Table/lims-table.vue";
 export default {
   components: {
     limsTable,
@@ -890,6 +892,11 @@
           prop: "sampleName",
           minWidth: "160px",
           width: "160px",
+          dataType: "link",
+          linkEvent: {
+            method: "showDetails",
+            vueComponent: this,
+          },
         },
         {
           label: "鏍峰搧缂栧彿",
@@ -1803,31 +1810,6 @@
         this.beginPrint(this.qrData);
       });
       this.printDialogVisible = false;
-
-      // PrintJS({
-      //   printable: "printMOrder", //椤甸潰
-      //   type: "html", //鏂囨。绫诲瀷
-      //   maxWidth: 360,
-      //   style: `@page {
-      //           margin:0;
-      //           size: 400px 75px collapse;
-      //           margin-top:3px;
-      //           &:first-of-type{
-      //             margin-top:0 !important;
-      //           }
-      //         }
-      //         html{
-      //           zoom:100%;
-      //         }
-      //         @media print{
-      //           width: 400px;
-      //           height: 75px;
-      //           margin:0;
-      //         }`,
-      //   onPrintDialogClose: (this.erexcel = false),
-      //   targetStyles: ["*"], // 浣跨敤dom鐨勬墍鏈夋牱寮忥紝寰堥噸瑕�
-      //   font_size: "0.15cm",
-      // });
     },
     print() {
       if (this.multipleSelection.length == 0) {
@@ -1866,44 +1848,18 @@
       }
     },
     refresh() {
-      this.componentData.entity = this.HaveJson(this.entityCopy);
-      this.upIndex++;
+      this.queryParams = {
+        entrustCode: "",
+        outEntrustCode: "",
+        sampleName: "",
+        sampleModel: "",
+        sampleCode: "",
+        startAndEndTime: [],
+        name: "",
+        engineering: "",
+        production: "",
+      };
       this.refreshTable();
-    },
-    // 鏉冮檺鍒嗛厤
-    getPower(radio) {
-      let power = JSON.parse(sessionStorage.getItem("power"));
-      let up = false;
-      let del = false;
-      let revoke = false;
-      let check = false;
-      let checkUpdate = false;
-      for (var i = 0; i < power.length; i++) {
-        if (power[i].menuMethod == "upInsOrder") {
-          up = true;
-        }
-        if (power[i].menuMethod == "updateStatus") {
-          revoke = true;
-        }
-        if (power[i].menuMethod == "upInsOrderOfState") {
-          check = true;
-        }
-        if (power[i].menuMethod == "checkUpdate") {
-          checkUpdate = true;
-        }
-      }
-      if (!up) {
-        this.componentData.do.splice(5, 1);
-      }
-      if (!checkUpdate) {
-        this.componentData.do.splice(4, 1);
-      }
-      if (!revoke) {
-        this.componentData.do.splice(3, 1);
-      }
-      if (!check) {
-        this.componentData.do.splice(2, 1);
-      }
     },
     handleClose() {
       this.verifyDialogVisible = false;
@@ -1926,17 +1882,17 @@
       this.exportCheckedDate = [];
       this.dialogVisible1 = false;
     },
-    // 璇︽儏
-    selectAllByOne(row) {
-      this.active = 2;
-      // console.log(row);
-      // //鎵撳紑寮规
-      // this.dialogVisible = true;
-      // //row = 鐐瑰嚮瀵瑰簲琛屽��
-      // //澶嶅埗缁檉ormData
-      // this.formData = this.HaveJson(row);
-      this.currentId = row.id;
-      this.examine = 1;
+    // 鏌ョ湅璇︽儏
+    showDetails(row) {
+      this.$router.push({
+        name: "showDetails",
+        query: {
+          active: 2,
+          currentId: row.id,
+          examine: 1,
+          isReview: true,
+        },
+      });
     },
     // 鏁版嵁鏌ョ湅
     handleDataLook(row) {
@@ -2646,13 +2602,15 @@
     },
     // 涓嬪崟
     playOrder(num) {
+      // this.active = num;
+      // this.examine = 0;
       this.$router.push({
         name: "addOrder",
-        params: {},
+        query: {
+          active: num,
+          examine: 0,
+        },
       });
-      this.active = num;
-      this.examine = 0;
-      // this.refreshTable();
     },
     handleTab(m, i) {
       this.tabIndex = i;

--
Gitblit v1.9.3