From 38f01dc619fb9b7326abc345a216793750758c9a Mon Sep 17 00:00:00 2001
From: lxp <1928192722@qq.com>
Date: 星期五, 14 三月 2025 20:09:45 +0800
Subject: [PATCH] Merge branch 'dev' of http://114.132.189.42:9002/r/center-lims-before-ruoyi into dev

---
 src/api/cnas/resourceDemand/device.js                                                         |  291 
 src/views/CNAS/resourceDemand/device/component/state.vue                                      |   13 
 src/views/CNAS/personnel/personnelInfo/Department/components/PersonnelCapacity/index.vue      |   12 
 src/views/business/inspectionTask/Inspection.vue                                              | 8086 +++++++++++++++++++++++++++
 src/views/CNAS/personnel/personnelInfo/Department/components/Records/Add.vue                  |    2 
 src/views/CNAS/personnel/personnelInfo/Department/components/TrainingRecord/index.vue         |    2 
 src/views/business/inspectionTask/index.vue                                                   | 2065 ++++++
 src/views/CNAS/personnel/personnelInfo/Department/components/Communicate/index.vue            |   12 
 src/views/CNAS/personnel/personnelInfo/Department/components/Records/index.vue                |   20 
 src/views/CNAS/resourceDemand/device/component/fault.vue                                      |    2 
 src/views/business/inspectionOrder/add.vue                                                    |  269 
 src/views/CNAS/personnel/personnelInfo/Department/components/Mandate/index.vue                |   33 
 src/views/business/inspectionOrder/fiberoptic-config.vue                                      |  914 --
 src/views/CNAS/personnel/personnelInfo/Department/components/Records/dispose/index.vue        |   14 
 src/api/cnas/personnel/personnelInfo.js                                                       |   10 
 src/views/CNAS/resourceDemand/device/component/maintenance.vue                                |   73 
 src/components/Table/lims-table.vue                                                           |  287 
 src/views/CNAS/personnel/personnelInfo/Department/components/JobResponsibilities/index.vue    |    7 
 src/views/CNAS/personnel/personnelInfo/Department/components/rewardPunishmentRecord/index.vue |   45 
 src/views/CNAS/personnel/personnelInfo/Department/components/Records/control/index.vue        |   11 
 src/views/business/inspectionOrder/equip-config.vue                                           | 1236 ++-
 src/api/business/inspectionOrder.js                                                           |    4 
 src/utils/file.js                                                                             |   25 
 src/views/CNAS/resourceDemand/device/component/borrow.vue                                     |    4 
 .env.development                                                                              |    3 
 src/api/standard/standardLibrary.js                                                           |    9 
 /dev/null                                                                                     |  311 -
 src/api/business/inspectionTask.js                                                            |  256 
 src/views/CNAS/personnel/personnelInfo/Department/components/PersonnelTraining/index.vue      |    2 
 src/utils/excelFountion.js                                                                    |  376 +
 src/views/CNAS/personnel/personnelInfo/Department/components/Plan/index.vue                   |   16 
 src/views/CNAS/resourceDemand/device/component/record.vue                                     |   70 
 .env.production                                                                               |    3 
 src/views/business/inspectionOrder/fiberoptic-config-readonly.vue                             | 2741 ++++----
 src/views/business/inspectionOrder/index.vue                                                  |  556 -
 35 files changed, 13,861 insertions(+), 3,919 deletions(-)

diff --git a/.env.development b/.env.development
index 77fc3a8..747b42f 100644
--- a/.env.development
+++ b/.env.development
@@ -9,3 +9,6 @@
 
 # 璺敱鎳掑姞杞�
 VUE_CLI_BABEL_TRANSPILE_MODULES = true
+
+# 鏈湴鐜ip+绔彛
+VUE_BASE_URL = ''
\ No newline at end of file
diff --git a/.env.production b/.env.production
index 23d226f..a462f7f 100644
--- a/.env.production
+++ b/.env.production
@@ -6,3 +6,6 @@
 
 # LIMS瀹為獙瀹ょ鐞嗙郴缁�/鐢熶骇鐜
 VUE_APP_BASE_API = '/prod-api'
+
+# 鐢熶骇鐜ip+绔彛
+VUE_BASE_URL = ''
\ No newline at end of file
diff --git a/src/api/business/inspectionOrder.js b/src/api/business/inspectionOrder.js
index d6fc987..3665efe 100644
--- a/src/api/business/inspectionOrder.js
+++ b/src/api/business/inspectionOrder.js
@@ -111,8 +111,8 @@
 export function viewDetails(query) {
   return request({
     url: '/insOrder/viewDetails',
-    method: 'get',
-    params: query
+    method: 'post',
+    data: query
   })
 }
 
diff --git a/src/api/business/inspectionTask.js b/src/api/business/inspectionTask.js
new file mode 100644
index 0000000..8b3ad4d
--- /dev/null
+++ b/src/api/business/inspectionTask.js
@@ -0,0 +1,256 @@
+import request from '@/utils/request'
+
+// 鍔ㄦ�佽幏鍙杢ab琛ㄥご
+export function getTabHeader(query) {
+  return request({
+    url: '/insOrderPlan/getTabHeader',
+    method: 'get',
+    params: query
+  })
+}
+
+// 鏌ョ湅缁撴灉鎸夐挳
+export function getInsOrderPlanList(query) {
+  return request({
+    url: '/insOrderPlan/getInsOrderPlanList',
+    method: 'post',
+    data: query
+  })
+}
+
+// 瀵煎嚭濮旀墭璐圭敤
+export function exportCommissionFees(query) {
+  return request({
+    url: '/insOrderPlan/exportCommissionFees',
+    method: 'get',
+    params: query,
+    responseType: 'blob'
+  })
+}
+
+// 瀵煎嚭寰呮浠诲姟
+export function exportUnInsProducts(query) {
+  return request({
+    url: '/insOrderPlan/exportUnInsProducts',
+    method: 'get',
+    params: query,
+    responseType: 'blob'
+  })
+}
+
+// 瀵煎嚭鏌ョ湅妫�楠岀粨鏋淓xcel
+export function exportInsOrderPlanResult(query) {
+  return request({
+    url: '/insOrderPlan/exportInsOrderPlanResult',
+    method: 'post',
+    data: query,
+    responseType: 'blob'
+  })
+}
+
+// 鏌ョ湅妫�楠屼换鍔″垪琛�
+export function selectInsOrderPlanList(query) {
+  return request({
+    url: '/insOrderPlan/selectInsOrderPlanList',
+    method: 'get',
+    params: query
+  })
+}
+
+// 妫�楠屽崟璇︽儏-浠诲姟鍒囨崲
+export function inspectionOrderDetailsTaskSwitching(query) {
+  return request({
+    url: '/insOrderPlan/inspectionOrderDetailsTaskSwitching',
+    method: 'get',
+    params: query
+  })
+}
+
+// 璁ら鎸夐挳
+export function claimInsOrderPlan(query) {
+  return request({
+    url: '/insOrderPlan/claimInsOrderPlan',
+    method: 'post',
+    data: query
+  })
+}
+
+// 妫�楠屾寜閽�
+export function doInsOrder(query) {
+  return request({
+    url: '/insOrderPlan/doInsOrder',
+    method: 'get',
+    params: query
+  })
+}
+
+// 鍒囨崲濂楃/鍏夌氦/鍏夌氦甯﹁褰曟ā鐗堟煡璇㈡楠屽唴瀹�
+export function getReportModel(query) {
+  return request({
+    url: '/insOrderPlan/getReportModel',
+    method: 'get',
+    params: query
+  })
+}
+
+// 鑾峰彇妫�楠岄」鐩拰妯℃澘鍐呭
+export function getInsProduct(query) {
+  return request({
+    url: '/insOrderPlan/getInsProduct',
+    method: 'get',
+    params: query
+  })
+}
+
+// 浜ゆ帴鎸夐挳
+export function upPlanUser(query) {
+  return request({
+    url: '/insOrderPlan/upPlanUser',
+    method: 'post',
+    data: query
+  })
+}
+
+// 鍒ゆ柇浜ゆ帴鐨勮瘯楠屽
+export function upPlanUser2(query) {
+  return request({
+    url: '/insOrderPlan/upPlanUser2',
+    method: 'get',
+    params: query
+  })
+}
+
+// 澶嶆牳鎸夐挳
+export function verifyPlan(query) {
+  return request({
+    url: '/insOrderPlan/verifyPlan',
+    method: 'post',
+    data: query
+  })
+}
+
+// 鏍¢獙妫�楠屼换鍔℃彁浜�
+export function checkSubmitPlan(query) {
+  return request({
+    url: '/insOrderPlan/checkSubmitPlan',
+    method: 'post',
+    data: query
+  })
+}
+
+// 鎻愪氦妫�楠屼换鍔�
+export function submitPlan(query) {
+  return request({
+    url: '/insOrderPlan/submitPlan',
+    method: 'post',
+    data: query
+  })
+}
+
+// 鑾峰彇璁惧鍚嶇О
+export function getEquipName(query) {
+  return request({
+    url: '/insOrderPlan/getEquipName',
+    method: 'get',
+    params: query
+  })
+}
+
+// 淇濆瓨妫�楠屽唴瀹�
+export function saveInsContext(query) {
+  return request({
+    url: '/insOrderPlan/saveInsContext',
+    method: 'post',
+    data: query
+  })
+}
+
+// 涓婁紶闄勪欢鎸夐挳
+export function uploadFile(query) {
+  return request({
+    url: '/insOrderPlan/uploadFile',
+    method: 'post',
+    data: query
+  })
+}
+
+// 鍒犻櫎闄勪欢鎸夐挳
+export function delfile(query) {
+  return request({
+    url: '/insOrderPlan/delfile',
+    method: 'post',
+    data: query
+  })
+}
+
+// 涓嬭浇闄勪欢
+export function downFile(query) {
+  return request({
+    url: '/insOrderPlan/downFile',
+    method: 'get',
+    params: query
+  })
+}
+
+// 濉啓娓╁害涓庢箍搴�
+export function write(query) {
+  return request({
+    url: '/insOrderPlan/write',
+    method: 'post',
+    data: query
+  })
+}
+
+// 娓╁害寰幆鏌ョ湅鍒楄〃鏁版嵁(鍖呮嫭閫氳繃鏍峰搧id,寰幆娆℃暟,娓╁害,寰幆娆℃暟杩涜绛涢��)
+export function temCycle(query) {
+  return request({
+    url: '/insOrderPlan/temCycle',
+    method: 'get',
+    params: query
+  })
+}
+
+// 寮у瀭鐗规畩椤规煡鐪嬪垪琛ㄦ暟鎹�
+export function getSagTemperatureProducts(query) {
+  return request({
+    url: '/insOrderPlan/getSagTemperatureProducts',
+    method: 'get',
+    params: query
+  })
+}
+
+// (鐢靛姏鐨勫簲鍔涘簲鍙�)淇濆瓨妫�楠屽唴瀹�
+export function saveInsContext2(query) {
+  return request({
+    url: '/insOrderPlan/saveInsContext2',
+    method: 'post',
+    data: query
+  })
+}
+
+// 鏍规嵁璁㈠崟id鏌ヨ鏍峰搧淇℃伅
+export function getSampleInfoByOrderId(query) {
+  return request({
+    url: '/insOrderPlan/getSampleInfoByOrderId',
+    method: 'get',
+    params: query
+  })
+}
+
+// 浠诲姟灞曠ず
+export function tasksShow(query) {
+  return request({
+    url: '/insOrderPlan/tasksShow',
+    method: 'get',
+    params: query
+  })
+}
+
+// 鑾峰彇瀛愯瘯楠屽褰撴湀鐨勬�绘楠屼换鍔℃暟閲�
+export function getCurrentMonthPlanTotal(query) {
+  return request({
+    url: '/insOrderPlan/getCurrentMonthPlanTotalBySonLaboratory',
+    method: 'get',
+    params: query
+  })
+}
diff --git a/src/api/cnas/personnel/personnelInfo.js b/src/api/cnas/personnel/personnelInfo.js
index c9d6eaf..7698be2 100644
--- a/src/api/cnas/personnel/personnelInfo.js
+++ b/src/api/cnas/personnel/personnelInfo.js
@@ -737,6 +737,16 @@
   });
 }
 
+// 濂栨儵璁板綍 瀵煎嚭
+export function rewardPunishmentExport(query) {
+  return request({
+    url: "/personRewardPunishmentRecord/rewardPunishmentExport",
+    method: "get",
+    responseType: "blob",
+    params: query,
+  });
+}
+
 /**
  * @desc 宸ヤ綔灞ュ巻
  */
diff --git a/src/api/cnas/resourceDemand/device.js b/src/api/cnas/resourceDemand/device.js
index b82cf37..659d384 100644
--- a/src/api/cnas/resourceDemand/device.js
+++ b/src/api/cnas/resourceDemand/device.js
@@ -155,9 +155,9 @@
   });
 }
 //浣跨敤璁板綍 瀵煎嚭
-export function exportUseRecord(query) {
+export function deviceRecordExport(query) {
   return request({
-    url: "/deviceRecord/exportUseRecord",
+    url: "/deviceRecord/deviceRecordExport",
     method: "get",
     responseType: "blob",
     params: query,
@@ -398,41 +398,6 @@
   });
 }
 
-//璁惧缁存姢鍒犻櫎
-export function deleteDeviceMaintenance(query) {
-  return request({
-    url: "/deviceMaintain/deleteDeviceMaintenance",
-    method: "delete",
-    params: query,
-  });
-}
-//璁惧缁存姢鍒犻櫎
-export function deviceMaintenanceExport(query) {
-  return request({
-    url: "/deviceMaintain/deviceMaintenanceExport",
-    method: "get",
-    responseType: "blob",
-    params: query,
-  });
-}
-
-// 鏂板璁惧缁存姢淇濆吇
-export function addDeviceMaintenance(data) {
-  return request({
-    url: "/deviceMaintain/addDeviceMaintenance",
-    method: "post",
-    data: data,
-  });
-}
-//璁惧缁存姢琛� 鏌ヨ
-export function getDeviceMaintenancePage(query) {
-  return request({
-    url: "/deviceMaintain/getDeviceMaintenancePage",
-    method: "get",
-    params: query,
-  });
-}
-
 // 鍊熺敤-淇濆瓨
 export function saveDeviceBorrow(data) {
   return request({
@@ -534,208 +499,6 @@
     params: query,
   });
 }
-
-//璁惧鎶ュ簾鐢宠鍒楄〃
-export function pageDeviceScrapped(query) {
-  return request({
-    url: "/deviceScrapped/pageDeviceScrapped",
-    method: "get",
-    params: query,
-  });
-}
-
-// 瀵煎嚭
-export function exportDeviceScrapped(query) {
-  return request({
-    url: "/deviceScrapped/exportDeviceScrapped",
-    method: "get",
-    responseType: "blob",
-    params: query,
-  });
-}
-
-//鍒犻櫎璁惧鎶ュ簾鐢宠
-export function delDeviceScrapped(query) {
-  return request({
-    url: "/deviceScrapped/delDeviceScrapped",
-    method: "delete",
-    params: query,
-  });
-}
-
-//鏌ヨ璁惧鎶ュ簾鐢宠
-export function getDeviceScrapped(query) {
-  return request({
-    url: "/deviceScrapped/getDeviceScrapped",
-    method: "get",
-    params: query,
-  });
-}
-
-// 鏂板璁惧鎶ュ簾鐢宠
-export function addDeviceScrapped(data) {
-  return request({
-    url: "/deviceScrapped/addDeviceScrapped",
-    method: "post",
-    data: data,
-  });
-}
-
-//璁惧鏁呴殰缁翠慨鍒楄〃
-export function pageDeviceBreakdownMaintenance(query) {
-  return request({
-    url: "/deviceBreakdownMaintenance/pageDeviceBreakdownMaintenance",
-    method: "get",
-    params: query,
-  });
-}
-
-// 璁惧鏁呴殰涓庣淮淇�-瀵煎嚭
-export function exportDeviceBreakdownMaintenance(query) {
-  return request({
-    url: "/deviceBreakdownMaintenance/exportDeviceBreakdownMaintenance",
-    method: "get",
-    responseType: "blob",
-    params: query,
-  });
-}
-
-//鍒犻櫎璁惧鏁呴殰缁翠慨
-export function delDeviceBreakdownMaintenance(query) {
-  return request({
-    url: "/deviceBreakdownMaintenance/delDeviceBreakdownMaintenance",
-    method: "delete",
-    params: query,
-  });
-}
-
-//鏌ヨ璁惧鏁呴殰缁翠慨
-export function getDeviceBreakdownMaintenance(query) {
-  return request({
-    url: "/deviceBreakdownMaintenance/getDeviceBreakdownMaintenance",
-    method: "get",
-    params: query,
-  });
-}
-
-// 鏂板璁惧鏁呴殰缁翠慨
-export function addDeviceBreakdownMaintenance(data) {
-  return request({
-    url: "/deviceBreakdownMaintenance/addDeviceBreakdownMaintenance",
-    method: "post",
-    data: data,
-  });
-}
-
-//鍒嗛〉鏌ヨ璁惧鐐规璁板綍
-export function getDeviceInspectionRecordByPage(query) {
-  return request({
-    url: "/deviceInspectionRecord/getDeviceInspectionRecordByPage",
-    method: "get",
-    params: query,
-  });
-}
-
-// 瀵煎嚭璁惧鐐规璁板綍
-export function exportDeviceInspectionRecord(query) {
-  return request({
-    url: "/deviceInspectionRecord/exportDeviceInspectionRecord",
-    method: "get",
-    responseType: "blob",
-    params: query,
-  });
-}
-
-//鍒犻櫎璁惧鐐规璁板綍
-export function deleteDeviceInspectionRecord(query) {
-  return request({
-    url: "/deviceInspectionRecord/deleteDeviceInspectionRecord",
-    method: "delete",
-    params: query,
-  });
-}
-
-//璁惧鐐规璁板綍璇︽儏
-export function getDeviceInspectionRecord(query) {
-  return request({
-    url: "/deviceInspectionRecord/getDeviceInspectionRecord",
-    method: "get",
-    params: query,
-  });
-}
-
-// 鏂板璁惧鐐规璁板綍
-export function addDeviceInspectionRecord(data) {
-  return request({
-    url: "/deviceInspectionRecord/addDeviceInspectionRecord",
-    method: "post",
-    data: data,
-  });
-}
-
-// 淇敼璁惧鐐规璁板綍
-export function updateDeviceInspectionRecord(data) {
-  return request({
-    url: "/deviceInspectionRecord/updateDeviceInspectionRecord",
-    method: "post",
-    data: data,
-  });
-}
-
-// 澶嶆牳璁惧鐐规璁板綍
-export function reviewDeviceInspectionRecord(data) {
-  return request({
-    url: "/deviceInspectionRecord/reviewDeviceInspectionRecord",
-    method: "post",
-    data: data,
-  });
-}
-
-//璁惧浜嬫晠鎶ュ憡鍒楄〃
-export function pageDeviceAccidentReport(query) {
-  return request({
-    url: "/deviceAccidentReport/pageDeviceAccidentReport",
-    method: "get",
-    params: query,
-  });
-}
-
-// 瀵煎嚭璁惧浜嬫晠
-export function exportDeviceAccidentReport(query) {
-  return request({
-    url: "/deviceAccidentReport/exportDeviceAccidentReport",
-    method: "get",
-    responseType: "blob",
-    params: query,
-  });
-}
-
-//鍒犻櫎璁惧浜嬫晠鎶ュ憡
-export function delDeviceAccidentReport(query) {
-  return request({
-    url: "/deviceAccidentReport/delDeviceAccidentReport",
-    method: "delete",
-    params: query,
-  });
-}
-
-//鏌ヨ璁惧浜嬫晠鎶ュ憡
-export function getDeviceAccidentReport(query) {
-  return request({
-    url: "/deviceAccidentReport/getDeviceAccidentReport",
-    method: "get",
-    params: query,
-  });
-}
-
-// 鏂板璁惧浜嬫晠鎶ュ憡
-export function addDeviceAccidentReport(data) {
-  return request({
-    url: "/deviceAccidentReport/addDeviceAccidentReport",
-    method: "post",
-    data: data,
-  });
-}
 //浣滀笟鎸囧涔︽煡璇�
 export function pageByPageQueryOfHomeworkInstructions(query) {
   return request({
@@ -821,14 +584,7 @@
     params: query,
   });
 }
-// 璁惧杩愯鎬昏-鏍规嵁id鑾峰彇璁惧鏁呴殰鏁版嵁
-export function device(query) {
-  return request({
-    url: "/deviceFaults/device",
-    method: "get",
-    params: query,
-  });
-}
+
 //璁惧楠屾敹涓洓涓猼able琛ㄦ牸鐨勫垹闄ゅ姛鑳�
 export function deleteIncidentReportAll(query) {
   return request({
@@ -879,6 +635,14 @@
     responseType: "blob"
   });
 }
+// 璁惧杩愯鎬昏-鏍规嵁id鑾峰彇璁惧鏁呴殰鏁版嵁
+export function device(query) {
+  return request({
+    url: "/deviceFaults/device",
+    method: "get",
+    params: query,
+  });
+}
 //娣诲姞璁惧鏁呴殰
 export function addOrUpdateDeviceFaultOne(query) {
   return request({
@@ -913,4 +677,37 @@
     params: query,
   });
 }
+//璁惧缁存姢 瀵煎嚭
+export function deviceMaintenanceExport(query) {
+  return request({
+    url: "/deviceMaintain/deviceMaintenanceExport",
+    method: "get",
+    params: query,
+    responseType: "blob"
+  });
+}
+//璁惧缁存姢 鍒犻櫎
+export function deleteMaintain(query) {
+  return request({
+    url: "/deviceMaintain/delete",
+    method: "delete",
+    params: query,
+  });
+}
+//璁惧缁存姢 鏂板
+export function addMaintain(query) {
+  return request({
+    url: "/deviceMaintain/add",
+    method: "post",
+    data: query,
+  });
+}
+//璁惧缁存姢 鏌ヨ
+export function getDeviceMaintenancePage(query) {
+  return request({
+    url: "/deviceMaintain/getDeviceMaintenancePage",
+    method: "get",
+    params: query,
+  });
+}
 
diff --git a/src/api/standard/standardLibrary.js b/src/api/standard/standardLibrary.js
index 63752ea..98861cf 100644
--- a/src/api/standard/standardLibrary.js
+++ b/src/api/standard/standardLibrary.js
@@ -159,3 +159,12 @@
     method: "get",
   });
 }
+
+// 浠呰幏鍙栧厜绾ょ殑鍨嬪彿
+export function getStandTreeBySampleType(query) {
+  return request({
+    url: "/standardTree/getStandTreeBySampleType",
+    method: "get",
+    params:query
+  });
+}
diff --git a/src/components/Table/lims-table.vue b/src/components/Table/lims-table.vue
index 999ce8b..74628ad 100644
--- a/src/components/Table/lims-table.vue
+++ b/src/components/Table/lims-table.vue
@@ -1,83 +1,31 @@
 <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="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" element-loading-text="鍔犺浇涓�..."
+      element-loading-spinner="el-icon-loading" :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"
-        align="center"
-        :width="item.dataType == 'action' ? btnWidth : item.width"
-      >
+      <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" align="center"
+        :width="item.dataType == 'action' ? btnWidth : item.width">
         <!-- <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'">
@@ -85,141 +33,73 @@
           </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'"
-            :style="`width:${getWidth(item.operation, scope.row)}`"
-          >
+          <div v-else-if="item.dataType == 'action'" :style="`width:${getWidth(item.operation, scope.row)}`">
             <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"
-                size="mini"
-                ref="upload"
-                :multiple="o.multiple ? o.multiple : false"
-                :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"
-                :data="o.data ? o.data(scope.row) : {}"
-                :before-upload="
-                  o.beforeUpload ? o.beforeUpload(scope.row) : () => true
-                "
-                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" size="mini" ref="upload" :multiple="o.multiple ? o.multiple : false"
+                :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"
+                :data="o.data ? o.data(scope.row) : {}" :before-upload="o.beforeUpload ? o.beforeUpload(scope.row) : () => true
+                  " 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"
-            style="width: 100%"
-            @click="goLink(scope.row, item.linkEvent)"
-          >
+          <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>
@@ -234,16 +114,8 @@
         </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>
 
@@ -332,19 +204,19 @@
     handleSelectionChange: {
       type: Function,
       default: () => {
-        return () => {};
+        return () => { };
       },
     },
     rowClick: {
       type: Function,
       default: () => {
-        return () => {};
+        return () => { };
       },
     },
     currentChange: {
       type: Function,
       default: () => {
-        return () => {};
+        return () => { };
       },
     },
     border: {
@@ -373,7 +245,7 @@
     },
     rowClassName: {
       type: Function,
-      default: () => {},
+      default: () => { },
     },
     rowStyle: {
       type: Function,
@@ -412,10 +284,20 @@
     //   this.doLayout();
     // },
   },
+  updated() {
+    this.$nextTick(() => {
+      this.$refs.multipleTable.doLayout();
+    });
+  },
   mounted() {
     this.calculateSpanInfo();
   },
   methods: {
+    doLayout() {
+      this.$nextTick(() => {
+        this.$refs.multipleTable && this.$refs.multipleTable.doLayout();
+      });
+    },
     getWidth(row, row0) {
       let count = 0;
       row.forEach((a) => {
@@ -487,6 +369,7 @@
       if (!linkEvent) {
         return this.$message.warning("璇烽厤缃甽ingk浜嬩欢");
       }
+      console.log(linkEvent);
       linkEvent.vueComponent[linkEvent.method](row);
     },
     // 鍚堝苟鍗曞厓鏍�
@@ -576,11 +459,11 @@
 </script>
 
 <style scoped>
-.el-table >>> .el-table__empty-text {
+.el-table>>>.el-table__empty-text {
   text-align: center;
 }
 
->>> .cell {
+>>>.cell {
   padding: 0 !important;
 }
 
@@ -597,7 +480,7 @@
   cursor: pointer;
 }
 
->>> .el-table__body-wrapper::-webkit-scrollbar {
+>>>.el-table__body-wrapper::-webkit-scrollbar {
   height: 14px;
   /* 璁剧疆婊氬姩鏉″搴� */
 }
diff --git a/src/utils/excelFountion.js b/src/utils/excelFountion.js
new file mode 100644
index 0000000..693c16e
--- /dev/null
+++ b/src/utils/excelFountion.js
@@ -0,0 +1,376 @@
+
+/**
+ * 璁$畻澶氫釜鏁板�肩殑鍜�
+ *
+ * @param val 鏁板�煎瀷鍙傛暟锛屽彲鍙橀暱鍙傛暟鍒楄〃
+ * @returns 杩斿洖鎵�鏈夊弬鏁扮殑鍜岋紝濡傛灉鍙傛暟鍒楄〃涓虹┖鎴栧弬鏁扮被鍨嬮潪鏁板�煎瀷锛屽垯杩斿洖null
+ */
+function SUM(...val){
+  try {
+    let num = null;
+    if(val&&val.length>0){
+      val.forEach(item=>{
+        num+=item;
+      })
+    }
+    return num;
+  } catch (error) {
+
+  }
+}
+/**
+ * 璁$畻浼犲叆鍙傛暟涓殑鏈�澶у��
+ *
+ * @param ...val 鍙彉鍙傛暟鍒楄〃锛岀敤浜庤绠楁渶澶у�肩殑鏁板�兼垨鍙浆鎹负鏁板�肩殑绫诲瀷
+ * @returns 杩斿洖鏈�澶у�硷紝濡傛灉鍙傛暟鍒楄〃涓虹┖鎴栦负null/undefined/''锛屽垯杩斿洖null
+ */
+function MAX(...val){
+  try {
+    let max = null;
+    if(val&&val.length>0){
+      val = val.filter(item=>item!=null&&item!=='')
+      if(val.length>0){
+        max = Math.max(...val)
+      }else{
+        max = null;
+      }
+    }
+    return max;
+  } catch (error) {
+
+  }
+}
+/**
+ * 璁$畻浼犲叆鍙傛暟涓殑鏈�灏忓��
+ *
+ * @param val 鍙彉鍙傛暟锛岀敤浜庤绠楁渶灏忓�肩殑鏁板�兼暟缁�
+ * @returns 杩斿洖浼犲叆鍙傛暟涓殑鏈�灏忓�硷紝濡傛灉浼犲叆鍙傛暟涓虹┖鎴栨墍鏈夊�煎潎涓簄ull鎴栫┖瀛楃涓诧紝鍒欒繑鍥瀗ull
+ */
+function MIN(...val){
+  try {
+    let min = null;
+    if(val&&val.length>0){
+      val = val.filter(item=>item!=null&&item!=='')
+      // console.log(val)
+      if(val.length>0){
+        min = Math.min(...val)
+      }
+    }
+    return min;
+  } catch (error) {
+
+  }
+}
+/**
+ * 璁$畻缁欏畾鏁板�肩殑骞冲潎鍊�
+ *
+ * @param val 鏁板�煎垪琛紝鍙寘鍚换鎰忎釜鍙傛暟
+ * @returns 杩斿洖骞冲潎鍊硷紝濡傛灉鏁板�煎垪琛ㄤ负绌烘垨鍖呭惈闈炴暟鍊奸」锛屽垯杩斿洖null
+ */
+function AVERAGE(...val){
+  try {
+    let num = 0;
+    let arr = [];
+    if(val&&val.length>0){
+      arr = val.filter(item=>item!=null&&item!=='')
+      arr.forEach(item=>{
+        num+=item;
+      })
+      if(arr.length>0){
+        return num/arr.length;
+      }else{
+        return null;
+      }
+    }else{
+      return null;
+    }
+  } catch (error) {
+
+  }
+}
+/**
+ * 璁$畻涓�涓暟鐨勭粷瀵瑰��
+ *
+ * @param val 浠绘剰鏁板��
+ * @returns 杩斿洖璇ユ暟鍊肩殑缁濆鍊�
+ */
+function ABS(val){
+  try {
+    return Math.abs(val);
+  } catch (error) {
+
+  }
+}
+/**
+ * 璁$畻涓�缁勬暟瀛楃殑涓綅鏁�
+ *
+ * @param val 浠绘剰涓弬鏁帮紝闇�瑕佽绠椾腑浣嶆暟鐨勬暟瀛�
+ * @returns 濡傛灉鍙傛暟涓湁鏈夋晥鐨勬暟瀛楋紝鍒欒繑鍥炶绠楀嚭鐨勪腑浣嶆暟锛涘惁鍒欒繑鍥瀗ull
+ */
+function MEDIAN(...val){
+  try {
+    let arr = [];
+    if(val&&val.length>0){
+      arr = val.filter(item=>item!=null&&item!=='')
+      const sortedArr = arr.sort((a, b) => a - b);
+      // 璁$畻涓綅鏁�
+      const half = Math.floor(sortedArr.length / 2);
+      if(arr.length>0){
+        // 濡傛灉鏁扮粍闀垮害鏄鏁帮紝鐩存帴鍙栦腑闂寸殑鍏冪礌
+        if (sortedArr.length % 2 === 1) {
+          return sortedArr[half];
+        } else { // 濡傛灉鏁扮粍闀垮害鏄伓鏁帮紝鍙栦腑闂翠袱涓厓绱犵殑骞冲潎鍊�
+          return (sortedArr[half - 1] + sortedArr[half]) / 2;
+        }
+      }else{
+        return null;
+      }
+    }else{
+      return null;
+    }
+  } catch (error) {
+
+  }
+}
+
+/**
+ * 璁$畻骞�
+ *
+ * @param str 瀛楃涓插舰寮忕殑骞傝〃杈惧紡锛屼緥濡�"2^3"
+ * @returns 杩斿洖璁$畻鍚庣殑骞傚�硷紝濡傛灉琛ㄨ揪寮忔棤鏁堝垯杩斿洖null
+ */
+function CalculatePower(str){
+  try {
+    if(str&&str.includes('^')){
+      let arr = str.split('^');
+      if(arr&&arr.length>1){
+        return Math.pow(arr[0],arr[1]);
+      }else{
+        return null;
+      }
+    }
+  } catch (error) {
+
+  }
+}
+
+
+
+/**
+ * 鏍规嵁鍧愭爣鑾峰彇鍒楀悕
+ * @param {Object} cellId
+ */
+function getColumnNameFromId(cellId){
+  try{
+    if (! Array.isArray(cellId)) {
+      cellId = cellId.split('-');
+    }
+    var i = cellId[0];
+    var letter = '';
+    if (i > 701) {
+      letter += String.fromCharCode(64 + parseInt(i / 676));
+      letter += String.fromCharCode(64 + parseInt((i % 676) / 26));
+    } else if (i > 25) {
+      letter += String.fromCharCode(64 + parseInt(i / 26));
+    }
+    letter += String.fromCharCode(65 + (i % 26));
+    return letter + (parseInt(cellId[1]) + 1);
+  }catch(e){
+    console.log('error',cellId)
+  }
+}
+/**
+ * 鏍规嵁鍒楀悕鑾峰彇鍧愭爣
+ * @param {Object} id
+ * @param {Object} arr
+ */
+function getIdFromColumnName(id, arr) {
+  try{
+    // Get the letters
+    var t = /^[a-zA-Z]+/.exec(id);
+    if (t) {
+      // Base 26 calculation
+      var code = 0;
+      for (var i = 0; i < t[0].length; i++) {
+        code += parseInt(t[0].charCodeAt(i) - 64) * Math.pow(26, (t[0].length - 1 - i));
+      }
+      code--;
+      // Make sure jexcel starts on zero
+      if (code < 0) {
+        code = 0;
+      }
+
+      // Number
+      var number = parseInt(/[0-9]+$/.exec(id));
+      if (number > 0) {
+        number--;
+      }
+
+      if (arr == true) {
+        id = [ code, number ];
+      } else {
+        // id = code + '-' + number;
+        id = {
+          c:code,
+          r:number
+        }
+      }
+    }
+    return id;
+  }catch(e){
+    console.log('error',id)
+  }
+}
+
+/**
+ * 鏇存敼鍙傛暟
+ *
+ * @param f 鍙傛暟鍒楄〃
+ * @returns 杩斿洖涓�涓寘鍚潗鏍囦俊鎭殑鏁扮粍
+ */
+function changeParameter(f){
+  try {
+    let arr = getABCList(f)
+    let arr2 = []
+    arr.forEach(item=>{
+      if(item.includes(':')){
+        let r0 = getIdFromColumnName(item.split(':')[0]).r;
+        let c0 = getIdFromColumnName(item.split(':')[0]).c;
+        let r1 = getIdFromColumnName(item.split(':')[1]).r;
+        let c1 = getIdFromColumnName(item.split(':')[1]).c;
+        for (let i = Number(r0); i <= Number(r1); i++) {
+          for (let u = Number(c0); u <= Number(c1); u++) {
+            arr2.push({
+              r: i,
+              c: u
+            })
+          }
+        }
+      }else{
+        arr2.push(getIdFromColumnName(item))
+      }
+    })
+    return arr2;
+  } catch (error) {
+
+  }
+}
+/**
+ * 鑾峰彇鍖呭惈 ABC 瀛楃鐨勫垪琛�
+ *
+ * @param f 瀛楃涓诧紝鍖呭惈闇�瑕佽В鏋愮殑鍏紡鎴栬〃杈惧紡
+ * @returns 鍖呭惈 ABC 瀛楃鐨勬暟缁勫垪琛�
+ */
+function getABCList(f){
+  try {
+    let regex = /[=\+\-\*\%\(\)\/\^\s]/g;
+    let fouList = [
+      "SUM",
+      'MAX',
+      'MIN',
+      'AVERAGE',
+      'ABS',
+    ]
+    f = f.replace(regex, ',').replace(new RegExp('"&', 'g'),'').replace(new RegExp('&"', 'g'),'')
+    fouList.forEach(item=>{
+      f = f.replace(new RegExp(item, 'g'),'')
+    })
+    // console.log('f',f)
+    let arr = f.split(',').filter(item=>{
+      return item&& /[a-zA-Z]/.test(item)&&item!='undefined'&&item!='null'
+    });
+    return arr;
+  } catch (error) {
+
+  }
+}
+/**
+ * 鑾峰彇鎵�鏈夊崟鍏冩牸
+ *
+ * @param f 琛ㄦ牸鏁版嵁鎴栫浉鍏冲弬鏁�
+ * @returns 杩斿洖涓�涓璞★紝鍏堕敭涓哄崟鍏冩牸鐨勫敮涓�鏍囪瘑绗︼紙鐢卞垪鍜岃ID鎷兼帴鑰屾垚锛夛紝鍊间负null
+ */
+function getAllCell(f){
+  try {
+    let arr = changeParameter(f)
+    let arr0 = {}
+    arr.forEach(item=>{
+      arr0[getColumnNameFromId(`${item.c}`+'-'+`${item.r}`)] = null
+    })
+    return arr0;
+  } catch (error) {
+
+  }
+}
+
+/**
+ * 璁$畻鍑芥暟
+ *
+ * @param f 瀛楃涓茬被鍨嬶紝琛ㄧず寰呰绠楃殑鍏紡
+ * @param comValue 瀵硅薄绫诲瀷锛岃〃绀鸿鏇挎崲鐨勫崟鍏冩牸鍊硷紝閿负鍗曞厓鏍煎悕绉帮紝鍊间负鏇挎崲鍚庣殑鍊�
+ * @returns 杩斿洖璁$畻鍚庣殑缁撴灉锛屽鏋滆绠楀け璐ュ垯杩斿洖0
+ */
+function compute(f,comValue){
+  try {
+    let str = f
+    // 鑾峰彇鍗曞厓鏍煎搴斿��
+    let arr = getAllCell(f)
+    for (var a in comValue) {
+      if(comValue[a]!=='undefined'&&comValue[a]!=='null'&&comValue[a]!==undefined){
+        if(typeof(comValue[a])=='string'&&comValue[a].includes('^')){
+          // 璁$畻骞傛
+          arr[a] = CalculatePower(comValue[a])
+        } else if (typeof(comValue[a])=='string'&&comValue[a].includes('/')) {
+          arr[a] = comValue[a]
+        } else{
+          arr[a] = comValue[a]
+        }
+      }
+    }
+    // 瑙f瀽鍏紡鍙傛暟锛岀壒鍒槸甯︼細鐨�
+    let arr0 = getABCList(f)
+    let obj = {}
+    arr0.forEach(item=>{
+      if(item.includes(':')){
+        let arr1 = []
+        let r0 = getIdFromColumnName(item.split(':')[0]).r;
+        let c0 = getIdFromColumnName(item.split(':')[0]).c;
+        let r1 = getIdFromColumnName(item.split(':')[1]).r;
+        let c1 = getIdFromColumnName(item.split(':')[1]).c;
+        for (let i = Number(r0); i <= Number(r1); i++) {
+          for (let u = Number(c0); u <= Number(c1); u++) {
+            arr1.push({
+              r: i,
+              c: u
+            })
+          }
+        }
+        let arr2 = []
+        arr1.forEach(m=>{
+          arr2.push(getColumnNameFromId(`${m.c}`+'-'+`${m.r}`))
+        })
+        obj[item.split(':').join('-')] = arr2.join(',')
+      }else{
+        obj[item] = item
+      }
+    })
+    str = str.replace(new RegExp(':', 'g'),'')
+    // 鏇挎崲鍙傛暟
+    for (var a in obj) {
+      str = str.replace(new RegExp(a, 'g'),obj[a])
+    }
+    // 璁$畻
+    for (var a in arr) {
+      str = str.replace(new RegExp(a, 'g'),arr[a])
+    }
+    return eval(str)
+  } catch (error) {
+
+  }
+}
+
+export default {
+  compute,
+  changeParameter,
+  AVERAGE
+}
diff --git a/src/utils/file.js b/src/utils/file.js
index c3a3e7b..d8ff0fd 100644
--- a/src/utils/file.js
+++ b/src/utils/file.js
@@ -59,3 +59,28 @@
     image.src = imgsrc;
   }
 };
+
+
+export function transformExcel(response,tempName){
+  const relType = ['application/vnd.ms-excel', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'application/vnd.ms-excel;charset=UTF-8']
+  let type = response.type
+  if (relType.includes(type)) {
+    const blob = new Blob([response], {type: 'application/vnd.ms-excel'})
+    let temp = tempName
+    if(response.headers){
+      const disposition = response.headers["content-disposition"]
+      temp = disposition.substring(disposition.lastIndexOf('=') + 1)
+    }
+    let filename = decodeURI(temp)
+    // 鍒涘缓涓�涓秴閾炬帴锛屽皢鏂囦欢娴佽祴杩涘幓锛岀劧鍚庡疄鐜拌繖涓秴閾炬帴鐨勫崟鍑讳簨浠�
+    const elink = document.createElement('a')
+    elink.download = filename
+    elink.style.display = 'none'
+    elink.href = URL.createObjectURL(blob)
+    document.body.appendChild(elink)
+    elink.click()
+    URL.revokeObjectURL(elink.href) // 閲婃斁URL 瀵硅薄
+    document.body.removeChild(elink)
+  }
+}
+
diff --git a/src/views/CNAS/personnel/personnelInfo/Department/components/Communicate/index.vue b/src/views/CNAS/personnel/personnelInfo/Department/components/Communicate/index.vue
index 086b96b..8e4f746 100644
--- a/src/views/CNAS/personnel/personnelInfo/Department/components/Communicate/index.vue
+++ b/src/views/CNAS/personnel/personnelInfo/Department/components/Communicate/index.vue
@@ -10,7 +10,7 @@
                 </div>
             </template>
             <template v-slot:table>
-                <limsTable :column="columnData" :height="'calc(100vh - 21em)'" :table-data="tableData"
+                <limsTable :column="columnData" :height="'calc(100vh - 22em)'" :table-data="tableData"
                     :table-loading="loading" style="margin-top: 18px; padding: 0 15px;" :page="page"
                     @pagination="pagination"></limsTable>
             </template>
@@ -95,7 +95,7 @@
             tableData: [],
             page: {
                 current: 1,
-                pageSize: 20,
+                size: 20,
                 total: 0
             },
             loading: false
@@ -113,11 +113,11 @@
             const params = this.isDepartment ? {
                 departLimsId: this.departId,
                 current: this.page.current,
-                size: this.page.pageSize
+                size: this.page.size
             } : {
                 userId: this.departId,
                 current: this.page.current,
-                size: this.page.pageSize
+                size: this.page.size
             }
             const { code, data } = await personPersonCommunicationAbilityPage(params)
             if (code == 200) {
@@ -147,9 +147,7 @@
                 cancelButtonText: '鍙栨秷',
                 type: 'warning'
             }).then(async () => {
-                let formData = new FormData()
-                formData.append('id', id)
-                const { code } = await deletePersonCommunicationAbility(formData)
+                const { code } = await deletePersonCommunicationAbility({ id })
                 if (code == 200) {
                     this.$message({
                         type: 'success',
diff --git a/src/views/CNAS/personnel/personnelInfo/Department/components/JobResponsibilities/index.vue b/src/views/CNAS/personnel/personnelInfo/Department/components/JobResponsibilities/index.vue
index ef784f1..790a82a 100644
--- a/src/views/CNAS/personnel/personnelInfo/Department/components/JobResponsibilities/index.vue
+++ b/src/views/CNAS/personnel/personnelInfo/Department/components/JobResponsibilities/index.vue
@@ -206,20 +206,19 @@
       this.$refs.form.validate((valid) => {
         if (valid === true || saveState !== '1submit') {
           // 缁欏綋鍓嶇幆鑺傝缃垱寤轰汉涓庢椂闂�
-          let user = JSON.parse(localStorage.getItem('user'));
           const dateTime = dateFormat(new Date());
           // 鑾峰彇褰撳墠鐜妭鎿嶄綔浜轰笌鏃ユ湡
           switch (this.currentStep) {
             case 0:
-              this.form.submittingOperator = user.name;
+              this.form.submittingOperator = this.$store.state.user.name;
               this.form.submittingDate = dateTime;
               break;
             case 1:
-              this.form.incumbentOperator = user.name;
+              this.form.incumbentOperator = this.$store.state.user.name;
               this.form.incumbentDate = dateTime;
               break;
             case 2:
-              this.form.supervisorOperator = user.name;
+              this.form.supervisorOperator = this.$store.state.user.name;
               this.form.supervisorDate = dateTime;
               break;
             default:
diff --git a/src/views/CNAS/personnel/personnelInfo/Department/components/Mandate/index.vue b/src/views/CNAS/personnel/personnelInfo/Department/components/Mandate/index.vue
index d6fa9a2..6456262 100644
--- a/src/views/CNAS/personnel/personnelInfo/Department/components/Mandate/index.vue
+++ b/src/views/CNAS/personnel/personnelInfo/Department/components/Mandate/index.vue
@@ -10,7 +10,7 @@
                 </div>
             </template>
             <template v-slot:table>
-                <limsTable :column="columnData" :height="'calc(100vh - 21em)'" :table-data="tableData"
+                <limsTable :column="columnData" :height="'calc(100vh - 22em)'" :table-data="tableData"
                     :table-loading="loading" style="margin-top: 18px; padding: 0 15px;" :page="page"
                     @pagination="pagination"></limsTable>
             </template>
@@ -27,7 +27,6 @@
     deletePersonPostAuthorizationRecord,
     exportPersonPostAuthorizationRecord
 } from '@/api/cnas/personnel/personnelInfo.js'
-import { nextTick } from "vue";
 
 export default {
     components: {
@@ -56,22 +55,28 @@
                     prop: 'id'
                 }, {
                     label: '璇佷功缂栧彿',
-                    prop: 'certificateNumber'
+                    prop: 'certificateNumber',
+                    width: '120px'
                 }, {
                     label: '琚换鑱屼汉鍛�',
-                    prop: 'userName'
+                    prop: 'userName',
+                    width: '120px'
                 }, {
                     label: '浠昏亴宀椾綅',
-                    prop: 'post'
+                    prop: 'post',
+                    width: '120px'
                 }, {
                     label: '鐞嗚鑰冭瘯鎴愮哗',
-                    prop: 'num1'
+                    prop: 'num1',
+                    width: '160px'
                 }, {
                     label: '鎿嶄綔鎶�鑳借�冭瘯鎴愮哗',
-                    prop: 'num2'
+                    prop: 'num2',
+                    width: '160px'
                 }, {
                     label: '鎿嶄綔鏃堕棿',
-                    prop: 'updateTime'
+                    prop: 'updateTime',
+                    width: '120px'
                 }, {
                     label: '澶囨敞',
                     prop: 'remarks',
@@ -80,6 +85,7 @@
                     label: '鎿嶄綔',
                     dataType: 'action',
                     width: 160,
+                    fixed: 'right',
                     operation: [
                         {
                             name: '缂栬緫',
@@ -107,7 +113,7 @@
             tableData: [],
             page: {
                 current: 1,
-                pageSize: 20,
+                size: 20,
                 total: 0
             },
             loading: false
@@ -126,15 +132,14 @@
          */
         async getTableData() {
             this.loading = true
-            await nextTick()
             const params = this.isDepartment ? {
                 departLimsId: this.departId,
                 current: this.page.current,
-                size: this.page.pageSize
+                size: this.page.size
             } : {
                 userId: this.departId,
                 current: this.page.current,
-                size: this.page.pageSize
+                size: this.page.size
             }
             const { code, data } = await PersonPostAuthorizationRecordPage(params)
             if (code == 200) {
@@ -167,9 +172,7 @@
          * @desc api鍒犻櫎
          */
         async delMandate(id) {
-            const formData = new FormData()
-            formData.append('id', id)
-            const { code, data } = await deletePersonPostAuthorizationRecord(formData)
+            const { code, data } = await deletePersonPostAuthorizationRecord({ id })
             if (code == 200) {
                 this.$message({ message: '鍒犻櫎鎴愬姛', type: 'success' })
                 this.getTableData()
diff --git a/src/views/CNAS/personnel/personnelInfo/Department/components/PersonnelCapacity/index.vue b/src/views/CNAS/personnel/personnelInfo/Department/components/PersonnelCapacity/index.vue
index 49dd10d..347cc33 100644
--- a/src/views/CNAS/personnel/personnelInfo/Department/components/PersonnelCapacity/index.vue
+++ b/src/views/CNAS/personnel/personnelInfo/Department/components/PersonnelCapacity/index.vue
@@ -294,7 +294,14 @@
         }, {
           label: '纭浜�',
           prop: 'confirmOperatingPersonnelId',
-          minWidth: '100'
+          minWidth: '100',
+          dataType: "tag",
+          formatData: (params) => {
+            let obj = this.responsibleOptions.find(m => m.id == params)
+            if (obj) {
+              return obj.name
+            }
+          },
         }, {
           label: '纭鏃ユ湡',
           prop: 'confirmDate',
@@ -383,6 +390,7 @@
     };
   },
   mounted() {
+    this.getUserList();
     this.getList(this.departId);
   },
   methods: {
@@ -446,7 +454,6 @@
       this.form = {
         jobResponsibilitiesTem: []
       }
-      this.getUserList();
       this.getResponsibilities();
 
     },
@@ -461,7 +468,6 @@
       } else {
         this.$set(this.form, 'jobResponsibilitiesTem', [])
       }
-      this.getUserList();
       this.getResponsibilities();
     },
     submitForm() {
diff --git a/src/views/CNAS/personnel/personnelInfo/Department/components/PersonnelTraining/index.vue b/src/views/CNAS/personnel/personnelInfo/Department/components/PersonnelTraining/index.vue
index add2c39..728e737 100644
--- a/src/views/CNAS/personnel/personnelInfo/Department/components/PersonnelTraining/index.vue
+++ b/src/views/CNAS/personnel/personnelInfo/Department/components/PersonnelTraining/index.vue
@@ -849,7 +849,7 @@
     handleClaimFun(claimAndClaim, rowId) {
       claimOfTrainingAndAssessmentRecords({
         claimAndClaim,
-        rowId
+        courseId: rowId
       }).then((res) => {
         this.getInDetailPlan(this.currentChangeRow.id);
       });
diff --git a/src/views/CNAS/personnel/personnelInfo/Department/components/Plan/index.vue b/src/views/CNAS/personnel/personnelInfo/Department/components/Plan/index.vue
index cc43a63..5725459 100644
--- a/src/views/CNAS/personnel/personnelInfo/Department/components/Plan/index.vue
+++ b/src/views/CNAS/personnel/personnelInfo/Department/components/Plan/index.vue
@@ -100,8 +100,8 @@
             },
             yearTableData: [],  // 骞磋〃
             yearPage: {
-                curent: 1,
-                pageSize: 20,
+                current: 1,
+                size: 20,
                 total: 0
             },
             yearColumnData: [
@@ -199,8 +199,8 @@
             },
             yearDetailTableData: [],    // 骞存槑缁嗚〃
             yearDeatilPage: {
-                curent: 1,
-                pageSize: 20,
+                current: 1,
+                size: 20,
                 total: 0
             },
             yearDetailColumnData: [
@@ -298,8 +298,8 @@
         async getYearPlanList() {
             this.yearLoading = true
             const { code, data } = await yearPlanList({
-                current: this.yearPage.curent,
-                size: this.yearPage.pageSize,
+                current: this.yearPage.current,
+                size: this.yearPage.size,
                 organizationPerson: this.yearForm.organizationPerson,
                 departId: this.departId
             })
@@ -357,8 +357,8 @@
             this.yearDetailLoading = true
             const { code, data } = await yearPlanDetailList({
                 planId: this.planId,
-                current: this.yearDeatilPage.curent,
-                size: this.yearDeatilPage.pageSize,
+                current: this.yearDeatilPage.current,
+                size: this.yearDeatilPage.size,
                 date: this.yearDetailForm.date,
                 project: this.yearDetailForm.project
             })
diff --git a/src/views/CNAS/personnel/personnelInfo/Department/components/Records/Add.vue b/src/views/CNAS/personnel/personnelInfo/Department/components/Records/Add.vue
index 0919282..1a2f8f8 100644
--- a/src/views/CNAS/personnel/personnelInfo/Department/components/Records/Add.vue
+++ b/src/views/CNAS/personnel/personnelInfo/Department/components/Records/Add.vue
@@ -190,7 +190,7 @@
             if (step == 1) {
                 let result = this.mainForm.superviseForm
                 result.currentState = this.active + 1
-                result.technicalDirectorDate = dateFormat(new Date(), 'YYYY-MM-DD HH:mm:ss')
+                result.technicalDirectorDate = dateFormat(new Date())
                 return result
             }
             if (step == 2) {
diff --git a/src/views/CNAS/personnel/personnelInfo/Department/components/Records/control/index.vue b/src/views/CNAS/personnel/personnelInfo/Department/components/Records/control/index.vue
index 325cf70..de58664 100644
--- a/src/views/CNAS/personnel/personnelInfo/Department/components/Records/control/index.vue
+++ b/src/views/CNAS/personnel/personnelInfo/Department/components/Records/control/index.vue
@@ -110,7 +110,7 @@
         }
     },
     mounted() {
-        this.isPermission = isPermission("isSubmit")
+        // this.isPermission = isPermission("isSubmit")
         console.log('鏉冮檺', this.isPermission);
     },
     methods: {
@@ -160,7 +160,7 @@
          */
         async getControlData(id) {
             const { code, data } = await personSupervisionControlSheetPage({ id })
-            if (code == 202) {
+            if (!data) {
                 this.controlType = '鏂板'
                 this.supervisionRecordId = id
                 this.active = 0
@@ -168,7 +168,7 @@
                 this.controlId = undefined
                 this.initForm()
             }
-            if (code == 200) {
+            if (data && code == 200) {
                 this.currentResponsible = data.currentResponsible
                 this.controlType = '缂栬緫'
                 this.controlId = data.id
@@ -207,6 +207,7 @@
             } else if (type == 'save') {
                 currentState = undefined
             }
+
             if (this.active == 0) {
                 let { discoveryApproach, ...condiFormRest } = this.mainForm.condiForm
                 let approcahStr = discoveryApproach.join(',')
@@ -266,10 +267,10 @@
          * @desc 鎻愪氦琛ㄥ崟
          */
         async submitForm(form) {
-            let user = JSON.parse(localStorage.getItem('user'));
+
             form.responsibleDepartmentId = Number(form.responsibleDepartmentId)
             const { code } = await addOrUpdatePersonSupervisionControl({
-                currentResponsible: user.name,
+                currentResponsible: this.$store.state.user.name,
                 ...form
             })
             if (this.controlType == '鏂板') {
diff --git a/src/views/CNAS/personnel/personnelInfo/Department/components/Records/dispose/index.vue b/src/views/CNAS/personnel/personnelInfo/Department/components/Records/dispose/index.vue
index 7dad14c..c806da4 100644
--- a/src/views/CNAS/personnel/personnelInfo/Department/components/Records/dispose/index.vue
+++ b/src/views/CNAS/personnel/personnelInfo/Department/components/Records/dispose/index.vue
@@ -94,7 +94,7 @@
         }
     },
     mounted() {
-        this.isPermission = isPermission("isSubmit")
+        // this.isPermission = isPermission("isSubmit")
         console.log('鏉冮檺', this.isPermission);
     },
     methods: {
@@ -118,14 +118,14 @@
          */
         async getProcessData(id) {
             const { code, data } = await personSupervisionProcessingPage({ id })
-            if (code == 202) {
+            if (!data) {
                 this.controlType = '鏂板'
                 this.supervisionRecordId = id
                 this.active = 0
                 this.pageStatus = 0
                 this.processId = undefined
             }
-            if (code == 200) {
+            if (data && code == 200) {
                 this.currentResponsible = data.currentResponsible
                 this.controlType = '缂栬緫'
                 this.supervisionRecordId = id
@@ -162,7 +162,7 @@
                 console.log('绗�1姝�', this.active, currentState)
                 let { factForm } = this.mainForm
                 this.submitForm({
-                    proposingDepartmentDate: dateFormat(new Date(), 'YYYY-MM-DD HH:mm:ss'),
+                    proposingDepartmentDate: this.$moment().format('YYYY-MM-DD HH:mm:ss'),
                     currentState: currentState,
                     ...factForm
                 })
@@ -171,7 +171,7 @@
                 console.log('绗�2姝�', this.active, currentState)
                 let { reasonForm } = this.mainForm
                 this.submitForm({
-                    causeAnalysisDate: dateFormat(new Date(), 'YYYY-MM-DD HH:mm:ss'),
+                    causeAnalysisDate: this.$moment().format('YYYY-MM-DD HH:mm:ss'),
                     currentState: currentState,
                     ...reasonForm
                 })
@@ -181,7 +181,7 @@
                 let { measureForm } = this.mainForm
                 let { requestDepartmentConfirmation, ...measureFormRest } = measureForm
                 this.submitForm({
-                    correctiveActionDate: dateFormat(new Date(), 'YYYY-MM-DD HH:mm:ss'),
+                    correctiveActionDate: this.$moment().format('YYYY-MM-DD HH:mm:ss'),
                     currentState: currentState,
                     requestDepartmentConfirmation: requestDepartmentConfirmation ? 1 : 2,
                     ...measureFormRest
@@ -191,7 +191,7 @@
                 console.log('绗�4姝�', this.active, currentState)
                 let { resultForm } = this.mainForm
                 this.submitForm({
-                    verificationDepartmentDate: dateFormat(new Date(), 'YYYY-MM-DD HH:mm:ss'),
+                    verificationDepartmentDate: this.$moment().format('YYYY-MM-DD HH:mm:ss'),
                     currentState: currentState,
                     ...resultForm
                 })
diff --git a/src/views/CNAS/personnel/personnelInfo/Department/components/Records/index.vue b/src/views/CNAS/personnel/personnelInfo/Department/components/Records/index.vue
index 413d1a2..c34c01c 100644
--- a/src/views/CNAS/personnel/personnelInfo/Department/components/Records/index.vue
+++ b/src/views/CNAS/personnel/personnelInfo/Department/components/Records/index.vue
@@ -17,7 +17,7 @@
                 </template>
                 <template v-slot:table>
                     <limsTable :column="superviseColumnData" :handleSelectionChange="handleSelectionChange"
-                        :height="'calc(100vh - 19em)'" :isSelection="true" :table-data="superviseTableData"
+                        :height="'calc(100vh - 20em)'" :isSelection="true" :table-data="superviseTableData"
                         :table-loading="superviseLoading" rowKey="id" style="margin-top: 18px; padding: 0 15px;"
                         :page="page" @pagination="pagination">
                         <div slot="action" slot-scope="scope">
@@ -95,7 +95,7 @@
             loading: false,
             page: {
                 current: 1,
-                pageSize: 20,
+                size: 20,
                 total: 0
             },
             // 鐩戠潱璁板綍
@@ -245,7 +245,7 @@
         },
         pagination({ page, limit }) {
             this.page.current = page;
-            this.page.pageSize = limit;
+            this.page.size = limit;
             this.getTableData();
         },
         // 鑾峰彇鐩戠潱璁板綍
@@ -255,7 +255,7 @@
                 departLimsId: this.isDepartment ? this.departId : null,
                 userId: this.isDepartment ? null : this.departId,
                 current: this.page.current,
-                size: this.page.pageSize
+                size: this.page.size
             })
             if (code == 200) {
                 this.superviseTableData = data.records
@@ -325,10 +325,10 @@
                     cancelButtonText: '鍙栨秷',
                     type: 'warning'
                 })
-                .then(() => {
+                .then(async () => {
                     console.log(this.multipleSelection)
-                    let ids = this.multipleSelection.map((item) => item.id)
-                    const code = this.delTableData(ids)
+                    let ids = this.multipleSelection.map((item) => item.id).join(',')
+                    const code = await this.delTableData(ids)
                     this.$message({
                         type: code == 200 ? 'success' : 'error',
                         message: code == 200 ? '鍒犻櫎鎴愬姛锛�' : '鍒犻櫎澶辫触锛�'
@@ -338,11 +338,7 @@
         },
         // 鍒犻櫎api
         async delTableData(ids) {
-            const { code } = await this.$axios({
-                method: 'delete',
-                url: deletePersonSupervisionRecord,
-                data: ids
-            })
+            const { code } = await deletePersonSupervisionRecord({ ids })
             return code
         },
         // 琛岃儗鏅壊
diff --git a/src/views/CNAS/personnel/personnelInfo/Department/components/TrainingRecord/index.vue b/src/views/CNAS/personnel/personnelInfo/Department/components/TrainingRecord/index.vue
index 4f228e4..b7eb0bf 100644
--- a/src/views/CNAS/personnel/personnelInfo/Department/components/TrainingRecord/index.vue
+++ b/src/views/CNAS/personnel/personnelInfo/Department/components/TrainingRecord/index.vue
@@ -16,7 +16,7 @@
             </div>
           </template>
           <template v-slot:table>
-            <limsTable :column="trainingColumn" :currentChange="currentChange" :height="'calc(100vh - 18em)'"
+            <limsTable :column="trainingColumn" :currentChange="currentChange" :height="'calc(100vh - 20em)'"
               :highlightCurrentRow="true" :table-data="trainingTableData" :table-loading="trainingLoading"
               style="padding: 0 15px;" :page="trainingPagination" @pagination="trainingPaginationMethod">
             </limsTable>
diff --git a/src/views/CNAS/personnel/personnelInfo/Department/components/rewardPunishmentRecord/index.vue b/src/views/CNAS/personnel/personnelInfo/Department/components/rewardPunishmentRecord/index.vue
index a9e1122..47c8291 100644
--- a/src/views/CNAS/personnel/personnelInfo/Department/components/rewardPunishmentRecord/index.vue
+++ b/src/views/CNAS/personnel/personnelInfo/Department/components/rewardPunishmentRecord/index.vue
@@ -108,7 +108,9 @@
 import {
   deleteRewardPunishment,
   addOrUpdateRewardPunishment,
-  rewardPunishmentPage
+  rewardPunishmentPage,
+  selectUserList,
+  rewardPunishmentExport
 } from '@/api/cnas/personnel/personnelInfo.js'
 export default {
   props: {
@@ -212,56 +214,23 @@
     },
     handleDown() {
       this.outLoading = true
-      this.$axios.post(this.$api.deviceCheck.rewardPunishmentExport, {
+      rewardPunishmentExport({
         userId: this.isDepartment ? '' : this.departId,
         departmentId: this.isDepartment ? this.departId : '',
         userName: this.search.userName,
         startTime: this.search.searchTimeList && this.search.searchTimeList[0],
         endTime: this.search.searchTimeList && this.search.searchTimeList[1]
-      }, { responseType: 'blob' }).then(res => {
+      }).then(res => {
         this.outLoading = false
         const blob = new Blob([res], {
           type: 'application/force-download'
         })
-        //灏咮lob 瀵硅薄杞崲鎴愬瓧绗︿覆
-        let reader = new FileReader();
-        reader.readAsText(blob, 'utf-8');
-        reader.onload = () => {
-          try {
-            let result = JSON.parse(reader.result);
-            if (result.message) {
-              this.$message.error(result.message);
-            } else {
-              // 鍒涘缓涓�涓秴閾炬帴锛屽皢鏂囦欢娴佽祴杩涘幓锛岀劧鍚庡疄鐜拌繖涓秴閾炬帴鐨勫崟鍑讳簨浠�
-              const elink = document.createElement('a')
-              elink.download = decodeURI('濂栨儵璁板綍' + '.xlsx')
-              elink.style.display = 'none'
-              elink.href = URL.createObjectURL(blob)
-              document.body.appendChild(elink)
-              elink.click();
-              URL.revokeObjectURL(elink.href) // 閲婃斁URL 瀵硅薄
-              document.body.removeChild(elink)
-              this.$message.success('瀵煎嚭鎴愬姛')
-            }
-          } catch (err) {
-            console.log(err);
-            // 鍒涘缓涓�涓秴閾炬帴锛屽皢鏂囦欢娴佽祴杩涘幓锛岀劧鍚庡疄鐜拌繖涓秴閾炬帴鐨勫崟鍑讳簨浠�
-            const elink = document.createElement('a')
-            elink.download = decodeURI('濂栨儵璁板綍' + '.xlsx')
-            elink.style.display = 'none'
-            elink.href = URL.createObjectURL(blob)
-            document.body.appendChild(elink)
-            elink.click();
-            URL.revokeObjectURL(elink.href) // 閲婃斁URL 瀵硅薄
-            document.body.removeChild(elink)
-            this.$message.success('瀵煎嚭鎴愬姛')
-          }
-        }
+        this.$download.saveAs(blob, '濂栨儵璁板綍' + '.xlsx')
       })
     },
     // 鑾峰彇璐熻矗浜轰俊鎭帴鍙�
     getUserList() {
-      this.$axios.get(this.$api.deviceScope.selectUserList).then(res => {
+      selectUserList().then(res => {
         if (res.code == 200) {
           this.responsibleOptions = res.data
         }
diff --git a/src/views/CNAS/resourceDemand/device/component/borrow.vue b/src/views/CNAS/resourceDemand/device/component/borrow.vue
index fd18aba..3f229d5 100644
--- a/src/views/CNAS/resourceDemand/device/component/borrow.vue
+++ b/src/views/CNAS/resourceDemand/device/component/borrow.vue
@@ -58,7 +58,7 @@
               </el-col>
               <el-col :span="12">
                 <el-form-item label="鍊熺敤浜鸿仈绯绘柟寮忥細" prop="borrowerContactInformation" label-width="150px">
-                  <el-input v-model="form.borrowerContactInformation" size="small"></el-input>
+                  <el-input v-model="form.borrowerContactInformation" :disabled="currentStep > 0" size="small"></el-input>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
@@ -341,7 +341,7 @@
     // 鐩戝惉鐐瑰嚮el-tree鐨勬暟鎹紝杩涜鏁版嵁鍒锋柊
     clickNodeVal(newVal) {
       if (newVal.value) {
-        thisqueryParams.deviceId = this.clickNodeVal.value
+        this.queryParams.deviceId = this.clickNodeVal.value
         this.refreshTable()
       }
     },
diff --git a/src/views/CNAS/resourceDemand/device/component/fault.vue b/src/views/CNAS/resourceDemand/device/component/fault.vue
index c509165..b50dc6a 100644
--- a/src/views/CNAS/resourceDemand/device/component/fault.vue
+++ b/src/views/CNAS/resourceDemand/device/component/fault.vue
@@ -525,7 +525,7 @@
       exportRewardAndPunishmentRecords({deviceId: this.clickNodeVal.value}).then(res => {
         this.outLoading = false
         const blob = new Blob([res], { type: 'application/octet-stream' });
-        this.$dowmload.saveAs(blob, '璁惧鏁呴殰琛�.xlsx')
+        this.$download.saveAs(blob, '璁惧鏁呴殰琛�.xlsx')
       })
     },
     selectAllByOne(row) {
diff --git a/src/views/CNAS/resourceDemand/device/component/maintenance.vue b/src/views/CNAS/resourceDemand/device/component/maintenance.vue
index c875750..243614f 100644
--- a/src/views/CNAS/resourceDemand/device/component/maintenance.vue
+++ b/src/views/CNAS/resourceDemand/device/component/maintenance.vue
@@ -68,12 +68,14 @@
           <el-col :span="24">
             <el-form-item :rules="[{ required: true, message: '璇疯緭鍏ョ淮鎶ゅ唴瀹�', trigger: 'blur' }]" label="缁存姢鍐呭:"
                           prop="content">
-              <el-input v-model="formData.content" placeholder="璇疯緭鍏�" size="small" type="textarea"></el-input>
+              <el-input v-model="formData.content" :disabled="!this.editMode" placeholder="璇疯緭鍏�" size="small" type="textarea"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="12">
             <el-form-item :rules="[{ required: true, message: '璇烽�夋嫨缁存姢鏃堕棿', trigger: 'blur' }]" label="缁存姢鏃堕棿:" prop="date">
-              <el-date-picker v-model="formData.date" format="yyyy-MM-dd" placeholder="閫夋嫨鏃ユ湡" size="small"
+              <el-date-picker v-model="formData.date" format="yyyy-MM-dd" placeholder="閫夋嫨鏃ユ湡"
+                              size="small"
+                              :disabled="!this.editMode"
                               style="width:100%" type="date" value-format="yyyy-MM-dd">
               </el-date-picker>
             </el-form-item>
@@ -92,6 +94,7 @@
                           prop="nextDate">
               <el-date-picker
                   v-model="formData.nextDate"
+                  :disabled="!this.editMode"
                   :picker-options="{ disabledDate: this.disabledDate }"
                   format="yyyy-MM-dd"
                   placeholder="閫夋嫨鏃ユ湡" size="small"
@@ -103,12 +106,12 @@
           </el-col>
           <el-col :span="12">
             <el-form-item :rules="[{ required: true, message: '璇疯緭鍏ョ淮鎶や汉', trigger: 'blur' }]" label="缁存姢浜�:" prop="name">
-              <el-input v-model="formData.name" clearable placeholder="璇疯緭鍏�" size="small"></el-input>
+              <el-input v-model="formData.name" clearable placeholder="璇疯緭鍏�" :disabled="!this.editMode" size="small"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="24">
             <el-form-item label="澶囨敞:">
-              <el-input v-model="formData.comments" placeholder="璇疯緭鍏�" size="small" type="textarea"></el-input>
+              <el-input v-model="formData.comments" placeholder="璇疯緭鍏�" :disabled="!this.editMode" size="small" type="textarea"></el-input>
             </el-form-item>
           </el-col>
         </el-row>
@@ -123,12 +126,12 @@
 
 <script>
 import {
-  exportMaintenanceRecord,
-  deleteDeviceMaintenance,
-  selectDeviceByCode,
-  addDeviceMaintenance,
-  getDeviceMaintenancePage, deviceMaintenanceExport,
-} from '@/api/cnas/resourceDemand/device.js'
+  addMaintain,
+  deleteMaintain,
+  deviceMaintenanceExport, getDeviceMaintenancePage,
+  selectDeviceByCode
+} from "@/api/cnas/resourceDemand/device";
+
 export default {
   props: {
     clickNodeVal: {
@@ -160,13 +163,22 @@
   },
   methods: {
     //涓嬫缁存姢鏃ユ湡:绂佺敤鍦ㄧ淮鎶ゆ棩鏈熷墠鐨勬棩鏈�
-    disabledDate(time) {
+    disabledDate(time){
       let selectDate = this.formData.date
-      if (selectDate) {
+      if(selectDate){
         let oldDate = new Date(selectDate)
         return time <= oldDate.getTime()
       }
       return false
+    },
+    //瀵煎嚭
+    handleDown() {
+      this.outLoading = true
+      deviceMaintenanceExport({deviceId: this.clickNodeVal.value}).then(res => {
+        this.outLoading = false
+        const blob = new Blob([res], { type: 'application/octet-stream' });
+        this.$download.saveAs(blob, '璁惧缁存姢.xlsx')
+      })
     },
     handleSizeChange(val) {
       this.search.size = val
@@ -182,15 +194,6 @@
       this.dialogVisible = true;
       this.formData = row;
     },
-    // 瀵煎嚭
-    handleDownOne() {
-      this.outLoading = true
-      deviceMaintenanceExport({ deviceId: this.clickNodeVal.value }).then(res => {
-        this.outLoading = false
-        const blob = new Blob([res], { type: 'application/octet-stream' });
-        this.$download.saveAs(blob, '璁惧缁存姢.xlsx')
-      })
-    },
     //鎿嶄綔璇︽儏鍒犻櫎
     handleDeleteClick(index, row) {
       this.$confirm('姝ゆ搷浣滃皢姘镐箙鍒犻櫎璇ユ枃浠�, 鏄惁缁х画?', '鎻愮ず', {
@@ -198,8 +201,8 @@
         cancelButtonText: '鍙栨秷',
         type: 'warning'
       }).then(() => {
-        deleteDeviceMaintenance({ id: row.id }).then(res => {
-          this.getAllMessage(this.clickNodeVal.value)
+        deleteMaintain({id: row.id}).then(res => {
+          this.MaintainParam.splice(index, 1);
           this.$message({
             type: 'success',
             message: '鍒犻櫎鎴愬姛!'
@@ -214,7 +217,7 @@
     },
     //鐐瑰嚮鍚庡彲缂栬緫
     add() {
-      selectDeviceByCode({ id: this.clickNodeVal.value }).then(res => {
+      selectDeviceByCode({id: this.clickNodeVal.value}).then(res => {
         this.formData.deviceName = res.data.deviceName
         this.formData.managementNumber = res.data.managementNumber
         this.$nextTick(() => {
@@ -228,15 +231,15 @@
       this.$refs['form'].validate((valid) => {
         if (valid) {
           this.formData.deviceId = this.clickNodeVal.value;
-          addDeviceMaintenance(this.formData).then(res => {
+          addMaintain(this.formData).then(res => {
             if (res.code == 200) {
               this.$message.success('娣诲姞鎴愬姛');
-              this.getAllMessage(this.clickNodeVal.value)
+              // this.MaintainParam.push(this.formData)
               this.dialogVisible = false;
               this.formData = {}; //娓呯┖琛ㄥ崟
+              this.getAllMessage(this.clickNodeVal.value)
             }
           })
-          // this.MaintainParam.push(this.formData)
         }
       })
     },
@@ -251,10 +254,13 @@
     },
     //鑾峰彇琛ㄥ崟璁惧缁存姢淇℃伅
     getAllMessage(deviceId) {
-      getDeviceMaintenancePage({
-        deviceId,
-        ...this.search
-      }).then(res => {
+      const params = {
+        deviceId: deviceId,
+        size: this.search.size,
+        current: this.search.current,
+        deviceNumber: this.search.deviceNumber,
+      }
+      getDeviceMaintenancePage(params).then(res => {
         if (res.code == 200) {
           this.MaintainParam = res.data.records
           this.search.total = res.data.total
@@ -303,10 +309,10 @@
 
 .search {
   background-color: #fff;
+  height: 40px;
   display: flex;
   align-items: center;
   position: relative;
-  margin-top: 10px;
 }
 
 .search_thing {
@@ -339,7 +345,4 @@
   transform: translate(0, -50%);
 }
 
-.form .search_label {
-  width: 120px;
-}
 </style>
diff --git a/src/views/CNAS/resourceDemand/device/component/record.vue b/src/views/CNAS/resourceDemand/device/component/record.vue
index d4eec0c..6e05311 100644
--- a/src/views/CNAS/resourceDemand/device/component/record.vue
+++ b/src/views/CNAS/resourceDemand/device/component/record.vue
@@ -112,7 +112,7 @@
                         type="textarea"></el-input>
             </el-form-item>
           </el-col>
-          <el-col :span="12">
+          <el-col :span="24">
             <el-form-item :rules="[{ required: true, message: '璇疯緭鍏ヤ娇鐢ㄦ棩鏈�', trigger: 'blur' }]" label="浣跨敤鏃ユ湡:"
                           prop="useDateList">
 
@@ -125,24 +125,13 @@
                   start-placeholder="寮�濮嬫棩鏈�"
                   end-placeholder="缁撴潫鏃ユ湡">
               </el-date-picker>
-              <!-- <el-date-picker
-                v-model="form.useDateList" :disabled="isShow" end-placeholder="缁撴潫鏃ユ湡" format="yyyy-MM-dd HH:mm:ss"
-                size="small"
-                start-placeholder="寮�濮嬫棩鏈�"
-                style="width:100%"
-                type="datetimerange"
-                value-format="yyyy-MM-dd HH:mm:ss">
-              </el-date-picker> -->
             </el-form-item>
           </el-col>
           <el-col :span="12">
-            <el-form-item :rules="[{ required: true, message: '璇疯緭鍏ヤ娇鐢ㄤ汉', trigger: 'change' }]" label="浣跨敤浜�:"
+            <el-form-item :rules="[{ required: true, message: '璇疯緭鍏ヤ娇鐢ㄤ汉', trigger: 'blur' }]"
+                          label="浣跨敤浜�:"
                           prop="usePerson">
               <el-input v-model="form.usePerson" :disabled="isShow" size="small" style="width:100%"></el-input>
-              <!-- <el-select v-model="form.usePerson" placeholder="璇烽�夋嫨" :disabled="isShow" size="small" style="width:100%">
-                <el-option v-for="item in responsiblePersonList" :key="item.name" :label="item.name" :value="item.id">
-                </el-option>
-              </el-select> -->
             </el-form-item>
           </el-col>
           <el-col :span="24">
@@ -162,11 +151,9 @@
 <script>
 import {
   deviceRecordPage,
-  exportUseRecord,
   selectDeviceByCode,
   saveDeviceRecord,
-  updateDeviceRecord,
-  deleteDeviceRecord,
+  deleteDeviceRecord, deviceRecordExport,
 } from '@/api/cnas/resourceDemand/device.js'
 import { selectUserCondition } from "@/api/system/user";
 export default {
@@ -224,7 +211,6 @@
         remark: '',
       },
       dialogVisible: false,
-      operationType: '',
       formParamList: [],
     }
   },
@@ -264,25 +250,20 @@
         }
       })
     },
-    // 鎵撳紑瀵煎嚭寮规閫夋嫨缂栧埗浜恒�佹壒鍑嗕汉
-    openHandleOut() {
-      this.ratifyDialog = true
-    },
     //瀵煎嚭
     handleDown() {
       this.outLoading = true
-      exportUseRecord({
+      deviceRecordExport({
         deviceId: this.clickNodeVal.value,
         exportDate: this.exportDate
       }).then(res => {
         this.outLoading = false
         const blob = new Blob([res], { type: 'application/octet-stream' });
-        this.$download.saveAs(blob, '璁惧浣跨敤璁板綍.doc')
+        this.$download.saveAs(blob, '璁惧浣跨敤璁板綍.xlsx')
       })
     },
     //鏂板缓
     openAdd() {
-      this.operationType = 'add'
       this.getUserList()
       selectDeviceByCode({ id: this.clickNodeVal.value }).then(res => {
         this.form.deviceName = res.data.deviceName
@@ -292,12 +273,6 @@
         })
       });
     },
-    usePersonName(value) {
-      const index = this.userList.findIndex(item => item.id === value)
-      if (index > -1) {
-        this.form.usePerson = this.userList[index].name
-      }
-    },
     //纭娣诲姞璁板綍
     saveRecord() {
       this.$refs.form.validate((valid) => {
@@ -305,33 +280,22 @@
           this.form.useStartDate = this.form.useDateList[0]
           this.form.useEndDate = this.form.useDateList[1]
           this.form.deviceId = this.clickNodeVal.value
-          if (this.operationType === 'add') {
-            saveDeviceRecord(this.form).then(res => {
-              if (res.code == 200) {
-                this.$message.success('鏂板鎴愬姛')
-                this.getTableList(this.clickNodeVal.value)
-                this.dialogVisible = false
-              }
-            })
-            this.dialogVisible = false;
-          } else {
-            updateDeviceRecord(this.form).then(res => {
-              if (res.code == 200) {
-                this.$message.success('淇敼鎴愬姛')
-                this.getTableList(this.clickNodeVal.value)
-                this.dialogVisible = false
-              }
-            })
-            this.dialogVisible = false;
-          }
+          saveDeviceRecord(this.form).then(res => {
+            if (res.code == 200) {
+              this.$message.success('鏂板鎴愬姛')
+              this.getTableList(this.clickNodeVal.value)
+              this.dialogVisible = false
+            }
+          })
+          this.dialogVisible = false;
         }
       });
     },
     //鏌ョ湅璇︽儏
-    showDetailsDialog(type, row) {
-      this.operationType = type;
+    showDetailsDialog(row) {
       console.log(row)
       this.dialogVisible = true;
+      this.isShow = true;
       this.getUserList()
       this.form = row;
       let list = []
@@ -459,7 +423,7 @@
 }
 
 .search_label {
-  width: 140px;
+  width: 74px;
   font-size: 14px;
   text-align: right;
   margin-right: 10px;
diff --git a/src/views/CNAS/resourceDemand/device/component/state.vue b/src/views/CNAS/resourceDemand/device/component/state.vue
index e7467ce..6099084 100644
--- a/src/views/CNAS/resourceDemand/device/component/state.vue
+++ b/src/views/CNAS/resourceDemand/device/component/state.vue
@@ -43,10 +43,9 @@
         <el-table-column label="褰撳墠鐘舵��" min-width="130" prop="currentState"></el-table-column>
         <el-table-column label="褰撳墠璐d换浜�" min-width="180" prop="currentResponsible"></el-table-column>
         <!-- 鎿嶄綔鎸夐挳 -->
-        <el-table-column fixed="right" label="鎿嶄綔" min-width="150">
+        <el-table-column fixed="right" label="鎿嶄綔" min-width="120" align="center">
           <template #default="{ row }">
             <el-button size="small" type="text" @click="handleViewClick(row)">鏌ョ湅</el-button>
-            <el-button size="small" type="text" @click="handleDownOne(row)">瀵煎嚭</el-button>
             <el-button size="small" type="text" @click="handleDeleteClick(row)">鍒犻櫎</el-button>
           </template>
         </el-table-column>
@@ -240,7 +239,6 @@
 import {
   saveDeviceState,
   selectDeviceByCode,
-  exportDeviceStatus,
   deleteDeviceState,
   deviceStateExport,
   getDeviceStatePage,
@@ -422,15 +420,6 @@
         this.$refs['form'].clearValidate()
       })
       this.dialogVisible = true
-    },
-    // 瀵煎嚭
-    handleDownOne(row) {
-      this.outLoading = true
-      exportDeviceStatus({ deviceId: row.deviceId, processNumber: row.processNumber }).then(res => {
-        this.outLoading = false
-        const blob = new Blob([res], { type: 'application/octet-stream' });
-        this.$download.saveAs(blob, '璁惧鍋�/鍚敤.doc')
-      })
     },
     // 鍒犻櫎
     handleDeleteClick(row) {
diff --git a/src/views/business/inspectionOrder/add.vue b/src/views/business/inspectionOrder/add.vue
index ade64a8..c46e5fa 100644
--- a/src/views/business/inspectionOrder/add.vue
+++ b/src/views/business/inspectionOrder/add.vue
@@ -1,9 +1,6 @@
 <template>
   <div class="bg-1">
-    <div
-      v-show="!configShow && !equipConfigShow && !cableConfigShow"
-      style="margin: 5px 15px"
-    >
+    <div style="margin: 5px 15px" v-show="!configShow && !equipConfigShow">
       <el-row class="title">
         <el-col :span="6"
           >濮旀墭鍗曚俊鎭�&nbsp;&nbsp;&nbsp;鎬讳环锛�<span style="color: #3a7bfa"
@@ -80,17 +77,14 @@
             v-show="active == 3 && addObj.companyId"
             >閫氳繃</el-button
           >
-          <el-button size="medium" @click="$router.go(-1)">
+          <el-button size="medium" @click="goBack">
             <span style="color: #3a7bfa">杩斿洖</span>
           </el-button>
         </el-col>
       </el-row>
     </div>
-    <basic-container>
-      <div
-        class="search"
-        v-show="!configShow && !equipConfigShow && !cableConfigShow"
-      >
+    <basic-container v-show="!configShow && !equipConfigShow">
+      <div class="search">
         <el-form
           :model="addObj"
           :rules="formRule"
@@ -395,7 +389,7 @@
     </basic-container>
     <div
       class="search"
-      v-if="active == 1"
+      v-if="active == 1 && !configShow && !equipConfigShow"
       style="display: flex; background: transparent"
     >
       <div style="display: flex; align-items: center">
@@ -443,7 +437,7 @@
         </div>
       </div>
     </div>
-    <basic-container>
+    <basic-container v-show="!configShow && !equipConfigShow">
       <div style="height: auto">
         <el-table
           class="el-table sampleTable"
@@ -909,104 +903,103 @@
     <el-dialog
       title="妫�楠屼笅鍙�"
       :visible.sync="issuedDialogVisible"
-      width="400px"
+      width="450px"
       :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-row style="margin-bottom: 20px">
+          <el-col :span="8" style="text-align: right">
+            <div><span class="required-span">* </span>绾﹀畾鏃堕棿锛�</div>
           </el-col>
-          <el-col class="search_thing" :span="22">
-            <div class="search_label">
+          <el-col :span="16">
+            <el-date-picker
+              size="small"
+              v-model="distributeData.appointed"
+              :picker-options="{ disabledDate: this.disabledDate }"
+              type="date"
+              placeholder="閫夋嫨鏃ユ湡"
+              value-format="yyyy-MM-dd"
+              style="width: 100%"
+              format="yyyy-MM-dd"
+            >
+            </el-date-picker>
+          </el-col>
+        </el-row>
+        <el-row style="margin-bottom: 20px">
+          <el-col :span="8" style="text-align: right">
+            <div>
               <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-col :span="16">
+            <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="item in sonLaboratoryList"
-                  :key="item.value"
-                  :label="item.label"
-                  :value="item.value"
+                  v-for="op in personList[item]"
+                  :key="op.id"
+                  :label="op.name"
+                  :value="op.id"
                 >
                 </el-option>
-              </el-select>
-            </div>
+              </el-option-group>
+            </el-select>
           </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-row>
+        <el-row
+          v-if="distributeData.userId.length > 0"
+          style="margin-bottom: 20px"
+        >
+          <el-col :span="8" style="text-align: right">
+            <div><span class="required-span">* </span>璇曢獙瀹わ細</div>
+          </el-col>
+          <el-col :span="16">
+            <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 label="鏄�" :value="true"></el-option>
-                <el-option label="鍚�" :value="false"></el-option>
-              </el-select>
-            </div>
+              </el-option>
+            </el-select>
+          </el-col>
+        </el-row>
+        <el-row style="margin-bottom: 20px">
+          <el-col :span="8" style="text-align: right">
+            <div><span class="required-span">* </span>鍒涘缓濮旀墭鍗曪細</div>
+          </el-col>
+          <el-col :span="16">
+            <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>
           </el-col>
         </el-row>
       </div>
@@ -1022,17 +1015,15 @@
     <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 :span="8" style="text-align: right">
+            <div><span class="required-span">* </span>涓嶉�氳繃鍘熷洜锛�</div>
+          </el-col>
+          <el-col :span="16">
+            <el-input
+              v-model="tell"
+              size="small"
+              placeholder="璇疯緭鍏ヤ笉閫氳繃鍘熷洜"
+            ></el-input>
           </el-col>
         </el-row>
       </div>
@@ -1055,7 +1046,7 @@
       :active="active"
       :inspectionItemST="inspectionItemST"
     />
-    <fiberOpticConfigTwo
+    <fiberOpticConfigReadOnly
       :currentId="currentId"
       v-if="configShow && examine == 1"
       :active="active"
@@ -1065,7 +1056,6 @@
       v-if="equipConfigShow"
       :active="active"
     />
-    <cableConfig v-if="cableConfigShow" :active="active" />
     <!--    鍗曢�夌壒娈婂�煎鐞嗘-->
     <el-dialog
       title="妫�娴嬪埌鐗规畩椤癸紝璇蜂綔鍑轰互涓嬮�夋嫨"
@@ -1572,7 +1562,6 @@
 import fiberOpticConfig from "./fiberoptic-config.vue";
 import fiberOpticConfigReadOnly from "./fiberoptic-config-readonly.vue";
 import equipConfig from "./equip-config.vue";
-import cableConfig from "./cable-config.vue";
 import getLodop from "@/utils/lodop";
 import { bigEval } from "@/utils/bigEval";
 import { getDicts } from "@/api/system/dict/data";
@@ -1581,7 +1570,6 @@
     fiberOpticConfig,
     fiberOpticConfigReadOnly,
     equipConfig,
-    cableConfig,
   },
   computed: {
     ...mapGetters(["nickName", "loginUserInfo"]),
@@ -1593,14 +1581,6 @@
       examine: 0,
       active: 0,
       currentId: 0,
-      pickerOptions: {
-        disabledDate(time) {
-          // 褰撳墠鏃堕棿鍔犱笂涓夊ぉ鐨勬椂闂存埑
-          const threeDaysLater = Date.now() + 24 * 60 * 60 * 1000;
-          // 绂佺敤涓夊ぉ鍚庝箣鍓嶇殑鎵�鏈夋棩鏈�
-          return time.getTime() < threeDaysLater;
-        },
-      },
       fiberLoss: [],
       qrDataList: [],
       isFocus: false,
@@ -1769,7 +1749,6 @@
       bsm1Dia: false,
       bsm1DiaAll: false,
       equipConfigShow: false,
-      cableConfigShow: false,
       bsm2: false,
       bsm2Val: null,
       bsm2Dia: false,
@@ -1887,7 +1866,7 @@
     },
   },
   created() {
-    this.active = this.$route.query.active;
+    this.active = Number(this.$route.query.active);
     this.currentId = this.$route.query.currentId;
     this.examine = this.$route.query.examine;
     this.isReview = this.$route.query.isReview;
@@ -1934,6 +1913,21 @@
     }
   },
   methods: {
+    goBack() {
+      let path = this.$route.query.isPlan
+        ? "/business/inspectionTask"
+        : "/business/inspectionOrder";
+      this.$router.push(path);
+    },
+    //涓嬫鏍告煡鏃ユ湡:绂佺敤鍦ㄦ牳鏌ユ棩鏈熷墠鐨勬棩鏈�
+    disabledDate(time) {
+      if (time) {
+        let now = new Date();
+        now.setHours(0, 0, 0, 0);
+        return time < now.getTime();
+      }
+      return false;
+    },
     changeType(type) {
       this.hasSendUrgentOrder(type)
         .then((res) => {
@@ -3324,6 +3318,20 @@
           b.id = null;
           delete b.bsmRow;
         });
+        if (a.bushing && a.bushing.length > 0) {
+          a.bushing.forEach((b) => {
+            b.fiber.forEach((c) => {
+              c.productList.forEach((d) => {
+                d.id = null;
+              });
+            });
+            b.fibers.forEach((c) => {
+              c.productList.forEach((d) => {
+                d.id = null;
+              });
+            });
+          });
+        }
       });
       this.editTable.forEach((item) => {
         sampleList.forEach((a) => {
@@ -3358,7 +3366,7 @@
           if (res.code === 200) {
             this.$message.success("宸叉彁浜�");
             this.bsm3Dia = false;
-            this.$router.go(-1);
+            this.goBack();
           }
           this.saveLoad = false;
         })
@@ -3369,7 +3377,6 @@
     },
     upInsOrderOfState(state) {
       if (state == 1) {
-        //this.saveLoad = true
         this.issuedDialogVisible = true;
         selectOrderManDay({
           id: this.currentId,
@@ -3378,7 +3385,6 @@
             if (res.code === 200) {
               this.distributeData.orderId = this.currentId;
               this.distributeData.appointed = res.data;
-              console.log("绾﹀畾鏃堕棿", this.distributeData.appointed);
             }
           })
           .catch((error) => {
@@ -3530,7 +3536,7 @@
                 this.$message.success("鎻愪氦鎴愬姛");
                 this.issuedDialogVisible = false;
                 this.upLoad = false;
-                this.$router.go(-1);
+                this.goBack();
                 //瀹℃牳閫氳繃鍚庯紝鑷姩鎵撳嵃浜岀淮鐮�
                 //TODO: 鐢靛姏璇曢獙瀹ゆ殏鏃朵笉鐢ㄦ爣绛炬墦鍗�
                 if (
@@ -3808,7 +3814,6 @@
       val.forEach((a) => {
         this.productIds.push(a.id);
       });
-      console.log("selectChange", this.sampleList);
     },
     rowClick(row, column, event) {
       this.currentMethod = row;
@@ -4622,7 +4627,7 @@
             this.tell = "";
             this.$message.success("鎻愪氦鎴愬姛");
             this.issuedDialogVisible = false;
-            this.$router.go(-1);
+            this.goBack();
           }
         })
         .catch((error) => {
@@ -4695,20 +4700,6 @@
           return;
         }
         this.equipConfigShow = true;
-      } else {
-        if (this.sampleId === null) {
-          this.$message.error("鏈�変腑鏍峰搧");
-          return;
-        }
-      }
-    },
-    openCableConfig() {
-      if (this.active === 1) {
-        if (this.sampleIds.length === 0) {
-          this.$message.error("鏈�夋嫨鏍峰搧");
-          return;
-        }
-        this.cableConfigShow = true;
       } else {
         if (this.sampleId === null) {
           this.$message.error("鏈�変腑鏍峰搧");
diff --git a/src/views/business/inspectionOrder/cable-config.vue b/src/views/business/inspectionOrder/cable-config.vue
deleted file mode 100644
index 575fc95..0000000
--- a/src/views/business/inspectionOrder/cable-config.vue
+++ /dev/null
@@ -1,311 +0,0 @@
-<template>
-  <div class="ins_order_config">
-    <div>
-      <el-row class="title">
-        <el-col :span="6" style="padding-left: 20px;text-align: left;">鐢电紗閰嶇疆</el-col>
-        <el-col :span="18" style="text-align: right;">
-          <el-button size="medium" @click="outConfig">
-            <span style="color: #3A7BFA;">杩� 鍥�</span>
-          </el-button>
-          <el-button size="medium" type="primary" @click="save">淇� 瀛�</el-button>
-        </el-col>
-      </el-row>
-    </div>
-    <div class="search">
-      <el-radio-group v-model="currentTab" size="small" style="margin-left: 20px;" @input="changeTab">
-        <el-radio-button label="缁濈紭">缁� 缂�</el-radio-button>
-        <el-radio-button label="鎶ゅ">鎶� 濂�</el-radio-button>
-      </el-radio-group>
-      <div class="search_thing" v-if="currentTab=='缁濈紭'">
-        <div class="search_label">鑺暟锛�</div>
-        <el-input size="small" placeholder="璇疯緭鍏�" clearable
-						v-model="insulating.num"></el-input>
-      </div>
-      <div class="search_thing" v-if="currentTab=='缁濈紭'">
-        <div class="search_label">妫�楠屾爣鍑嗭細</div>
-        <el-select v-model="insulating.standardMethodListId" placeholder="璇烽�夋嫨妫�楠屾爣鍑�" size="small"
-        @change="(value)=>methodChange(value)">
-          <el-option v-for="item in standards" :key="item.id" :label="item.code" :value="item.id">
-          </el-option>
-        </el-select>
-      </div>
-      <div class="search_thing" v-if="currentTab=='鎶ゅ'">
-        <div class="search_label">妫�楠屾爣鍑嗭細</div>
-        <el-select v-model="sheath.standardMethodListId" placeholder="璇烽�夋嫨妫�楠屾爣鍑�" size="small"
-        @change="(value)=>methodChange(value)">
-          <el-option v-for="item in standards" :key="item.id" :label="item.code" :value="item.id">
-          </el-option>
-        </el-select>
-      </div>
-    </div>
-    <div class="table">
-      <el-table class="el-table" ref="productTable" :data="productList" height="100%" tooltip-effect="dark" border
-        @selection-change="selectProduct" style="margin-bottom: 10px;" @select="upProductSelect"
-        :row-class-name="tableRowClassName" @select-all="handleAll">
-        <el-table-column type="selection" width="65" :selectable="selectable"></el-table-column>
-        <el-table-column prop="inspectionItem" label="妫�楠岄」" min-width="140" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="inspectionItemSubclass" label="妫�楠岄」瀛愰」" min-width="140"
-          show-overflow-tooltip></el-table-column>
-        <el-table-column prop="sonLaboratory" label="瀛愬疄楠屽" min-width="130" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="methodS" label="璇曢獙鏂规硶" min-width="120" show-overflow-tooltip>
-        </el-table-column>
-        <el-table-column prop="unit" label="璁¢噺鍗曚綅" width="100" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="price" label="鍗曚环" width="100" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="section" label="鍖洪棿" min-width="120" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="ask" label="瑕佹眰鍊�" min-width="220px">
-          <template slot-scope="scope">
-            <el-input size="small" placeholder="瑕佹眰鍊�" v-model="scope.row.ask" clearable type="textarea"
-              :autosize="{ minRows: 1, maxRows: 3}" @change="e=>requestChange(e,scope.row)"
-              v-if="active==1&&isAskOnlyRead"></el-input>
-            <span v-else>{{ scope.row.ask }}</span>
-          </template>
-        </el-table-column>
-      </el-table>
-    </div>
-  </div>
-</template>
-
-<script>
-import { Tree } from 'element-ui'
-export default {
-  props: {
-    active: {
-      type: Number,
-      default: () => 0
-    },
-  },
-  data(vm) {
-      return {
-        standardList:[],
-        vaule0:'',
-        currentTab:'缁濈紭',
-        upIndex:0,
-        productList: [],
-        productIds: [],
-        sample: [],
-        tree: '',
-        standards: [],
-        insulating: {
-          standardMethodListId: null,
-          insProduct: [],
-          num: 1
-        },
-        sheath: {
-          standardMethodListId: null,
-          insProduct: []
-        },
-        isAskOnlyRead: false
-      }
-  },
-  mounted() {
-    this.$parent.sampleIds.forEach(a => {
-      for (var i = 0; i < this.$parent.sampleList.length; i++) {
-        if (this.$parent.sampleList[i].id == a) {
-          this.sample.push(this.$parent.sampleList[i])
-          if(this.$parent.sampleList[i].insulating !== undefined && this.$parent.sampleList[i].insulating !== null){
-            this.insulating = this.$parent.sampleList[i].insulating
-          }
-          if(this.$parent.sampleList[i].sheath !== undefined && this.$parent.sampleList[i].sheath !== null){
-            this.sheath = this.$parent.sampleList[i].sheath
-          }
-          break
-        }
-      }
-    })
-    let obj = this.$parent.addObj
-    this.tree = obj.factory + ' - ' + obj.laboratory + ' - ' + obj.sampleType + ' - ' + obj.sample
-    this.selectsStandardMethodByFLSSM2()
-    this.productList = this.insulating.insProduct
-    setTimeout(() => {
-      this.productList.forEach(a => {
-        if (a.state == 1) this.toggleSelection(a)
-      })
-    }, 200)
-  },
-  methods: {
-    outConfig() {
-      this.$parent.cableConfigShow = false
-    },
-    selectProduct(val) {
-      this.productIds = []
-      val.forEach(a => {
-        this.productIds.push(a.id)
-      })
-    },
-    upProductSelect(selection, row) {
-      row.state = row.state == 1 ? 0 : 1
-    },
-    handleAll(e) {
-      if (e.length > 0) {
-        this.productList.map(m => {
-          m.state = 1
-          return m
-        })
-      } else {
-        this.productList.map(m => {
-          m.state = 0
-          return m
-        })
-      }
-      this.$nextTick(() => {
-        this.$refs.productTable.doLayout()
-      })
-    },
-    tableRowClassName({
-      row,
-      rowIndex
-    }) {
-      if (row.state === 0) {
-        return 'warning-row';
-      }
-      return '';
-    },
-    selectable() {
-      if (this.active > 1) {
-        return false
-      } else {
-        return true
-      }
-    },
-    selectsStandardMethodByFLSSM2() {
-      this.standards = []
-      this.$axios.post(this.$api.standardTree.selectsStandardMethodByFLSSM, {
-        tree: this.tree
-      }).then(res => {
-        this.standards = res.data.standardMethodList
-      })
-    },
-    methodChange(val) {
-      if (val === null || val === '') return
-      let standard = this.standards.find(a => a.id === val)
-      if(standard!=null && standard.code==='濮旀墭瑕佹眰'){
-        this.isAskOnlyRead = true
-      }else{
-        this.isAskOnlyRead = false
-      }
-      this.$axios.post(this.$api.standardTree.selectStandardProductList, {
-        model: this.$parent.addObj.model,
-        standardMethodListId: val,
-        factory: this.tree + ' - '
-      }, {
-        headers: {
-          'Content-Type': 'application/json'
-        }
-      }).then(res => {
-        res.data.forEach(a => {
-          a.state = 0
-        })
-        if(this.currentTab==='缁濈紭'){
-          this.insulating.insProduct = res.data
-        }else if(this.currentTab==='鎶ゅ'){
-          this.sheath.insProduct = res.data
-        }
-        this.productList = res.data
-        setTimeout(() => {
-          this.productList.forEach(a => {
-            if (a.state == 1) this.toggleSelection(a)
-          })
-        }, 200)
-      })
-    },
-    toggleSelection(row) {
-      this.$refs.productTable.toggleRowSelection(row, true);
-    },
-    save(){
-      if(this.insulating.insProduct.length === 0 && this.sheath.insProduct.length === 0){
-        this.$message.error('缂哄皯閰嶇疆鏃犳硶淇濆瓨')
-        return
-      }
-      if(this.insulating.insProduct.length !== 0){
-        if(this.insulating.num === null || this.insulating.num === '' || this.insulating.num <= 0){
-          this.$message.error('缂哄皯鑺暟鏃犳硶淇濆瓨')
-          return
-        }
-      }
-      this.sample.forEach(a=>{
-        a.insulating = this.insulating
-        a.sheath = this.sheath
-      })
-      this.$message.success('宸蹭繚瀛�')
-    },
-    changeTab(val){
-      if(val==='缁濈紭'){
-        this.productList = this.insulating.insProduct
-      }else if(val==='鎶ゅ'){
-        this.productList = this.sheath.insProduct
-      }
-      setTimeout(() => {
-        this.productList.forEach(a => {
-          if (a.state == 1) this.toggleSelection(a)
-        })
-      }, 200)
-    }
-  }
-}
-</script>
-
-<style scoped>
-.ins_order_config {
-    width: 100%;
-    height: 100%;
-    overflow-y: auto;
-    overflow-x: hidden;
-  }
-
-  .ins_order_config::-webkit-scrollbar {
-    width: 0;
-  }
-
-  .title {
-    height: 60px;
-    line-height: 60px;
-  }
-
-  .search {
-		background-color: #fff;
-		height: 80px;
-		display: flex;
-		align-items: center;
-	}
-
-	.search_thing {
-		width: 300px;
-		display: flex;
-		align-items: center;
-	}
-
-	.search_label {
-		width: 100px;
-		font-size: 14px;
-		text-align: right;
-	}
-
-	.search_input {
-		width: calc(100% - 70px);
-	}
-  .table {
-		margin-top: 10px;
-		background-color: #fff;
-		width: calc(100% - 40px);
-		height: calc(100% - 60px - 80px - 26px - 24px);
-		padding: 20px;
-	}
-</style>
-<style>
-  .ins_order_config .has-gutter .el-table__cell .cell {
-    line-height: 30px;
-    background-color: #fafafa;
-  }
-
-  .ins_order_config .has-gutter .el-table__cell {
-    background-color: #fafafa !important;
-  }
-
-  .ins_order_config .el-table__row .cell {
-    font-size: 12px;
-  }
-
-  .ins_order_config .el-table .warning-row .cell {
-    color: #bababa;
-  }
-</style>
diff --git a/src/views/business/inspectionOrder/equip-config.vue b/src/views/business/inspectionOrder/equip-config.vue
index ddf3fbd..33f637c 100644
--- a/src/views/business/inspectionOrder/equip-config.vue
+++ b/src/views/business/inspectionOrder/equip-config.vue
@@ -2,54 +2,152 @@
   <div class="ins_order_config">
     <div>
       <el-row class="title">
-        <el-col :span="6" style="padding-left: 20px;text-align: left;">瀛愭牱鍝侀厤缃�</el-col>
-        <el-col :span="18" style="text-align: right;">
-          <el-button size="medium" type="primary" @click="addChild" v-if="active==1">娣诲姞瀛愭牱鍝�</el-button>
-          <el-button size="medium" type="primary" @click="save" :loading="saveLoad" v-if="active==1">淇� 瀛�</el-button>
+        <el-col :span="6" style="padding-left: 20px; text-align: left"
+          >瀛愭牱鍝侀厤缃�</el-col
+        >
+        <el-col :span="18" style="text-align: right">
+          <el-button
+            size="medium"
+            type="primary"
+            @click="addChild"
+            v-if="active == 1"
+            >娣诲姞瀛愭牱鍝�</el-button
+          >
+          <el-button
+            size="medium"
+            type="primary"
+            @click="save"
+            :loading="saveLoad"
+            v-if="active == 1"
+            >淇� 瀛�</el-button
+          >
           <el-button size="medium" @click="outConfig">
-            <span style="color: #3A7BFA;">杩� 鍥�</span>
+            <span style="color: #3a7bfa">杩� 鍥�</span>
           </el-button>
         </el-col>
       </el-row>
     </div>
     <div class="center">
-      <el-table class="el-table sampleTable" ref="sampleTable" :data="sampleList" height="50%" tooltip-effect="dark"
-        border highlight-current-row @row-click="rowClick" @current-change="selectSample">
-        <!-- <el-table-column type="selection" width="60" :selectable="selectable" v-if="active==1"></el-table-column> -->
-        <el-table-column type="index" label="搴忓彿" width="65" align="center"></el-table-column>
-        <el-table-column prop="sample" label="鏍峰搧鍚嶇О" align="center" min-width="100">
+      <el-table
+        class="el-table sampleTable"
+        ref="sampleTable"
+        :data="sampleList"
+        height="50%"
+        tooltip-effect="dark"
+        border
+        highlight-current-row
+        @row-click="rowClick"
+        @current-change="selectSample"
+      >
+        <el-table-column
+          type="index"
+          label="搴忓彿"
+          width="65"
+          align="center"
+        ></el-table-column>
+        <el-table-column
+          prop="sample"
+          label="鏍峰搧鍚嶇О"
+          align="center"
+          min-width="100"
+        >
           <template slot-scope="scope">
-            <el-input size="small" v-model="scope.row.sample" clearable :readonly="active>1"></el-input>
+            <el-input
+              size="small"
+              v-model="scope.row.sample"
+              clearable
+              :readonly="active > 1"
+            ></el-input>
           </template>
         </el-table-column>
-        <el-table-column prop="sampleCode" label="鏍峰搧缂栧彿" min-width="140" align="center">
+        <el-table-column
+          prop="sampleCode"
+          label="鏍峰搧缂栧彿"
+          min-width="140"
+          align="center"
+        >
           <template slot-scope="scope">
-            <el-input size="small" v-model="scope.row.sampleCode" clearable placeholder="涓嶅~鍐欏垯绯荤粺鑷姩鐢熸垚"
-              :readonly="active>1"></el-input>
+            <el-input
+              size="small"
+              v-model="scope.row.sampleCode"
+              clearable
+              placeholder="涓嶅~鍐欏垯绯荤粺鑷姩鐢熸垚"
+              :readonly="active > 1"
+            ></el-input>
           </template>
         </el-table-column>
-        <el-table-column prop="model" label="鏍峰搧鍨嬪彿" align="center" min-width="100">
+        <el-table-column
+          prop="model"
+          label="鏍峰搧鍨嬪彿"
+          align="center"
+          min-width="100"
+        >
           <template slot-scope="scope">
-            <el-select v-model="scope.row.model" filterable allow-create default-first-option placeholder="鏍峰搧鍨嬪彿"
-              size="small" @change="handleChangeModel" :disabled="active>1" style="width: 100%;">
-              <el-option v-for="item in models" :key="item.value" :label="item.label" :value="item.value">
+            <el-select
+              v-model="scope.row.model"
+              filterable
+              allow-create
+              default-first-option
+              placeholder="鏍峰搧鍨嬪彿"
+              size="small"
+              @change="handleChangeModel"
+              :disabled="active > 1"
+              style="width: 100%"
+            >
+              <el-option
+                v-for="item in models"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              >
               </el-option>
             </el-select>
           </template>
         </el-table-column>
-        <el-table-column prop="modelNum" label="鍨嬪彿鍙傛暟" width="130" align="center" v-if="!(active>1)">
+        <el-table-column
+          prop="modelNum"
+          label="鍨嬪彿鍙傛暟"
+          width="130"
+          align="center"
+          v-if="!(active > 1)"
+        >
           <template slot-scope="scope">
-            <el-input size="small" v-model="scope.row.modelNum" clearable placeholder="闈炲繀濉�"
-              @keyup.enter.native="methodChange(scope.row.standardMethodListId, scope.row)"
-              @clear="methodChange(scope.row.standardMethodListId, scope.row)"></el-input>
+            <el-input
+              size="small"
+              v-model="scope.row.modelNum"
+              clearable
+              placeholder="闈炲繀濉�"
+              @keyup.enter.native="
+                methodChange(scope.row.standardMethodListId, scope.row)
+              "
+              @clear="methodChange(scope.row.standardMethodListId, scope.row)"
+            ></el-input>
           </template>
         </el-table-column>
-        <el-table-column prop="standardMethodListId" label="妫�楠屾爣鍑�" align="center" min-width="100">
+        <el-table-column
+          prop="standardMethodListId"
+          label="妫�楠屾爣鍑�"
+          align="center"
+          min-width="100"
+        >
           <template slot-scope="scope">
-            <el-select v-model="scope.row.standardMethodListId" :disabled="scope.row.model==null||active>1"
-              placeholder="妫�楠屾爣鍑�" size="small" :loading="methodLoad" @change="(value)=>methodChange(value, scope.row)"
-              @focus="methodFocus" :readonly="active>1" style="width: 100%;">
-              <el-option v-for="item in methods" :key="item.id" :label="item.code" :value="item.id">
+            <el-select
+              v-model="scope.row.standardMethodListId"
+              :disabled="scope.row.model == null || active > 1"
+              placeholder="妫�楠屾爣鍑�"
+              size="small"
+              :loading="methodLoad"
+              @change="(value) => methodChange(value, scope.row)"
+              @focus="methodFocus"
+              :readonly="active > 1"
+              style="width: 100%"
+            >
+              <el-option
+                v-for="item in methods"
+                :key="item.id"
+                :label="item.code"
+                :value="item.id"
+              >
               </el-option>
             </el-select>
           </template>
@@ -58,59 +156,162 @@
         </el-table-column>
         <el-table-column label="鎿嶄綔" width="120">
           <template slot-scope="scope">
-            <el-button @click.native.prevent="deleteRow(scope.$index, sampleList)" type="text"
-              size="small">鍒犻櫎</el-button>
+            <el-button
+              @click.native.prevent="deleteRow(scope.$index, sampleList)"
+              type="text"
+              size="small"
+              >鍒犻櫎</el-button
+            >
           </template>
         </el-table-column>
       </el-table>
-      <el-table class="el-table" ref="productTable" :data="productList" height="50%" tooltip-effect="dark" border
-        @selection-change="selectProduct" style="margin-bottom: 10px;" @select="upProductSelect"
-        :row-class-name="tableRowClassName" v-loading="getProductLoad" @select-all="handleAll">
-        <el-table-column type="selection" width="65" :selectable="selectable" v-if="active==1"></el-table-column>
-        <el-table-column prop="inspectionItem" label="妫�楠岄」" min-width="140" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="inspectionItemSubclass" label="妫�楠岄」瀛愰」" min-width="140"
-          show-overflow-tooltip></el-table-column>
-        <el-table-column prop="sonLaboratory" label="瀛愬疄楠屽" min-width="130" show-overflow-tooltip :filters="filters"
-          :filter-method="filterHandler"></el-table-column>
-        <el-table-column prop="methodS" label="璇曢獙鏂规硶" min-width="120" show-overflow-tooltip>
+      <el-table
+        class="el-table"
+        ref="productTable"
+        :data="productList"
+        height="50%"
+        tooltip-effect="dark"
+        border
+        @selection-change="selectProduct"
+        style="margin-bottom: 10px"
+        @select="upProductSelect"
+        :row-class-name="tableRowClassName"
+        v-loading="getProductLoad"
+        @select-all="handleAll"
+      >
+        <el-table-column
+          type="selection"
+          width="65"
+          :selectable="selectable"
+          v-if="active == 1"
+        ></el-table-column>
+        <el-table-column
+          prop="inspectionItem"
+          label="妫�楠岄」"
+          min-width="140"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          prop="inspectionItemSubclass"
+          label="妫�楠岄」瀛愰」"
+          min-width="140"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          prop="sonLaboratory"
+          label="瀛愬疄楠屽"
+          min-width="130"
+          show-overflow-tooltip
+          :filters="filters"
+          :filter-method="filterHandler"
+        ></el-table-column>
+        <el-table-column
+          prop="methodS"
+          label="璇曢獙鏂规硶"
+          min-width="120"
+          show-overflow-tooltip
+        >
         </el-table-column>
-        <el-table-column prop="unit" label="璁¢噺鍗曚綅" width="100" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="price" label="鍗曚环" width="100" show-overflow-tooltip></el-table-column>
-        <el-table-column prop="section" label="鍖洪棿" min-width="120" show-overflow-tooltip></el-table-column>
+        <el-table-column
+          prop="unit"
+          label="璁¢噺鍗曚綅"
+          width="100"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          prop="price"
+          label="鍗曚环"
+          width="100"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          prop="section"
+          label="鍖洪棿"
+          min-width="120"
+          show-overflow-tooltip
+        ></el-table-column>
         <el-table-column prop="ask" label="瑕佹眰鍊�" min-width="220px">
           <template slot-scope="scope">
-            <el-input size="small" placeholder="瑕佹眰鍊�" v-model="scope.row.ask" clearable type="textarea"
-              :autosize="{ minRows: 1, maxRows: 3}" @change="e=>requestChange(e,scope.row)"
-              v-if="active==1&&isAskOnlyRead"></el-input>
+            <el-input
+              size="small"
+              placeholder="瑕佹眰鍊�"
+              v-model="scope.row.ask"
+              clearable
+              type="textarea"
+              :autosize="{ minRows: 1, maxRows: 3 }"
+              @change="(e) => requestChange(e, scope.row)"
+              v-if="active == 1 && isAskOnlyRead"
+            ></el-input>
             <span v-else>{{ scope.row.ask }}</span>
           </template>
         </el-table-column>
       </el-table>
     </div>
-    <el-dialog title="閫夋嫨瀛愭牱鍝�" :visible.sync="selectStandardTree" width="400px" @closed="addObj.sampleNum = 1">
-      <div class="body" style="height: 60vh;overflow-y: auto;user-select: none;" v-if="selectStandardTree">
-        <el-row style="margin-bottom: 10px;">
+    <el-dialog
+      title="閫夋嫨瀛愭牱鍝�"
+      :visible.sync="selectStandardTree"
+      width="400px"
+      @closed="addObj.sampleNum = 1"
+    >
+      <div
+        class="body"
+        style="height: 60vh; overflow-y: auto; user-select: none"
+        v-if="selectStandardTree"
+      >
+        <el-row style="margin-bottom: 10px">
           <el-col :span="24">
             <label>鏍峰搧鏁伴噺锛�</label>
-            <el-input-number v-model="addObj.sampleNum" :min="1" label="璇疯緭鍏ユ暟閲�" size="small"></el-input-number>
+            <el-input-number
+              v-model="addObj.sampleNum"
+              :min="1"
+              label="璇疯緭鍏ユ暟閲�"
+              size="small"
+            ></el-input-number>
           </el-col>
         </el-row>
         <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-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">
+        <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>
+                <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>
@@ -121,24 +322,42 @@
         <el-button type="primary" @click="activeStandardTree">纭� 瀹�</el-button>
       </span>
     </el-dialog>
-    <el-dialog title="妫�娴嬪埌鐗规畩椤癸紝璇蜂綔鍑轰互涓嬮�夋嫨" :visible.sync="bsm1Dia" width="500px" :show-close="false"
-      :before-close="beforeClose">
-      <div class="body" style="max-height: 60vh;">
+    <el-dialog
+      title="妫�娴嬪埌鐗规畩椤癸紝璇蜂綔鍑轰互涓嬮�夋嫨"
+      :visible.sync="bsm1Dia"
+      width="500px"
+      :show-close="false"
+      :before-close="beforeClose"
+    >
+      <div class="body" style="max-height: 60vh">
         <el-row v-if="bsm1">
           <el-col class="search_thing" :span="22">
-            <div class="search_label"><span class="required-span">* </span>鎶ゅ瀵嗗害锛�</div>
+            <div class="search_label">
+              <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"></el-radio>
+                <el-radio
+                  v-for="(a, ai) in JSON.parse(bsmRow.section)"
+                  :key="ai"
+                  :label="a"
+                ></el-radio>
               </el-radio-group>
             </div>
           </el-col>
           <el-col class="search_thing" :span="22">
             <div class="search_label">瑕佹眰鍊硷細</div>
-            <div class="search_input" v-show="bsm1Val!==null&&bsm1Val!==''">
+            <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
+                  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>
@@ -149,443 +368,504 @@
 </template>
 
 <script>
-  export default {
-    props: {
-      active: {
-        type: Number,
-        default: () => 0
-      },
+import {
+  getStandTreeBySampleType,
+  selectStandardTreeList2,
+  selectStandardMethodEnum,
+  selectsStandardMethodByFLSSM,
+  selectStandardProductList,
+} from "@/api/standard/standardLibrary";
+export default {
+  props: {
+    active: {
+      type: Number,
+      default: () => 0,
     },
-    data() {
-      return {
-        saveLoad: false,
-        sampleList: [],
-        productList: [],
-        getProductLoad: false,
-        filters: [],
-        sampleIds: [],
-        isAskOnlyRead: false,
-        selectStandardTree: false,
-        search: '',
-        expandedKeys: [],
-        addObj: {
-          sampleNum: 1,
-        },
-        selectTree: null,
-        models: [],
-        sample: {
-          sampleCode: null,
-          laboratory: null,
-          factory: null,
-          sampleType: null,
-          sample: null,
-          model: null,
-          modelNum: null,
-          sampleNum: 1,
-          isLeave: 0,
-          unit: null
-        },
-        currentMethod: null,
-        methods: [],
-        methodLoad: false,
-        sampleId: null,
-        bsmRow: null,
-        bsm1: false,
-        bsm1Val: null,
-        bsm1Dia: false,
-        list: [],
-        parentSample: []
+  },
+  data() {
+    return {
+      saveLoad: false,
+      sampleList: [],
+      productList: [],
+      getProductLoad: false,
+      filters: [],
+      sampleIds: [],
+      isAskOnlyRead: false,
+      selectStandardTree: false,
+      search: "",
+      expandedKeys: [],
+      addObj: {
+        sampleNum: 1,
+      },
+      selectTree: null,
+      models: [],
+      sample: {
+        sampleCode: null,
+        laboratory: null,
+        factory: null,
+        sampleType: null,
+        sample: null,
+        model: null,
+        modelNum: null,
+        sampleNum: 1,
+        isLeave: 0,
+        unit: null,
+      },
+      currentMethod: null,
+      methods: [],
+      methodLoad: false,
+      sampleId: null,
+      bsmRow: null,
+      bsm1: false,
+      bsm1Val: null,
+      bsm1Dia: false,
+      list: [],
+      parentSample: [],
+    };
+  },
+  mounted() {
+    this.selectStandardTreeList();
+    this.selectStandardMethods();
+    this.$parent.sampleIds.forEach((a) => {
+      for (var i = 0; i < this.$parent.sampleList.length; i++) {
+        if (this.$parent.sampleList[i].id == a) {
+          this.sampleList = this.$parent.sampleList[i].childSampleList;
+          this.parentSample.push(this.$parent.sampleList[i]);
+          break;
+        }
+      }
+    });
+  },
+  methods: {
+    selectStandardTreeList() {
+      selectStandardTreeList()
+        .then((res) => {
+          if (res.code === 200) {
+            this.list = res.data;
+            this.list.forEach((a) => {
+              this.expandedKeys.push(a.label);
+            });
+          }
+        })
+        .catch((error) => {
+          console.error(error);
+        });
+    },
+    save() {
+      if (this.sampleList.length === 0) {
+        this.$message.error("缂哄皯閰嶇疆鏃犳硶淇濆瓨");
+        return;
+      }
+      this.parentSample.forEach((a) => {
+        a.childSampleList = this.sampleList;
+      });
+      this.$message.success("宸蹭繚瀛�");
+    },
+    deleteRow(index, rows) {
+      this.productList = [];
+      rows.splice(index, 1);
+    },
+    outConfig() {
+      this.$parent.equipConfigShow = false;
+    },
+    addChild() {
+      this.selectStandardTree = true;
+    },
+    selectSample(val) {
+      if (val === null) return;
+      this.sampleIds = [val.id];
+    },
+    rowClick(row, column, event) {
+      this.currentMethod = row;
+      let obj = this.methods.find(
+        (a) => a.id == this.currentMethod.standardMethodListId
+      );
+      if (obj && obj.code == "濮旀墭瑕佹眰") {
+        this.isAskOnlyRead = true;
+      } else {
+        this.isAskOnlyRead = false;
+      }
+      this.sampleId = row.id;
+      if (this.active !== 1) {
+        this.sampleIds = [];
+        this.sampleIds.push(row.id);
+      }
+      this.productList = row.insProduct;
+      setTimeout(() => {
+        this.productList.forEach((a) => {
+          if (a.state == 1) this.toggleSelection(a);
+        });
+      }, 200);
+    },
+    toggleSelection(row) {
+      this.$refs.productTable.toggleRowSelection(row, true);
+    },
+    selectable() {
+      if (this.active > 1) {
+        return false;
+      } else {
+        return true;
       }
     },
-    mounted() {
-      this.selectStandardTreeList()
-      this.selectStandardMethods()
-      this.$parent.sampleIds.forEach(a => {
-        for (var i = 0; i < this.$parent.sampleList.length; i++) {
-          if (this.$parent.sampleList[i].id == a) {
-            this.sampleList = this.$parent.sampleList[i].childSampleList
-            this.parentSample.push(this.$parent.sampleList[i])
-            break
-          }
-        }
-      })
+    handleChangeModel(e) {
+      let num = this.selectTree.split("-").length;
+      if (num != 5) {
+        this.selectTree = this.selectTree + " - " + e;
+      } else {
+        let arr = this.selectTree.split("-");
+        let arr0 = arr.slice(0, arr.length - 1);
+        this.selectTree = arr0.join("-") + "- " + e;
+      }
     },
-    methods: {
-      selectStandardTreeList() {
-        this.$axios.get(this.$api.standardTree.selectStandardTreeList).then(res => {
-          this.list = res.data
-          this.list.forEach(a => {
-            this.expandedKeys.push(a.label)
-          })
-        })
-      },
-      save() {
-        if (this.sampleList.length === 0) {
-          this.$message.error('缂哄皯閰嶇疆鏃犳硶淇濆瓨')
-          return
-        }
-        this.parentSample.forEach(a => {
-          a.childSampleList = this.sampleList
-        })
-        this.$message.success('宸蹭繚瀛�')
-      },
-      deleteRow(index, rows) {
-        this.productList = []
-        rows.splice(index, 1);
-      },
-      outConfig() {
-        this.$parent.equipConfigShow = false
-      },
-      addChild() {
-        this.selectStandardTree = true
-      },
-      selectSample(val) {
-        if (val === null) return
-        this.sampleIds = [val.id]
-      },
-      rowClick(row, column, event) {
-        this.currentMethod = row
-        let obj = this.methods.find(a => a.id == this.currentMethod.standardMethodListId)
-        if (obj && obj.code == '濮旀墭瑕佹眰') {
-          this.isAskOnlyRead = true
-        } else {
-          this.isAskOnlyRead = false
-        }
-        this.sampleId = row.id
-        if (this.active !== 1) {
-          this.sampleIds = []
-          this.sampleIds.push(row.id)
-        }
-        this.productList = row.insProduct
-        setTimeout(() => {
-          this.productList.forEach(a => {
-            if (a.state == 1) this.toggleSelection(a)
-          })
-        }, 200)
-      },
-      toggleSelection(row) {
-        this.$refs.productTable.toggleRowSelection(row, true);
-      },
-      selectable() {
-        if (this.active > 1) {
-          return false
-        } else {
-          return true
-        }
-      },
-      handleChangeModel(e) {
-        let num = this.selectTree.split('-').length;
-        if (num != 5) {
-          this.selectTree = this.selectTree + ' - ' + e
-        } else {
-          let arr = this.selectTree.split('-')
-          let arr0 = arr.slice(0, arr.length - 1)
-          this.selectTree = arr0.join('-') + '- ' + e
-        }
-      },
-      methodChange(val, row) {
-        if (val === null || val === '') return
-        this.currentMethod = row
-        let obj = this.methods.find(a => a.id == this.currentMethod.standardMethodListId)
-        if (obj && obj.code == '濮旀墭瑕佹眰') {
-          this.isAskOnlyRead = true
-        } else {
-          this.isAskOnlyRead = false
-        }
-        this.getProductLoad = true
-        this.$axios.post(this.$api.standardTree.selectStandardProductList, {
-          model: row.model + '-' + row.modelNum,
-          standardMethodListId: val,
-          factory: this.selectTree,
-        }, {
-          headers: {
-            'Content-Type': 'application/json'
+    methodChange(val, row) {
+      if (val === null || val === "") return;
+      this.currentMethod = row;
+      let obj = this.methods.find(
+        (a) => a.id == this.currentMethod.standardMethodListId
+      );
+      if (obj && obj.code == "濮旀墭瑕佹眰") {
+        this.isAskOnlyRead = true;
+      } else {
+        this.isAskOnlyRead = false;
+      }
+      this.getProductLoad = true;
+      selectStandardProductList({
+        model: row.model + "-" + row.modelNum,
+        standardMethodListId: val,
+        factory: this.selectTree,
+      })
+        .then((res) => {
+          if (res.code === 200) {
+            res.data.forEach((a) => {
+              a.state = 0;
+            });
+            row.insProduct = this.HaveJson(res.data);
+            this.getProductLoad = false;
+            this.productList = row.insProduct;
+            this.$refs.sampleTable.setCurrentRow(row);
+            setTimeout(() => {
+              this.productList.forEach((a) => {
+                if (a.state == 1) this.toggleSelection(a);
+              });
+            }, 200);
           }
-        }).then(res => {
-          res.data.forEach(a => {
-            a.state = 0
-          })
-          row.insProduct = this.HaveJson(res.data)
-          this.getProductLoad = false
-          this.productList = row.insProduct
-          this.$refs.sampleTable.setCurrentRow(row)
-          setTimeout(() => {
-            this.productList.forEach(a => {
-              if (a.state == 1) this.toggleSelection(a)
-            })
-          }, 200)
         })
-      },
-      methodFocus() {
-        this.selectsStandardMethodByFLSSM()
-      },
-      selectStandardMethods() {
-        this.$axios.get(this.$api.standardTree.selectStandardMethodEnum).then(res => {
-          this.methods = res.data
+        .catch((error) => {
+          console.error(error);
+        });
+    },
+    methodFocus() {
+      this.selectsStandardMethodByFLSSM();
+    },
+    selectStandardMethods() {
+      selectStandardMethodEnum()
+        .then((res) => {
+          if (res.code === 200) {
+            this.methods = res.data;
+          }
         })
-      },
-      selectsStandardMethodByFLSSM() {
-        this.methodLoad = true
-        this.$axios.post(this.$api.standardTree.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, {
-                tree: selectTree
-              }).then(ress => {
-                this.methods = ress.data.standardMethodList
-              })
-            } else {
-              this.methods = res.data.standardMethodList
+        .catch((error) => {
+          console.error(error);
+        });
+    },
+    selectsStandardMethodByFLSSM() {
+      this.methodLoad = true;
+      selectsStandardMethodByFLSSM({
+        tree: this.selectTree,
+      })
+        .then((res) => {
+          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);
+                selectsStandardMethodByFLSSM({
+                  tree: selectTree,
+                })
+                  .then((res) => {
+                    if (res.code === 200) {
+                      this.methods = res.data.standardMethodList;
+                    }
+                  })
+                  .catch((error) => {
+                    console.error(error);
+                  });
+              } else {
+                this.methods = res.data.standardMethodList;
+              }
+            } catch (e) {}
+          }
+        })
+        .catch((error) => {
+          console.error(error);
+        });
+    },
+    selectProduct(val) {
+      this.productIds = [];
+      val.forEach((a) => {
+        this.productIds.push(a.id);
+      });
+    },
+    upProductSelect(selection, row) {
+      row.state = row.state == 1 ? 0 : 1;
+      if (
+        row.bsm === "1" &&
+        row.section !== "" &&
+        row.section !== null &&
+        row.state === 1
+      ) {
+        if (row.section.indexOf("[") > -1) {
+          this.bsmRow = this.HaveJson(row);
+        }
+        this.bsm1 = true;
+        this.bsm1Dia = true;
+      } else if (
+        row.bsm === "1" &&
+        row.section !== "" &&
+        row.section !== null &&
+        row.state === 0
+      ) {
+        this.bsm1 = false;
+      }
+      this.sampleList.map((item) => {
+        if (this.sampleIds.indexOf(item.id) > -1) {
+          item.insProduct.map((m) => {
+            if (m.id == row.id) {
+              m.state = row.state;
             }
-          } catch (e) {}
-        })
-      },
-      selectProduct(val) {
-        this.productIds = []
-        val.forEach(a => {
-          this.productIds.push(a.id)
-        })
-      },
-      upProductSelect(selection, row) {
-        row.state = row.state == 1 ? 0 : 1
-        if (row.bsm === '1' && row.section !== '' && row.section !== null && row.state === 1) {
-          if (row.section.indexOf('[') > -1) {
-            this.bsmRow = this.HaveJson(row)
-          }
-          this.bsm1 = true
-          this.bsm1Dia = true
-        } else if (row.bsm === '1' && row.section !== '' && row.section !== null && row.state === 0) {
-          this.bsm1 = false
+            return m;
+          });
         }
-        this.sampleList.map(item => {
+        return item;
+      });
+    },
+    tableRowClassName({ row, rowIndex }) {
+      if (row.state === 0) {
+        return "warning-row";
+      }
+      return "";
+    },
+    handleAll(e) {
+      if (e.length > 0) {
+        this.productList.map((m) => {
+          m.state = 1;
+          return m;
+        });
+      } else {
+        this.productList.map((m) => {
+          m.state = 0;
+          return m;
+        });
+      }
+      this.productList.forEach((p) => {
+        if (
+          p.bsm === "1" &&
+          p.section !== "" &&
+          p.section !== null &&
+          p.state === 1
+        ) {
+          if (p.section.indexOf("[") > -1) {
+            this.bsmRow = this.HaveJson(p);
+          }
+          this.bsm1 = true;
+          this.bsm1Dia = true;
+        } else if (
+          p.bsm === "1" &&
+          p.section !== "" &&
+          p.section !== null &&
+          p.state === 0
+        ) {
+          this.bsm1 = false;
+        }
+      });
+      if (e.length > 0) {
+        this.sampleList.map((item) => {
           if (this.sampleIds.indexOf(item.id) > -1) {
-            item.insProduct.map(m => {
-              if (m.id == row.id) {
-                m.state = row.state;
-              }
+            item.insProduct.map((m) => {
+              m.state = 1;
               return m;
-            })
+            });
           }
-          return item
-        })
-      },
-      tableRowClassName({
-        row,
-        rowIndex
-      }) {
-        if (row.state === 0) {
-          return 'warning-row';
-        }
-        return '';
-      },
-      handleAll(e) {
-        if (e.length > 0) {
-          this.productList.map(m => {
-            m.state = 1
-            return m
-          })
-        } else {
-          this.productList.map(m => {
-            m.state = 0
-            return m
-          })
-        }
-        this.productList.forEach(p => {
-          if (p.bsm === '1' && p.section !== '' && p.section !== null && p.state === 1) {
-            if (p.section.indexOf('[') > -1) {
-              this.bsmRow = this.HaveJson(p)
-            }
-            this.bsm1 = true
-            this.bsm1Dia = true
-          } else if (p.bsm === '1' && p.section !== '' && p.section !== null && p.state === 0) {
-            this.bsm1 = false
-          }
-        })
-        if (e.length > 0) {
-          this.sampleList.map(item => {
-            if (this.sampleIds.indexOf(item.id) > -1) {
-              item.insProduct.map(m => {
-                m.state = 1
-                return m;
-              })
-            }
-            return item
-          })
-        } else {
-          this.sampleList.map(item => {
-            if (this.sampleIds.indexOf(item.id) > -1) {
-              item.insProduct.map(m => {
-                m.state = 0
-                return m;
-              })
-            }
-            return item
-          })
-        }
-        this.$nextTick(() => {
-          this.$refs.productTable.doLayout()
-        })
-      },
-      filterHandler(value, row, column) {
-        const property = column['property'];
-        return row[property] === value;
-      },
-      requestChange(e, row) {
-        this.sampleList.map(item => {
+          return item;
+        });
+      } else {
+        this.sampleList.map((item) => {
           if (this.sampleIds.indexOf(item.id) > -1) {
-            item.insProduct.map(m => {
-              if (m.id == row.id) {
-                m.ask = e;
-              }
+            item.insProduct.map((m) => {
+              m.state = 0;
               return m;
-            })
+            });
           }
-          return item
-        })
-      },
-      activeStandardTree() {
-        let trees = this.selectTree.split(" - ")
-        if (trees.length < 4) {
-          this.$message.error('鏈�夋嫨瀛愪骇鍝�')
-          return
+          return item;
+        });
+      }
+      this.$nextTick(() => {
+        this.$refs.productTable.doLayout();
+      });
+    },
+    filterHandler(value, row, column) {
+      const property = column["property"];
+      return row[property] === value;
+    },
+    requestChange(e, row) {
+      this.sampleList.map((item) => {
+        if (this.sampleIds.indexOf(item.id) > -1) {
+          item.insProduct.map((m) => {
+            if (m.id == row.id) {
+              m.ask = e;
+            }
+            return m;
+          });
         }
-        this.addObj.factory = trees[0]
-        this.addObj.laboratory = trees[1]
-        this.addObj.sampleType = trees[2]
-        if(trees[3]===''){
-          this.addObj.sample = (trees[4] == undefined ? null : trees[4])
-        }else if(trees[3]===undefined){
-          this.addObj.sample = trees[2]
-        }else{
-          this.addObj.sample = trees[3]
+        return item;
+      });
+    },
+    activeStandardTree() {
+      let trees = this.selectTree.split(" - ");
+      if (trees.length < 4) {
+        this.$message.error("鏈�夋嫨瀛愪骇鍝�");
+        return;
+      }
+      this.addObj.factory = trees[0];
+      this.addObj.laboratory = trees[1];
+      this.addObj.sampleType = trees[2];
+      if (trees[3] === "") {
+        this.addObj.sample = trees[4] == undefined ? null : trees[4];
+      } else if (trees[3] === undefined) {
+        this.addObj.sample = trees[2];
+      } else {
+        this.addObj.sample = trees[3];
+      }
+      this.addObj.model = trees[4] == undefined ? null : trees[4];
+      this.selectStandardTree = false;
+      this.sample.joinName = null;
+      this.sample.joinModel = null;
+      this.sample.joinNum = 1;
+      this.sample.sample = this.addObj.sample;
+      this.sample.model = this.addObj.model;
+      this.sample.unit = this.addObj.unit;
+      this.sample.standardMethodListId = null;
+      this.sample.insProduct = [];
+      this.sample.id = this.count;
+      this.sample.num = this.addObj.sampleNum;
+      this.sampleList.push(this.HaveJson(this.sample));
+      this.count++;
+      this.$refs.sampleTable.doLayout();
+    },
+    searchFilter() {
+      this.$refs.tree.filter(this.search);
+    },
+    filterNode(value, data) {
+      if (!value) return true;
+      return data.label.indexOf(value) !== -1;
+    },
+    handleNodeClick(val, node, el) {
+      this.selectTree = "";
+      this.models = val.children;
+      this.getNodeParent(node);
+      this.selectTree = this.selectTree.replace(" - ", "");
+      let data = this.selectTree.split(" - ");
+      let data2 = "";
+      for (let index = data.length - 1; index >= 0; index--) {
+        data2 += " - " + data[index];
+      }
+      this.selectTree = data2.replace(" - ", "");
+    },
+    getNodeParent(val) {
+      if (val.parent != null) {
+        if (val.data.children === null) {
+          this.selectTree += " - " + val.label + " - " + "";
+        } else {
+          this.selectTree += " - " + val.label;
         }
-        this.addObj.model = (trees[4] == undefined ? null : trees[4])
-        this.selectStandardTree = false
-        this.sample.joinName = null
-        this.sample.joinModel = null
-        this.sample.joinNum = 1
-        this.sample.sample = this.addObj.sample
-        this.sample.model = this.addObj.model
-        this.sample.unit = this.addObj.unit
-        this.sample.standardMethodListId = null
-        this.sample.insProduct = []
-        this.sample.id = this.count
-        this.sample.num = this.addObj.sampleNum
-        this.sampleList.push(this.HaveJson(this.sample))
-        this.count++
-        this.$refs.sampleTable.doLayout()
-      },
-      searchFilter() {
-        this.$refs.tree.filter(this.search)
-      },
-      filterNode(value, data) {
-        if (!value) return true;
-        return data.label.indexOf(value) !== -1;
-      },
-      handleNodeClick(val, node, el) {
-        this.selectTree = ''
-        this.models = val.children
-        this.getNodeParent(node)
-        this.selectTree = this.selectTree.replace(' - ', '')
-        let data = this.selectTree.split(' - ')
-        let data2 = ''
-        for (let index = data.length - 1; index >= 0; index--) {
-          data2 += " - " + data[index]
+        this.getNodeParent(val.parent);
+      }
+    },
+    nodeOpen(data, node, el) {
+      $($(el.$el).find(".node_i")[0]).attr(
+        "class",
+        "node_i el-icon-folder-opened"
+      );
+    },
+    nodeClose(data, node, el) {
+      $($(el.$el).find(".node_i")[0]).attr("class", "node_i el-icon-folder");
+    },
+    beforeClose(done) {
+      if (this.bsm1) {
+        if (this.bsm1Val === null || this.bsm1Val === "") {
+          this.$message.error("鐗规畩椤圭洰蹇呴』澶勭悊");
+          return;
         }
-        this.selectTree = data2.replace(' - ', '')
-      },
-      getNodeParent(val) {
-        if (val.parent != null) {
-          if (val.data.children === null) {
-            this.selectTree += ' - ' + val.label + ' - ' + ''
-          } else {
-            this.selectTree += ' - ' + val.label
-          }
-          this.getNodeParent(val.parent)
+      }
+      done();
+    },
+    upBsm1(val) {
+      let sections = JSON.parse(this.bsmRow.section);
+      let asks = JSON.parse(this.bsmRow.ask);
+      let tells = JSON.parse(this.bsmRow.tell);
+      let manHours = JSON.parse(this.bsmRow.manHour);
+      let prices = JSON.parse(this.bsmRow.price);
+      for (var a in sections) {
+        if (val === sections[a]) {
+          this.productList.forEach((p) => {
+            if (p.id === this.bsmRow.id) {
+              p.section = sections[a];
+              p.ask = asks[a];
+              p.tell = tells[a];
+              p.manHour = manHours[a];
+              p.price = prices[a];
+            }
+          });
+          break;
         }
-      },
-      nodeOpen(data, node, el) {
-        $($(el.$el).find('.node_i')[0]).attr('class', 'node_i el-icon-folder-opened')
-      },
-      nodeClose(data, node, el) {
-        $($(el.$el).find('.node_i')[0]).attr('class', 'node_i el-icon-folder')
-      },
-      beforeClose(done) {
-        if (this.bsm1) {
-          if (this.bsm1Val === null || this.bsm1Val === '') {
-            this.$message.error('鐗规畩椤圭洰蹇呴』澶勭悊')
-            return
-          }
-        }
-        done()
-      },
-      upBsm1(val) {
-        let sections = JSON.parse(this.bsmRow.section);
-        let asks = JSON.parse(this.bsmRow.ask);
-        let tells = JSON.parse(this.bsmRow.tell);
-        let manHours = JSON.parse(this.bsmRow.manHour);
-        let prices = JSON.parse(this.bsmRow.price);
-        for (var a in sections) {
-          if (val === sections[a]) {
-            this.productList.forEach(p => {
-              if (p.id === this.bsmRow.id) {
-                p.section = sections[a]
-                p.ask = asks[a]
-                p.tell = tells[a]
-                p.manHour = manHours[a]
-                p.price = prices[a]
-              }
-            })
-            break
-          }
-        }
-      },
-    }
-  }
+      }
+    },
+  },
+};
 </script>
 <style scoped>
-  .ins_order_config {
-    width: 100%;
-    height: 100%;
-    overflow-y: auto;
-    overflow-x: hidden;
-  }
+.ins_order_config {
+  width: 100%;
+  height: 100%;
+  overflow-y: auto;
+  overflow-x: hidden;
+}
 
-  .ins_order_config::-webkit-scrollbar {
-    width: 0;
-  }
+.ins_order_config::-webkit-scrollbar {
+  width: 0;
+}
 
-  .title {
-    height: 60px;
-    line-height: 60px;
-  }
+.title {
+  height: 60px;
+  line-height: 60px;
+}
 
-  .center {
-    width: 100%;
-    height: calc(100% - 60px);
-  }
+.center {
+  width: 100%;
+  height: calc(100% - 60px);
+}
 
+>>> .all-disabled .el-checkbox__input .el-checkbox__inner {
+  background-color: #edf2fc;
+  border-color: #dcdfe6;
+  cursor: not-allowed;
+}
 
-  >>>.all-disabled .el-checkbox__input .el-checkbox__inner {
-    background-color: #edf2fc;
-    border-color: #dcdfe6;
-    cursor: not-allowed;
-  }
+.node_i {
+  color: orange;
+  font-size: 18px;
+}
 
-  .node_i {
-    color: orange;
-    font-size: 18px;
-  }
-
-  .el-select-dropdown__item {
-    display: flex;
-    align-items: center;
-    justify-content: space-between;
-  }
+.el-select-dropdown__item {
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+}
 </style>
diff --git a/src/views/business/inspectionOrder/fiberoptic-config-readonly.vue b/src/views/business/inspectionOrder/fiberoptic-config-readonly.vue
index 20c02c1..c06c44c 100644
--- a/src/views/business/inspectionOrder/fiberoptic-config-readonly.vue
+++ b/src/views/business/inspectionOrder/fiberoptic-config-readonly.vue
@@ -2,67 +2,128 @@
   <div class="ins_order_config">
     <div>
       <el-row class="title">
-        <el-col :span="6" style="padding-left: 20px;text-align: left;">鍏夌氦閰嶇疆</el-col>
-        <el-col :span="18" style="text-align: right;">
-          <!-- <el-button size="medium" type="primary" @click="save" :loading="saveLoad" v-if="active==1">淇� 瀛�</el-button> -->
+        <el-col :span="6" style="padding-left: 20px; text-align: left"
+          >鍏夌氦閰嶇疆</el-col
+        >
+        <el-col :span="18" style="text-align: right">
           <el-button size="medium" @click="outConfig">
-            <span style="color: #3A7BFA;">杩� 鍥�</span>
+            <span style="color: #3a7bfa">杩� 鍥�</span>
           </el-button>
         </el-col>
       </el-row>
     </div>
     <div class="center">
-      <el-row :gutter="10" style="margin-bottom: 10px;">
+      <el-row :gutter="10" style="margin-bottom: 10px">
         <el-col :span="9">
           <div class="grid-content">
             <h5>濂楃</h5>
             <div
-              style="display: flex;align-items: center;justify-content: space-between;padding: 0 12px;box-sizing: border-box;">
+              style="
+                display: flex;
+                align-items: center;
+                justify-content: space-between;
+                padding: 0 12px;
+                box-sizing: border-box;
+              "
+            >
               <div class="search-item">
-                <label style="width: 70px;">鏍峰搧鍨嬪彿</label>
-                <span class="models" :title="models">{{models}}</span>
+                <label style="width: 70px">鏍峰搧鍨嬪彿</label>
+                <span class="models" :title="models">{{ models }}</span>
               </div>
-              <el-radio-group v-model="packageInfo.radio" size="small" @change="isInspection()" :disabled="active!=1">
+              <el-radio-group
+                v-model="packageInfo.radio"
+                size="small"
+                @change="isInspection()"
+                :disabled="active != 1"
+              >
                 <el-radio :label="0">鍏ㄦ</el-radio>
                 <el-radio :label="1">鎶芥</el-radio>
               </el-radio-group>
             </div>
             <div
-              style="display: flex;align-items: center;justify-content: space-between;margin-bottom: 8px;padding: 0 12px;box-sizing: border-box;">
-              <div class="search-item" style="margin-right: 10px;">
+              style="
+                display: flex;
+                align-items: center;
+                justify-content: space-between;
+                margin-bottom: 8px;
+                padding: 0 12px;
+                box-sizing: border-box;
+              "
+            >
+              <div class="search-item" style="margin-right: 10px">
                 <label>濂楃鏁扮洰</label>
-                <el-input v-model="packageInfo.num1" placeholder="璇疯緭鍏�" size="small" @blur="addBushing" :disabled="active!=1"></el-input>
+                <el-input
+                  v-model="packageInfo.num1"
+                  placeholder="璇疯緭鍏�"
+                  size="small"
+                  @blur="addBushing"
+                  :disabled="active != 1"
+                ></el-input>
               </div>
-              <div class="search-item" style="margin-right: 10px;">
+              <div class="search-item" style="margin-right: 10px">
                 <label style="width: 100px">姣忔牴绠℃娊妫�鏍囧噯閲�</label>
-                <el-input v-model="packageInfo.standNum" placeholder="璇疯緭鍏�" size="small" @blur="addStandNum" :disabled="active!=1" style="width:70px"></el-input>
+                <el-input
+                  v-model="packageInfo.standNum"
+                  placeholder="璇疯緭鍏�"
+                  size="small"
+                  @blur="addStandNum"
+                  :disabled="active != 1"
+                  style="width: 70px"
+                ></el-input>
               </div>
               <div class="search-item">
                 <label style="width: 100px">姣忔牴绠℃娊妫�妫�娴嬮噺</label>
-                <el-input v-model="packageInfo.testNum" placeholder="璇疯緭鍏�" size="small" @blur="addTestNum"
-                style="width:70px"
-                  :disabled="packageInfo.radio===0||active!=1"></el-input>
+                <el-input
+                  v-model="packageInfo.testNum"
+                  placeholder="璇疯緭鍏�"
+                  size="small"
+                  @blur="addTestNum"
+                  style="width: 70px"
+                  :disabled="packageInfo.radio === 0 || active != 1"
+                ></el-input>
               </div>
             </div>
-            <el-table ref="table0" :data="bushing" tooltip-effect="dark" style="width: 100%" height="203px" size="small"
+            <el-table
+              ref="table0"
+              :data="bushing"
+              tooltip-effect="dark"
+              style="width: 100%"
+              height="203px"
+              size="small"
               @selection-change="handleSelectionChange1"
-              :header-cell-class-name="setClassName0">
-              <!-- <el-table-column
-              type="selection"
-              width="45"
-              :selectable="()=>(active==1)">
-              </el-table-column> -->
+              :header-cell-class-name="setClassName0"
+            >
               <el-table-column label="绠¤壊鏍�" show-overflow-tooltip>
                 <template slot-scope="scope">
-                  <el-select v-model="scope.row.color" size="mini" :disabled="active!=1" allow-create filterable >
-                    <el-option v-for="(color,i) in colors" :key="i" :label="color.lable"
-                      :value="color.value"></el-option>
+                  <el-select
+                    v-model="scope.row.color"
+                    size="mini"
+                    :disabled="active != 1"
+                    allow-create
+                    filterable
+                  >
+                    <el-option
+                      v-for="(color, i) in colors"
+                      :key="i"
+                      :label="color.dictLable"
+                      :value="color.dictValue"
+                    ></el-option>
                   </el-select>
                 </template>
               </el-table-column>
-              <el-table-column prop="standNum" label="鏍囬噺" show-overflow-tooltip align="center">
+              <el-table-column
+                prop="standNum"
+                label="鏍囬噺"
+                show-overflow-tooltip
+                align="center"
+              >
               </el-table-column>
-              <el-table-column prop="testNum" label="娴嬭瘯閲�" show-overflow-tooltip align="center">
+              <el-table-column
+                prop="testNum"
+                label="娴嬭瘯閲�"
+                show-overflow-tooltip
+                align="center"
+              >
               </el-table-column>
             </el-table>
           </div>
@@ -70,37 +131,83 @@
         <el-col :span="15">
           <div class="grid-content">
             <h5>妫�娴嬮」淇℃伅</h5>
-            <el-table ref="productTable" :data="detectionItems" tooltip-effect="dark" style="width: 100%"
-            :row-class-name="tableRowClassName"
-            :header-cell-class-name="setClassName"
-            height="283px"
-              size="small" @selection-change="handleSelectionChange2"
+            <el-table
+              ref="productTable"
+              :data="detectionItems"
+              tooltip-effect="dark"
+              style="width: 100%"
+              :row-class-name="tableRowClassName"
+              :header-cell-class-name="setClassName"
+              height="283px"
+              size="small"
+              @selection-change="handleSelectionChange2"
               @select-all="handleAll"
               @select="upProductSelect"
+            >
+              <el-table-column
+                label="瀹為獙瀹�"
+                show-overflow-tooltip
+                prop="sonLaboratory"
+              ></el-table-column>
+              <el-table-column
+                prop="inspectionItem"
+                label="妫�楠岄」"
+                show-overflow-tooltip
               >
-              <!-- <el-table-column type="selection" width="55"
-              :selectable="()=>((currentDetectionItems||this.selectFiberList.length > 0 || this.multiFiberList.length > 0)&&active==1)">
-              </el-table-column> -->
-              <el-table-column label="瀹為獙瀹�" show-overflow-tooltip prop="sonLaboratory" ></el-table-column>
-              <el-table-column prop="inspectionItem" label="妫�楠岄」" show-overflow-tooltip>
               </el-table-column>
-              <el-table-column prop="inspectionItemSubclass" label="妫�楠岄」瀛愰」" show-overflow-tooltip width="100px">
+              <el-table-column
+                prop="inspectionItemSubclass"
+                label="妫�楠岄」瀛愰」"
+                show-overflow-tooltip
+                width="100px"
+              >
               </el-table-column>
-              <el-table-column prop="methodS" label="璇曢獙鏂规硶" min-width="90" show-overflow-tooltip>
+              <el-table-column
+                prop="methodS"
+                label="璇曢獙鏂规硶"
+                min-width="90"
+                show-overflow-tooltip
+              >
               </el-table-column>
-              <el-table-column prop="price" label="鍗曚环" width="70" show-overflow-tooltip>
+              <el-table-column
+                prop="price"
+                label="鍗曚环"
+                width="70"
+                show-overflow-tooltip
+              >
               </el-table-column>
-              <el-table-column prop="unit" label="鍗曚綅" width="70" show-overflow-tooltip>
+              <el-table-column
+                prop="unit"
+                label="鍗曚綅"
+                width="70"
+                show-overflow-tooltip
+              >
               </el-table-column>
               <!-- <el-table-column prop="manDay" label="棰勮鏃堕棿" width="90" show-overflow-tooltip>
               </el-table-column> -->
-              <el-table-column prop="ask" label="妫�娴嬭姹�" show-overflow-tooltip width="200px">
+              <el-table-column
+                prop="ask"
+                label="妫�娴嬭姹�"
+                show-overflow-tooltip
+                width="200px"
+              >
                 <template slot-scope="scope">
-                  <el-input v-model="scope.row.ask" placeholder="璇疯緭鍏�" size="small" :disabled="active!=1" v-if="!isAskOnlyRead"></el-input>
+                  <el-input
+                    v-model="scope.row.ask"
+                    placeholder="璇疯緭鍏�"
+                    size="small"
+                    :disabled="active != 1"
+                    v-if="!isAskOnlyRead"
+                  ></el-input>
                   <span v-else>{{ scope.row.ask }}</span>
                 </template>
               </el-table-column>
-              <el-table-column prop="tell" label="瑕佹眰鎻忚堪" show-overflow-tooltip width="150">
+              <el-table-column
+                prop="tell"
+                label="瑕佹眰鎻忚堪"
+                show-overflow-tooltip
+                width="150"
+              >
               </el-table-column>
             </el-table>
           </div>
@@ -109,240 +216,365 @@
       <el-row :gutter="10">
         <el-col :span="12" v-if="packageInfo.ismiers">
           <div class="grid-content">
-            <h5>鍏夌氦甯�
-              <el-button size="mini" type="primary" class="btns" @click="addFibers"
-                 v-if="active==1">鐢熸垚鍏夌氦甯�</el-button>
-              <!-- <el-button size="mini" class="btns" @click="clearFibers" :disabled="selectBushing.length === 0" v-if="active==1">娓呴櫎</el-button> -->
+            <h5>
+              鍏夌氦甯�
+              <el-button
+                size="mini"
+                type="primary"
+                class="btns"
+                @click="addFibers"
+                v-if="active == 1"
+                >鐢熸垚鍏夌氦甯�</el-button
+              >
             </h5>
             <div
-              style="display: flex;align-items: center;justify-content: space-between;margin:4px 0 6px 0;padding: 0 12px;box-sizing: border-box;">
-              <!-- <div class="search-item" style="width: 50%;margin-right: 16px;">
-                <label style="width: 80px;">绾ゅ甫绫诲瀷</label>
-                <el-select v-model="miresModel" placeholder="璇烽�夋嫨" size="small" style="width: 100%;"
-                  :disabled="selectBushing.length===0||active!=1"
+              style="
+                display: flex;
+                align-items: center;
+                justify-content: space-between;
+                margin: 4px 0 6px 0;
+                padding: 0 12px;
+                box-sizing: border-box;
+              "
+            >
+              <div class="search-item" style="width: 50%; margin-right: 16px">
+                <label style="width: 80px">绾ゅ甫绫诲瀷</label>
+                <el-select
+                  v-model="miresModel"
+                  placeholder="璇烽�夋嫨"
+                  size="small"
+                  style="width: 100%"
+                  :disabled="selectBushing.length === 0 || active != 1"
+                >
+                  <el-option
+                    v-for="(item, a) in miresModels"
+                    :key="a"
+                    :label="item.label"
+                    :value="item.value"
                   >
-                  <el-option v-for="(item,a) in miresModels" :key="a" :label="item.label" :value="item.value">
-                  </el-option>
-                </el-select>
-              </div> -->
-              <!-- <div class="search-item" style="width: 50%;">
-                <label style="width: 80px;">鍙傝�冩爣鍑�</label>
-                <el-select v-model="miresStandard" placeholder="璇烽�夋嫨" size="small" style="width: 100%;"
-                  :disabled="miresModel===null||active!=1" @focus="selectsStandardMethodByFLSSM2()"
-                  @change="(value)=>methodChange2(value)">
-                  <el-option v-for="item in miresStandards" :key="item.id" :label="item.code" :value="item.id">
-                  </el-option>
-                </el-select>
-              </div> -->
-              <div class="search-item" style="width: 50%;margin-right: 16px;">
-                <label style="width: 80px;">绾ゅ甫绫诲瀷</label>
-                <el-select v-model="miresModel" placeholder="璇烽�夋嫨" size="small" style="width: 100%;"
-                  :disabled="selectBushing.length===0||active!=1"
-                  >
-                  <el-option v-for="(item,a) in miresModels" :key="a" :label="item.label" :value="item.value">
                   </el-option>
                 </el-select>
               </div>
-              <div class="search-item" style="width: 50%;">
-                <label style="width: 80px;">鍙傝�冩爣鍑�</label>
-                <el-select v-model="miresStandard" placeholder="璇烽�夋嫨" size="small" style="width: 100%;"
-                :disabled="miresModel===null||active!=1"
-                 @focus="selectsStandardMethodByFLSSM2()"
-                  @change="(value)=>methodChange2(value)">
-                  <el-option v-for="item in miresStandards" :key="item.id" :label="item.code" :value="item.id">
+              <div class="search-item" style="width: 50%">
+                <label style="width: 80px">鍙傝�冩爣鍑�</label>
+                <el-select
+                  v-model="miresStandard"
+                  placeholder="璇烽�夋嫨"
+                  size="small"
+                  style="width: 100%"
+                  :disabled="miresModel === null || active != 1"
+                  @focus="selectsStandardMethodByFLSSM2()"
+                  @change="(value) => methodChange2(value)"
+                >
+                  <el-option
+                    v-for="item in miresStandards"
+                    :key="item.id"
+                    :label="item.code"
+                    :value="item.id"
+                  >
                   </el-option>
                 </el-select>
               </div>
-
             </div>
-            <el-table ref="table2" :data="fibersList" tooltip-effect="dark" style="width: 100%" height="270px"
-              size="small" @selection-change="handleSelectionChange" highlight-current-row @row-click="(row, column, event)=>rowClickFiber(row, column, event,1)"
-              :header-cell-class-name="setClassName0">
-              <!-- <el-table-column
-              type="selection"
-              width="55"
-              :selectable="()=>(active==1)">
-              </el-table-column> -->
-              <el-table-column prop="color" label="绠″鑹叉爣" width="90" align="center">
+            <el-table
+              ref="table2"
+              :data="fibersList"
+              tooltip-effect="dark"
+              style="width: 100%"
+              height="270px"
+              size="small"
+              @selection-change="handleSelectionChange"
+              highlight-current-row
+              @row-click="
+                (row, column, event) => rowClickFiber(row, column, event, 1)
+              "
+              :header-cell-class-name="setClassName0"
+            >
+              <el-table-column
+                prop="color"
+                label="绠″鑹叉爣"
+                width="90"
+                align="center"
+              >
               </el-table-column>
-              <el-table-column prop="code" label="鍏夌氦甯︾紪鍙�" show-overflow-tooltip align="center">
-                <!-- <template slot-scope="scope">
-                  <el-input v-model="scope.row.code" placeholder="璇疯緭鍏�" size="mini" ></el-input>
-                </template> -->
+              <el-table-column
+                prop="code"
+                label="鍏夌氦甯︾紪鍙�"
+                show-overflow-tooltip
+                align="center"
+              >
               </el-table-column>
-              <el-table-column prop="model" label="鍏夌氦甯﹁鏍�" show-overflow-tooltip align="center">
-                <!-- <template slot-scope="scope">
-                  <el-input v-model="scope.row.model" placeholder="璇疯緭鍏�" size="mini" ></el-input>
-                </template> -->
+              <el-table-column
+                prop="model"
+                label="鍏夌氦甯﹁鏍�"
+                show-overflow-tooltip
+                align="center"
+              >
               </el-table-column>
-              <el-table-column prop="standard" label="鍙傝�冩爣鍑�" show-overflow-tooltip align="center">
-                <!-- <template slot-scope="scope">
-                  <el-input v-model="scope.row.standard" placeholder="璇疯緭鍏�" size="mini" ></el-input>
-                </template> -->
+              <el-table-column
+                prop="standard"
+                label="鍙傝�冩爣鍑�"
+                show-overflow-tooltip
+                align="center"
+              >
               </el-table-column>
-              <el-table-column prop="num" label="鍏夌氦妫�娴嬮噺" show-overflow-tooltip align="center">
-                <!-- <template slot-scope="scope">
-                  <el-input v-model="scope.row.num" placeholder="璇疯緭鍏�" size="mini" ></el-input>
-                </template> -->
+              <el-table-column
+                prop="num"
+                label="鍏夌氦妫�娴嬮噺"
+                show-overflow-tooltip
+                align="center"
+              >
               </el-table-column>
             </el-table>
           </div>
         </el-col>
-        <el-col :span="!packageInfo.ismiers?24:12">
+        <el-col :span="!packageInfo.ismiers ? 24 : 12">
           <div class="grid-content">
-            <h5>鍏夌氦
-              <el-button size="mini" type="primary" class="btns" @click="addFiber"
-                 v-if="active==1">鍏夌氦閰嶈壊</el-button>
-              </h5>
+            <h5>
+              鍏夌氦
+              <el-button
+                size="mini"
+                type="primary"
+                class="btns"
+                @click="addFiber"
+                v-if="active == 1"
+                >鍏夌氦閰嶈壊</el-button
+              >
+            </h5>
             <div
-              style="display: flex;align-items: center;justify-content: space-between;margin: 4px 0 6px 0;padding: 0 12px;box-sizing: border-box;">
-              <!-- <div class="search-item" style="width: 50%;margin-right: 16px;">
-                <label style="width: 80px;">鍏夌氦绫诲瀷</label>
-                <el-select v-model="mireModel" placeholder="璇烽�夋嫨" size="small" style="width: 100%;"
-                  :disabled="selectBushing.length===0||active!=1">
-                  <el-option v-for="(item,a) in mireModels" :key="a" :label="item.label" :value="item.value">
+              style="
+                display: flex;
+                align-items: center;
+                justify-content: space-between;
+                margin: 4px 0 6px 0;
+                padding: 0 12px;
+                box-sizing: border-box;
+              "
+            >
+              <div class="search-item" style="width: 50%; margin-right: 16px">
+                <label style="width: 80px">鍏夌氦绫诲瀷</label>
+                <el-select
+                  v-model="mireModel"
+                  placeholder="璇烽�夋嫨"
+                  size="small"
+                  style="width: 100%"
+                >
+                  <el-option
+                    v-for="(item, a) in mireModels"
+                    :key="a"
+                    :label="item.label"
+                    :value="item.value"
+                  >
                   </el-option>
                 </el-select>
               </div>
-              <div class="search-item" style="width: 50%;">
-                <label style="width: 80px;">鍙傝�冩爣鍑�</label>
-                <el-select v-model="mireStandard" placeholder="璇烽�夋嫨" size="small" style="width: 100%;"
-                  :disabled="mireModel===null||active!=1" @focus="selectsStandardMethodByFLSSM()"
-                  @change="(value)=>methodChange(value)" :loading="mireStandardLoading">
-                  <el-option v-for="item in mireStandards" :key="item.id" :label="item.code" :value="item.id">
-                  </el-option>
-                </el-select>
-              </div> -->
-              <div class="search-item" style="width: 50%;margin-right: 16px;">
-                <label style="width: 80px;">鍏夌氦绫诲瀷</label>
-                <el-select v-model="mireModel" placeholder="璇烽�夋嫨" size="small" style="width: 100%;"
-               >
-                  <el-option v-for="(item,a) in mireModels" :key="a" :label="item.label" :value="item.value">
-                  </el-option>
-                </el-select>
-              </div>
-              <div class="search-item" style="width: 50%;">
-                <label style="width: 80px;">鍙傝�冩爣鍑�</label>
-                <el-select v-model="mireStandard" placeholder="璇烽�夋嫨" size="small" style="width: 100%;"
-                :disabled="mireModel===null||active!=1"
-                 @focus="selectsStandardMethodByFLSSM()"
-                  @change="(value)=>methodChange(value)" :loading="mireStandardLoading">
-                  <el-option v-for="item in mireStandards" :key="item.id" :label="item.code" :value="item.id">
+              <div class="search-item" style="width: 50%">
+                <label style="width: 80px">鍙傝�冩爣鍑�</label>
+                <el-select
+                  v-model="mireStandard"
+                  placeholder="璇烽�夋嫨"
+                  size="small"
+                  style="width: 100%"
+                  :disabled="mireModel === null || active != 1"
+                  @focus="selectsStandardMethodByFLSSM()"
+                  @change="(value) => methodChange(value)"
+                  :loading="mireStandardLoading"
+                >
+                  <el-option
+                    v-for="item in mireStandards"
+                    :key="item.id"
+                    :label="item.code"
+                    :value="item.id"
+                  >
                   </el-option>
                 </el-select>
               </div>
             </div>
-            <el-table ref="table3" :data="fiberList" tooltip-effect="dark" style="width: 100%" height="270px"
-              size="small" highlight-current-row @selection-change="handleSelectionChange4"
-              @row-click="(row, column, event)=>rowClickFiber(row, column, event,0)"
-              :header-cell-class-name="setClassName0">
-              <!-- <el-table-column
-              type="selection"
-              width="55"
-              :selectable="()=>(active==1)">
-              </el-table-column> -->
-              <el-table-column prop="bushColor" label="绠″鑹叉爣" width="90" align="center">
+            <el-table
+              ref="table3"
+              :data="fiberList"
+              tooltip-effect="dark"
+              style="width: 100%"
+              height="270px"
+              size="small"
+              highlight-current-row
+              @selection-change="handleSelectionChange4"
+              @row-click="
+                (row, column, event) => rowClickFiber(row, column, event, 0)
+              "
+              :header-cell-class-name="setClassName0"
+            >
+              <el-table-column
+                prop="bushColor"
+                label="绠″鑹叉爣"
+                width="90"
+                align="center"
+              >
               </el-table-column>
               <el-table-column prop="color" label="鍏夌氦鑹叉爣" width="120">
-                <!-- <template slot-scope="scope">
-                  <el-select v-model="scope.row.color" size="mini" :disabled="active!=1" allow-create filterable >
-                    <el-option v-for="(color,i) in colors" :key="i" :label="color.lable"
-                      :value="color.value"></el-option>
-                  </el-select>
-                </template> -->
               </el-table-column>
-              <el-table-column prop="model" label="鍏夌氦瑙勬牸" show-overflow-tooltip align="center">
+              <el-table-column
+                prop="model"
+                label="鍏夌氦瑙勬牸"
+                show-overflow-tooltip
+                align="center"
+              >
               </el-table-column>
-              <el-table-column prop="standard" label="鍙傝�冩爣鍑�" show-overflow-tooltip align="center">
+              <el-table-column
+                prop="standard"
+                label="鍙傝�冩爣鍑�"
+                show-overflow-tooltip
+                align="center"
+              >
               </el-table-column>
             </el-table>
           </div>
         </el-col>
       </el-row>
     </div>
-    <el-dialog title="妫�娴嬪埌鐗规畩椤癸紝璇蜂綔鍑轰互涓嬮�夋嫨" :visible.sync="bsm1Dia" width="500px" :show-close="false" :before-close="beforeClose">
-      <div class="body" style="max-height: 60vh;">
+    <el-dialog
+      title="妫�娴嬪埌鐗规畩椤癸紝璇蜂綔鍑轰互涓嬮�夋嫨"
+      :visible.sync="bsm1Dia"
+      width="500px"
+      :show-close="false"
+      :before-close="beforeClose"
+    >
+      <div class="body" style="max-height: 60vh">
         <el-row v-if="bsm1">
           <el-col class="search_thing" :span="22">
-            <div class="search_label"><span class="required-span">* </span>鎶ゅ瀵嗗害锛�</div>
+            <div class="search_label">
+              <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"></el-radio>
+                <el-radio
+                  v-for="(a, ai) in JSON.parse(bsmRow.section)"
+                  :key="ai"
+                  :label="a"
+                ></el-radio>
               </el-radio-group>
             </div>
           </el-col>
           <el-col class="search_thing" :span="22">
             <div class="search_label">瑕佹眰鍊硷細</div>
-            <div class="search_input" v-show="bsm1Val!==null&&bsm1Val!==''">
+            <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
+                  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-col class="search_thing" :span="22">
             <div class="search_label">鍗曚环锛�</div>
-            <div class="search_input" v-show="bsm1Val!==null&&bsm1Val!==''">
+            <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.price)[ai]}}</el-radio>
+                <el-radio
+                  v-for="(a, ai) in JSON.parse(bsmRow.section)"
+                  :key="ai"
+                  :label="a"
+                  >{{ JSON.parse(bsmRow.price)[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_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>
+              <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 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-select
+                  v-model="a[0]"
+                  placeholder="璇烽�夋嫨"
+                  size="small"
+                  style="width: 100%"
+                >
                   <el-option
-                    v-for="(item,index) in sampleList"
+                    v-for="(item, index) in sampleList"
                     :key="index"
-                    :label="index+1"
-                    :value="index+1">
+                    :label="index + 1"
+                    :value="index + 1"
+                  >
                   </el-option>
                 </el-select>
               </el-col>
-              <!-- <el-col :span="10" class="pairing">{{a[0]}}</el-col> -->
-              <el-col :span="4" class="pairing" style="border: 0;color: rgba(0, 0, 0, 0.2);">鈥斺��</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-select
+                  v-model="a[1]"
+                  placeholder="璇烽�夋嫨"
+                  size="small"
+                  style="width: 100%"
+                >
                   <el-option
-                    v-for="(item,index) in sampleList"
+                    v-for="(item, index) in sampleList"
                     :key="index"
-                    :label="index+1"
-                    :value="index+1">
+                    :label="index + 1"
+                    :value="index + 1"
+                  >
                   </el-option>
                 </el-select>
               </el-col>
-              <!-- <el-col :span="10" class="pairing">{{a[1]}}</el-col> -->
             </el-col>
           </el-col>
         </el-row>
-        <!-- <el-row v-if="bsm3">
-          <el-col class="search_thing" :span="22" style="display: flex;align-items: center;">
-            <div class="search_label"><span class="required-span">* </span>RTS锛�</div>
-            <div class="search_input">
-              <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="bsm3Val"></el-input>
-            </div>
-          </el-col>
-        </el-row> -->
       </div>
     </el-dialog>
-    <el-dialog title="RTS濉啓" :visible.sync="bsm3Dia" width="500px" :show-close="false" :before-close="beforeClose0">
+    <el-dialog
+      title="RTS濉啓"
+      :visible.sync="bsm3Dia"
+      width="500px"
+      :show-close="false"
+      :before-close="beforeClose0"
+    >
       <el-row>
-        <el-col class="search_thing" :span="22" style="display: flex;align-items: center;">
-          <div class="search_label"><span class="required-span">* </span>RTS锛�</div>
+        <el-col
+          class="search_thing"
+          :span="22"
+          style="display: flex; align-items: center"
+        >
+          <div class="search_label">
+            <span class="required-span">* </span>RTS锛�
+          </div>
           <div class="search_input">
-            <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="bsm3Val"></el-input>
+            <el-input
+              size="small"
+              placeholder="璇疯緭鍏�"
+              clearable
+              v-model="bsm3Val"
+            ></el-input>
           </div>
         </el-col>
       </el-row>
@@ -351,744 +583,644 @@
 </template>
 
 <script>
-import { set } from 'vue'
-  export default {
-    props: {
-      active: {
-        type: Number,
-        default: () => 0
-      },
+import { getDicts } from "@/api/system/dict/data";
+import {
+  getStandTreeBySampleType,
+  selectStandardTreeList2,
+  selectStandardMethodEnum,
+  selectsStandardMethodByFLSSM,
+  selectStandardProductList,
+} from "@/api/standard/standardLibrary";
+export default {
+  props: {
+    active: {
+      type: Number,
+      default: () => 0,
     },
-    data() {
-      return {
-        detectionType: null,
-        detectionSelect: [],
-        selectFiberList: [],
-        type:1,
-        saveLoad: false,
-        packageInfo: {
-          radio: 1,
-          num1: null,
+  },
+  data() {
+    return {
+      detectionType: null,
+      detectionSelect: [],
+      selectFiberList: [],
+      type: 1,
+      saveLoad: false,
+      packageInfo: {
+        radio: 1,
+        num1: null,
+        standNum: null,
+        testNum: null,
+        ismiers: false,
+      },
+      tableData: [],
+      tape: {
+        value: "",
+      },
+      options: [],
+      sample: [],
+      models: "",
+      colors: [],
+      wires: [],
+      bushing: [],
+      mireModels: [],
+      mireModel: null,
+      mireStandard: [],
+      mireStandards: null,
+      miresModels: [],
+      miresModel: null,
+      miresStandard: [],
+      miresStandards: null,
+      selectBushing: [],
+      productList: [],
+      productList2: [],
+      fiberList: [],
+      fibersList: [],
+      selectFibers: [],
+      detectionItems: [],
+      currentDetectionItems: null,
+      mireStandardLoading: false,
+      multiFiberList: [],
+      isAskOnlyRead: true,
+      bsm1Dia: false,
+      bsmRow: null,
+      bsm1: false,
+      bsm1Val: null,
+      bsm2: false,
+      bsm2Val: null,
+      bsm2Dia: false,
+      bsm2Val2: [],
+      bsm2Val3: [],
+      sampleIds: [],
+      bsm3Val: null,
+      bsmRow3: null,
+      bsm3Dia: false,
+      sorted: false,
+    };
+  },
+  computed: {
+    isAllDisabled() {
+      return (
+        this.multiFiberList.length > 0 ||
+        this.currentDetectionItems ||
+        this.active != 1
+      );
+    },
+  },
+  watch: {},
+  mounted() {
+    this.$parent.sampleIds.forEach((a) => {
+      for (var i = 0; i < this.$parent.sampleList.length; i++) {
+        if (this.$parent.sampleList[i].id == a) {
+          this.sample.push(this.$parent.sampleList[i]);
+          this.models += "," + this.$parent.sampleList[i].model;
+          break;
+        }
+      }
+    });
+    console.log(111, this.sample);
+    this.models = this.models.replace(",", "");
+    this.packageInfo.ismiers = this.models
+      .split(",")
+      .every(
+        (e) =>
+          (e.indexOf("d") > -1 || e.indexOf("D") > -1) && !e.includes("ADSS")
+      );
+    if (
+      this.sample[0].bushing === undefined ||
+      this.sample[0].bushing === null
+    ) {
+      this.bushing = [];
+    } else {
+      this.bushing = this.HaveJson(this.sample[0].bushing);
+      this.packageInfo.num1 = this.sample[0].bushing.length;
+      this.packageInfo.standNum = this.sample[0].bushing[0].standNum;
+      this.packageInfo.testNum = this.sample[0].bushing[0].testNum;
+      this.bushing.forEach((a) => {
+        if (a.fibers == null || a.fibers.length == 0) a.fibers = [];
+        if (a.fiber == null || a.fiber.length == 0) a.fiber = [];
+        // 鍒ゆ柇鏄惁鍚湁鍏夌氦甯�
+        if (this.packageInfo.ismiers) {
+          // this.fibersList = [] // 鏂板
+          // this.fiberList = []  // 鏂板
+          if (a.fibers.length > 0) {
+            a.fibers.sort((a, b) => a.id - b.id);
+            a.fibers.forEach((b) => {
+              this.$set(b, "color", a.color);
+              // 鍏夌氦甯�
+              this.fibersList.push(b);
+              // 鍏夌氦
+              b.fiber.forEach((c) => {
+                this.fiberList.push(c);
+              });
+            });
+          } else {
+            a.fiber.forEach((b) => {
+              this.fiberList.push(b);
+            });
+          }
+        } else {
+          // this.fiberList = []
+          a.fiber.forEach((b) => {
+            this.fiberList.push(b);
+          });
+        }
+      });
+    }
+
+    this.getTypeDicts1();
+    this.getStandTreeBySampleType();
+    this.getStandTreeBySampleType2();
+    this.selectsStandardMethodByFLSSM2();
+  },
+  methods: {
+    handleSelectionChange(val) {
+      // this.selectFibers = val
+      this.multiFiberList = val;
+    },
+    handleSelectionChange1(val) {
+      this.selectBushing = val;
+    },
+    handleSelectionChange2(val) {
+      this.detectionSelect = val;
+      // 璧嬪�兼娴嬮」淇℃伅 鍏夌氦甯�
+      if (this.detectionItems.type == 1) {
+        this.multiFiberList.forEach((item) => {
+          this.fibersList.forEach((a) => {
+            if (a.ident == item.ident) {
+              a.productList = [];
+              this.fibersList.find((a) => a.ident == item.ident).productList =
+                this.detectionSelect;
+            }
+          });
+        });
+      }
+      if (this.detectionItems.type == 0) {
+        // 璧嬪�兼娴嬮」淇℃伅 鍏夌氦
+        console.log("000", this.selectFiberList);
+        this.selectFiberList.forEach((item) => {
+          this.fiberList.forEach((a) => {
+            if (a.ident == item.ident) {
+              a.productList = [];
+              this.fiberList.find((a) => a.ident == item.ident).productList =
+                this.detectionSelect;
+            }
+          });
+        });
+      }
+    },
+    handleSelectionChange4(val) {
+      this.selectFiberList = val;
+    },
+    outConfig() {
+      this.$parent.configShow = false;
+    },
+    getTypeDicts1() {
+      getDicts("fiber_color_type")
+        .then((res) => {
+          if (res.code === 200) {
+            this.colors = res.data;
+          }
+        })
+        .catch((error) => {
+          console.error(error);
+        });
+    },
+    // 濂楃鏁扮洰鐢熸垚琛ㄦ牸鏁版嵁
+    addBushing() {
+      this.bushing = [];
+      for (let i = 0; i < this.packageInfo.num1; i++) {
+        let bushing = {
+          ident: this.bushing.length + 1,
+          color: this.colors[i].dictLabel,
           standNum: null,
           testNum: null,
-          ismiers: false
-        },
-        tableData: [],
-        tape: {
-          value: ''
-        },
-        options: [],
-        sample: [],
-        models: '',
-        colors: [],
-        wires: [],
-        bushing: [],
-        mireModels: [],
-        mireModel: null,
-        mireStandard: [],
-        mireStandards: null,
-        miresModels: [],
-        miresModel: null,
-        miresStandard: [],
-        miresStandards: null,
-        selectBushing: [],
-        productList: [],
-        productList2: [],
-        fiberList: [],
-        fibersList: [],
-        selectFibers: [],
-        detectionItems: [],
-        currentDetectionItems:null,
-        mireStandardLoading:false,
-        multiFiberList:[],
-        isAskOnlyRead:true,
-        bsm1Dia: false,
-        bsmRow: null,
-        bsm1: false,
-        bsm1Val: null,
-        bsm2: false,
-        bsm2Val: null,
-        bsm2Dia: false,
-        bsm2Val2: [],
-        bsm2Val3: [],
-        sampleIds:[],
-        bsm3Val: null,
-        bsmRow3: null,
-        bsm3Dia: false,
-        sorted: false
+          fibers: [],
+          fiber: [],
+        };
+        this.bushing.push(bushing);
       }
     },
-    computed: {
-      isAllDisabled() {
-        return this.multiFiberList.length > 0||this.currentDetectionItems||this.active!=1
-      },
-    },
-    watch: {
-      // mireModel(val1,val0) {
-      //   if(val1!=val0){
-      //     this.mireStandards = []
-      //     this.fiberList = []
-      //     this.multiFiberList = []
-      //     this.detectionItems = []
-      //     this.currentDetectionItems = null;
-      //   }
-      // },
-      // mireStandard(val1,val0) {
-      //   if(val1!=val0){
-      //     this.fiberList = []
-      //     this.multiFiberList = []
-      //     this.detectionItems = []
-      //     this.currentDetectionItems = null;
-      //   }
-      // }
-    },
-    mounted() {
-      this.$parent.sampleIds.forEach(a => {
-        for (var i = 0; i < this.$parent.sampleList.length; i++) {
-          if (this.$parent.sampleList[i].id == a) {
-            this.sample.push(this.$parent.sampleList[i])
-            this.models += (',' + this.$parent.sampleList[i].model)
-            break
-          }
-        }
-      })
-      console.log(111, this.sample);
-      this.models = this.models.replace(',', '')
-      this.packageInfo.ismiers = this.models.split(',').every(e=>(e.indexOf('d')>-1||e.indexOf('D')>-1)&&!e.includes('ADSS'))
-      if(this.sample[0].bushing === undefined || this.sample[0].bushing === null){
-        this.bushing = []
-      }else{
-        this.bushing = this.HaveJson(this.sample[0].bushing)
-        this.packageInfo.num1 = this.sample[0].bushing.length
-        this.packageInfo.standNum = this.sample[0].bushing[0].standNum
-        this.packageInfo.testNum = this.sample[0].bushing[0].testNum
-        this.bushing.forEach(a=>{
-          if(a.fibers==null || a.fibers.length ==0)a.fibers=[]
-          if(a.fiber==null || a.fiber.length == 0)a.fiber=[]
-          // 鍒ゆ柇鏄惁鍚湁鍏夌氦甯�
-          if(this.packageInfo.ismiers){
-            // this.fibersList = [] // 鏂板
-            // this.fiberList = []  // 鏂板
-            if(a.fibers.length>0){
-              a.fibers.sort((a,b)=>a.id-b.id)
-              a.fibers.forEach(b=>{
-                this.$set(b,'color',a.color)
-              // 鍏夌氦甯�
-              this.fibersList.push(b)
-              // 鍏夌氦
-              b.fiber.forEach(c=>{
-                this.fiberList.push(c)
-              })
-            })
-            } else {
-              a.fiber.forEach(b=>{
-              this.fiberList.push(b)
-            })
+    // 濂楃鏍囧噯閲忚祴鍊�
+    addStandNum() {
+      if (this.selectBushing.length > 0) {
+        this.bushing.forEach((item) => {
+          this.selectBushing.forEach((a) => {
+            if (item.ident == a.ident) {
+              item.standNum = this.packageInfo.standNum;
             }
-
-          }else{
-           // this.fiberList = []
-            a.fiber.forEach(b=>{
-              this.fiberList.push(b)
-            })
-          }
-        })
+          });
+        });
       }
-
-      this.getTypeDicts1()
-      this.getStandTreeBySampleType()
-      this.getStandTreeBySampleType2()
-      this.selectsStandardMethodByFLSSM2()
     },
-    methods: {
-      handleSelectionChange(val) {
-        // this.selectFibers = val
-        this.multiFiberList = val
-      },
-      handleSelectionChange1(val) {
-        this.selectBushing = val
-      },
-      handleSelectionChange2(val){
-        this.detectionSelect = val
-        // 璧嬪�兼娴嬮」淇℃伅 鍏夌氦甯�
-        if(this.detectionItems.type == 1) {
-          this.multiFiberList.forEach(item => {
-            this.fibersList.forEach(a => {
-              if(a.ident == item.ident){
-                a.productList  =  []
-                this.fibersList.find(a => a.ident == item.ident).productList = this.detectionSelect
-              }
-            })
-          })
-
+    // 濂楃妫�娴嬮噺璧嬪��
+    addTestNum() {
+      if (this.selectBushing.length > 0) {
+        this.bushing.forEach((item) => {
+          this.selectBushing.forEach((a) => {
+            if (item.ident == a.ident) {
+              item.testNum = this.packageInfo.testNum;
+            }
+          });
+        });
       }
-      if(this.detectionItems.type == 0) {
-        // 璧嬪�兼娴嬮」淇℃伅 鍏夌氦
-        console.log('000',this.selectFiberList);
-        this.selectFiberList.forEach(item => {
-            this.fiberList.forEach(a => {
-              if(a.ident == item.ident){
-                a.productList  =  []
-                this.fiberList.find(a => a.ident == item.ident).productList = this.detectionSelect
-              }
-            })
-          })
-        }
-      },
-      handleSelectionChange4(val){
-        this.selectFiberList = val
-      },
-      outConfig() {
-        this.$parent.configShow = false
-      },
-      getTypeDicts1() {
-        this.$axios.post(this.$api.enums.selectEnumByCategory, {
-          category: "鑹叉爣"
-        }).then(res => {
-          this.colors = res.data
-        })
-      },
-      // 濂楃鏁扮洰鐢熸垚琛ㄦ牸鏁版嵁
-      addBushing() {
-        this.bushing = []
-        for(let i = 0; i < this.packageInfo.num1; i++){
-          let bushing = {
-            ident: this.bushing.length + 1,
-            color: this.colors[i].label,
-            standNum: null,
-            testNum: null,
-            fibers: [],
-            fiber: []
-          }
-          this.bushing.push(bushing)
-        }
-      },
-      // 濂楃鏍囧噯閲忚祴鍊�
-      addStandNum() {
-        if(this.selectBushing.length > 0) {
-          this.bushing.forEach(item => {
-          this.selectBushing.forEach(a => {
-            if(item.ident == a.ident) {
-              item.standNum = this.packageInfo.standNum
-            }
-          })
-        })
-        }
-      },
-      // 濂楃妫�娴嬮噺璧嬪��
-      addTestNum() {
-        if(this.selectBushing.length > 0) {
-          this.bushing.forEach(item => {
-          this.selectBushing.forEach(a => {
-            if(item.ident == a.ident) {
-              item.testNum = this.packageInfo.testNum
-            }
-          })
-        })
-        }
-      },
-      isInspection() {
-        this.fiberList = []
-        this.fibersList = []
-        this.detectionItems = []
+    },
+    isInspection() {
+      this.fiberList = [];
+      this.fibersList = [];
+      this.detectionItems = [];
 
-        // 椤甸潰鏄惁鍚湁鍏夌氦甯�
-        if(this.packageInfo.ismiers) {
-          // 鍏ㄦ
-          if (this.packageInfo.radio == 0) {
+      // 椤甸潰鏄惁鍚湁鍏夌氦甯�
+      if (this.packageInfo.ismiers) {
+        // 鍏ㄦ
+        if (this.packageInfo.radio == 0) {
           // 鏍规嵁鏍囧噯閲忚祴鍊兼娴嬮噺
-          if(parseInt(this.packageInfo.standNum) > 0 ) {
+          if (parseInt(this.packageInfo.standNum) > 0) {
             // 缁欏厜绾ゅ甫璧嬪��
-            this.packageInfo.testNum = this.packageInfo.standNum
-            this.selectBushing = this.bushing
-            this.addFibers()
-            this.multiFiberList = this.fibersList
+            this.packageInfo.testNum = this.packageInfo.standNum;
+            this.selectBushing = this.bushing;
+            this.addFibers();
+            this.multiFiberList = this.fibersList;
             // 榛樿鍕鹃��
             setTimeout(() => {
-              this.selectBushing.forEach(item =>{
-              let rowToSelect =  this.bushing.find(a => a.ident == item.ident)
-              this.$refs.table0.toggleRowSelection(rowToSelect, true)
-              })
+              this.selectBushing.forEach((item) => {
+                let rowToSelect = this.bushing.find(
+                  (a) => a.ident == item.ident
+                );
+                this.$refs.table0.toggleRowSelection(rowToSelect, true);
+              });
 
-              this.multiFiberList.forEach(item =>{
-              let rowToSelect =  this.fibersList.find(a => a.ident == item.ident)
-              this.$refs.table2.toggleRowSelection(rowToSelect, true)
-              })
-            }, 200)
+              this.multiFiberList.forEach((item) => {
+                let rowToSelect = this.fibersList.find(
+                  (a) => a.ident == item.ident
+                );
+                this.$refs.table2.toggleRowSelection(rowToSelect, true);
+              });
+            }, 200);
+          }
+        }
+      } else {
+        if (this.packageInfo.radio == 0) {
+          if (parseInt(this.packageInfo.standNum) > 0) {
+            this.packageInfo.testNum = this.packageInfo.standNum;
+            this.selectBushing = this.bushing;
+            this.addFiber();
+            // 榛樿鍕鹃��
+            setTimeout(() => {
+              this.selectBushing.forEach((item) => {
+                let rowToSelect = this.bushing.find(
+                  (a) => a.ident == item.ident
+                );
+                this.$refs.table0.toggleRowSelection(rowToSelect, true);
+              });
+            }, 200);
+          }
         }
       }
-        }else {
-          if(this.packageInfo.radio == 0) {
-            if(parseInt(this.packageInfo.standNum) > 0 ) {
-              this.packageInfo.testNum = this.packageInfo.standNum
-              this.selectBushing = this.bushing
-              this.addFiber()
-              // 榛樿鍕鹃��
-            setTimeout(() => {
-              this.selectBushing.forEach(item =>{
-              let rowToSelect =  this.bushing.find(a => a.ident == item.ident)
-              this.$refs.table0.toggleRowSelection(rowToSelect, true)
-              })
-            }, 200)
-            }
+    },
+    upNum() {
+      this.fiberList = [];
+      this.fibersList = [];
+      this.detectionItems = [];
+      if (this.packageInfo.radio === 0) {
+        this.packageInfo.testNum = this.packageInfo.standNum;
+      }
+      if (
+        parseInt(this.packageInfo.standNum) < parseInt(this.packageInfo.testNum)
+      ) {
+        this.packageInfo.testNum = this.packageInfo.standNum;
+      }
+      if (
+        this.packageInfo.num1 !== null &&
+        this.packageInfo.num1 !== "" &&
+        this.packageInfo.standNum !== null &&
+        this.packageInfo.standNum !== "" &&
+        this.packageInfo.testNum != null &&
+        this.packageInfo.testNum !== ""
+      ) {
+        let colors2 = [];
+        if (this.packageInfo.num1 / this.colors.length > 1) {
+          let num = this.packageInfo.num1 / this.colors.length;
+          if (this.packageInfo.num1 % this.colors.length > 0) num += 1;
+          for (var i = 0; i < num; i++) {
+            colors2 = colors2.concat(this.colors);
           }
+        } else {
+          colors2 = colors2.concat(this.colors);
         }
-
-
-
-      },
-      upNum() {
-        this.fiberList = []
-        this.fibersList = []
-        this.detectionItems = []
-        if (this.packageInfo.radio === 0) {
-          this.packageInfo.testNum = this.packageInfo.standNum
+        this.bushing = [];
+        for (var i = 0; i < this.packageInfo.num1; i++) {
+          let bushing = {
+            color: colors2[i].dictLabel,
+            standNum: this.packageInfo.standNum,
+            testNum: this.packageInfo.testNum,
+            fibers: [],
+            fiber: [],
+          };
+          this.bushing.push(bushing);
         }
-        if (parseInt(this.packageInfo.standNum) < parseInt(this.packageInfo.testNum)) {
-          this.packageInfo.testNum = this.packageInfo.standNum
-        }
-        if (this.packageInfo.num1 !== null && this.packageInfo.num1 !== '' &&
-          this.packageInfo.standNum !== null && this.packageInfo.standNum !== '' &&
-          this.packageInfo.testNum != null && this.packageInfo.testNum !== '') {
-          let colors2 = []
-          if (this.packageInfo.num1 / this.colors.length > 1) {
-            let num = this.packageInfo.num1 / this.colors.length
-            if (this.packageInfo.num1 % this.colors.length > 0) num += 1
-            for (var i = 0; i < num; i++) {
-              colors2 = colors2.concat(this.colors)
-            }
-          } else {
-            colors2 = colors2.concat(this.colors)
-          }
-          this.bushing = []
-          for (var i = 0; i < this.packageInfo.num1; i++) {
-            let bushing = {
-              color: colors2[i].label,
-              standNum: this.packageInfo.standNum,
-              testNum: this.packageInfo.testNum,
-              fibers: [],
-              fiber: []
-            }
-            this.bushing.push(bushing)
-          }
-          // 缁欏厜绾ゅ甫璧嬪��
-          if(this.selectBushing.length===0){
-            this.selectBushing = this.bushing
+        // 缁欏厜绾ゅ甫璧嬪��
+        if (this.selectBushing.length === 0) {
+          this.selectBushing = this.bushing;
         }
         // this.miresModels 绾ゅ甫绫诲瀷
         // this.miresStandards 鍙傝�冩爣鍑�
-        this.fibersList = []
-        this.packageInfo.ismiers = true
-        this.fiberList = []
-        this.selectBushing.forEach(a => {
-          a.fiber = []
-          a.fibers = []
-              for(let j = 0; j < parseInt(a.testNum); j++){
-                let fibers = {
-                  id: this.fibersList.length + 1,
-                  code: null,
-                  color: a.color,
-                  model: null,
-                  standard: null,
-                  num: a.testNum,
-                  productList: this.HaveJson(this.productList2),
-                  fiber: []
-                }
-                a.fibers.push(fibers)
-                this.fibersList.push(fibers)
-              }
-        })
+        this.fibersList = [];
+        this.packageInfo.ismiers = true;
+        this.fiberList = [];
+        this.selectBushing.forEach((a) => {
+          a.fiber = [];
+          a.fibers = [];
+          for (let j = 0; j < parseInt(a.testNum); j++) {
+            let fibers = {
+              id: this.fibersList.length + 1,
+              code: null,
+              color: a.color,
+              model: null,
+              standard: null,
+              num: a.testNum,
+              productList: this.HaveJson(this.productList2),
+              fiber: [],
+            };
+            a.fibers.push(fibers);
+            this.fibersList.push(fibers);
+          }
+        });
       } else {
-          this.bushing = []
-        }
-      },
-      getStandTreeBySampleType() {
-        this.$axios.post(this.$api.standardTree.getStandTreeBySampleType, {
-          laboratory: '閫氫俊浜у搧瀹為獙瀹�',
-          sampleType: '鍏夌氦'
-        }).then(res => {
-          this.mireModels = []
-          res.data.forEach(a => {
-            this.mireModels.push({
-              label: a.model,
-              value: a.sample + ' - ' + a.model
-            })
-          })
-        })
-      },
-      getStandTreeBySampleType2() {
-        this.$axios.post(this.$api.standardTree.getStandTreeBySampleType, {
-          laboratory: '閫氫俊浜у搧瀹為獙瀹�',
-          sampleType: '鍏夌氦甯�'
-        }).then(res => {
-          this.miresModels = []
-          res.data.forEach(a => {
-            this.miresModels.push({
-              label: a.model,
-              value: a.model
-            })
-          })
-        })
-      },
-      selectsStandardMethodByFLSSM() {
-        this.mireStandards = []
-        this.mireStandardLoading = true
-        this.$axios.post(this.$api.standardTree.selectsStandardMethodByFLSSM, {
-          tree: '涓ぉ绉戞妧妫�娴嬩腑蹇� - 閫氫俊浜у搧瀹為獙瀹� - 鍏夌氦 - ' + this.mireModel
-        }).then(res => {
-          this.mireStandardLoading = false
-          this.mireStandards = res.data.standardMethodList
-        })
-      },
-      selectsStandardMethodByFLSSM2() {
-        this.miresStandards = []
-        this.$axios.post(this.$api.standardTree.selectsStandardMethodByFLSSM, {
-          tree: '涓ぉ绉戞妧妫�娴嬩腑蹇� - 閫氫俊浜у搧瀹為獙瀹� - 鍏夌氦甯� - ' + this.miresModel
-        }).then(res => {
-          this.miresStandards = res.data.standardMethodList
-        })
-      },
-      methodChange(val) {
-        // if (val === null || val === '') return
-        // this.$axios.post(this.$api.standardTree.selectStandardProductList, {
-        //   model: this.mireModel.split(' - ')[1],
-        //   standardMethodListId: val,
-        //   factory: ''
-        // }, {
-        //   headers: {
-        //     'Content-Type': 'application/json'
-        //   }
-        // }).then(res => {
-        //   res.data.forEach(a => {
-        //     a.state = 0
-        //   })
-        //   this.productList = res.data
-        //   setTimeout(() => {
-        //     this.productList.forEach(a => {
-        //       if (a.state == 1) this.toggleSelection(a)
-        //     })
-        //     this.addFiber()
-        //   }, 200)
-        // })
-
-          // 灏嗕笅鎷夋鍊艰祴鍊肩粰鍏夌氦  鐩戝惉鍘婚櫎
-          if(this.selectFiberList.length == 0) {
-            this.$message.error('璇烽�夋嫨鏁版嵁')
-            return
-          }
-          this.selectFiberList.forEach(item => {
-            this.fiberList.forEach(a => {
-              if(a.ident == item.ident){
-                a.model = this.mireModel.split(' - ')[1] // 鍏夌氦瑙勬牸
-                a.noSplitModel = this.mireModel // 鍏夌氦瑙勬牸
-                if(this.mireStandards != null) {
-                  a.standard = this.mireStandards.find(a => a.id == this.mireStandard).code  // 鍙傝�冩爣鍑�
-                }
-              }
-            })
-          })
-         if (val === null || val === '') return
-         if(this.mireStandards == null ) return
-        this.$axios.post(this.$api.standardTree.selectStandardProductList, {
-          model: this.mireModel.split(' - ')[1],
-          standardMethodListId: val,
-          factory: ''
-        }, {
-          headers: {
-            'Content-Type': 'application/json'
-          }
-        }).then(res => {
-          this.detectionItems = []
-          if(res.data != null && res.data.length != 0){
-           res.data.forEach(a => {
-            a.state = 0
-          })
-          this.detectionItems = res.data
-          this.detectionType = 0
-           this.$set(this.detectionItems,'type',0)
-          }
-
-        })
-      },
-      methodChange2(val) {
-        // if (val === null || val === '') return
-        // this.$axios.post(this.$api.standardTree.selectStandardProductList, {
-        //   model: '',
-        //   standardMethodListId: val,
-        //   factory: '涓ぉ绉戞妧妫�娴嬩腑蹇� - 閫氫俊浜у搧瀹為獙瀹� - 鍏夌氦甯� - ' + this.miresModel + ' - ',
-        // }, {
-        //   headers: {
-        //     'Content-Type': 'application/json'
-        //   }
-        // }).then(res => {
-        //   res.data.forEach(a => {
-        //     a.state = 0
-        //   })
-        //   this.productList2 = res.data
-        //   setTimeout(() => {
-        //     this.productList2.forEach(a => {
-        //       if (a.state == 1) this.toggleSelection(a)
-        //     })
-        //     this.addFibers()
-        //   }, 200)
-        // })
-
-        if(this.multiFiberList.length == 0) {
-          this.$message.error('璇烽�夋嫨闇�瑕佹洿鏀圭殑鏁版嵁')
-          return
-        }
-        if (val === null || val === '') return
-        this.$axios.post(this.$api.standardTree.selectStandardProductList, {
-          model: '',
-          standardMethodListId: val,
-          factory: '涓ぉ绉戞妧妫�娴嬩腑蹇� - 閫氫俊浜у搧瀹為獙瀹� - 鍏夌氦甯� - ' + this.miresModel + ' - ',
-        }, {
-          headers: {
-            'Content-Type': 'application/json'
-          }
-        }).then(res => {
-          // 灏嗚幏鍙栫殑妫�娴嬮」淇℃伅璧嬪��
-          this.detectionItems = []
-          if(res.data != null && res.data.length != 0){
-            res.data.forEach(a => {
-              a.state = 0
-            })
-            this.detectionItems = res.data
-            this.detectionType = 1
-            this.$set(this.detectionItems,'type',1)
-          }
-
-          // 缁欓�変腑鐨勫厜绾ゅ甫璧嬪��
-        for(let i= 0; i < this.fibersList.length; i++){
-            this.multiFiberList.forEach(item => {
-              if(this.fibersList[i].ident == item.ident){
-                this.fibersList[i].model = this.miresModel // 绾ゅ甫瑙勬牸
-                this.fibersList[i].num = this.miresModel.replace('鑺�','') // 鍏夌氦妫�娴嬮噺
-                this.fibersList[i].productList = this.detectionItems // 妫�娴嬮」
-                this.miresStandards.forEach(a => {
-                  if(a.id == this.miresStandard) {
-                    this.fibersList[i].standard = a.code // 鍙傝�冩爣鍑�
-                  }
-                })
-              }
-            })
-        }
+        this.bushing = [];
+      }
+    },
+    getStandTreeBySampleType() {
+      getStandTreeBySampleType({
+        laboratory: "閫氫俊浜у搧瀹為獙瀹�",
+        sampleType: "鍏夌氦",
       })
-      },
-      addFiber() {
-        // 鏈�鏂�
-        let colors2 = []
-        if (this.packageInfo.num1 / this.colors.length > 1) {
-          let num = this.packageInfo.num1 / this.colors.length
-          if (this.packageInfo.num1 % this.colors.length > 0) num += 1
-          for (var i = 0; i < num; i++) {
-            colors2 = colors2.concat(this.colors)
+        .then((res) => {
+          if (res.code === 200) {
+            this.mireModels = [];
+            res.data.forEach((a) => {
+              this.mireModels.push({
+                label: a.model,
+                value: a.sample + " - " + a.model,
+              });
+            });
           }
-        } else {
-          colors2 = colors2.concat(this.colors)
+        })
+        .catch((error) => {
+          console.error(error);
+        });
+    },
+    getStandTreeBySampleType2() {
+      getStandTreeBySampleType({
+        laboratory: "閫氫俊浜у搧瀹為獙瀹�",
+        sampleType: "鍏夌氦甯�",
+      })
+        .then((res) => {
+          if (res.code === 200) {
+            this.miresModels = [];
+            res.data.forEach((a) => {
+              this.miresModels.push({
+                label: a.model,
+                value: a.model,
+              });
+            });
+          }
+        })
+        .catch((error) => {
+          console.error(error);
+        });
+    },
+    selectsStandardMethodByFLSSM() {
+      this.mireStandards = [];
+      this.mireStandardLoading = true;
+      selectsStandardMethodByFLSSM({
+        tree: "涓ぉ绉戞妧妫�娴嬩腑蹇� - 閫氫俊浜у搧瀹為獙瀹� - 鍏夌氦 - " + this.mireModel,
+      })
+        .then((res) => {
+          if (res.code === 200) {
+            this.mireStandardLoading = false;
+            this.mireStandards = res.data.standardMethodList;
+          }
+        })
+        .catch((error) => {
+          console.error(error);
+        });
+    },
+    selectsStandardMethodByFLSSM2() {
+      this.miresStandards = [];
+      selectsStandardMethodByFLSSM({
+        tree: "涓ぉ绉戞妧妫�娴嬩腑蹇� - 閫氫俊浜у搧瀹為獙瀹� - 鍏夌氦甯� - " + this.miresModel,
+      })
+        .then((res) => {
+          if (res.code === 200) {
+            this.miresStandards = res.data.standardMethodList;
+          }
+        })
+        .catch((error) => {
+          console.error(error);
+        });
+    },
+    methodChange(val) {
+      // 灏嗕笅鎷夋鍊艰祴鍊肩粰鍏夌氦  鐩戝惉鍘婚櫎
+      if (this.selectFiberList.length == 0) {
+        this.$message.error("璇烽�夋嫨鏁版嵁");
+        return;
+      }
+      this.selectFiberList.forEach((item) => {
+        this.fiberList.forEach((a) => {
+          if (a.ident == item.ident) {
+            a.model = this.mireModel.split(" - ")[1]; // 鍏夌氦瑙勬牸
+            a.noSplitModel = this.mireModel; // 鍏夌氦瑙勬牸
+            if (this.mireStandards != null) {
+              a.standard = this.mireStandards.find(
+                (a) => a.id == this.mireStandard
+              ).code; // 鍙傝�冩爣鍑�
+            }
+          }
+        });
+      });
+      if (val === null || val === "") return;
+      if (this.mireStandards == null) return;
+      selectStandardProductList({
+        model: this.mireModel.split(" - ")[1],
+        standardMethodListId: val,
+        factory: "",
+      })
+        .then((res) => {
+          if (res.code === 200) {
+            this.detectionItems = [];
+            if (res.data != null && res.data.length != 0) {
+              res.data.forEach((a) => {
+                a.state = 0;
+              });
+              this.detectionItems = res.data;
+              this.detectionType = 0;
+              this.$set(this.detectionItems, "type", 0);
+            }
+          }
+        })
+        .catch((error) => {
+          console.error(error);
+        });
+    },
+    methodChange2(val) {
+      if (this.multiFiberList.length == 0) {
+        this.$message.error("璇烽�夋嫨闇�瑕佹洿鏀圭殑鏁版嵁");
+        return;
+      }
+      if (val === null || val === "") return;
+      selectStandardProductList({
+        model: "",
+        standardMethodListId: val,
+        factory:
+          "涓ぉ绉戞妧妫�娴嬩腑蹇� - 閫氫俊浜у搧瀹為獙瀹� - 鍏夌氦甯� - " +
+          this.miresModel +
+          " - ",
+      })
+        .then((res) => {
+          if (res.code === 200) {
+            // 灏嗚幏鍙栫殑妫�娴嬮」淇℃伅璧嬪��
+            this.detectionItems = [];
+            if (res.data != null && res.data.length != 0) {
+              res.data.forEach((a) => {
+                a.state = 0;
+              });
+              this.detectionItems = res.data;
+              this.detectionType = 1;
+              this.$set(this.detectionItems, "type", 1);
+            }
+
+            // 缁欓�変腑鐨勫厜绾ゅ甫璧嬪��
+            for (let i = 0; i < this.fibersList.length; i++) {
+              this.multiFiberList.forEach((item) => {
+                if (this.fibersList[i].ident == item.ident) {
+                  this.fibersList[i].model = this.miresModel; // 绾ゅ甫瑙勬牸
+                  this.fibersList[i].num = this.miresModel.replace("鑺�", ""); // 鍏夌氦妫�娴嬮噺
+                  this.fibersList[i].productList = this.detectionItems; // 妫�娴嬮」
+                  this.miresStandards.forEach((a) => {
+                    if (a.id == this.miresStandard) {
+                      this.fibersList[i].standard = a.code; // 鍙傝�冩爣鍑�
+                    }
+                  });
+                }
+              });
+            }
+          }
+        })
+        .catch((error) => {
+          console.error(error);
+        });
+    },
+    addFiber() {
+      // 鏈�鏂�
+      let colors2 = [];
+      if (this.packageInfo.num1 / this.colors.length > 1) {
+        let num = this.packageInfo.num1 / this.colors.length;
+        if (this.packageInfo.num1 % this.colors.length > 0) num += 1;
+        for (var i = 0; i < num; i++) {
+          colors2 = colors2.concat(this.colors);
         }
-        this.fiberList = []
-        // 閫夋嫨浜嗗厜绾ゅ甫
-        if (this.packageInfo.ismiers) {
-          if(this.multiFiberList.length != 0){
-          this.multiFiberList.forEach((a,index) => {
-            a.fiber = []
+      } else {
+        colors2 = colors2.concat(this.colors);
+      }
+      this.fiberList = [];
+      // 閫夋嫨浜嗗厜绾ゅ甫
+      if (this.packageInfo.ismiers) {
+        if (this.multiFiberList.length != 0) {
+          this.multiFiberList.forEach((a, index) => {
+            a.fiber = [];
             for (var i = 0; i < parseInt(a.num); i++) {
               let fiber = {
                 ident: this.fiberList.length + 1,
                 bushColor: a.color,
-                color: colors2[(i+(parseInt(a.num)*index))>colors2.length?0:i+(parseInt(a.num)*index)*index].label,
+                color:
+                  colors2[
+                    i + parseInt(a.num) * index > colors2.length
+                      ? 0
+                      : i + parseInt(a.num) * index * index
+                  ].dictLabel,
                 model: null,
                 noSplitModel: null,
                 standard: null,
                 fibersIdent: a.ident,
-                productList: []
-              }
-              this.fiberList.push(fiber)
+                productList: [],
+              };
+              this.fiberList.push(fiber);
             }
-          })
+          });
         } else {
-          this.selectBushing.forEach((a,index) => {
-            a.fiber = []
+          this.selectBushing.forEach((a, index) => {
+            a.fiber = [];
             for (var i = 0; i < parseInt(a.testNum); i++) {
               let fiber = {
                 ident: this.fiberList.length + 1,
                 bushColor: a.color,
-                color: colors2[(i+(parseInt(a.testNum))*index)>colors2.length?0:i+(parseInt(a.testNum))*index].label,
+                color:
+                  colors2[
+                    i + parseInt(a.testNum) * index > colors2.length
+                      ? 0
+                      : i + parseInt(a.testNum) * index
+                  ].dictLabel,
                 model: null,
                 noSplitModel: null,
                 standard: null,
-                productList: []
-              }
-              this.fiberList.push(fiber)
+                productList: [],
+              };
+              this.fiberList.push(fiber);
             }
-          })
+          });
         }
-      }else {
-        this.fiberList = []
-        let flag = true
+      } else {
+        this.fiberList = [];
+        let flag = true;
         // 鎸夌収椤哄簭鐢熸垚鍏夌氦鑹叉爣
-        let colors2 = []
+        let colors2 = [];
         if (this.packageInfo.num1 / this.colors.length > 1) {
-          let num = this.packageInfo.num1 / this.colors.length
-          if (this.packageInfo.num1 % this.colors.length > 0) num += 1
+          let num = this.packageInfo.num1 / this.colors.length;
+          if (this.packageInfo.num1 % this.colors.length > 0) num += 1;
           for (var i = 0; i < num; i++) {
-            colors2 = colors2.concat(this.colors)
+            colors2 = colors2.concat(this.colors);
           }
         } else {
-          colors2 = colors2.concat(this.colors)
+          colors2 = colors2.concat(this.colors);
         }
         // 鏍规嵁濂楃鐨勬祴璇曢噺鐢熸垚瀵瑰簲鐨勬暟閲忕殑鍏夌氦鏁版嵁
-        this.selectBushing.forEach((item,index) =>{
-          if(item.testNum != null && item.testNum != ''){
-            for(let i =0; i < parseInt(item.testNum); i++){
+        this.selectBushing.forEach((item, index) => {
+          if (item.testNum != null && item.testNum != "") {
+            for (let i = 0; i < parseInt(item.testNum); i++) {
               let fiber = {
                 ident: this.fiberList.length + 1,
                 bushColor: item.color,
-                color: colors2[(i+(parseInt(item.testNum)*index))>colors2.length?0:i+(parseInt(item.testNum)*index)*index].label,
-                model:  null,
+                color:
+                  colors2[
+                    i + parseInt(item.testNum) * index > colors2.length
+                      ? 0
+                      : i + parseInt(item.testNum) * index * index
+                  ].dictLabel,
+                model: null,
                 standard: null,
-                productList: []
-              }
-              this.fiberList.push(fiber)
+                productList: [],
+              };
+              this.fiberList.push(fiber);
             }
-          }else {
-            flag = false
+          } else {
+            flag = false;
           }
-        })
-        if(!flag){
-          this.$message.error('璇峰~鍐欏厜绾ゆ娴嬮噺')
-          return
+        });
+        if (!flag) {
+          this.$message.error("璇峰~鍐欏厜绾ゆ娴嬮噺");
+          return;
         }
       }
-        // 浜屼唬
-        // // 鏄惁閫夋嫨濂楃
-        // if(this.selectBushing.length == 0) {
-        //   this.$message.error('鏈�夋嫨濂楃')
-        //   return
-        // }
-        // this.fiberList = []
-        // let flag = true
-        // // 鎸夌収椤哄簭鐢熸垚鍏夌氦鑹叉爣
-        // let colors2 = []
-        // if (this.packageInfo.num1 / this.colors.length > 1) {
-        //   let num = this.packageInfo.num1 / this.colors.length
-        //   if (this.packageInfo.num1 % this.colors.length > 0) num += 1
-        //   for (var i = 0; i < num; i++) {
-        //     colors2 = colors2.concat(this.colors)
-        //   }
-        // } else {
-        //   colors2 = colors2.concat(this.colors)
-        // }
-        // // 鏍规嵁濂楃鐨勬祴璇曢噺鐢熸垚瀵瑰簲鐨勬暟閲忕殑鍏夌氦鏁版嵁
-        // this.selectBushing.forEach((item,index) =>{
-        //   if(item.testNum != null && item.testNum != ''){
-        //     for(let i =0; i < parseInt(item.testNum); i++){
-        //       let fiber = {
-        //         ident: this.fiberList.length + 1,
-        //         bushColor: item.color,
-        //         color: colors2[(i+(parseInt(item.testNum)*index))>colors2.length?0:i+(parseInt(item.testNum)*index)*index].label,
-        //         model:  null,
-        //         standard: null,
-        //         productList: []
-        //       }
-        //       this.fiberList.push(fiber)
-        //     }
-        //   }else {
-        //     flag = false
-        //   }
-        // })
-        // if(!flag){
-        //   this.$message.error('璇峰~鍐欏厜绾ゆ娴嬮噺')
-        //   return
-        // }
-
-
-        // 鏈�鍒�
-        // let colors2 = []
-        // if (this.packageInfo.num1 / this.colors.length > 1) {
-        //   let num = this.packageInfo.num1 / this.colors.length
-        //   if (this.packageInfo.num1 % this.colors.length > 0) num += 1
-        //   for (var i = 0; i < num; i++) {
-        //     colors2 = colors2.concat(this.colors)
-        //   }
-        // } else {
-        //   colors2 = colors2.concat(this.colors)
-        // }
-        // this.fiberList = []
-        // let model = this.mireModel.split(' - ')[1]
-        // let standard = this.mireStandards.find(a => a.id == this.mireStandard).code
-        // if (this.packageInfo.ismiers) {
-        //   if(this.selectFibers.length === 0){
-        //     this.$message.error('鏈�夋嫨鍏夌氦甯�')
-        //     return
-        //   }
-        //   this.selectFibers.forEach((a,index) => {
-        //     a.fiber = []
-        //     for (var i = 0; i < parseInt(a.num); i++) {
-        //       let fiber = {
-        //         bushColor: a.color,
-        //         color: colors2[(i+(parseInt(a.num)*index))>colors2.length?0:i+(parseInt(a.num)*index)*index].label,
-        //         model: model,
-        //         standard: standard,
-        //         productList: this.HaveJson(this.productList)
-        //       }
-        //       a.fiber.push(fiber)
-        //       this.fiberList.push(fiber)
-        //     }
-        //   })
-        // } else {
-        //   this.selectBushing.forEach((a,index) => {
-        //     a.fiber = []
-        //     for (var i = 0; i < parseInt(a.testNum); i++) {
-        //       let fiber = {
-        //         bushColor: a.color,
-        //         color: colors2[(i+(parseInt(a.testNum))*index)>colors2.length?0:i+(parseInt(a.testNum))*index].label,
-        //         model: model,
-        //         standard: standard,
-        //         productList: this.HaveJson(this.productList)
-        //       }
-        //       a.fiber.push(fiber)
-        //       this.fiberList.push(fiber)
-        //     }
-        //   })
-        // }
-      },
-      addFibers() {
-        // if(this.selectBushing.length===0){
-        //   this.$message.error('鏈�夋嫨濂楃')
-        //   return
-        // }
-        // this.fibersList = []
-        // let standard = this.miresStandards.find(a => a.id == this.miresStandard).code
-        // this.packageInfo.ismiers = true
-        // this.fiberList = []
-        // this.selectBushing.forEach(a => {
-        //   a.fiber = []
-        //   a.fibers = []
-        //   for (var i = 0; i < parseInt(a.testNum); i++) {
-        //     let fibers = {
-        //       code: null,
-        //       color: a.color,
-        //       model: this.miresModel,
-        //       standard: standard,
-        //       num: a.testNum,
-        //       productList: this.HaveJson(this.productList2),
-        //       fiber: []
-        //     }
-        //     a.fibers.push(fibers)
-        //     this.fibersList.push(fibers)
-        //   }
-        // })
-
-        if(this.selectBushing.length == 0) {
-          this.$message.error('鏈�夋嫨濂楃')
-          return
-        }
-        // 濂楃鐨勬祴璇曢噺  *  閫夋嫨鐨勫厜绾ゅ甫鏁伴噺
-        this.fibersList = []
-        this.selectBushing.forEach(item => {
-          for(let i = 0; i < parseInt(this.packageInfo.testNum); i++){
+    },
+    addFibers() {
+      if (this.selectBushing.length == 0) {
+        this.$message.error("鏈�夋嫨濂楃");
+        return;
+      }
+      // 濂楃鐨勬祴璇曢噺  *  閫夋嫨鐨勫厜绾ゅ甫鏁伴噺
+      this.fibersList = [];
+      this.selectBushing.forEach((item) => {
+        for (let i = 0; i < parseInt(this.packageInfo.testNum); i++) {
           let fibers = {
             ident: this.fibersList.length + 1,
             color: item.color,
@@ -1097,503 +1229,428 @@
             standard: null,
             num: null,
             fiber: [],
-            productList: []
-          }
-          this.fibersList.push(fibers)
+            productList: [],
+          };
+          this.fibersList.push(fibers);
         }
-        })
-      },
-      rowClickFiber(row, column, event,type){
-        console.log('row',row);
-        if(type == 1) {
-          this.fiberList = row.fiber
-          if(row.productList != null && row.productList.length > 0) {
-            this.detectionItems = []
-            this.detectionItems = row.productList
-          }
-          if(row.fiber != null && row.fiber.length > 0) {
-            this.fiberList = []
-            this.fiberList = row.fiber
-          }
-        }else if (type == 0){
-          this.detectionItems = []
-          this.detectionItems = row.productList
-        }
-      //   if(type == 1) {
-      //     if((row.model == null || row.model == '') && (row.standard == null || row.standard == '')){
-      //       this.detectionItems = []
-      //       return
-      //     }
-      //     if(row.model != null && row.model != ''){
-      //     this.miresModel = row.model
-      //     this.selectsStandardMethodByFLSSM2()
-      //   }
-      //   setTimeout(() => {
-      //     if(row.standard !=null && row.standard != ''){
-      //     this.miresStandard = this.miresStandards.find(a => a.code == row.standard).id
-      //   }
-      //     this.$axios.post(this.$api.standardTree.selectStandardProductList, {
-      //     model: '',
-      //     standardMethodListId: this.miresStandard,
-      //     factory: '涓ぉ绉戞妧妫�娴嬩腑蹇� - 閫氫俊浜у搧瀹為獙瀹� - 鍏夌氦甯� - ' + this.miresModel + ' - ',
-      //   }, {
-      //     headers: {
-      //       'Content-Type': 'application/json'
-      //     }
-      //   }).then(res => {
-      //     // 灏嗚幏鍙栫殑妫�娴嬮」淇℃伅璧嬪��
-      //     this.detectionItems = []
-      //     if(res.data != null && res.data.length != 0){
-      //       this.detectionItems = res.data
-      //       this.detectionType = 1
-      //       this.$set(this.detectionItems,'type',1)
-      //       if (row.productList != null && row.productList.length > 0) {
-      //         let product =  JSON.parse(JSON.stringify(row.productList))
-      //         setTimeout(() => {
-      //           product.forEach(p => {
-      //           let rowToSelect = this.detectionItems.find(item => item.id === p.id);
-      //           if (rowToSelect) {
-      //             this.toggleSelection(rowToSelect);
-      //           }
-      //         });
-      //       },200)
-      //       }
-      //     }
-      //   })
-      //   },1000)
-      // }else if(type == 0) {
-      //   if((row.noSplitModel == null || row.noSplitModel == '') && (row.standard == null || row.standard == '')){
-      //       this.detectionItems = []
-      //       return
-      //     }
-      //   if(row.model != null && row.model != ''){
-      //     this.mireModel = row.noSplitModel
-      //     this.selectsStandardMethodByFLSSM()
-      //   }
-      //   setTimeout(() => {
-      //     if(row.standard !=null && row.standard != ''){
-      //     this.mireStandard = this.mireStandards.find(a => a.code == row.standard).id
-      //   }
-      //   this.$axios.post(this.$api.standardTree.selectStandardProductList, {
-      //     model: this.mireModel.split(' - ')[1],
-      //     standardMethodListId: this.mireStandard,
-      //     factory: ''
-      //   }, {
-      //     headers: {
-      //       'Content-Type': 'application/json'
-      //     }
-      //   }).then(res => {
-      //     this.detectionItems = []
-      //     if(res.data != null && res.data.length != 0){
-      //      res.data.forEach(a => {
-      //       a.state = 0
-      //     })
-      //     this.detectionItems = res.data
-      //     this.detectionType = 0
-      //     this.$set(this.detectionItems,'type',0)
-
-      //     if (row.productList != null && row.productList.length > 0) {
-      //       let product =  JSON.parse(JSON.stringify(row.productList))
-      //       setTimeout(() => {
-      //         product.forEach(p => {
-      //           let rowToSelect = this.detectionItems.find(item => item.id === p.id);
-      //           if (rowToSelect) {
-      //             this.toggleSelection(rowToSelect);
-      //           }
-      //         });
-      //       },200)
-      //       }
-      //     }
-      //   })
-      //   },1000);
-      // }
+      });
     },
-      toggleSelection(row) {
-        this.$refs.productTable.toggleRowSelection(row, true);
-      },
-      tableRowClassName({
-        row,
-        rowIndex
-      }) {
-        if (row.state === 0) {
-          return 'warning-row';
+    rowClickFiber(row, column, event, type) {
+      console.log("row", row);
+      if (type == 1) {
+        this.fiberList = row.fiber;
+        if (row.productList != null && row.productList.length > 0) {
+          this.detectionItems = [];
+          this.detectionItems = row.productList;
         }
-        return '';
-      },
-      handleAll(e) {
-        if (e.length > 0) {
-          console.log(this.detectionItems);
-          this.detectionItems.map(m => {
-            m.state = 1
-            return m
-          })
-        } else {
-          this.detectionItems.map(m => {
-            m.state = 0
-            return m
-          })
+        if (row.fiber != null && row.fiber.length > 0) {
+          this.fiberList = [];
+          this.fiberList = row.fiber;
         }
-        if (e.length > 0) {
-          if(this.multiFiberList.length > 0){
-            this.multiFiberList.map(item => {
-              item.productList.map(m=>{
-                m.state = 1;
-                return m;
-              })
-              return item
-            })
-          }else{
-          this.currentDetectionItems.productList.map(m=>{
+      } else if (type == 0) {
+        this.detectionItems = [];
+        this.detectionItems = row.productList;
+      }
+    },
+    toggleSelection(row) {
+      this.$refs.productTable.toggleRowSelection(row, true);
+    },
+    tableRowClassName({ row, rowIndex }) {
+      if (row.state === 0) {
+        return "warning-row";
+      }
+      return "";
+    },
+    handleAll(e) {
+      if (e.length > 0) {
+        console.log(this.detectionItems);
+        this.detectionItems.map((m) => {
+          m.state = 1;
+          return m;
+        });
+      } else {
+        this.detectionItems.map((m) => {
+          m.state = 0;
+          return m;
+        });
+      }
+      if (e.length > 0) {
+        if (this.multiFiberList.length > 0) {
+          this.multiFiberList.map((item) => {
+            item.productList.map((m) => {
               m.state = 1;
               return m;
-            })
-          }
+            });
+            return item;
+          });
         } else {
-          if(this.multiFiberList.length > 0){
-            this.multiFiberList.map(item => {
-              item.productList.map(m=>{
-                m.state = 0;
-                return m;
-              })
-              return item
-            })
-          }else{
-            this.currentDetectionItems.productList.map(m=>{
+          this.currentDetectionItems.productList.map((m) => {
+            m.state = 1;
+            return m;
+          });
+        }
+      } else {
+        if (this.multiFiberList.length > 0) {
+          this.multiFiberList.map((item) => {
+            item.productList.map((m) => {
+              m.state = 0;
+              return m;
+            });
+            return item;
+          });
+        } else {
+          this.currentDetectionItems.productList.map((m) => {
+            m.state = 0;
+            return m;
+          });
+        }
+      }
+      this.bsmRow3 = [];
+      this.detectionItems.forEach((p) => {
+        if (this.type == 1) {
+          if (
+            p.bsm === "1" &&
+            p.section !== "" &&
+            p.section !== null &&
+            p.state === 1
+          ) {
+            if (p.section.indexOf("[") > -1) {
+              this.bsmRow = this.HaveJson(p);
+            }
+            this.bsm1 = true;
+            this.bsm1Dia = true;
+          } else if (
+            p.bsm === "1" &&
+            p.section !== "" &&
+            p.section !== null &&
+            p.state === 0
+          ) {
+            this.bsm1 = false;
+          }
+          if (
+            p.bsm === "1" &&
+            p.inspectionItem === "鍏夌氦鎺ュご鎹熻��" &&
+            this.sampleList.length > 1 &&
+            p.state === 1
+          ) {
+            this.bsm2 = true;
+            this.bsm1Dia = true;
+            if (this.bsm2Val2.length === 0) {
+              this.bsm2Val =
+                ((this.sampleList.length - 1) * this.sampleList.length) / 2;
+              this.computationalPairing(this.sampleList.length);
+              this.bsm2Val2 = this.HaveJson(this.bsm2Val3);
+            }
+          } else if (
+            p.bsm === "1" &&
+            p.inspectionItem === "鍏夌氦鎺ュご鎹熻��" &&
+            p.state === 1
+          ) {
+            this.bsm2 = false;
+          }
+        }
+        // if (p.ask.includes('RTS')&&p.state === 1) {
+        //   p.rts = ''
+        //   this.bsm3Val = ''
+        //   this.bsm3Dia = true
+        //   this.bsmRow3.push(p)
+        // }
+      });
+
+      if (e.length > 0) {
+        this.sampleList.map((item) => {
+          if (this.sampleIds.indexOf(item.id) > -1) {
+            item.insProduct.map((m) => {
+              m.state = 1;
+              return m;
+            });
+          }
+          return item;
+        });
+      } else {
+        this.sampleList.map((item) => {
+          if (this.sampleIds.indexOf(item.id) > -1) {
+            item.insProduct.map((m) => {
               m.state = 0;
               return m;
             });
           }
-        }
-        this.bsmRow3 = []
-        this.detectionItems.forEach(p => {
-          if(this.type==1){
-            if (p.bsm === '1' && p.section !== '' && p.section !== null && p.state === 1) {
-              if (p.section.indexOf('[') > -1) {
-                this.bsmRow = this.HaveJson(p)
-              }
-              this.bsm1 = true
-              this.bsm1Dia = true
-            } else if (p.bsm === '1' && p.section !== '' && p.section !== null && p.state === 0) {
-              this.bsm1 = false
+          return item;
+        });
+      }
+      this.$nextTick(() => {
+        this.$refs.productTable.doLayout();
+      });
+    },
+    upProductSelect(selection, row) {
+      row.state = row.state == 1 ? 0 : 1;
+      if (this.selectFiberList.length > 0) {
+        this.selectFiberList.map((item) => {
+          item.productList.map((m) => {
+            if (m.id == row.id) {
+              m.state = row.state;
             }
-            if (p.bsm === '1' && p.inspectionItem === '鍏夌氦鎺ュご鎹熻��' && this.sampleList.length > 1 && p.state === 1) {
-              this.bsm2 = true
-              this.bsm1Dia = true
-              if(this.bsm2Val2.length === 0){
-                this.bsm2Val = (this.sampleList.length - 1) * this.sampleList.length / 2
-                this.computationalPairing(this.sampleList.length)
-                this.bsm2Val2 = this.HaveJson(this.bsm2Val3)
-              }
-            } else if (p.bsm === '1' && p.inspectionItem === '鍏夌氦鎺ュご鎹熻��' && p.state === 1) {
-              this.bsm2 = false
-            }
+            return m;
+          });
+          return item;
+        });
+      } else {
+        this.currentDetectionItems.productList.map((m) => {
+          if (m.id == row.id) {
+            m.state = row.state;
           }
-          // if (p.ask.includes('RTS')&&p.state === 1) {
-          //   p.rts = ''
-          //   this.bsm3Val = ''
-          //   this.bsm3Dia = true
-          //   this.bsmRow3.push(p)
-          // }
-        })
-
-        if (e.length > 0) {
-          this.sampleList.map(item => {
-            if (this.sampleIds.indexOf(item.id) > -1) {
-              item.insProduct.map(m => {
-                m.state = 1
-                return m;
-              })
-            }
-            return item
-          })
-        } else {
-          this.sampleList.map(item => {
-            if (this.sampleIds.indexOf(item.id) > -1) {
-              item.insProduct.map(m => {
-                m.state = 0
-                return m;
-              })
-            }
-            return item
-          })
-        }
-        this.$nextTick(() => {
-          this.$refs.productTable.doLayout()
-        })
-      },
-      upProductSelect(selection, row) {
-        row.state = row.state == 1 ? 0 : 1
-        if(this.selectFiberList.length > 0){
-          this.selectFiberList.map(item => {
-            item.productList.map(m=>{
-              if(m.id == row.id){
-                m.state = row.state;
-              }
-              return m
-            })
-            return item
-          })
-        }else{
-          this.currentDetectionItems.productList.map(m=>{
-            if(m.id == row.id){
-                m.state = row.state;
-              }
-              return m;
-            });
-        }
-        if(this.type==1){
-          if (row.bsm === '1' && row.section !== '' && row.section !== null && row.state === 1) {
-            if (row.section.indexOf('[') > -1) {
-              this.bsmRow = this.HaveJson(row)
-            }
-            this.bsm1 = true
-            this.bsm1Dia = true
-          } else if (row.bsm === '1' && row.section !== '' && row.section !== null && row.state === 0) {
-            this.bsm1 = false
+          return m;
+        });
+      }
+      if (this.type == 1) {
+        if (
+          row.bsm === "1" &&
+          row.section !== "" &&
+          row.section !== null &&
+          row.state === 1
+        ) {
+          if (row.section.indexOf("[") > -1) {
+            this.bsmRow = this.HaveJson(row);
           }
-          if (row.bsm === '1' && row.inspectionItem === '鍏夌氦鎺ュご鎹熻��' && this.sampleList.length > 1 && row.state === 1) {
-          this.bsm2 = true
-          this.bsm1Dia = true
-            if(this.bsm2Val2.length === 0){
-              this.bsm2Val = (this.sampleList.length - 1) * this.sampleList.length / 2
-              this.computationalPairing(this.sampleList.length)
-              this.bsm2Val2 = this.HaveJson(this.bsm2Val3)
-            }
-          } else if (row.bsm === '1' && row.inspectionItem === '鍏夌氦鎺ュご鎹熻��' && row.state === 1) {
-            this.bsm2 = false
-          }
-        }else{
-          this.bsm1Dia = false
+          this.bsm1 = true;
+          this.bsm1Dia = true;
+        } else if (
+          row.bsm === "1" &&
+          row.section !== "" &&
+          row.section !== null &&
+          row.state === 0
+        ) {
+          this.bsm1 = false;
         }
-        // if (row.ask.includes('RTS')&&row.state === 1) {
-        //   this.bsmRow3 = null;
-        //   row.rts = ''
-        //   this.bsm3Val = ''
-        //   this.bsm3Dia = true
-        //   this.bsmRow3 = row
-        // }else{
-        //   this.bsm3Dia = false
-        // }
-      },
-      computationalPairing(n){
-        const nums = [];
-        for (let i = 1; i <= n; i++) {
-          nums.push(i);
-        }
-        this.bsm2Val3 = this.HaveJson(this.permute(nums))
-      },
-      setClassName({ column }) {
-        if (column.type == 'selection' && !this.isAllDisabled) {
-          return 'all-disabled'
-        }
-      },
-      setClassName0({ column }){
-        if (column.type == 'selection' && this.active!=1) {
-          return 'all-disabled'
-        }
-      },
-      clearFibers(){
-        this.packageInfo.ismiers = false
-        this.fibersList = []
-        this.bushing.forEach(a=>{
-          a.fibers = []
-        })
-      },
-      save(){
-        // if(this.bushing.length === 0){
-        //   this.$message.error('缂哄皯閰嶇疆鏃犳硶淇濆瓨')
-        //   return
-        // }
-        // for(let a in this.bushing){
-        //   if(this.bushing[a].fibers.length===0&&this.bushing[a].fiber.length===0){
-        //     this.$message.error(this.bushing[a].color+'绠¤壊鏍囧绠$己灏戦厤缃棤娉曚繚瀛�')
-        //     return
-        //   }
-        // }
-        // this.sample.forEach(a=>{
-        //   a.bushing = this.bushing
-        // })
-        // this.$message.success('宸蹭繚瀛�')
-        // this.$emit('saveFiberopticConfig')
-
-        if(this.bushing.length === 0){
-          this.$message.error('缂哄皯濂楃鏃犳硶淇濆瓨')
-          return
-        }
-        this.bushing.forEach(item=>{
-          // 濡傛灉鍏夌氦甯︽湁鍊�
-          if(this.fibersList.length != 0) {
-              this.fibersList.forEach(a=>{
-                a.fiber = this.fiberList.filter(b=>b.fibersIdent == a.ident)
-              })
-              item.fibers = this.fibersList // 鍏夌氦甯�
-              item.fiber = [] // 鍏夌氦
-          }else {
-            // 濡傛灉鍏夌氦甯︽病鏈夊��
-            item.fibers = [] // 鍏夌氦甯�
-            item.fiber = this.fiberList // 鍏夌氦
-          }
-        })
-        this.sample.forEach(a=>{
-          a.bushing = this.bushing
-        })
-        this.$message.success('宸蹭繚瀛�')
-        this.$emit("saveFiberopticConfig");
-      },
-      beforeClose(done){
-        if (this.bsm1) {
-          if (this.bsm1Val === null || this.bsm1Val === '') {
-            this.$message.error('鐗规畩椤圭洰蹇呴』澶勭悊')
-            return
-          }
-        }
-        if (this.bsm2) {
+        if (
+          row.bsm === "1" &&
+          row.inspectionItem === "鍏夌氦鎺ュご鎹熻��" &&
+          this.sampleList.length > 1 &&
+          row.state === 1
+        ) {
+          this.bsm2 = true;
+          this.bsm1Dia = true;
           if (this.bsm2Val2.length === 0) {
-            this.$message.error('鐗规畩椤圭洰蹇呴』澶勭悊')
-            return
+            this.bsm2Val =
+              ((this.sampleList.length - 1) * this.sampleList.length) / 2;
+            this.computationalPairing(this.sampleList.length);
+            this.bsm2Val2 = this.HaveJson(this.bsm2Val3);
           }
-          let set = new Set()
-          for (let i=0;i<this.bsm2Val2.length;i++){
-            let num0 = set.size
-            set.add(JSON.stringify(this.bsm2Val2[i]))
-            let num1 = set.size
-            if(num1==num0){
-              this.$message.error('鍏宠仈椤圭洰涓嶈兘閲嶅')
-              return
-            }
-            set.add(JSON.stringify(this.bsm2Val2[i].reverse()))
-            let num2 = set.size
-            if(num1==num2){
-              this.$message.error('鍏宠仈椤圭洰涓嶈兘閲嶅')
-              return
-            }
-          }
+        } else if (
+          row.bsm === "1" &&
+          row.inspectionItem === "鍏夌氦鎺ュご鎹熻��" &&
+          row.state === 1
+        ) {
+          this.bsm2 = false;
         }
-        done()
-      },
-      beforeClose0(done){
-        if(!this.bsm3Val){
-          this.$message.error('RST蹇呴』濉啓')
-          return
-        }else{
-          if(Array.isArray(this.bsmRow3)){
-            this.bsmRow3.forEach(item=>{
-              item.rts = this.bsm3Val
-            })
-          }else{
-            this.bsmRow3.rts = this.bsm3Val
-          }
+      } else {
+        this.bsm1Dia = false;
+      }
+    },
+    computationalPairing(n) {
+      const nums = [];
+      for (let i = 1; i <= n; i++) {
+        nums.push(i);
+      }
+      this.bsm2Val3 = this.HaveJson(this.permute(nums));
+    },
+    setClassName({ column }) {
+      if (column.type == "selection" && !this.isAllDisabled) {
+        return "all-disabled";
+      }
+    },
+    setClassName0({ column }) {
+      if (column.type == "selection" && this.active != 1) {
+        return "all-disabled";
+      }
+    },
+    clearFibers() {
+      this.packageInfo.ismiers = false;
+      this.fibersList = [];
+      this.bushing.forEach((a) => {
+        a.fibers = [];
+      });
+    },
+    save() {
+      if (this.bushing.length === 0) {
+        this.$message.error("缂哄皯濂楃鏃犳硶淇濆瓨");
+        return;
+      }
+      this.bushing.forEach((item) => {
+        // 濡傛灉鍏夌氦甯︽湁鍊�
+        if (this.fibersList.length != 0) {
+          this.fibersList.forEach((a) => {
+            a.fiber = this.fiberList.filter((b) => b.fibersIdent == a.ident);
+          });
+          item.fibers = this.fibersList; // 鍏夌氦甯�
+          item.fiber = []; // 鍏夌氦
+        } else {
+          // 濡傛灉鍏夌氦甯︽病鏈夊��
+          item.fibers = []; // 鍏夌氦甯�
+          item.fiber = this.fiberList; // 鍏夌氦
         }
-        done()
-      },
-      upBsm1(val) {
-        let sections = JSON.parse(this.bsmRow.section);
-        let asks = JSON.parse(this.bsmRow.ask);
-        let tells = JSON.parse(this.bsmRow.tell);
-        let manHours = JSON.parse(this.bsmRow.manHour);
-        let prices = JSON.parse(this.bsmRow.price);
-        for (var a in sections) {
-          if (val === sections[a]) {
-            this.productList.forEach(p => {
-              if (p.id === this.bsmRow.id) {
-                p.section = sections[a]
-                p.ask = asks[a]
-                p.tell = tells[a]
-                p.manHour = manHours[a]
-                p.price = prices[a]
-              }
-            })
-            break
-          }
-        }
-      },
-      bsm2Up(val){
-        let list = []
-        for(let a=1;a < this.bsm2Val3.length + 1;a++){
-          list.push(a)
-        }
-        let set = new Set()
-        let size1 = set.length
-        while(set.size < val){
-          set.add(Math.ceil(Math.random() * this.bsm2Val3.length))
-        }
-        this.bsm2Val2 = []
-        for(let a of set){
-          this.bsm2Val2.push(this.HaveJson(this.bsm2Val3[a-1]))
+      });
+      this.sample.forEach((a) => {
+        a.bushing = this.bushing;
+      });
+      this.$message.success("宸蹭繚瀛�");
+      this.$emit("saveFiberopticConfig");
+    },
+    beforeClose(done) {
+      if (this.bsm1) {
+        if (this.bsm1Val === null || this.bsm1Val === "") {
+          this.$message.error("鐗规畩椤圭洰蹇呴』澶勭悊");
+          return;
         }
       }
-    }
-  }
+      if (this.bsm2) {
+        if (this.bsm2Val2.length === 0) {
+          this.$message.error("鐗规畩椤圭洰蹇呴』澶勭悊");
+          return;
+        }
+        let set = new Set();
+        for (let i = 0; i < this.bsm2Val2.length; i++) {
+          let num0 = set.size;
+          set.add(JSON.stringify(this.bsm2Val2[i]));
+          let num1 = set.size;
+          if (num1 == num0) {
+            this.$message.error("鍏宠仈椤圭洰涓嶈兘閲嶅");
+            return;
+          }
+          set.add(JSON.stringify(this.bsm2Val2[i].reverse()));
+          let num2 = set.size;
+          if (num1 == num2) {
+            this.$message.error("鍏宠仈椤圭洰涓嶈兘閲嶅");
+            return;
+          }
+        }
+      }
+      done();
+    },
+    beforeClose0(done) {
+      if (!this.bsm3Val) {
+        this.$message.error("RST蹇呴』濉啓");
+        return;
+      } else {
+        if (Array.isArray(this.bsmRow3)) {
+          this.bsmRow3.forEach((item) => {
+            item.rts = this.bsm3Val;
+          });
+        } else {
+          this.bsmRow3.rts = this.bsm3Val;
+        }
+      }
+      done();
+    },
+    upBsm1(val) {
+      let sections = JSON.parse(this.bsmRow.section);
+      let asks = JSON.parse(this.bsmRow.ask);
+      let tells = JSON.parse(this.bsmRow.tell);
+      let manHours = JSON.parse(this.bsmRow.manHour);
+      let prices = JSON.parse(this.bsmRow.price);
+      for (var a in sections) {
+        if (val === sections[a]) {
+          this.productList.forEach((p) => {
+            if (p.id === this.bsmRow.id) {
+              p.section = sections[a];
+              p.ask = asks[a];
+              p.tell = tells[a];
+              p.manHour = manHours[a];
+              p.price = prices[a];
+            }
+          });
+          break;
+        }
+      }
+    },
+    bsm2Up(val) {
+      let list = [];
+      for (let a = 1; a < this.bsm2Val3.length + 1; a++) {
+        list.push(a);
+      }
+      let set = new Set();
+      let size1 = set.length;
+      while (set.size < val) {
+        set.add(Math.ceil(Math.random() * this.bsm2Val3.length));
+      }
+      this.bsm2Val2 = [];
+      for (let a of set) {
+        this.bsm2Val2.push(this.HaveJson(this.bsm2Val3[a - 1]));
+      }
+    },
+  },
+};
 </script>
 
 <style scoped>
-  .ins_order_config {
-    width: 100%;
-    height: 100%;
-    overflow-y: auto;
-    overflow-x: hidden;
-  }
+.ins_order_config {
+  width: 100%;
+  height: 100%;
+  overflow-y: auto;
+  overflow-x: hidden;
+  padding: 10px 15px;
+}
 
-  .ins_order_config::-webkit-scrollbar {
-    width: 0;
-  }
+.ins_order_config::-webkit-scrollbar {
+  width: 0;
+}
 
-  .title {
-    height: 60px;
-    line-height: 60px;
-  }
+.title {
+  height: 60px;
+  line-height: 60px;
+}
 
-  .center {
-    width: 100%;
-    height: calc(100% - 60px);
-  }
+.center {
+  width: 100%;
+  height: calc(100% - 60px);
+}
 
-  .grid-content {
-    background: #fff;
-    border-radius: 4px;
-    box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.05);
-  }
+.grid-content {
+  background: #fff;
+  border-radius: 4px;
+  box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.05);
+}
 
-  .grid-content h5 {
-    color: #3A7BFA;
-    font-weight: 400;
-    line-height: 32px;
-    padding-left: 16px;
-    box-sizing: border-box;
-    border-bottom: 1px solid #eee;
-  }
+.grid-content h5 {
+  color: #3a7bfa;
+  font-weight: 400;
+  line-height: 32px;
+  padding-left: 16px;
+  box-sizing: border-box;
+  border-bottom: 1px solid #eee;
+}
 
-  .search-item {
-    display: flex;
-    align-items: center;
-    line-height: 36px;
-  }
+.search-item {
+  display: flex;
+  align-items: center;
+  line-height: 36px;
+}
 
-  .search-item label {
-    width: 90px;
-    font-size: 12px;
-    color: #606266;
-    /* text-align: right; */
-  }
+.search-item label {
+  width: 90px;
+  font-size: 12px;
+  color: #606266;
+  /* text-align: right; */
+}
 
-  .btns {
-    margin: 8px 0 8px 10px;
-  }
+.btns {
+  margin: 8px 0 8px 10px;
+}
 
-  >>>.el-table th.el-table__cell>.cell {
-    padding-top: 2px !important;
-    padding-bottom: 2px !important;
-  }
-  >>>.all-disabled .el-checkbox__input .el-checkbox__inner {
-    background-color: #edf2fc;
-    border-color: #dcdfe6;
-    cursor: not-allowed;
-  }
-  .models{
-    font-size:14px;
-    width:320px;
-    overflow: hidden;
-    text-overflow: ellipsis;
-    white-space: nowrap;
-  }
+>>> .el-table th.el-table__cell > .cell {
+  padding-top: 2px !important;
+  padding-bottom: 2px !important;
+}
+>>> .all-disabled .el-checkbox__input .el-checkbox__inner {
+  background-color: #edf2fc;
+  border-color: #dcdfe6;
+  cursor: not-allowed;
+}
+.models {
+  font-size: 14px;
+  width: 300px;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  white-space: nowrap;
+}
 </style>
diff --git a/src/views/business/inspectionOrder/fiberoptic-config.vue b/src/views/business/inspectionOrder/fiberoptic-config.vue
index eeeb0dc..b88a619 100644
--- a/src/views/business/inspectionOrder/fiberoptic-config.vue
+++ b/src/views/business/inspectionOrder/fiberoptic-config.vue
@@ -119,8 +119,8 @@
                     <el-option
                       v-for="(color, i) in colors"
                       :key="i"
-                      :label="color.lable"
-                      :value="color.value"
+                      :label="color.dictLable"
+                      :value="color.dictValue"
                     ></el-option>
                   </el-select>
                 </template>
@@ -551,8 +551,8 @@
                     <el-option
                       v-for="(color, i) in colors"
                       :key="i"
-                      :label="color.lable"
-                      :value="color.value"
+                      :label="color.dictLable"
+                      :value="color.dictValue"
                     ></el-option>
                   </el-select>
                 </template>
@@ -796,6 +796,15 @@
 </template>
 
 <script>
+import { getDicts } from "@/api/system/dict/data";
+import {
+  getStandTreeBySampleType,
+  selectStandardTreeList2,
+  selectStandardMethodEnum,
+  selectsStandardMethodByFLSSM,
+  selectStandardProductList,
+} from "@/api/standard/standardLibrary";
+import { permute } from "@/api/business/inspectionOrder";
 export default {
   props: {
     active: {
@@ -999,8 +1008,8 @@
           let color = this.colors[i];
           for (let j = 0; j < newFiberList.length; j++) {
             let newColor = newFiberList[j];
-            if (color.value == newColor[0]) {
-              newFiberList[j].push(color.orderNum);
+            if (color.dictValue == newColor[0]) {
+              newFiberList[j].push(color.dictSort);
             }
           }
         }
@@ -1279,12 +1288,14 @@
       this.$parent.configShow = false;
     },
     getTypeDicts1() {
-      this.$axios
-        .post(this.$api.enums.selectEnumByCategory, {
-          category: "鑹叉爣",
-        })
+      getDicts("fiber_color_type")
         .then((res) => {
-          this.colors = res.data;
+          if (res.code === 200) {
+            this.colors = res.data;
+          }
+        })
+        .catch((error) => {
+          console.error(error);
         });
     },
     // 濂楃鏁扮洰鐢熸垚琛ㄦ牸鏁版嵁
@@ -1293,7 +1304,7 @@
       for (let i = 0; i < this.packageInfo.num1; i++) {
         let bushing = {
           ident: this.bushing.length + 1,
-          color: this.colors[i].label,
+          color: this.colors[i].dictLabel,
           standNum: null,
           testNum: null,
           fibers: [],
@@ -1366,11 +1377,6 @@
             this.multiFiberList = this.fibersList;
             // 榛樿鍕鹃��
             setTimeout(() => {
-              // this.selectBushing.forEach(item =>{
-              // let rowToSelect =  this.bushing.find(a => a.ident == item.ident)
-              // this.$refs.table0.toggleRowSelection(rowToSelect, true)
-              // })
-
               this.multiFiberList.forEach((item) => {
                 let rowToSelect = this.fibersList.find(
                   (a) => a.ident == item.ident
@@ -1401,10 +1407,6 @@
             this.addFiber(1);
             // 榛樿鍕鹃��
             setTimeout(() => {
-              // this.selectBushing.forEach(item =>{
-              // let rowToSelect =  this.bushing.find(a => a.ident == item.ident)
-              // this.$refs.table0.toggleRowSelection(rowToSelect, true)
-              // })
               this.fiberList.forEach((item) => {
                 this.$refs.table3.toggleRowSelection(item, true);
               });
@@ -1446,7 +1448,7 @@
         this.bushing = [];
         for (var i = 0; i < this.packageInfo.num1; i++) {
           let bushing = {
-            color: colors2[i].label,
+            color: colors2[i].dictLabel,
             standNum: this.packageInfo.standNum,
             testNum: this.packageInfo.testNum,
             fibers: [],
@@ -1486,83 +1488,76 @@
       }
     },
     getStandTreeBySampleType() {
-      this.$axios
-        .post(this.$api.standardTree.getStandTreeBySampleType, {
-          laboratory: "閫氫俊浜у搧瀹為獙瀹�",
-          sampleType: "鍏夌氦",
-        })
+      getStandTreeBySampleType({
+        laboratory: "閫氫俊浜у搧瀹為獙瀹�",
+        sampleType: "鍏夌氦",
+      })
         .then((res) => {
-          this.mireModels = [];
-          res.data.forEach((a) => {
-            this.mireModels.push({
-              label: a.model,
-              value: a.sample + " - " + a.model,
+          if (res.code === 200) {
+            this.mireModels = [];
+            res.data.forEach((a) => {
+              this.mireModels.push({
+                label: a.model,
+                value: a.sample + " - " + a.model,
+              });
             });
-          });
+          }
+        })
+        .catch((error) => {
+          console.error(error);
         });
     },
     getStandTreeBySampleType2() {
-      this.$axios
-        .post(this.$api.standardTree.getStandTreeBySampleType, {
-          laboratory: "閫氫俊浜у搧瀹為獙瀹�",
-          sampleType: "鍏夌氦甯�",
-        })
+      getStandTreeBySampleType({
+        laboratory: "閫氫俊浜у搧瀹為獙瀹�",
+        sampleType: "鍏夌氦甯�",
+      })
         .then((res) => {
-          this.miresModels = [];
-          res.data.forEach((a) => {
-            this.miresModels.push({
-              label: a.model,
-              value: a.model,
+          if (res.code === 200) {
+            this.miresModels = [];
+            res.data.forEach((a) => {
+              this.miresModels.push({
+                label: a.model,
+                value: a.model,
+              });
             });
-          });
+          }
+        })
+        .catch((error) => {
+          console.error(error);
         });
     },
     selectsStandardMethodByFLSSM() {
       this.mireStandards = [];
       this.mireStandardLoading = true;
-      this.$axios
-        .post(this.$api.standardTree.selectsStandardMethodByFLSSM, {
-          tree: "涓ぉ绉戞妧妫�娴嬩腑蹇� - 閫氫俊浜у搧瀹為獙瀹� - 鍏夌氦 - " + this.mireModel,
-        })
+      selectsStandardMethodByFLSSM({
+        tree: "涓ぉ绉戞妧妫�娴嬩腑蹇� - 閫氫俊浜у搧瀹為獙瀹� - 鍏夌氦 - " + this.mireModel,
+      })
         .then((res) => {
-          this.mireStandardLoading = false;
-          this.mireStandards = res.data.standardMethodList;
+          if (res.code === 200) {
+            this.mireStandardLoading = false;
+            this.mireStandards = res.data.standardMethodList;
+          }
+        })
+        .catch((error) => {
+          console.error(error);
         });
     },
     selectsStandardMethodByFLSSM2() {
       this.miresStandards = [];
-      this.$axios
-        .post(this.$api.standardTree.selectsStandardMethodByFLSSM, {
-          tree:
-            "涓ぉ绉戞妧妫�娴嬩腑蹇� - 閫氫俊浜у搧瀹為獙瀹� - 鍏夌氦甯� - " + this.miresModel,
-        })
+      selectsStandardMethodByFLSSM({
+        tree: "涓ぉ绉戞妧妫�娴嬩腑蹇� - 閫氫俊浜у搧瀹為獙瀹� - 鍏夌氦甯� - " + this.miresModel,
+      })
         .then((res) => {
-          this.miresStandards = res.data.standardMethodList;
+          if (res.code === 200) {
+            this.miresStandards = res.data.standardMethodList;
+          }
+        })
+        .catch((error) => {
+          console.error(error);
         });
     },
     methodChange(val) {
-      // if (val === null || val === '') return
-      // this.$axios.post(this.$api.standardTree.selectStandardProductList, {
-      //   model: this.mireModel.split(' - ')[1],
-      //   standardMethodListId: val,
-      //   factory: ''
-      // }, {
-      //   headers: {
-      //     'Content-Type': 'application/json'
-      //   }
-      // }).then(res => {
-      //   res.data.forEach(a => {
-      //     a.state = 0
-      //   })
-      //   this.productList = res.data
-      //   setTimeout(() => {
-      //     this.productList.forEach(a => {
-      //       if (a.state == 1) this.toggleSelection(a)
-      //     })
-      //     this.addFiber()
-      //   }, 200)
-      // })
-
       // 灏嗕笅鎷夋鍊艰祴鍊肩粰鍏夌氦  鐩戝惉鍘婚櫎
       if (this.selectFiberList.length == 0) {
         this.$message.error("璇烽�夋嫨鏁版嵁");
@@ -1571,135 +1566,91 @@
 
       if (val === null || val === "") return;
       if (this.mireStandards == null) return;
-      this.$axios
-        .post(
-          this.$api.standardTree.selectStandardProductList,
-          {
-            model: this.mireModel.split(" - ")[1],
-            standardMethodListId: val,
-            factory: "",
-          },
-          {
-            headers: {
-              "Content-Type": "application/json",
-            },
-          }
-        )
+      selectStandardProductList({
+        model: this.mireModel.split(" - ")[1],
+        standardMethodListId: val,
+        factory: "",
+      })
         .then((res) => {
-          this.detectionItems = [];
-          if (res.data != null && res.data.length != 0) {
-            res.data.forEach((a) => {
-              a.state = 0;
-            });
-            this.detectionItems = res.data;
-            this.detectionType = 0;
-            this.$set(this.detectionItems, "type", 0);
-          }
-          this.mireStandards.find((a) => a.id == val).code == "濮旀墭瑕佹眰"
-            ? (this.isAskOnlyRead = false)
-            : (this.isAskOnlyRead = true);
-          this.selectFiberList.forEach((item) => {
-            this.fiberList.forEach((a) => {
-              if (a.ident == item.ident) {
-                a.model = this.mireModel.split(" - ")[1]; // 鍏夌氦瑙勬牸
-                a.noSplitModel = this.mireModel; // 鍏夌氦瑙勬牸
-                if (this.mireStandards != null) {
-                  a.standard = this.mireStandards.find(
-                    (a) => a.id == this.mireStandard
-                  ).code; // 鍙傝�冩爣鍑�
+          if (res.code === 200) {
+            this.detectionItems = [];
+            if (res.data != null && res.data.length != 0) {
+              res.data.forEach((a) => {
+                a.state = 0;
+              });
+              this.detectionItems = res.data;
+              this.detectionType = 0;
+              this.$set(this.detectionItems, "type", 0);
+            }
+            this.mireStandards.find((a) => a.id == val).code == "濮旀墭瑕佹眰"
+              ? (this.isAskOnlyRead = false)
+              : (this.isAskOnlyRead = true);
+            this.selectFiberList.forEach((item) => {
+              this.fiberList.forEach((a) => {
+                if (a.ident == item.ident) {
+                  a.model = this.mireModel.split(" - ")[1]; // 鍏夌氦瑙勬牸
+                  a.noSplitModel = this.mireModel; // 鍏夌氦瑙勬牸
+                  if (this.mireStandards != null) {
+                    a.standard = this.mireStandards.find(
+                      (a) => a.id == this.mireStandard
+                    ).code; // 鍙傝�冩爣鍑�
+                  }
                 }
-              }
+              });
             });
-          });
+          }
+        })
+        .catch((error) => {
+          console.error(error);
         });
     },
     methodChange2(val) {
-      // if (val === null || val === '') return
-      // this.$axios.post(this.$api.standardTree.selectStandardProductList, {
-      //   model: '',
-      //   standardMethodListId: val,
-      //   factory: '涓ぉ绉戞妧妫�娴嬩腑蹇� - 閫氫俊浜у搧瀹為獙瀹� - 鍏夌氦甯� - ' + this.miresModel + ' - ',
-      // }, {
-      //   headers: {
-      //     'Content-Type': 'application/json'
-      //   }
-      // }).then(res => {
-      //   res.data.forEach(a => {
-      //     a.state = 0
-      //   })
-      //   this.productList2 = res.data
-      //   setTimeout(() => {
-      //     this.productList2.forEach(a => {
-      //       if (a.state == 1) this.toggleSelection(a)
-      //     })
-      //     this.addFibers()
-      //   }, 200)
-      // })
       if (this.multiFiberList.length == 0) {
         this.$message.error("璇烽�夋嫨闇�瑕佹洿鏀圭殑鏁版嵁");
         return;
       }
       if (val === null || val === "") return;
-      this.$axios
-        .post(
-          this.$api.standardTree.selectStandardProductList,
-          {
-            model: "",
-            standardMethodListId: val,
-            factory:
-              "涓ぉ绉戞妧妫�娴嬩腑蹇� - 閫氫俊浜у搧瀹為獙瀹� - 鍏夌氦甯� - " +
-              this.miresModel +
-              " - ",
-          },
-          {
-            headers: {
-              "Content-Type": "application/json",
-            },
-          }
-        )
+      selectStandardProductList({
+        model: "",
+        standardMethodListId: val,
+        factory:
+          "涓ぉ绉戞妧妫�娴嬩腑蹇� - 閫氫俊浜у搧瀹為獙瀹� - 鍏夌氦甯� - " +
+          this.miresModel +
+          " - ",
+      })
         .then((res) => {
-          // 灏嗚幏鍙栫殑妫�娴嬮」淇℃伅璧嬪��
-          this.detectionItems = [];
-          if (res.data != null && res.data.length != 0) {
-            res.data.forEach((a) => {
-              a.state = 0;
-            });
-            this.detectionItems = res.data;
-            this.detectionType = 1;
-            this.$set(this.detectionItems, "type", 1);
-            // 鍒ゆ柇鏄惁涓哄鎵樿姹�
-            this.miresStandards.find((a) => a.id == val).code == "濮旀墭瑕佹眰"
-              ? (this.isAskOnlyRead = false)
-              : (this.isAskOnlyRead = true);
-          }
-          // 缁欓�変腑鐨勫厜绾ゅ甫璧嬪��
-          // for(let i= 0; i < this.fibersList.length; i++){
-          //     this.multiFiberList.forEach(item => {
-          //       if(this.fibersList[i].ident == item.ident){
-          //         this.fibersList[i].model = this.miresModel // 绾ゅ甫瑙勬牸
-          //         this.fibersList[i].num = this.miresModel.replace('鑺�','') // 鍏夌氦妫�娴嬮噺
-          //         this.fibersList[i].productList = this.detectionItems // 妫�娴嬮」
-          //         this.miresStandards.forEach(a => {
-          //           if(a.id == this.miresStandard) {
-          //             this.fibersList[i].standard = a.code // 鍙傝�冩爣鍑�
-          //           }
-          //         })
-          //       }
-          //     })
-          // }
-          for (let i = 0; i < this.multiFiberList.length; i++) {
-            for (let j = 0; j < this.fibersList.length; j++) {
-              if (this.multiFiberList[i].ident == this.fibersList[j].ident) {
-                this.fibersList[j].model = this.miresModel; // 绾ゅ甫瑙勬牸
-                this.fibersList[j].num = this.miresModel.replace("鑺�", ""); // 鍏夌氦妫�娴嬮噺
-                this.miresStandards.forEach((a) => {
-                  if (a.id == this.miresStandard) {
-                    this.fibersList[j].standard = a.code; // 鍙傝�冩爣鍑�
-                  }
-                });
+          if (res.code === 200) {
+            // 灏嗚幏鍙栫殑妫�娴嬮」淇℃伅璧嬪��
+            this.detectionItems = [];
+            if (res.data != null && res.data.length != 0) {
+              res.data.forEach((a) => {
+                a.state = 0;
+              });
+              this.detectionItems = res.data;
+              this.detectionType = 1;
+              this.$set(this.detectionItems, "type", 1);
+              // 鍒ゆ柇鏄惁涓哄鎵樿姹�
+              this.miresStandards.find((a) => a.id == val).code == "濮旀墭瑕佹眰"
+                ? (this.isAskOnlyRead = false)
+                : (this.isAskOnlyRead = true);
+            }
+            for (let i = 0; i < this.multiFiberList.length; i++) {
+              for (let j = 0; j < this.fibersList.length; j++) {
+                if (this.multiFiberList[i].ident == this.fibersList[j].ident) {
+                  this.fibersList[j].model = this.miresModel; // 绾ゅ甫瑙勬牸
+                  this.fibersList[j].num = this.miresModel.replace("鑺�", ""); // 鍏夌氦妫�娴嬮噺
+                  this.miresStandards.forEach((a) => {
+                    if (a.id == this.miresStandard) {
+                      this.fibersList[j].standard = a.code; // 鍙傝�冩爣鍑�
+                    }
+                  });
+                }
               }
             }
           }
+        })
+        .catch((error) => {
+          console.error(error);
         });
     },
     addFiber(isInspection) {
@@ -1762,7 +1713,7 @@
                 let fiber = {
                   ident: this.fiberList.length + 1,
                   bushColor: item.color,
-                  color: colors3[count].label,
+                  color: colors3[count].dictLabel,
                   model: null,
                   noSplitModel: null,
                   standard: null,
@@ -1775,65 +1726,6 @@
               }
             }
           });
-          // this.multiFiberList.forEach((a, index) => {
-          //   a.fiber = [];
-          //   if (index > 0 && index < this.multiFiberList.length) {
-          //     if (
-          //       this.multiFiberList[index].color ==
-          //       this.multiFiberList[index - 1].color
-          //     ) {
-          //       // 鏍规嵁姣忔牴绠℃娊妫�鏍囧噯閲� 纭畾 棰滆壊寰幆
-          //       //let colors3 = colors2.slice(0,this.packageInfo.standNum)
-          //       for (var i = 0; i < parseInt(a.num); i++) {
-          //         let fiber = {
-          //           ident: this.fiberList.length + 1,
-          //           bushColor: a.color,
-          //           // color: colors2[(i+(parseInt(a.num)*index))>colors2.length?0:i+(parseInt(a.num)*index)*index].label,
-          //           color: colors2[count].label,
-          //           model: null,
-          //           noSplitModel: null,
-          //           standard: null,
-          //           fibersIdent: a.ident,
-          //           productList: [],
-          //         };
-          //         this.fiberList.push(fiber);
-          //         count++;
-          //       }
-          //     } else {
-          //       // 鏍规嵁姣忔牴绠℃娊妫�鏍囧噯閲� 纭畾 棰滆壊寰幆
-          //       let colors3 = colors2.slice(0, this.packageInfo.standNum);
-          //       for (var i = 0; i < parseInt(a.num); i++) {
-          //         let fiber = {
-          //           ident: this.fiberList.length + 1,
-          //           bushColor: a.color,
-          //           // color: colors2[(i+(parseInt(a.num)*index))>colors2.length?0:i+(parseInt(a.num)*index)*index].label,
-          //           color: colors3[i].label,
-          //           model: null,
-          //           noSplitModel: null,
-          //           standard: null,
-          //           fibersIdent: a.ident,
-          //           productList: [],
-          //         };
-          //         this.fiberList.push(fiber);
-          //       }
-          //     }
-          //   } else {
-          //     for (var i = 0; i < parseInt(a.num); i++) {
-          //       let fiber = {
-          //         ident: this.fiberList.length + 1,
-          //         bushColor: a.color,
-          //         // color: colors2[(i+(parseInt(a.num)*index))>colors2.length?0:i+(parseInt(a.num)*index)*index].label,
-          //         color: colors2[i].label,
-          //         model: null,
-          //         noSplitModel: null,
-          //         standard: null,
-          //         fibersIdent: a.ident,
-          //         productList: [],
-          //       };
-          //       this.fiberList.push(fiber);
-          //     }
-          //   }
-          // });
         } else {
           let count = 0;
           let colors3 = colors2.slice(0, this.packageInfo.standNum);
@@ -1844,7 +1736,7 @@
                 let fiber = {
                   ident: this.fiberList.length + 1,
                   bushColor: item.color,
-                  color: colors3[count].label,
+                  color: colors3[count].dictLabel,
                   model: null,
                   standard: null,
                   productList: [],
@@ -1880,7 +1772,7 @@
               let fiber = {
                 ident: this.fiberList.length + 1,
                 bushColor: item.color,
-                color: colors3[count].label,
+                color: colors3[count].dictLabel,
                 model: null,
                 standard: null,
                 productList: [],
@@ -1889,24 +1781,6 @@
               count++;
               count = count % item.standNum;
             }
-            //  else {
-            //   for (let i = 0; i < parseInt(item.testNum); i++) {
-            //     let fiber = {
-            //       ident: this.fiberList.length + 1,
-            //       bushColor: item.color,
-            //       color:
-            //         colors2[
-            //           i + parseInt(item.testNum) * index > colors2.length
-            //             ? 0
-            //             : i + parseInt(item.testNum) * index * index
-            //         ].label,
-            //       model: null,
-            //       standard: null,
-            //       productList: [],
-            //     };
-            //     this.fiberList.push(fiber);
-            //   }
-            // }
           } else {
             flag = false;
           }
@@ -1917,125 +1791,8 @@
           return;
         }
       }
-      // 浜屼唬
-      // // 鏄惁閫夋嫨濂楃
-      // if(this.selectBushing.length == 0) {
-      //   this.$message.error('鏈�夋嫨濂楃')
-      //   return
-      // }
-      // this.fiberList = []
-      // let flag = true
-      // // 鎸夌収椤哄簭鐢熸垚鍏夌氦鑹叉爣
-      // let colors2 = []
-      // if (this.packageInfo.num1 / this.colors.length > 1) {
-      //   let num = this.packageInfo.num1 / this.colors.length
-      //   if (this.packageInfo.num1 % this.colors.length > 0) num += 1
-      //   for (var i = 0; i < num; i++) {
-      //     colors2 = colors2.concat(this.colors)
-      //   }
-      // } else {
-      //   colors2 = colors2.concat(this.colors)
-      // }
-      // // 鏍规嵁濂楃鐨勬祴璇曢噺鐢熸垚瀵瑰簲鐨勬暟閲忕殑鍏夌氦鏁版嵁
-      // this.selectBushing.forEach((item,index) =>{
-      //   if(item.testNum != null && item.testNum != ''){
-      //     for(let i =0; i < parseInt(item.testNum); i++){
-      //       let fiber = {
-      //         ident: this.fiberList.length + 1,
-      //         bushColor: item.color,
-      //         color: colors2[(i+(parseInt(item.testNum)*index))>colors2.length?0:i+(parseInt(item.testNum)*index)*index].label,
-      //         model:  null,
-      //         standard: null,
-      //         productList: []
-      //       }
-      //       this.fiberList.push(fiber)
-      //     }
-      //   }else {
-      //     flag = false
-      //   }
-      // })
-      // if(!flag){
-      //   this.$message.error('璇峰~鍐欏厜绾ゆ娴嬮噺')
-      //   return
-      // }
-
-      // 鏈�鍒�
-      // let colors2 = []
-      // if (this.packageInfo.num1 / this.colors.length > 1) {
-      //   let num = this.packageInfo.num1 / this.colors.length
-      //   if (this.packageInfo.num1 % this.colors.length > 0) num += 1
-      //   for (var i = 0; i < num; i++) {
-      //     colors2 = colors2.concat(this.colors)
-      //   }
-      // } else {
-      //   colors2 = colors2.concat(this.colors)
-      // }
-      // this.fiberList = []
-      // let model = this.mireModel.split(' - ')[1]
-      // let standard = this.mireStandards.find(a => a.id == this.mireStandard).code
-      // if (this.packageInfo.ismiers) {
-      //   if(this.selectFibers.length === 0){
-      //     this.$message.error('鏈�夋嫨鍏夌氦甯�')
-      //     return
-      //   }
-      //   this.selectFibers.forEach((a,index) => {
-      //     a.fiber = []
-      //     for (var i = 0; i < parseInt(a.num); i++) {
-      //       let fiber = {
-      //         bushColor: a.color,
-      //         color: colors2[(i+(parseInt(a.num)*index))>colors2.length?0:i+(parseInt(a.num)*index)*index].label,
-      //         model: model,
-      //         standard: standard,
-      //         productList: this.HaveJson(this.productList)
-      //       }
-      //       a.fiber.push(fiber)
-      //       this.fiberList.push(fiber)
-      //     }
-      //   })
-      // } else {
-      //   this.selectBushing.forEach((a,index) => {
-      //     a.fiber = []
-      //     for (var i = 0; i < parseInt(a.testNum); i++) {
-      //       let fiber = {
-      //         bushColor: a.color,
-      //         color: colors2[(i+(parseInt(a.testNum))*index)>colors2.length?0:i+(parseInt(a.testNum))*index].label,
-      //         model: model,
-      //         standard: standard,
-      //         productList: this.HaveJson(this.productList)
-      //       }
-      //       a.fiber.push(fiber)
-      //       this.fiberList.push(fiber)
-      //     }
-      //   })
-      // }
     },
     addFibers() {
-      // if(this.selectBushing.length===0){
-      //   this.$message.error('鏈�夋嫨濂楃')
-      //   return
-      // }
-      // this.fibersList = []
-      // let standard = this.miresStandards.find(a => a.id == this.miresStandard).code
-      // this.packageInfo.ismiers = true
-      // this.fiberList = []
-      // this.selectBushing.forEach(a => {
-      //   a.fiber = []
-      //   a.fibers = []
-      //   for (var i = 0; i < parseInt(a.testNum); i++) {
-      //     let fibers = {
-      //       code: null,
-      //       color: a.color,
-      //       model: this.miresModel,
-      //       standard: standard,
-      //       num: a.testNum,
-      //       productList: this.HaveJson(this.productList2),
-      //       fiber: []
-      //     }
-      //     a.fibers.push(fibers)
-      //     this.fibersList.push(fibers)
-      //   }
-      // })
-
       if (this.selectBushing.length == 0) {
         this.$message.error("鏈�夋嫨濂楃");
         return;
@@ -2058,7 +1815,7 @@
           let fibers = {
             ident: this.fibersList.length + 1,
             color: item.color,
-            colorShow: item.color + "-" + colors2[i].label,
+            colorShow: item.color + "-" + colors2[i].dictLabel,
             code: null,
             model: null,
             standard: null,
@@ -2071,45 +1828,6 @@
       });
     },
     rowClickFiber(row, column, event, type) {
-      // console.log("row", row);
-      // this.type = type
-      // if(this.active===1){
-      //   if(type==0){
-      //     let standard = null;
-      //     try{
-      //       standard = this.miresStandards.find(a => a.id == this.miresStandards)
-      //     }catch(e){}
-      //     if(standard&&standard.code=='濮旀墭瑕佹眰'){
-      //       this.isAskOnlyRead = false;
-      //     }else{
-      //       this.isAskOnlyRead = true;
-      //     }
-      //   }else{
-      //     let standard = null;
-      //     try{
-      //       standard = this.mireStandards.find(a => a.id == this.mireStandard)
-      //     }catch(e){}
-      //     if(standard&&standard.code=='濮旀墭瑕佹眰'){
-      //       this.isAskOnlyRead = false;
-      //     }else{
-      //       this.isAskOnlyRead = true;
-      //     }
-      //   }
-      // }
-      // if(this.type==1){
-      //   if (this.active !== 1) {
-      //     this.sampleIds = []
-      //     this.sampleIds.push(row.id)
-      //   }
-      // }
-      // this.currentDetectionItems = row
-      // this.detectionItems = row.productList
-      // if(this.detectionItems === null) return
-      // setTimeout(() => {
-      //   this.detectionItems.forEach(a => {
-      //     if (a.state == 1) this.toggleSelection(a)
-      //   })
-      // }, 200)
       if (type == 1) {
         this.fiberList = row.fiber;
         if (
@@ -2129,64 +1847,60 @@
               (a) => a.code == row.standard
             ).id;
           }
-          this.$axios
-            .post(
-              this.$api.standardTree.selectStandardProductList,
-              {
-                model: "",
-                standardMethodListId: this.miresStandard,
-                factory:
-                  "涓ぉ绉戞妧妫�娴嬩腑蹇� - 閫氫俊浜у搧瀹為獙瀹� - 鍏夌氦甯� - " +
-                  this.miresModel +
-                  " - ",
-              },
-              {
-                headers: {
-                  "Content-Type": "application/json",
-                },
-              }
-            )
+          selectStandardProductList({
+            model: "",
+            standardMethodListId: this.miresStandard,
+            factory:
+              "涓ぉ绉戞妧妫�娴嬩腑蹇� - 閫氫俊浜у搧瀹為獙瀹� - 鍏夌氦甯� - " +
+              this.miresModel +
+              " - ",
+          })
             .then((res) => {
-              // 灏嗚幏鍙栫殑妫�娴嬮」淇℃伅璧嬪��
-              this.detectionItems = [];
-              if (res.data != null && res.data.length != 0) {
-                res.data.forEach((a) => {
-                  a.state = 0;
-                  this.$set(a, "isFibers", 1);
-                });
-                // 鍒ゆ柇鏄惁涓哄鎵樿姹�
-                this.miresStandards.find((a) => a.id == this.miresStandard)
-                  .code == "濮旀墭瑕佹眰"
-                  ? (this.isAskOnlyRead = false)
-                  : (this.isAskOnlyRead = true);
-                if (!this.isAskOnlyRead) {
-                  row.productList.forEach((a) => {
-                    res.data.forEach((b) => {
-                      if (a.id == b.id) {
-                        b.ask = a.ask;
-                        b.tell = a.tell;
-                      }
-                    });
+              if (res.code === 200) {
+                // 灏嗚幏鍙栫殑妫�娴嬮」淇℃伅璧嬪��
+                this.detectionItems = [];
+                if (res.data != null && res.data.length != 0) {
+                  res.data.forEach((a) => {
+                    a.state = 0;
+                    this.$set(a, "isFibers", 1);
                   });
-                }
-                this.detectionItems = res.data;
-                this.detectionType = 1;
-                this.$set(this.detectionItems, "type", 1);
-
-                if (row.productList != null && row.productList.length > 0) {
-                  let product = JSON.parse(JSON.stringify(row.productList));
-                  setTimeout(() => {
-                    product.forEach((p) => {
-                      let rowToSelect = this.detectionItems.find(
-                        (item) => item.id === p.id
-                      );
-                      if (rowToSelect) {
-                        this.toggleSelection(rowToSelect);
-                      }
+                  // 鍒ゆ柇鏄惁涓哄鎵樿姹�
+                  this.miresStandards.find((a) => a.id == this.miresStandard)
+                    .code == "濮旀墭瑕佹眰"
+                    ? (this.isAskOnlyRead = false)
+                    : (this.isAskOnlyRead = true);
+                  if (!this.isAskOnlyRead) {
+                    row.productList.forEach((a) => {
+                      res.data.forEach((b) => {
+                        if (a.id == b.id) {
+                          b.ask = a.ask;
+                          b.tell = a.tell;
+                        }
+                      });
                     });
-                  }, 200);
+                  }
+                  this.detectionItems = res.data;
+                  this.detectionType = 1;
+                  this.$set(this.detectionItems, "type", 1);
+
+                  if (row.productList != null && row.productList.length > 0) {
+                    let product = JSON.parse(JSON.stringify(row.productList));
+                    setTimeout(() => {
+                      product.forEach((p) => {
+                        let rowToSelect = this.detectionItems.find(
+                          (item) => item.id === p.id
+                        );
+                        if (rowToSelect) {
+                          this.toggleSelection(rowToSelect);
+                        }
+                      });
+                    }, 200);
+                  }
                 }
               }
+            })
+            .catch((error) => {
+              console.error(error);
             });
         }, 500);
       } else if (type == 0) {
@@ -2207,60 +1921,56 @@
               (a) => a.code == row.standard
             ).id;
           }
-          this.$axios
-            .post(
-              this.$api.standardTree.selectStandardProductList,
-              {
-                model: this.mireModel.split(" - ")[1],
-                standardMethodListId: this.mireStandard,
-                factory: "",
-              },
-              {
-                headers: {
-                  "Content-Type": "application/json",
-                },
-              }
-            )
+          selectStandardProductList({
+            model: this.mireModel.split(" - ")[1],
+            standardMethodListId: this.mireStandard,
+            factory: "",
+          })
             .then((res) => {
-              this.detectionItems = [];
-              if (res.data != null && res.data.length != 0) {
-                res.data.forEach((a) => {
-                  a.state = 0;
-                  this.$set(a, "isFibers", 0);
-                });
-                // 鍒ゆ柇鏄惁涓哄鎵樿姹�
-                this.mireStandards.find((a) => a.id == this.mireStandard)
-                  .code == "濮旀墭瑕佹眰"
-                  ? (this.isAskOnlyRead = false)
-                  : (this.isAskOnlyRead = true);
-                if (!this.isAskOnlyRead) {
-                  row.productList.forEach((a) => {
-                    res.data.forEach((b) => {
-                      if (a.id == b.id) {
-                        b.ask = a.ask;
-                        b.tell = a.tell;
-                      }
-                    });
+              if (res.code === 200) {
+                this.detectionItems = [];
+                if (res.data != null && res.data.length != 0) {
+                  res.data.forEach((a) => {
+                    a.state = 0;
+                    this.$set(a, "isFibers", 0);
                   });
-                }
-                this.detectionItems = res.data;
-                this.detectionType = 0;
-                this.$set(this.detectionItems, "type", 0);
-
-                if (row.productList != null && row.productList.length > 0) {
-                  let product = JSON.parse(JSON.stringify(row.productList));
-                  setTimeout(() => {
-                    product.forEach((p) => {
-                      let rowToSelect = this.detectionItems.find(
-                        (item) => item.id === p.id
-                      );
-                      if (rowToSelect) {
-                        this.toggleSelection(rowToSelect);
-                      }
+                  // 鍒ゆ柇鏄惁涓哄鎵樿姹�
+                  this.mireStandards.find((a) => a.id == this.mireStandard)
+                    .code == "濮旀墭瑕佹眰"
+                    ? (this.isAskOnlyRead = false)
+                    : (this.isAskOnlyRead = true);
+                  if (!this.isAskOnlyRead) {
+                    row.productList.forEach((a) => {
+                      res.data.forEach((b) => {
+                        if (a.id == b.id) {
+                          b.ask = a.ask;
+                          b.tell = a.tell;
+                        }
+                      });
                     });
-                  }, 200);
+                  }
+                  this.detectionItems = res.data;
+                  this.detectionType = 0;
+                  this.$set(this.detectionItems, "type", 0);
+
+                  if (row.productList != null && row.productList.length > 0) {
+                    let product = JSON.parse(JSON.stringify(row.productList));
+                    setTimeout(() => {
+                      product.forEach((p) => {
+                        let rowToSelect = this.detectionItems.find(
+                          (item) => item.id === p.id
+                        );
+                        if (rowToSelect) {
+                          this.toggleSelection(rowToSelect);
+                        }
+                      });
+                    }, 200);
+                  }
                 }
               }
+            })
+            .catch((error) => {
+              console.error(error);
             });
         }, 500);
       }
@@ -2298,12 +2008,6 @@
             return item;
           });
         }
-        // else {
-        //   this.currentDetectionItems.productList.map((m) => {
-        //     m.state = 1;
-        //     return m;
-        //   });
-        // }
       } else {
         if (this.multiFiberList.length > 0) {
           this.multiFiberList.map((item) => {
@@ -2314,12 +2018,6 @@
             return item;
           });
         }
-        // else {
-        //   this.currentDetectionItems.productList.map((m) => {
-        //     m.state = 0;
-        //     return m;
-        //   });
-        // }
       }
       this.bsmRow3 = [];
       this.detectionItems.forEach((p) => {
@@ -2372,12 +2070,6 @@
             this.bsm2 = false;
           }
         }
-        // if (p.ask.includes('RTS')&&p.state === 1) {
-        //   p.rts = ''
-        //   this.bsm3Val = ''
-        //   this.bsm3Dia = true
-        //   this.bsmRow3.push(p)
-        // }
       });
 
       if (e.length > 0) {
@@ -2423,28 +2115,8 @@
             this.$message.error("鍏宠仈椤圭洰涓嶈兘閲嶅");
             return;
           }
-          // set.add(JSON.stringify(tempList[i].reverse()))
-          // let num2 = set.size
-          // if (num1 == num2) {
-          //   console.log(111,set);
-          //   console.log(111,tempList);
-          //   this.$message.error('鍏宠仈椤圭洰涓嶈兘閲嶅')
-          //   return
-          // }
         }
-        //杞崲鐔旀帴閰嶅鐨勭紪鍙�
-        // let transformList = []
-        // for(let i=0;i<this.bsm2Val2.length;i++){
-        //   let colorIndex1 = Number(this.bsm2Val2[i][0]-1)
-        //   let colorIndex2 = Number(this.bsm2Val2[i][1]-1)
-        //   let code1 = this.sampleList[0].sampleCode + '-' + this.fiberList[colorIndex1].bushColor + '-' + this.fiberList[colorIndex1].color
-        //   let code2 = this.sampleList[1].sampleCode + '-' + this.fiberList[colorIndex2].bushColor + '-' + this.fiberList[colorIndex2].color
-        //   transformList.push([code1,code2])
-        // }
         this.isBsm2Val2 = true;
-        // console.log(this.bsm2Val2);
-        // console.log(transformList);
-        // this.$parent.fiberPairing = JSON.stringify(this.bsm2Val2)
       }
       this.bsm1Dia = false;
       this.isBsm2Val2 = false;
@@ -2465,9 +2137,6 @@
         );
       }
       let arr = [...new Set(this.fiberLoss)];
-      console.log("list", list);
-      console.log("this.fiberLoss", this.fiberLoss);
-      console.log("arr", arr);
       row.state = row.state == 1 ? 0 : 1;
       if (this.selectFiberList.length > 0) {
         this.selectFiberList.map((item) => {
@@ -2527,23 +2196,6 @@
             console.log("arr", arr);
             if (this.bsm2) {
               this.computationalPairing(this.selectFiberList.length);
-              // 榛樿灞曠ず涓�瀵逛竴
-              // this.bsm2Up(this.selectFiberList.length);
-              // if (this.bsm2Val2.length === 0) {
-              //   this.bsm2Val = this.selectFiberList.length;
-              //   this.bsm2Val2 = this.HaveJson(this.bsm2Val3);
-              //   console.log(222, this.bsm2Val2);
-              // } else {
-              //   this.bsm2Val = this.selectFiberList.length;
-              // }
-              // if (this.bsm2Val2.length === 0) {
-              //   this.bsm2Val =
-              //     ((this.fiberList.length + 1) * this.fiberList.length) / 2;
-              //   this.bsm2Val2 = this.HaveJson(this.bsm2Val3);
-              //   console.log(222, this.bsm2Val2);
-              // } else {
-              //   this.bsm2Val = this.fiberPairing.length;
-              // }
             }
           }
         } else if (
@@ -2556,15 +2208,6 @@
       } else {
         this.bsm1Dia = false;
       }
-      // if (row.ask.includes('RTS')&&row.state === 1) {
-      //   this.bsmRow3 = null;
-      //   row.rts = ''
-      //   this.bsm3Val = ''
-      //   this.bsm3Dia = true
-      //   this.bsmRow3 = row
-      // }else{
-      //   this.bsm3Dia = false
-      // }
     },
     checkSampleCodeHasNull() {
       const emptyCodeArr = this.sampleList.filter(
@@ -2575,25 +2218,26 @@
     computationalPairing(n, isValue = false) {
       this.bsm1Dia = true;
       this.isLoading = true;
-      this.$axios
-        .get(this.$api.insOrder.permute + "?num=" + n + "&isValue=" + isValue)
+      permute({
+        num: n,
+        isValue: isValue,
+      })
         .then((res) => {
-          this.bsm2Val3Length = this.HaveJson(res.data.resultData);
-          if (this.bsm2Val2.length === 0) {
-            this.bsm2Val = this.selectFiberList.length;
-            this.bsm2Val2 = this.HaveJson(this.bsm2Val3);
-            console.log(222, this.bsm2Val2);
-          } else {
-            this.bsm2Val = this.selectFiberList.length;
+          if (res.code === 200) {
+            this.bsm2Val3Length = this.HaveJson(res.data.resultData);
+            if (this.bsm2Val2.length === 0) {
+              this.bsm2Val = this.selectFiberList.length;
+              this.bsm2Val2 = this.HaveJson(this.bsm2Val3);
+            } else {
+              this.bsm2Val = this.selectFiberList.length;
+            }
+            this.bsm2Up(this.selectFiberList.length);
+            this.isLoading = false;
           }
-          this.bsm2Up(this.selectFiberList.length);
-          this.isLoading = false;
+        })
+        .catch((error) => {
+          console.error(error);
         });
-      // const nums = [];
-      // for (let i = 1; i <= n; i++) {
-      //   nums.push(i);
-      // }
-      // this.bsm2Val3 = this.HaveJson(this.permute(nums));
     },
     permute(nums) {
       const result = [];
@@ -2632,30 +2276,6 @@
       });
     },
     save() {
-      // if(this.bushing.length === 0){
-      //   this.$message.error('缂哄皯閰嶇疆鏃犳硶淇濆瓨')
-      //   return
-      // }
-      // for(let a in this.bushing){
-      //   if(this.bushing[a].fibers.length===0&&this.bushing[a].fiber.length===0){
-      //     this.$message.error(this.bushing[a].color+'绠¤壊鏍囧绠$己灏戦厤缃棤娉曚繚瀛�')
-      //     return
-      //   }
-      // }
-      // this.sample.forEach(a=>{
-      //   a.bushing = this.bushing
-      // })
-      // this.$message.success('宸蹭繚瀛�')
-      // this.$emit('saveFiberopticConfig')
-      // if(this.inspectionItemST == 1) {
-      //   this.$message.success('宸蹭繚瀛�')
-      //   this.sample.forEach(a=>{
-      //   a.bushing = this.bushing
-      // })
-      // this.$emit('saveFiberopticConfig')
-      // return
-      // }
-
       let flag = true;
       let flags = true;
 
@@ -3268,8 +2888,8 @@
           let color = this.colors[i];
           for (let j = 0; j < newFiberList.length; j++) {
             let newColor = newFiberList[j];
-            if (color.value == newColor[0]) {
-              newFiberList[j].push(color.orderNum);
+            if (color.dictValue == newColor[0]) {
+              newFiberList[j].push(color.dictSort);
             }
           }
         }
@@ -3297,19 +2917,6 @@
         this.bsm2Val2 = resultList;
         console.log("this.bsm2Val2", this.bsm2Val2);
       } else {
-        // if (val == this.bsm2Val3.length) {
-        //   this.bsm2Val2 = [];
-        //   this.computationalPairing(this.selectFiberList.length,true);
-        //   if (this.bsm2Val2.length === 0) {
-        //     this.bsm2Val =
-        //       ((this.selectFiberList.length + 1) * this.selectFiberList.length) / 2;
-        //     this.bsm2Val2 = this.HaveJson(this.bsm2Val3);
-        //   } else {
-        //     this.bsm2Val = this.selectFiberList.length;
-        //   }
-        //   this.bsm1DiaLoading = false;
-        //   console.log('loading',this,this.bsm1DiaLoading);
-        // } else {
         // 涓�瀵逛竴
         this.bsm1DiaLoading = true;
         let list = [];
@@ -3352,6 +2959,7 @@
   height: 100%;
   overflow-y: auto;
   overflow-x: hidden;
+  padding: 10px 15px;
 }
 .models {
   font-size: 14px;
diff --git a/src/views/business/inspectionOrder/index.vue b/src/views/business/inspectionOrder/index.vue
index 52e18dc..206fe23 100644
--- a/src/views/business/inspectionOrder/index.vue
+++ b/src/views/business/inspectionOrder/index.vue
@@ -238,7 +238,7 @@
         >
           <p style="font-size: 16px; color: #333333" v-if="!isQuash">
             濮旀墭缂栧彿<span style="color: #34bd66">{{
-              this.insOrderRow.entrustCode
+              this.insOrderRow.outEntrustCode
             }}</span
             >鐨勪俊鎭槸鍚︽挙閿�
           </p>
@@ -258,14 +258,10 @@
             </el-form-item>
           </el-form>
           <span slot="footer" class="dialog-footer">
-            <el-row v-if="!isQuash">
-              <el-button @click="handleClose">鍙� 娑�</el-button>
-              <el-button type="primary" @click="submitForm" :loading="upLoad"
-                >纭� 瀹�</el-button
-              >
-            </el-row>
-            <el-row v-else>
-              <el-button @click="handleClose">杩� 鍥�</el-button>
+            <el-row>
+              <el-button @click="handleClose">{{
+                isQuash ? "杩� 鍥�" : "鍙� 娑�"
+              }}</el-button>
               <el-button type="primary" @click="submitForm" :loading="upLoad"
                 >纭� 瀹�</el-button
               >
@@ -390,18 +386,6 @@
           width="80%"
         >
           <div class="table-container" v-if="deleteDialogVisible">
-            <!-- <ValueTable
-            ref="ValueTableDataDelete"
-            :url="
-              $api.insOrder.selectNoProducts +
-              '?orderId=' +
-              orderId +
-              '&ids=' +
-              this.revocationInsProductIds
-            "
-            :componentData="componentDataDelete"
-            :isColumnWidth="true"
-          /> -->
             <el-table
               height="500px"
               ref="revokeTable"
@@ -822,28 +806,39 @@
 </template>
 
 <script>
-import limsTable from "@/components/Table/lims-table.vue";
 import {
   selectInsOrderParameter,
   labelPrinting,
   exportChecked,
   selectSampleAndProductByOrderId,
-  hasSendUrgentOrder,
-  delCustomById,
-  upCustom,
+  selectSampleByOrderId,
+  selectProductsBySampleId,
+  revoke,
+  viewDetails,
+  downReport,
+  selectTemperatureByProductId,
+  selectTemperatureNumberByProductId,
+  revokeReviewTemperatureByProductId,
+  revokeReviewConsistentByProductId,
+  revokeReviewProduct,
+  revokeReviewSample,
+  updateStatus,
+  updateInspected,
+  revocationPassed,
+  revocationCancel,
 } from "@/api/business/inspectionOrder";
+import { upPlanUser2 } from "@/api/business/inspectionTask";
 import { getDicts } from "@/api/system/dict/data";
 import vueQr from "vue-qr";
 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,
     Add,
     vueQr,
-    LimsTable,
   },
   computed: {
     ...mapGetters(["permissions"]),
@@ -1018,7 +1013,9 @@
             {
               name: "鎶ュ憡涓嬭浇",
               type: "text",
-              clickFun: (row) => {},
+              clickFun: (row) => {
+                this.download(row);
+              },
               disabled: (row, index) => {
                 return row.state != 4 || row.isRatify != 1;
               },
@@ -1026,7 +1023,9 @@
             {
               name: "瀹℃牳",
               type: "text",
-              clickFun: (row) => {},
+              clickFun: (row) => {
+                this.handleVerify(row);
+              },
               disabled: (row, index) => {
                 return row.state != 0;
               },
@@ -1034,7 +1033,9 @@
             {
               name: "鎾ら攢",
               type: "text",
-              clickFun: (row) => {},
+              clickFun: (row) => {
+                this.handlEquash(row);
+              },
               disabled: (row, index) => {
                 return row.state != 1 && row.state != 0;
               },
@@ -1042,7 +1043,9 @@
             {
               name: "鎾ら攢瀹℃牳",
               type: "text",
-              clickFun: (row) => {},
+              clickFun: (row) => {
+                this.handlEquashCheck(row);
+              },
               disabled: (row, index) => {
                 return (
                   (row.state != 1 && row.state != 0) ||
@@ -1193,7 +1196,9 @@
             {
               name: "鏌ョ湅",
               type: "text",
-              clickFun: (row) => {},
+              clickFun: (row) => {
+                this.viewDetails(row);
+              },
               showHide: (row) => {
                 return (
                   row.inspectionItem == "鍗曟牴鍨傜洿鐕冪儳" ||
@@ -1430,23 +1435,23 @@
         sampleCode: row.sampleCode,
         inspectionItemSubclass: row.inspectionItemSubclass,
       };
-      this.$axios
-        .post(this.$api.insOrder.viewDetails, data, {
-          headers: {
-            "Content-Type": "application/json",
-          },
-        })
+      viewDetails(data)
         .then((res) => {
-          this.viewDetailsList = res.data;
-          if (res.data[0].tableHeader) {
-            this.tableHeader = res.data[0].tableHeader;
-          } else {
-            this.tableHeader = [
-              {
-                testValue0: "",
-              },
-            ];
+          if (res.code === 200) {
+            this.viewDetailsList = res.data;
+            if (res.data[0].tableHeader) {
+              this.tableHeader = res.data[0].tableHeader;
+            } else {
+              this.tableHeader = [
+                {
+                  testValue0: "",
+                },
+              ];
+            }
           }
+        })
+        .catch((error) => {
+          console.error(error);
         });
     },
     getLabelPrinting(selection) {
@@ -1628,7 +1633,7 @@
           active: 2,
           currentId: row.id,
           examine: 1,
-          isReview: true,
+          isPlan: false,
         },
       });
     },
@@ -1647,33 +1652,7 @@
     },
     // 涓嬭浇鎶ュ憡
     download(row) {
-      // let url = row.urlS ? row.urlS : row.url;
-      // if (url) {
-      //   url = url.split(".")[0] + ".pdf";
-      //   const link = document.createElement("a");
-      //   link.href = this.javaApi + url;
-      //   link.target = "_blank";
-      //   document.body.appendChild(link);
-      //   link.click();
-      // }
-
-      // if(row.tempUrlPdf) {
-      //   const link = document.createElement('a');
-      //   link.href = this.javaApi + row.tempUrlPdf;
-      //   link.target = '_blank';
-      //   document.body.appendChild(link);
-      //   link.click();
-      // }
-      this.$axios
-        .get(
-          this.$api.insReport.downReport + "?id=" + row.reportId + "&type=1",
-          {
-            headers: {
-              "Content-Type": "application/json",
-            },
-            responseType: "blob",
-          }
-        )
+      downReport({ id: row.reportId })
         .then((res) => {
           let fileName = row.tempUrlPdf;
           if (fileName.includes("_")) {
@@ -1686,14 +1665,21 @@
           link.download = fileName;
           document.body.appendChild(link);
           link.click();
+        })
+        .catch((error) => {
+          console.error(error);
         });
     },
     // 瀹℃牳
     handleVerify(row) {
-      // this.verifyDialogVisible = true;
-      this.active = 3;
-      this.currentId = row.id;
-      this.examine = 1;
+      this.$router.push({
+        name: "showDetails",
+        query: {
+          active: 3,
+          currentId: row.id,
+          examine: 1,
+        },
+      });
     },
     // 鍏ㄩ��
     handleSelectionAll(val) {
@@ -1910,108 +1896,108 @@
       if (this.deleteTilte == "鎾ら攢") {
         // 鏄惁鏄俯搴﹀惊鐜�
         if (tree.temperature) {
-          this.$axios
-            .get(
-              this.$api.insOrder.selectTemperatureByProductId +
-                "?productId=" +
-                tree.id
-            )
+          selectTemperatureByProductId({ productId: tree.id })
             .then((res) => {
-              this.loadRecursion(this.treeTableData, tree.id, res.data);
-              resolve(res.data);
-              this.recursionTreeTableData(this.revokeData, this.treeTableData);
-              treeNode.loading = false;
+              if (res.code === 200) {
+                this.loadRecursion(this.treeTableData, tree.id, res.data);
+                resolve(res.data);
+                this.recursionTreeTableData(
+                  this.revokeData,
+                  this.treeTableData
+                );
+                treeNode.loading = false;
+              }
+            })
+            .catch((error) => {
+              console.error(error);
             });
         }
         // 鏄惁鏄楠屾鏁�
         else if (tree.temperatureNumber) {
-          this.$axios
-            .get(
-              this.$api.insOrder.selectTemperatureNumberByProductId +
-                "?parentId=" +
-                tree.parentId +
-                "&inspectionItem=" +
-                tree.inspectionItemTwo
-            )
+          selectTemperatureNumberByProductId({
+            parentId: tree.parentId,
+            inspectionItem: tree.inspectionItemTwo,
+          })
             .then((res) => {
-              this.loadRecursion(this.treeTableData, tree.id, res.data);
-              resolve(res.data);
-              this.recursionTreeTableData(this.revokeData, this.treeTableData);
-              treeNode.loading = false;
+              if (res.code === 200) {
+                this.loadRecursion(this.treeTableData, tree.id, res.data);
+                resolve(res.data);
+                this.recursionTreeTableData(
+                  this.revokeData,
+                  this.treeTableData
+                );
+                treeNode.loading = false;
+              }
+            })
+            .catch((error) => {
+              console.error(error);
             });
         } else {
-          this.$axios
-            .get(
-              this.$api.insOrder.selectProductsBySampleId +
-                "?sampleId=" +
-                tree.id +
-                "&orderId=" +
-                this.orderId
-            )
+          selectProductsBySampleId({
+            sampleId: tree.id,
+            orderId: this.orderId,
+          })
             .then((res) => {
-              this.treeTableData.forEach((m, index) => {
-                if (m.sampleId == tree.id) {
-                  m.children = res.data;
-                }
-              });
-              resolve(res.data);
-              this.recursionTreeTableData(this.revokeData, this.treeTableData);
-              // // 濡傛灉璇ユ牱鍝佸凡缁忚鍕鹃�� 閭d箞鎵�寰楀埌鐨勬楠岄」涔熻杩涜鍕鹃��
-              // let data = this.revokeData.map((item) => item.id);
-              // if (data.includes(tree.id)) {
-              //   this.treeTableData.forEach((m, index) => {
-              //     if (m.children) {
-              //       m.children.forEach((n, i) => {
-              //         if (tree.id == n.sampleId) {
-              //           this.$refs.revokeTable.toggleRowSelection(n, true);
-              //         }
-              //       });
-              //     }
-              //   });
-              // }
-              treeNode.loading = false;
+              if (res.code === 200) {
+                this.treeTableData.forEach((m, index) => {
+                  if (m.sampleId == tree.id) {
+                    m.children = res.data;
+                  }
+                });
+                resolve(res.data);
+                this.recursionTreeTableData(
+                  this.revokeData,
+                  this.treeTableData
+                );
+                treeNode.loading = false;
+              }
+            })
+            .catch((error) => {
+              console.error(error);
             });
         }
       } else if (this.deleteTilte == "鎾ら攢瀹℃牳") {
         // 鏄惁鏄俯搴﹀惊鐜�
         if (tree.temperature) {
-          this.$axios
-            .get(
-              this.$api.insOrder.revokeReviewTemperatureByProductId +
-                "?productId=" +
-                tree.id
-            )
+          revokeReviewTemperatureByProductId({ productId: tree.id })
             .then((res) => {
-              resolve(res.data);
-              treeNode.loading = false;
+              if (res.code === 200) {
+                resolve(res.data);
+                treeNode.loading = false;
+              }
+            })
+            .catch((error) => {
+              console.error(error);
             });
         }
         // 鏄惁鏄惊鐜鏁�
         else if (tree.temperatureNumber) {
-          this.$axios
-            .get(
-              this.$api.insOrder.revokeReviewConsistentByProductId +
-                "?parentId=" +
-                tree.parentId +
-                "&inspectionItem=" +
-                tree.inspectionItemTwo
-            )
+          revokeReviewConsistentByProductId({
+            parentId: tree.parentId,
+            inspectionItem: tree.inspectionItemTwo,
+          })
             .then((res) => {
-              resolve(res.data);
-              treeNode.loading = false;
+              if (res.code === 200) {
+                resolve(res.data);
+                treeNode.loading = false;
+              }
+            })
+            .catch((error) => {
+              console.error(error);
             });
         } else {
-          this.$axios
-            .get(
-              this.$api.insOrder.revokeReviewProduct +
-                "?sampleId=" +
-                tree.id +
-                "&orderId=" +
-                this.orderId
-            )
+          revokeReviewProduct({
+            sampleId: tree.id,
+            orderId: this.orderId,
+          })
             .then((res) => {
-              resolve(res.data);
-              treeNode.loading = false;
+              if (res.code === 200) {
+                resolve(res.data);
+                treeNode.loading = false;
+              }
+            })
+            .catch((error) => {
+              console.error(error);
             });
         }
       }
@@ -2022,18 +2008,20 @@
         this.quashDialogVisible = true;
         this.insOrderRow = row;
       } else {
-        // this.componentDataDelete.entity.orderId = row.id
         this.orderId = row.id;
-        this.$axios
-          .get(this.$api.insOrder.selectSampleByOrderId + "?orderId=" + row.id)
+        selectSampleByOrderId({
+          orderId: row.id,
+        })
           .then((res) => {
-            console.log("res", res);
-            this.treeTableData = res.data;
-            this.treeTableData2 = JSON.parse(JSON.stringify(res.data));
+            if (res.code === 200) {
+              this.treeTableData = res.data;
+              this.treeTableData2 = JSON.parse(JSON.stringify(res.data));
+            }
+          })
+          .catch((error) => {
+            console.error(error);
           });
         this.revocationInsProductIds = "";
-        this.componentDataDelete.showSelect = true;
-        this.componentDataDelete.select = true;
         this.deleteTilte = "鎾ら攢";
         this.deleteDialogVisible = true;
       }
@@ -2083,25 +2071,13 @@
             }
           });
           productIds = [...new Set(productIds)];
-          console.log("data", data);
-          console.log("data1", data1);
         }
-        //
-
-        console.log("sampleId", sampleIds);
-        console.log("productIds", productIds);
         let data = {
           orderId: this.orderId,
           sampleIds: sampleIds,
           productIds: productIds,
         };
-        this.$axios
-          .post(this.$api.insOrder.revoke, data, {
-            headers: {
-              "Content-Type": "application/json",
-            },
-            noQs: true,
-          })
+        revoke(data)
           .then((res) => {
             if (res.code === 200) {
               this.deleteDialogVisible = false;
@@ -2110,47 +2086,14 @@
               this.refreshTable();
               this.$message.success("鎾ら攢鎴愬姛");
             }
+          })
+          .catch((error) => {
+            console.error(error);
           });
-        console.log("revokeData", this.revokeData);
-        console.log("data", data);
-        // let ids = this.deleteList.map((m) => m.id).join(",");
-        // this.printLoading = true;
-        // this.axios
-        //   .put(
-        //     this.$api.insOrder.updateInspected +
-        //       "?ids=" +
-        //       ids +
-        //       "&orderId=" +
-        //       this.orderId
-        //   )
-        //   .then((res) => {
-        //     if (res.code === 200) {
-        //       this.printLoading = false;
-        //       this.deleteDialogVisible = false;
-        //       this.refreshTable("page");
-        //       this.$message.success("鏇存柊鎴愬姛");
-        //     }
-        //   });
       } else {
-        // this.axios
-        //   .post(
-        //     this.$api.insOrder.checkUpdate +
-        //       "?orderId=" +
-        //       this.orderId +
-        //       "&state=" +
-        //       1
-        //   )
-        //   .then((res) => {
-        //     if (res.code === 200) {
-        //       this.printLoading = false;
-        //       this.deleteDialogVisible = false;
-        //       this.refreshTable("page");
-        //       this.$message.success("鏇存柊鎴愬姛");
-        //     }
-        //   });
-
-        this.axios
-          .get(this.$api.insOrder.revocationPassed + "?orderId=" + this.orderId)
+        revocationPassed({
+          orderId: this.orderId,
+        })
           .then((res) => {
             if (res.code === 200) {
               this.printLoading = false;
@@ -2158,28 +2101,26 @@
               this.refreshTable();
               this.$message.success("鏇存柊鎴愬姛");
             }
+          })
+          .catch((error) => {
+            console.error(error);
           });
       }
     },
     handlEquashCheck(row) {
-      // // this.componentDataDelete.entity.orderId = row.id
-      // this.orderId = row.id;
-      // this.revocationInsProductIds = row.revocationInsProductIds;
-      // this.componentDataDelete.showSelect = false;
-      // this.componentDataDelete.select = false;
-      // this.deleteTilte = "鎾ら攢瀹℃牳";
-      // this.deleteDialogVisible = true;
-
       this.orderId = row.id;
       this.revocationInsProductIds = row.revocationInsProductIds;
-      this.componentDataDelete.showSelect = false;
-      this.componentDataDelete.select = false;
       this.deleteTilte = "鎾ら攢瀹℃牳";
-      this.$axios
-        .get(this.$api.insOrder.revokeReviewSample + "?orderId=" + row.id)
+      revokeReviewSample({
+        orderId: row.id,
+      })
         .then((res) => {
-          console.log("鎾ら攢瀹℃牳鏍峰搧鏌ヨ", res);
-          this.treeTableData = res.data;
+          if (res.code === 200) {
+            this.treeTableData = res.data;
+          }
+        })
+        .catch((error) => {
+          console.error(error);
         });
       this.deleteDialogVisible = true;
     },
@@ -2188,24 +2129,9 @@
         this.deleteDialogVisible = false;
         this.revokeData = [];
       } else {
-        // this.axios
-        //   .post(
-        //     this.$api.insOrder.checkUpdate +
-        //       "?orderId=" +
-        //       this.orderId +
-        //       "&state=" +
-        //       0
-        //   )
-        //   .then((res) => {
-        //     if (res.code === 200) {
-        //       this.printLoading = false;
-        //       this.deleteDialogVisible = false;
-        //       this.refreshTable("page");
-        //       this.$message.success("鏇存柊鎴愬姛");
-        //     }
-        //   });
-        this.axios
-          .get(this.$api.insOrder.revocationCancel + "?orderId=" + this.orderId)
+        revocationCancel({
+          orderId: this.orderId,
+        })
           .then((res) => {
             if (res.code === 200) {
               this.printLoading = false;
@@ -2213,26 +2139,32 @@
               this.refreshTable();
               this.$message.success("鏇存柊鎴愬姛");
             }
+          })
+          .catch((error) => {
+            console.error(error);
           });
       }
     },
     // 涓嬪彂
     handleIssued(row) {
       this.issuedDialogVisible = true;
-      this.$axios
-        .post(this.$api.insOrder.selectOrderManDay, {
-          id: row.id,
-        })
+      selectOrderManDay({
+        id: row.id,
+      })
         .then((res) => {
-          this.distributeData.orderId = row.id;
-          this.distributeData.sampleId = row.sampleId;
-          this.distributeData.appointed = res.data;
-          this.distributeData.type = row.type;
-        });
-      this.$axios
-        .post(this.$api.insOrderPlan.upPlanUser2, {
-          orderId: row.id,
+          if (res.code === 200) {
+            this.distributeData.orderId = row.id;
+            this.distributeData.sampleId = row.sampleId;
+            this.distributeData.appointed = res.data;
+            this.distributeData.type = row.type;
+          }
         })
+        .catch((error) => {
+          console.error(error);
+        });
+      upPlanUser2({
+        orderId: row.id,
+      })
         .then((res) => {
           if (res.code === 200 && res.data.length > 0) {
             this.sonLaboratoryList = [];
@@ -2243,6 +2175,9 @@
               });
             });
           }
+        })
+        .catch((error) => {
+          console.error(error);
         });
     },
     submitForm2() {
@@ -2270,22 +2205,13 @@
         return;
       }
       this.upLoad = true;
-      this.$axios
-        .post(
-          this.$api.insOrder.upInsOrder,
-          {
-            orderId: this.distributeData.orderId,
-            sampleId: this.distributeData.sampleId,
-            appointed: this.distributeData.appointed,
-            userIdList: [this.distributeData.userId],
-            sonLaboratory: this.distributeData.sonLaboratory,
-          },
-          {
-            headers: {
-              "Content-Type": "application/json",
-            },
-          }
-        )
+      upInsOrder({
+        orderId: this.distributeData.orderId,
+        sampleId: this.distributeData.sampleId,
+        appointed: this.distributeData.appointed,
+        userIdList: [this.distributeData.userId],
+        sonLaboratory: this.distributeData.sonLaboratory,
+      })
         .then((res) => {
           if (res.code === 201) {
             this.upLoad = false;
@@ -2296,7 +2222,8 @@
           this.issuedDialogVisible = false;
           this.refreshTable();
         })
-        .catch((e) => {
+        .catch((error) => {
+          console.error(error);
           this.$message.error("淇敼澶辫触");
           this.upLoad = false;
         });
@@ -2304,10 +2231,9 @@
     submitForm() {
       this.upLoad = true;
       if (this.tabIndex == 1) {
-        this.axios
-          .put(
-            this.$api.insOrder.updateInspected + "?id=" + this.insOrderRow.id
-          )
+        updateInspected({
+          id: this.insOrderRow.id,
+        })
           .then((res) => {
             if (res.code === 200) {
               this.upLoad = false;
@@ -2315,10 +2241,14 @@
               this.refreshTable();
               this.$message.success("鏇存柊鎴愬姛");
             }
+          })
+          .catch((error) => {
+            console.error(error);
           });
       } else {
-        this.axios
-          .put(this.$api.insOrder.updateStatus + "?id=" + this.insOrderRow.id)
+        updateStatus({
+          id: this.insOrderRow.id,
+        })
           .then((res) => {
             if (res.code === 200) {
               this.upLoad = false;
@@ -2326,17 +2256,11 @@
               this.refreshTable();
               this.$message.success("鏇存柊鎴愬姛");
             }
+          })
+          .catch((error) => {
+            console.error(error);
           });
       }
-      let authorizedPerson =
-        this.formData.authorizedPerson.length > 0
-          ? this.formData.authorizedPerson.join(",")
-          : "";
-      delete this.formData.createTime;
-      delete this.formData.updateTime;
-      delete this.formData.createUser;
-      delete this.formData.updateUser;
-      this.formData.authorizedPerson = authorizedPerson;
     },
     // 涓嬪崟
     playOrder(num) {
@@ -2347,6 +2271,7 @@
         query: {
           active: num,
           examine: 0,
+          isPlan: false,
         },
       });
     },
@@ -2354,49 +2279,6 @@
       this.tabIndex = i;
       this.queryParams.state = m.value;
       this.getList();
-    },
-    getUserMenu() {
-      this.$axios.get(this.$api.user.getUserMenu).then((res) => {
-        let data = [];
-        res.data.forEach((a) => {
-          data.push({
-            label: a.name,
-            value: a.id,
-          });
-        });
-        this.componentData.tagField.createUser.select = data;
-      });
-    },
-    getInsStateDicts() {
-      this.$axios
-        .post(this.$api.enums.selectEnumByCategory, {
-          category: "妫�楠屼换鍔$姸鎬�",
-        })
-        .then((res) => {
-          let data = res.data;
-          this.insStateList = data;
-          data.forEach((ele) => {
-            //0:寰呮楠� 1:妫�楠屼腑 2:宸叉楠� 3:寰呭鏍� 4:澶嶆牳鏈�氳繃 5:澶嶆牳閫氳繃
-            if (["2", "5"].includes(ele.value)) {
-              ele.type = "success";
-            } else if (["1", "3"].includes(ele.value)) {
-              ele.type = "warning";
-            } else if (["0", "4"].includes(ele.value)) {
-              ele.type = "danger";
-            }
-          });
-          this.componentDataDataLook.tagField.insState.select = data;
-          this.componentDataDelete.tagField.insState.select = data;
-        });
-    },
-    selectEnumByCategoryForOrderType() {
-      this.$axios
-        .post(this.$api.enums.selectEnumByCategory, {
-          category: "妫�楠岀被鍒�",
-        })
-        .then((res) => {
-          this.componentData.tagField.orderType.select = res.data;
-        });
     },
     changeUser() {
       if (this.sonLaboratoryList.length > 0) {
diff --git a/src/views/business/inspectionTask/Inspection.vue b/src/views/business/inspectionTask/Inspection.vue
new file mode 100644
index 0000000..18c7feb
--- /dev/null
+++ b/src/views/business/inspectionTask/Inspection.vue
@@ -0,0 +1,8086 @@
+<style scoped>
+.custom-table .el-table__header-wrapper th {
+  background-color: #87ceeb; /* 鍙甯︽湁my-custom-table绫荤殑琛ㄦ牸鐢熸晥 */
+  color: #fff;
+}
+.container {
+  overflow: auto; /* 纭繚瀹瑰櫒鑳藉寘瑁规诞鍔ㄥ厓绱� */
+  margin-bottom: 10px;
+}
+
+.right-button {
+  float: right;
+}
+.inspection {
+  height: 100%;
+  overflow-y: auto;
+}
+
+.inspection::-webkit-scrollbar {
+  width: 0;
+}
+
+.title {
+  height: 60px;
+  line-height: 60px;
+}
+
+.search {
+  width: 100%;
+  margin-bottom: 10px;
+  background-color: #fff;
+  border-radius: 3px;
+}
+
+.search .form-inline {
+  padding-top: 20px;
+  padding-left: 0px;
+  text-align: left;
+}
+
+.center {
+  width: calc(100% - 40px);
+  /* max-height: 580px; */
+  background-color: #fff;
+  border-radius: 3px;
+  padding: 20px;
+  overflow: auto;
+}
+
+.center-box {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  flex-direction: column;
+  flex-wrap: wrap;
+  width: 100%;
+  overflow-x: hidden;
+  /* overflow-x: scroll; */
+  cursor: grab;
+}
+
+.center-box:active {
+  cursor: grabbing;
+}
+
+.tables {
+  table-layout: fixed;
+  margin: 5px 5px 16px;
+}
+
+.tables td {
+  height: 40px;
+  width: 100px;
+  text-align: center;
+  font-size: 14px;
+  word-wrap: break-word;
+  white-space: normal;
+}
+.thermal-table {
+  min-width: calc(100% - 10px);
+  margin: 5px 5px 0;
+  table-layout: fixed;
+}
+.thermal-table td {
+  min-width: 70px;
+  text-align: center;
+  font-size: 14px;
+  word-wrap: break-word;
+  white-space: normal;
+  padding: 5px;
+}
+.table-container {
+  overflow-x: auto; /* 浣垮鍣ㄦ敮鎸佹í鍚戞粴鍔� */
+  max-width: 100%; /* 闄愬埗瀹瑰櫒鐨勬渶澶у搴� */
+  margin-bottom: 16px;
+}
+
+.content {
+  display: flex;
+  height: 100%;
+  align-items: center;
+  justify-content: left;
+  padding: 5px;
+  box-sizing: border-box;
+  overflow: hidden;
+  user-select: none;
+}
+
+.content * {
+  user-select: none;
+}
+
+.content-h-0 {
+  justify-content: center;
+}
+
+.content-h-1 {
+  justify-content: start;
+}
+
+.content-h-2 {
+  justify-content: end;
+}
+
+.content-v-0 {
+  align-items: center;
+}
+
+.content-v-1 {
+  align-items: start;
+}
+
+.content-v-2 {
+  align-items: end;
+}
+
+.table_input {
+  width: 100%;
+  height: 100%;
+}
+.table_input >>> .el-input__inner {
+  border-color: rgba(0, 0, 0, 0.5) !important;
+}
+
+.collection {
+  width: 50px;
+  height: 100%;
+  margin-left: 5px;
+  border-color: transparent;
+  background-color: #409eff;
+  color: #fff;
+  border-radius: 4px;
+  font-size: 12px;
+}
+
+.collection:active {
+  opacity: 0.7;
+}
+.table_caret {
+  font-size: 16px;
+  margin: 0 5px;
+  color: rgba(0, 0, 0, 0.5);
+}
+.table_caret:hover {
+  color: #409eff;
+  cursor: pointer;
+}
+
+.table_caret:active {
+  opacity: 0.8;
+}
+>>> input::-webkit-inner-spin-button {
+  -webkit-appearance: none !important; /* 闅愯棌寰皟鎸夐挳 */
+  margin: 0 !important; /* 绉婚櫎寰皟鎸夐挳鐨勮竟璺� */
+}
+
+>>> input[type="number"] {
+  -moz-appearance: textfield !important; /* 閽堝 Firefox */
+}
+>>> .el-form-item__content {
+  display: inline-flex;
+  align-items: center;
+}
+#lineTd {
+  background: #fff
+    url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMDAlIiBoZWlnaHQ9IjEwMCUiPjxsaW5lIHgxPSIwIiB5MT0iMCIgeDI9IjEwMCUiIHkyPSIxMDAlIiBzdHJva2U9ImJsYWNrIiBzdHJva2Utd2lkdGg9IjEiLz48L3N2Zz4=)
+    no-repeat 100% center;
+}
+.background-grey {
+  background-color: #f0f1f5;
+}
+.search_thing {
+  display: flex;
+  align-items: center;
+  height: 50px;
+}
+
+.search_label {
+  width: 120px;
+  font-size: 14px;
+  text-align: right;
+}
+.search_input {
+  width: calc(100% - 120px);
+}
+</style>
+<style>
+.inspection .el-form-item__label {
+  color: #000;
+}
+
+.inspection .el-drawer__header::before {
+  content: "";
+  display: inline-block;
+  width: 4px;
+  height: 30.24px;
+  background: #3a7bfa;
+  border-radius: 10px;
+  margin-left: 32px;
+  margin-right: 8.5px;
+}
+
+.inspection .el-drawer__header {
+  color: #303133;
+  text-align: left;
+}
+
+.inspection .el-input-group__append {
+  padding: 0 14px;
+  color: #3a7bfa;
+  background-color: #fff;
+  height: 100%;
+  display: flex;
+  align-items: center;
+}
+
+.inspection .center-box .el-input__inner {
+  font-size: 12px;
+  padding: 0 6px;
+  text-align: center;
+}
+
+.inspection .el-textarea__inner {
+  padding: 2px;
+}
+
+.inspection .el-textarea__inner::-webkit-scrollbar {
+  width: 0;
+}
+
+.inspection .el-select {
+  display: flex;
+  align-items: center;
+}
+
+.inspection .el-textarea__inner {
+  min-height: 100% !important;
+}
+
+.inspection .tables .el-input {
+  display: flex;
+  align-items: center;
+}
+.thermal-table .el-input {
+  display: flex;
+  align-items: center;
+}
+.custom-dialog .el-dialog__body {
+  max-width: 1000px; /* 璁剧疆鏈�澶у搴� */
+}
+</style>
+<template>
+  <div v-loading="loading" class="inspection">
+    <el-row class="title">
+      <el-col :span="12" style="padding-left: 20px; text-align: left"
+        >妫�楠屽崟璇︽儏
+      </el-col>
+      <el-col :span="12" style="text-align: right">
+        <el-button
+          size="small"
+          type="primary"
+          @click="connectVisible = true"
+          v-show="insOrderState != 2 && state == 1"
+          >浜ゆ帴</el-button
+        >
+        <!-- <el-button size="small" type="primary" @click="fiberOpticVisible=true" v-if="fiberOptic.length>0">鍏夌氦鍒囨崲</el-button>
+        <el-button size="small" type="primary" @click="fiberOpticTapeVisible=true" v-if="fiberOpticTape.length>0">鍏夌氦甯﹀垏鎹�</el-button>
+        <el-button size="small" type="primary" @click="bushingVisible=true" v-if="bushing.length>0">濂楃鍒囨崲</el-button> -->
+        <el-button
+          size="small"
+          type="primary"
+          @click="
+            sampleVisible = true;
+            uploadSample();
+          "
+          >鏍峰搧鍒囨崲</el-button
+        >
+        <el-button size="small" type="primary" @click="taskVisible = true"
+          >浠诲姟鍒囨崲</el-button
+        >
+        <el-button
+          size="small"
+          type="primary"
+          @click="addVerifyDia = true"
+          v-if="state == 1"
+          :loading="submitLoading"
+          >鎻愪氦</el-button
+        >
+        <!-- 澶嶆牳 -->
+        <el-button
+          size="medium"
+          type="primary"
+          @click="upInsReview(1)"
+          :loading="reviewLoading"
+          v-if="state > 1"
+          >閫氳繃</el-button
+        >
+        <el-button size="medium" @click="upInsReview(0)" v-if="state > 1"
+          >涓嶉�氳繃</el-button
+        >
+        <el-button size="small" @click="$emit('goback')">杩斿洖</el-button>
+      </el-col>
+    </el-row>
+    <div class="search">
+      <el-form
+        :inline="true"
+        :model="searchForm"
+        class="form-inline"
+        label-width="100px"
+        label-position="right"
+      >
+        <el-form-item label="濮旀墭缂栧彿:">
+          <el-input
+            clearable
+            v-model="insOrder.entrustCode"
+            disabled
+            size="small"
+            placeholder="璇疯緭鍏�"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="鏍峰搧缂栧彿:">
+          <el-tooltip
+            :disabled="!currentSample.sampleCode"
+            :content="currentSample.sampleCode"
+          >
+            <el-input
+              clearable
+              v-model="currentSample.sampleCode"
+              disabled
+              size="small"
+              placeholder="璇疯緭鍏�"
+            ></el-input>
+          </el-tooltip>
+        </el-form-item>
+        <el-form-item label="鏍峰搧鍚嶇О:">
+          <el-input
+            clearable
+            v-model="currentSample.sample"
+            disabled
+            size="small"
+            placeholder="璇疯緭鍏�"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="鏍峰搧鏁伴噺:">
+          <el-input
+            clearable
+            v-model="fileterSampleProducts.length"
+            disabled
+            size="small"
+            placeholder="璇疯緭鍏�"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="涓嬪彂鏃堕棿:">
+          <el-input
+            clearable
+            v-model="insOrder.sendTime"
+            disabled
+            size="small"
+            placeholder="璇疯緭鍏�"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="绱ф�ョ▼搴�:">
+          <el-input
+            clearable
+            v-model="insOrder.typeName"
+            disabled
+            size="small"
+            placeholder="璇疯緭鍏�"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="绾﹀畾鏃堕棿:">
+          <el-input
+            clearable
+            v-model="insOrder.appointed"
+            disabled
+            size="small"
+            placeholder="璇疯緭鍏�"
+          ></el-input>
+        </el-form-item>
+        <el-form-item label="褰撳墠鏍峰搧浣嶆暟:">
+          <el-tag v-if="currentKey">{{ `NO.${currentKey}` }}</el-tag>
+        </el-form-item>
+        <el-form-item label="澶囨敞:">
+          <span style="color: red">{{
+            insOrder.remark ? insOrder.remark : "-"
+          }}</span>
+          <!-- <el-tag v-if="currentKey">{{ insOrder.remark }}</el-tag> -->
+        </el-form-item>
+      </el-form>
+    </div>
+    <div class="center">
+      <div
+        class="search"
+        style="
+          text-align: left;
+          display: flex;
+          align-items: center;
+          justify-content: space-between;
+        "
+      >
+        <div style="display: flex; align-items: center">
+          <span v-if="tableList.length > 0">妫�楠屾ā鏉匡細</span>
+          <el-radio-group v-model="currentTable" size="small">
+            <el-radio-button
+              :label="item.templateId"
+              v-for="(item, index) in tableLists"
+              :key="index"
+              size="small"
+              >{{ item.templateName }}</el-radio-button
+            >
+          </el-radio-group>
+        </div>
+        <div style="display: flex; align-items: center">
+          <span
+            v-if="
+              casing.length > 0 &&
+              tableLists.find((m) => m.templateId == currentTable) &&
+              (tableLists.find((m) => m.templateId == currentTable)
+                .templateName == '鎴愬搧缂嗘楠屽師濮嬭褰�' ||
+                tableLists.find((m) => m.templateId == currentTable)
+                  .templateName == '浜屾琚鏉愭枡妫�楠屽師濮嬭褰�')
+            "
+            >&nbsp;&nbsp;濂楃锛�</span
+          >
+          <el-select
+            v-model="currentTab"
+            placeholder="璇烽�夋嫨"
+            clearable
+            @clear="handleChangeSample({ id: currentSample.id })"
+            @change="(m) => handleChange(m, 3)"
+            v-if="
+              casing.length > 0 &&
+              tableLists.find((m) => m.templateId == currentTable) &&
+              (tableLists.find((m) => m.templateId == currentTable)
+                .templateName == '鎴愬搧缂嗘楠屽師濮嬭褰�' ||
+                tableLists.find((m) => m.templateId == currentTable)
+                  .templateName == '浜屾琚鏉愭枡妫�楠屽師濮嬭褰�')
+            "
+            size="small"
+            :loading="getReportModelLoading"
+            @focus="getReportModel(currentSample.id)"
+          >
+            <el-option
+              v-for="item in casing"
+              :key="item.id"
+              :label="item.color"
+              :value="item.id"
+            >
+              <span style="float: left">{{ item.color }}</span>
+              <el-tag
+                :type="
+                  item.state == 1
+                    ? 'success'
+                    : item.state == 2
+                    ? 'warning'
+                    : 'danger'
+                "
+                style="float: right; margin-top: 5px"
+                size="small"
+              >
+                {{
+                  item.state == 1 ? "宸叉" : item.state == 2 ? "鍦ㄦ" : "鏈"
+                }}
+              </el-tag>
+            </el-option>
+          </el-select>
+
+          <!-- 璇ュ厜绾ゅ甫鐢ㄤ簬鍏夌氦甯︿笅鏈夐」鐩厤缃殑鎯呭喌 -->
+          <span
+            v-if="
+              fibers.filter((f) => f.isExistProduct).length > 0 &&
+              fibers.length > 0 &&
+              tableLists.find((m) => m.templateId == currentTable) &&
+              tableLists.find((m) => m.templateId == currentTable)
+                .templateName != '娓╁害寰幆妫�楠屽師濮嬭褰�' &&
+              tableLists
+                .find((m) => m.templateId == currentTable)
+                .templateName.includes('鍏夌氦')
+            "
+            >&nbsp;&nbsp;鍏夌氦甯︼細</span
+          >
+          <el-select
+            v-model="currentTab"
+            placeholder="璇烽�夋嫨"
+            clearable
+            @clear="handleChangeSample({ id: currentSample.id })"
+            @change="(m) => handleChange(m, 1)"
+            v-if="
+              fibers.filter((f) => f.isExistProduct).length > 0 &&
+              fibers.length > 0 &&
+              tableLists.find((m) => m.templateId == currentTable) &&
+              tableLists.find((m) => m.templateId == currentTable)
+                .templateName != '娓╁害寰幆妫�楠屽師濮嬭褰�' &&
+              tableLists
+                .find((m) => m.templateId == currentTable)
+                .templateName.includes('鍏夌氦')
+            "
+            size="small"
+            :loading="getReportModelLoading"
+            @focus="getReportModel(currentSample.id)"
+          >
+            <el-option
+              v-for="item in fibers"
+              :key="item.value"
+              :label="item.bushingColor + '-' + item.code"
+              :value="item.id"
+            >
+              <span style="float: left">{{
+                item.bushingColor + "-" + item.code
+              }}</span>
+              <el-tag
+                :type="
+                  item.state == 1
+                    ? 'success'
+                    : item.state == 2
+                    ? 'warning'
+                    : 'danger'
+                "
+                style="float: right; margin-top: 5px"
+                size="small"
+              >
+                {{
+                  item.state == 1 ? "宸叉" : item.state == 2 ? "鍦ㄦ" : "鏈"
+                }}
+              </el-tag>
+            </el-option>
+          </el-select>
+
+          <!-- 璇ュ厜绾ゅ甫鐢ㄤ簬鍏夌氦甯︽棤椤圭洰锛屼笅闈㈡湁鍏夌氦閰嶇疆鐨勬儏鍐� -->
+          <span
+            v-if="
+              fibers.filter((f) => f.isExistProduct).length === 0 &&
+              fibers.length > 0 &&
+              tableLists.find((m) => m.templateId == currentTable) &&
+              tableLists.find((m) => m.templateId == currentTable)
+                .templateName != '娓╁害寰幆妫�楠屽師濮嬭褰�' &&
+              tableLists
+                .find((m) => m.templateId == currentTable)
+                .templateName.includes('鍏夌氦')
+            "
+            >&nbsp;&nbsp;鍏夌氦甯︼細</span
+          >
+          <el-select
+            v-model="insFibersId"
+            placeholder="璇烽�夋嫨"
+            disabled
+            v-if="
+              fibers.filter((f) => f.isExistProduct).length === 0 &&
+              fibers.length > 0 &&
+              tableLists.find((m) => m.templateId == currentTable) &&
+              tableLists.find((m) => m.templateId == currentTable)
+                .templateName != '娓╁害寰幆妫�楠屽師濮嬭褰�' &&
+              tableLists
+                .find((m) => m.templateId == currentTable)
+                .templateName.includes('鍏夌氦')
+            "
+            size="small"
+          >
+            <el-option
+              v-for="item in fibers"
+              :key="item.value"
+              :label="item.bushingColor + '-' + item.code"
+              :value="item.id"
+            >
+              <span style="float: left">{{
+                item.bushingColor + "-" + item.code
+              }}</span>
+              <el-tag
+                :type="
+                  item.state == 1
+                    ? 'success'
+                    : item.state == 2
+                    ? 'warning'
+                    : 'danger'
+                "
+                style="float: right; margin-top: 5px"
+                size="small"
+              >
+                {{
+                  item.state == 1 ? "宸叉" : item.state == 2 ? "鍦ㄦ" : "鏈"
+                }}
+              </el-tag>
+            </el-option>
+          </el-select>
+          <span
+            v-if="
+              fiber.length > 0 &&
+              tableLists.find((m) => m.templateId == currentTable) &&
+              tableLists.find((m) => m.templateId == currentTable)
+                .templateName != '娓╁害寰幆妫�楠屽師濮嬭褰�' &&
+              tableLists
+                .find((m) => m.templateId == currentTable)
+                .templateName.includes('鍏夌氦')
+            "
+            >&nbsp;&nbsp;鍏夌氦锛�</span
+          >
+          <el-select
+            v-model="currentTab"
+            placeholder="璇烽�夋嫨"
+            clearable
+            @clear="handleChangeSample({ id: currentSample.id })"
+            @change="(m) => handleChange(m, 2)"
+            v-if="
+              fiber.length > 0 &&
+              tableLists.find((m) => m.templateId == currentTable) &&
+              tableLists.find((m) => m.templateId == currentTable)
+                .templateName != '娓╁害寰幆妫�楠屽師濮嬭褰�' &&
+              tableLists
+                .find((m) => m.templateId == currentTable)
+                .templateName.includes('鍏夌氦')
+            "
+            size="small"
+            :loading="getReportModelLoading"
+            @focus="getReportModel(currentSample.id)"
+          >
+            <el-option
+              v-for="item in fiber"
+              :label="item.bushColor + '-' + item.color"
+              :key="item.id"
+              :value="item.id"
+            >
+              <span style="float: left">{{
+                item.bushColor + "-" + item.color
+              }}</span>
+              <el-tag
+                :type="
+                  item.state == 1
+                    ? 'success'
+                    : item.state == 2
+                    ? 'warning'
+                    : 'danger'
+                "
+                style="float: right; margin-top: 5px"
+                size="small"
+              >
+                {{
+                  item.state == 1 ? "宸叉" : item.state == 2 ? "鍦ㄦ" : "鏈"
+                }}
+              </el-tag>
+            </el-option>
+          </el-select>
+          <el-form
+            :inline="true"
+            :model="otherForm"
+            class="form-inline"
+            label-width="50px"
+            style="padding-top: 0; padding-left: 10px"
+            v-if="PROJECT == '妫�娴嬩腑蹇�'"
+          >
+            <el-form-item label="娓╁害:" style="margin-bottom: 0">
+              <el-input
+                v-model="otherForm.temperature"
+                :disabled="state > 1"
+                size="small"
+                placeholder=""
+                style="width: 90px"
+                @change="(m) => subOtherForm(m, 'temperature')"
+              ></el-input>
+              <span style="margin-left: 4px">鈩�</span>
+            </el-form-item>
+            <el-form-item label="婀垮害:" style="margin-bottom: 0">
+              <el-input
+                v-model="otherForm.humidity"
+                :disabled="state > 1"
+                size="small"
+                placeholder=""
+                style="width: 90px"
+                @change="(m) => subOtherForm(m, 'humidity')"
+              ></el-input>
+              <span style="margin-left: 4px">%</span>
+            </el-form-item>
+          </el-form>
+          <el-button
+            type="primary"
+            size="small"
+            v-if="
+              (isGet ||
+                (tableLists.find((m) => m.templateId == currentTable) &&
+                  tableLists.find((m) => m.templateId == currentTable)
+                    .templateName == '娓╁害寰幆妫�楠屽師濮嬭褰�' &&
+                  temDataAcquisition)) &&
+              PROJECT == '妫�娴嬩腑蹇�' &&
+              state == 1
+            "
+            @click="getDataAcquisitionDevice"
+            :loading="dataAcquisitionLoading"
+            >鏁版嵁閲囬泦</el-button
+          >
+          <el-button
+            :type="dataAcquisitionEidtAble ? '' : 'primary'"
+            size="small"
+            v-if="
+              isGet ||
+              isEdit ||
+              (tableLists.find((m) => m.templateId == currentTable) &&
+                tableLists.find((m) => m.templateId == currentTable)
+                  .templateName == '娓╁害寰幆妫�楠屽師濮嬭褰�' &&
+                PROJECT == '妫�娴嬩腑蹇�' &&
+                collected &&
+                state == 1)
+            "
+            @click="dataAcquisitionEidtAble = !dataAcquisitionEidtAble"
+            >{{ dataAcquisitionEidtAble ? "鍏抽棴缂栬緫" : "缂栬緫鏁伴噰" }}</el-button
+          >
+        </div>
+      </div>
+      <!-- 甯歌妫�楠屽師濮嬭褰� -->
+      <div
+        class="center-box"
+        id="nav"
+        v-loading="tableLoading"
+        v-if="
+          !tableLists.find((m) => m.templateId == currentTable) ||
+          (tableLists.find((m) => m.templateId == currentTable).templateName !=
+            '娓╁害寰幆妫�楠屽師濮嬭褰�' &&
+            !tableLists
+              .find((m) => m.templateId == currentTable)
+              .templateName.includes('鐑惊鐜�') &&
+            !tableLists
+              .find((m) => m.templateId == currentTable)
+              .templateName.includes('娓╁崌璇曢獙') &&
+            !tableLists
+              .find((m) => m.templateId == currentTable)
+              .templateName.includes('寮у瀭鐗规�ф楠屽師濮嬭褰�') &&
+            !tableLists
+              .find((m) => m.templateId == currentTable)
+              .templateName.includes('鍗曟牴鍨傜洿鐕冪儳') &&
+            !tableLists
+              .find((m) => m.templateId == currentTable)
+              .templateName.includes('鏋剁┖鍦扮嚎搴斿姏搴斿彉') &&
+            !tableLists
+              .find((m) => m.templateId == currentTable)
+              .templateName.includes('闃叉尟閿ゅ姛鐜囩壒鎬�') &&
+            !tableLists
+              .find((m) => m.templateId == currentTable)
+              .templateName.includes('鐤插姵璇曢獙妫�楠屽師濮嬭褰�'))
+        "
+      >
+        <table
+          border="1"
+          class="tables"
+          cellpadding="10"
+          v-for="(item, index) in tableList"
+          :key="index + currentTable + currentSample.id"
+        >
+          <tbody>
+            <tr v-for="(m, i) in item.arr" :key="i">
+              <td
+                :id="item.templateId + '-' + n.i + '-' + n.r + '-' + n.c"
+                v-for="(n, j) in m"
+                :key="j"
+                v-if="n.v.mc == undefined || Object.keys(n.v.mc).length === 4"
+                :colspan="n.v.mc && n.v.mc.cs ? n.v.mc.cs : 1"
+                :rowspan="n.v.mc && n.v.mc.rs ? n.v.mc.rs : 1"
+                :style="`background:${n.v.bg ? n.v.bg : ''};color:${
+                  n.v.fc
+                };font-size:${n.v.fs}px;width:${handleWidth(
+                  n
+                )}px !important;height:${item.style.rowlen[n.r]}px;font-wight:${
+                  n.v.bl ? 'bold' : ''
+                };`"
+              >
+                <div
+                  class="content"
+                  :class="`content-h-${n.v.ht} content-v-${n.v.vt}`"
+                  :style="`width:${handleWidth(n)}px !important;min-height:${
+                    item.style.rowlen[n.r]
+                  }px;`"
+                >
+                  <template
+                    v-if="
+                      n.v.ps != undefined &&
+                      typeof n.v.ps.value === 'string' &&
+                      n.v.ps.value.includes('妫�楠屽��') &&
+                      state == 1
+                    "
+                  >
+                    <el-input
+                      v-if="getInspectionValueType(n.i) == 1"
+                      class="table_input"
+                      v-model="n.v.v"
+                      :disabled="
+                        (getInspectionItemType(n.i) == 1 &&
+                          !dataAcquisitionEidtAble) ||
+                        (n.u != userId && n.u != undefined && n.u != '')
+                      "
+                      @input="handleInput(n)"
+                      @change="
+                        (m) =>
+                          changeInput(
+                            m,
+                            `${item.templateId}-${n.r}-${n.c}-${n.i}`,
+                            n,
+                            'getDataType'
+                          )
+                      "
+                      @mousewheel.native.prevent
+                      :key="'abc-' + '000' + index + '000' + i + '000' + j"
+                      @keydown.enter="
+                        changeInput(
+                          '',
+                          `${item.templateId}-${n.r}-${n.c}-${n.i}`,
+                          n,
+                          'getDataType'
+                        )
+                      "
+                    >
+                      <!-- <el-button slot="append" type="primary" icon="el-icon-edit" size="mini"
+                        v-if="getInspectionItemType(n.i) == 1" @click="getSystemValue(n)"></el-button> -->
+                    </el-input>
+                    <el-input
+                      v-else-if="getInspectionValueType(n.i) == 2"
+                      class="table_input"
+                      type="textarea"
+                      v-model="n.v.v"
+                      :disabled="
+                        getInspectionItemType(n.i) == 1 ||
+                        (n.u != userId && n.u != undefined && n.u != '')
+                      "
+                      @change="
+                        (m) =>
+                          changeInput(
+                            m,
+                            `${item.templateId}-${n.r}-${n.c}-${n.i}`,
+                            n,
+                            'getDataType'
+                          )
+                      "
+                    />
+                    <el-select
+                      v-else-if="getInspectionValueType(n.i) == 5"
+                      class="table_input"
+                      v-model="n.v.v"
+                      :disabled="
+                        state > 1 ||
+                        getInspectionItemType(n.i) == 1 ||
+                        (n.u != userId && n.u != undefined && n.u != '')
+                      "
+                      @visible-change="(e) => getDic(e, n.i)"
+                      @change="
+                        (m) =>
+                          changeInput(
+                            m,
+                            `${item.templateId}-${n.r}-${n.c}-${n.i}`,
+                            n,
+                            'getDataType'
+                          )
+                      "
+                    >
+                      <el-option
+                        v-for="(e, i) in enumList"
+                        :key="i"
+                        :label="e.label"
+                        :value="e.value"
+                      ></el-option>
+                    </el-select>
+                    <span
+                      :style="`font-family:${n.v.ff} !important;`"
+                      v-else-if="getInspectionValueType(n.i) == 4"
+                      >/</span
+                    >
+                  </template>
+                  <template
+                    v-else-if="n.v.ps != undefined && n.v.ps.value === '缁撹'"
+                  >
+                    <el-select
+                      v-if="
+                        (getInspectionValueType(n.i) == 2 ||
+                          getInspectionValueType(n.i) == 5) &&
+                        state == 1 &&
+                        PROJECT == '瑁呭鐢电紗'
+                      "
+                      class="table_input"
+                      v-model="n.v.v"
+                      @change="saveInsContext(n.i)"
+                    >
+                      <el-option label="鍚堟牸" :value="1"></el-option>
+                      <el-option label="涓嶅悎鏍�" :value="0"></el-option>
+                    </el-select>
+                    <template
+                      v-if="
+                        PROJECT == '妫�娴嬩腑蹇�' ||
+                        (PROJECT == '瑁呭鐢电紗' &&
+                          getInspectionValueType(n.i) != 2)
+                      "
+                    >
+                      <span
+                        v-if="n.v.v === 1"
+                        :style="`font-family:${n.v.ff} !important;color: green;`"
+                        >鍚堟牸</span
+                      >
+                      <span
+                        v-else-if="n.v.v === 0"
+                        :style="`font-family:${n.v.ff} !important;color: red;`"
+                        >涓嶅悎鏍�</span
+                      >
+                      <span
+                        v-else-if="n.v.v === 3"
+                        :style="`font-family:${n.v.ff} !important;color: #3A7BFA;`"
+                        >涓嶅垽瀹�</span
+                      >
+                      <span v-else :style="`font-family:${n.v.ff} !important;`"
+                        >寰呭畾</span
+                      >
+                    </template>
+                  </template>
+                  <template
+                    v-else-if="
+                      n.v.ps != undefined &&
+                      n.v.ps.value === '璁惧缂栫爜' &&
+                      state == 1
+                    "
+                  >
+                    <el-select
+                      v-model="n.v.v"
+                      placeholder="璁惧"
+                      :disabled="n.u != userId && n.u != undefined && n.u != ''"
+                      class="table_input"
+                      @visible-change="(e) => getEquipOptions(e, n.i)"
+                      remote
+                      @change="(val) => changeEquip(val, n)"
+                    >
+                      <el-option
+                        v-for="item in equipOptions"
+                        :key="item.value"
+                        :label="item.value"
+                        :value="item.value"
+                      >
+                      </el-option>
+                    </el-select>
+                  </template>
+                  <template
+                    v-else-if="
+                      n.v.ps != undefined &&
+                      n.v.ps.value === '璁惧鍚嶇О' &&
+                      state == 1
+                    "
+                  >
+                    <span>{{ n.v.v }}</span>
+                  </template>
+                  <template
+                    v-else-if="
+                      n.v.ps != undefined &&
+                      n.v.ps.value === '瑕佹眰鍊�' &&
+                      state == 1
+                    "
+                  >
+                    <span :style="`font-family:${n.v.ff} !important;`">{{
+                      getTell(n.i)
+                    }}</span>
+                  </template>
+                  <template
+                    v-else-if="
+                      n.v.ps != undefined &&
+                      n.v.ps.value === '璁$畻鍊�' &&
+                      state == 1
+                    "
+                    ><span :style="`font-family:${n.v.ff} !important;`">{{
+                      toFixed(n.v.v, n.v.ct)
+                    }}</span></template
+                  >
+                  <template
+                    v-else-if="
+                      n.v.ps != undefined &&
+                      n.v.ps.value === '鏈�缁堝��' &&
+                      state == 1
+                    "
+                  >
+                    <!-- <el-input class="table_input" type="textarea"
+                      :disabled="getInspectionItemType(n.i) == 1 || (n.u != userId && n.u != undefined && n.u != '')"
+                      v-model="n.v.v" @change="saveInsContext()" v-if="getInspectionValueType(n.i) == 2"></el-input>
+                    <el-select v-else-if="getInspectionValueType(n.i) == 5" class="table_input" v-model="n.v.v"
+                      :disabled="state>1" @visible-change="e=>getDic(e,n.i)" @change="saveInsContext()">
+                      <el-option v-for="(e, i) in enumList" :key="i" :label="e.label" :value="e.value"></el-option>
+                    </el-select> -->
+                    <span :style="`font-family:${n.v.ff} !important;`">{{
+                      toFixed(n.v.v, n.v.ct)
+                    }}</span>
+                  </template>
+                  <template
+                    v-else-if="
+                      n.v.ps != undefined && n.v.ps.value === '鏍峰搧缂栧彿'
+                    "
+                  >
+                    <div
+                      style="
+                        display: flex;
+                        flex-wrap: nowrap;
+                        align-items: center;
+                        width: 100%;
+                      "
+                      :title="currentSample.sampleCode"
+                    >
+                      <i
+                        class="el-icon-caret-left table_caret"
+                        style="width: 16px"
+                        @click="caretSample(-1)"
+                        v-if="!currentFiberOpticTape && !currentFiberOptic"
+                      ></i>
+                      <div
+                        :style="`font-family:${n.v.ff} !important;overflow: hidden;white-space: nowrap;width: calc(100% - 32px);`"
+                      >
+                        {{ currentSample.sampleCode }}
+                      </div>
+                      <i
+                        class="el-icon-caret-right table_caret"
+                        style="width: 16px"
+                        v-if="!currentFiberOpticTape && !currentFiberOptic"
+                        @click="caretSample(1)"
+                      ></i>
+                    </div>
+                  </template>
+                  <template
+                    v-else-if="
+                      n.v.ps != undefined && n.v.ps.value === '鏍峰搧鍨嬪彿'
+                    "
+                  >
+                    <div
+                      :style="`font-family:${n.v.ff} !important;`"
+                      v-if="
+                        currentSample.model !== undefined &&
+                        currentSample.model !== null
+                      "
+                    >
+                      {{ currentSample.model }}
+                    </div>
+                  </template>
+                  <template
+                    v-else-if="n.v.ps != undefined && n.v.ps.value === '濂楃'"
+                  >
+                    <div
+                      style="
+                        display: flex;
+                        flex-wrap: nowrap;
+                        align-items: center;
+                      "
+                    >
+                      <!-- <i class="el-icon-caret-left table_caret" @click="caretBushing(-1)"></i> -->
+                      <div :style="`font-family:${n.v.ff} !important;`">
+                        {{ currentBushing ? currentBushing.color : "" }}
+                      </div>
+                      <!-- <i class="el-icon-caret-right table_caret" @click="caretBushing(1)"></i> -->
+                    </div>
+                  </template>
+                  <template
+                    v-else-if="n.v.ps != undefined && n.v.ps.value === '鍏夌氦甯�'"
+                  >
+                    <div
+                      style="
+                        display: flex;
+                        flex-wrap: nowrap;
+                        align-items: center;
+                      "
+                    >
+                      <i
+                        class="el-icon-caret-left table_caret"
+                        @click="caretTape(-1)"
+                        v-if="currentFiberOpticTape"
+                      ></i>
+                      <div :style="`font-family:${n.v.ff} !important;`">
+                        {{
+                          currentFiberOpticTape
+                            ? currentFiberOpticTape.code
+                            : ""
+                        }}
+                      </div>
+                      <i
+                        class="el-icon-caret-right table_caret"
+                        v-if="currentFiberOpticTape"
+                        @click="caretTape(1)"
+                      ></i>
+                    </div>
+                  </template>
+                  <template
+                    v-else-if="n.v.ps != undefined && n.v.ps.value === '鍏夌氦'"
+                  >
+                    <div
+                      style="
+                        display: flex;
+                        flex-wrap: nowrap;
+                        align-items: center;
+                      "
+                    >
+                      <i
+                        class="el-icon-caret-left table_caret"
+                        @click="caretOptic(-1)"
+                        v-if="currentFiberOptic"
+                      ></i>
+                      <div :style="`font-family:${n.v.ff} !important;`">
+                        {{ currentFiberOptic ? currentFiberOptic.color : "" }}
+                      </div>
+                      <i
+                        v-if="currentFiberOptic"
+                        class="el-icon-caret-right table_caret"
+                        @click="caretOptic(1)"
+                      ></i>
+                    </div>
+                  </template>
+                  <span
+                    v-else
+                    :style="`font-family:${n.v.ff} !important;`"
+                    v-html="getValue(n.v)"
+                  ></span>
+                </div>
+              </td>
+            </tr>
+          </tbody>
+        </table>
+      </div>
+      <!-- 寮у瀭鐗规�ф楠屽師濮嬭褰� -->
+      <div
+        v-loading="tableLoading"
+        v-else-if="
+          tableLists.find((m) => m.templateId == currentTable).templateName ==
+          '寮у瀭鐗规�ф楠屽師濮嬭褰�'
+        "
+      >
+        <el-divider></el-divider>
+        <h4
+          style="
+            margin-bottom: 20px;
+            font-size: 24px;
+            font-weight: 400;
+            text-align: center;
+          "
+        >
+          寮у瀭鐗规�ф楠屽師濮嬭褰�
+        </h4>
+        <el-form
+          :inline="true"
+          :model="sagForm"
+          class="form-inline"
+          label-width="120px"
+          style="
+            justify-content: flex-start;
+            display: flex;
+            align-items: center;
+            width: 100%;
+          "
+        >
+          <el-form-item label="鏍峰搧鍨嬪彿" style="margin-bottom: 0">
+            <el-input
+              clearable
+              v-model="sagForm.model"
+              disabled
+              size="small"
+              placeholder=""
+            ></el-input>
+          </el-form-item>
+          <el-form-item label="妫�楠屼緷鎹�" style="margin-bottom: 0">
+            <el-input
+              clearable
+              v-model="sagForm.methodName"
+              disabled
+              size="small"
+              placeholder=""
+            ></el-input>
+          </el-form-item>
+          <!-- <el-form-item label="璁惧鍚嶇О" style="margin-bottom: 0">
+            <el-input
+              clearable
+              v-model="equipForm.value0"
+              disabled
+              size="small"
+              placeholder=""
+            ></el-input>
+          </el-form-item> -->
+          <el-form-item label="璁惧鍚嶇О" style="margin-bottom: 0">
+            <el-select
+              ref="sag"
+              multiple
+              collapse-tags
+              style="margin-left: 20px; width: 280px"
+              v-model="equipForm.value0"
+              size="small"
+              @change="blockModifications('sag')"
+            >
+              <el-option
+                v-for="item in equipOptions"
+                :key="item.value"
+                :label="item.label"
+                :value="item.label"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="璁惧缂栧彿" style="margin-bottom: 0">
+            <el-select
+              multiple
+              collapse-tags
+              style="margin-left: 20px; width: 280px"
+              v-model="equipForm.code0"
+              :disabled="state > 1"
+              placeholder="璇烽�夋嫨"
+              size="small"
+            >
+              <el-option
+                v-for="item in equipOptions"
+                :key="item.value"
+                :label="item.value"
+                :value="item.value"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="棰濆畾鎷夋柇鍔�/kN" style="margin-bottom: 0">
+            <el-input
+              clearable
+              v-model="sagForm.tensileForce"
+              size="small"
+              placeholder="璇疯緭鍏�"
+              :disabled="state > 1"
+              @change="(m) => saveSageInfo('棰濆畾鎷夋柇鍔�', m)"
+            ></el-input>
+          </el-form-item>
+          <el-form-item label="璺ㄨ窛闀垮害/m" style="margin-bottom: 0">
+            <el-input
+              clearable
+              v-model="sagForm.spanLength"
+              size="small"
+              placeholder="璇疯緭鍏�"
+              @change="(m) => saveSageInfo('璺ㄨ窛闀垮害', m)"
+            ></el-input>
+          </el-form-item>
+          <el-form-item label="杞借嵎/kN" style="margin-bottom: 0">
+            <el-input
+              clearable
+              v-model="sagForm.load"
+              size="small"
+              placeholder="璇疯緭鍏�"
+              :disabled="state > 1"
+              @change="(m) => saveSageInfo('杞借嵎', m)"
+            ></el-input>
+            <!--            <el-select-->
+            <!--              v-model="sagForm.load"-->
+            <!--              :disabled="state > 1"-->
+            <!--              placeholder="璇烽�夋嫨"-->
+            <!--              size="small"-->
+            <!--              @change="(m) => saveSageInfo('杞借嵎', m)"-->
+            <!--            >-->
+            <!--              <el-option-->
+            <!--                v-for="item in loadList"-->
+            <!--                :key="item.label"-->
+            <!--                :label="item.value"-->
+            <!--                :value="item.label"-->
+            <!--              >-->
+            <!--              </el-option>-->
+            <!--            </el-select>-->
+          </el-form-item>
+        </el-form>
+        <el-divider></el-divider>
+        <div class="container">
+          <el-button
+            class="right-button"
+            type="primary"
+            size="small"
+            @click="addSag"
+            >娣� 鍔�</el-button
+          >
+        </div>
+        <el-table
+          :data="sagData"
+          class="custom-table"
+          border
+          style="margin-bottom: 20px"
+        >
+          <!-- <el-table-column label="楂樺害 h mm" prop="height" align="center">
+            <template slot-scope="scope">
+              <el-input v-model="scope.row.height"  style="width: 100%;" size="small" @change="m=>saveSageInfo('楂樺害','height')"></el-input>
+            </template>
+          </el-table-column> -->
+          <el-table-column label="寮у瀭  mm" prop="sag" align="center">
+            <template slot-scope="scope">
+              <el-input
+                v-model="scope.row.sag"
+                size="small"
+                style="width: 100%"
+                :disabled="state > 1"
+                @change="(m) => saveSageInfo('寮у瀭', 'sag')"
+              ></el-input>
+            </template>
+          </el-table-column>
+          <el-table-column label="瀵肩嚎娓╁害鈩�" align="center">
+            <el-table-column label="1" prop="value0" align="center">
+              <template slot-scope="scope">
+                <el-input
+                  v-model="scope.row.value0"
+                  style="width: 100%"
+                  size="small"
+                  :disabled="state > 1"
+                  @change="(m) => saveSageInfo('瀵肩嚎娓╁害', scope.row)"
+                ></el-input>
+              </template>
+            </el-table-column>
+            <el-table-column label="2" prop="value1" align="center">
+              <template slot-scope="scope">
+                <el-input
+                  v-model="scope.row.value1"
+                  style="width: 100%"
+                  size="small"
+                  :disabled="state > 1"
+                  @change="(m) => saveSageInfo('瀵肩嚎娓╁害', scope.row)"
+                ></el-input>
+              </template>
+            </el-table-column>
+            <el-table-column label="3" prop="value2" align="center">
+              <template slot-scope="scope">
+                <el-input
+                  v-model="scope.row.value2"
+                  style="width: 100%"
+                  size="small"
+                  :disabled="state > 1"
+                  @change="(m) => saveSageInfo('瀵肩嚎娓╁害', scope.row)"
+                ></el-input>
+              </template>
+            </el-table-column>
+            <el-table-column label="4" prop="value3" align="center">
+              <template slot-scope="scope">
+                <el-input
+                  v-model="scope.row.value3"
+                  style="width: 100%"
+                  size="small"
+                  :disabled="state > 1"
+                  @change="(m) => saveSageInfo('瀵肩嚎娓╁害', scope.row)"
+                ></el-input>
+              </template>
+            </el-table-column>
+            <el-table-column label="5" prop="value4" align="center">
+              <template slot-scope="scope">
+                <el-input
+                  v-model="scope.row.value4"
+                  style="width: 100%"
+                  size="small"
+                  :disabled="state > 1"
+                  @change="(m) => saveSageInfo('瀵肩嚎娓╁害', scope.row)"
+                ></el-input>
+              </template>
+            </el-table-column>
+            <el-table-column label="6" prop="value5" align="center">
+              <template slot-scope="scope">
+                <el-input
+                  v-model="scope.row.value5"
+                  style="width: 100%"
+                  size="small"
+                  :disabled="state > 1"
+                  @change="(m) => saveSageInfo('瀵肩嚎娓╁害', scope.row)"
+                ></el-input>
+              </template>
+            </el-table-column>
+          </el-table-column>
+          <el-table-column label="骞冲潎娓╁害鈩�" prop="average" align="center">
+          </el-table-column>
+          <el-table-column label="瀹ゆ俯鈩�" prop="temperature" align="center">
+            <template slot-scope="scope">
+              <el-input
+                v-model="scope.row.temperature"
+                style="width: 100%"
+                size="small"
+                :disabled="state > 1"
+                @change="(m) => saveSageInfo('瀹ゆ俯', 'temperature')"
+              ></el-input>
+            </template>
+          </el-table-column>
+          <el-table-column label="寮犲姏kN" prop="remark" align="center">
+            <template slot-scope="scope">
+              <el-input
+                v-model="scope.row.remark"
+                style="width: 100%"
+                size="small"
+                :disabled="state > 1"
+                @change="(m) => saveSageInfo('寮犲姏', 'remark')"
+              ></el-input>
+            </template>
+          </el-table-column>
+          <el-table-column label="鎿嶄綔" align="center">
+            <template slot-scope="scope">
+              <el-button
+                type="text"
+                size="small"
+                @click="deleteSag(scope.$index)"
+                ><span style="color: red">鍒犻櫎</span></el-button
+              >
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+      <!-- 娓╁害寰幆妫�楠屽師濮嬭褰� -->
+      <div
+        v-loading="tableLoading"
+        v-else-if="
+          tableLists.find((m) => m.templateId == currentTable).templateName ==
+          '娓╁害寰幆妫�楠屽師濮嬭褰�'
+        "
+      >
+        <el-divider></el-divider>
+        <h4
+          style="
+            margin-bottom: 20px;
+            font-size: 24px;
+            font-weight: 400;
+            text-align: center;
+          "
+        >
+          娓╁害寰幆妫�楠屽師濮嬭褰�
+        </h4>
+        <el-form
+          :inline="true"
+          :model="wareForm"
+          class="form-inline"
+          label-width="100px"
+          style="
+            justify-content: flex-start;
+            display: flex;
+            align-items: center;
+            width: 100%;
+          "
+        >
+          <el-form-item label="鍨嬪彿:" style="margin-bottom: 0">
+            <el-input
+              clearable
+              v-model="wareForm0.model"
+              disabled
+              size="small"
+              placeholder=""
+            ></el-input>
+          </el-form-item>
+          <el-form-item label="璇曢獙鏂规硶:" style="margin-bottom: 0">
+            <el-input
+              clearable
+              v-model="wareForm0.methodName"
+              disabled
+              size="small"
+              placeholder=""
+            ></el-input>
+          </el-form-item>
+          <!-- <el-form-item label="妫�娴嬩緷鎹�:" style="margin-bottom: 0;">
+          <el-input clearable v-model="wareForm0.sample" disabled size="small" placeholder=""></el-input>
+        </el-form-item> -->
+          <el-form-item label="寰幆娆℃暟:" style="margin-bottom: 0">
+            <el-select
+              v-model="wareForm.inspectionItem"
+              placeholder="璇烽�夋嫨"
+              size="small"
+              @change="(m) => wareFormChange(m, 'inspectionItem')"
+            >
+              <el-option
+                v-for="item in numOptions"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="娓╁害:" style="margin-bottom: 0">
+            <el-select
+              v-model="wareForm.inspectionItemSubclass"
+              placeholder="璇烽�夋嫨"
+              size="small"
+              @change="(m) => wareFormChange(m, 'inspectionItemSubclass')"
+            >
+              <el-option
+                v-for="item in temperatureOptions"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              >
+              </el-option>
+            </el-select>
+            <span style="margin-left: 4px">鈩�</span>
+          </el-form-item>
+        </el-form>
+        <el-divider></el-divider>
+        <el-form
+          :inline="true"
+          :model="equipForm"
+          label-width="100px"
+          style="
+            justify-content: flex-start;
+            display: flex;
+            align-items: center;
+            width: 100%;
+          "
+        >
+          <el-form-item label="浠櫒鍚嶇О:">
+            <el-input
+              clearable
+              v-model="equipForm.value0"
+              disabled
+              size="small"
+              placeholder=""
+            ></el-input>
+          </el-form-item>
+          <el-form-item label="浠櫒缂栧彿:">
+            <el-select
+              v-model="equipForm.code0"
+              :disabled="state > 1"
+              placeholder="璇烽�夋嫨"
+              size="small"
+            >
+              <el-option
+                v-for="item in equipOptions"
+                :key="item.value"
+                :label="item.value"
+                :value="item.value"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="浠櫒鍚嶇О:">
+            <el-input
+              clearable
+              v-model="equipForm.value1"
+              disabled
+              size="small"
+              placeholder=""
+            ></el-input>
+          </el-form-item>
+          <el-form-item label="浠櫒缂栧彿:">
+            <el-select
+              v-model="equipForm.code1"
+              :disabled="state > 1"
+              placeholder="璇烽�夋嫨"
+              size="small"
+            >
+              <el-option
+                v-for="item in equipOptions"
+                :key="item.value"
+                :label="item.value"
+                :value="item.value"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+        </el-form>
+        <el-table
+          :data="wareTableData"
+          ref="wareTableData"
+          border
+          v-loading="wareTableDataLoading"
+          style="width: 100%; margin-bottom: 30px"
+          align="center"
+          v-if="
+            (wareForm.inspectionItemSubclass != '20(甯告俯)' &&
+              wareForm.inspectionItemSubclass != '20') ||
+            (wareForm.inspectionItemSubclass == '20(甯告俯)' &&
+              wareForm.inspectionItem == 1) ||
+            (wareForm.inspectionItemSubclass == '20' &&
+              wareForm.inspectionItem == numOptions.length)
+          "
+        >
+          <el-table-column label="搴忓彿" type="index" width="59" align="center">
+          </el-table-column>
+          <el-table-column
+            prop="bushColor"
+            label="绠¤壊鏍�"
+            width="75"
+            align="center"
+          >
+          </el-table-column>
+          <el-table-column
+            prop="code"
+            label="鍏夌氦甯︾紪鍙�"
+            width="105"
+            align="center"
+          >
+          </el-table-column>
+          <el-table-column
+            prop="color"
+            label="鍏夌氦鑹叉爣"
+            align="center"
+            width="90"
+          >
+          </el-table-column>
+          <template v-for="(item, index) in wareLength">
+            <el-table-column
+              prop="value0"
+              label="澶栫"
+              align="center"
+              width="100"
+              :key="new Date().getTime() + '1234567'"
+            >
+              <template slot="header">
+                {{ "澶栫" + (index + 1) }}
+              </template>
+              <template slot-scope="scope">
+                <el-input
+                  size="small"
+                  v-model="scope.row.arr[index].value0"
+                  placeholder=""
+                  :disabled="state > 1 || !dataAcquisitionEidtAble"
+                  @change="(m) => changeItem(scope.row.arr[index])"
+                ></el-input>
+              </template>
+            </el-table-column>
+            <el-table-column
+              prop="value1"
+              label="鍐呯"
+              align="center"
+              width="100"
+              :key="new Date().getTime() + '23333333'"
+            >
+              <template slot="header">
+                {{ "鍐呯" + (index + 1) }}
+              </template>
+              <template slot-scope="scope">
+                <el-input
+                  size="small"
+                  :disabled="state > 1 || !dataAcquisitionEidtAble"
+                  v-model="scope.row.arr[index].value1"
+                  placeholder=""
+                  @change="(m) => changeItem(scope.row.arr[index])"
+                ></el-input>
+              </template>
+            </el-table-column>
+            <el-table-column
+              prop="comValue"
+              align="center"
+              min-width="150"
+              :key="new Date().getTime() + '364654654'"
+            >
+              <template slot="header">
+                {{ "琛板噺绯绘暟" + item }}
+              </template>
+              <template slot-scope="scope">
+                <span>{{ scope.row.arr[index].comValue }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+              prop="resValue"
+              label="琛板噺宸�"
+              align="center"
+              v-if="wareForm.inspectionItemSubclass != '20(甯告俯)'"
+              min-width="90"
+              :key="new Date().getTime() + '434634634634'"
+            >
+              <template slot="header">
+                {{ "琛板噺宸�" + (index + 1) }}
+              </template>
+              <template slot-scope="scope">
+                <span>{{ scope.row.arr[index].resValue }}</span>
+              </template>
+            </el-table-column>
+            <el-table-column
+              prop="insResult"
+              label="缁撹"
+              align="center"
+              min-width="70"
+              v-if="wareForm.inspectionItemSubclass != '20(甯告俯)'"
+              :key="new Date().getTime() + '53457689809808-'"
+            >
+              <template slot="header">
+                {{ "缁撹" + (index + 1) }}
+              </template>
+              <template slot-scope="scope">
+                <span
+                  v-if="scope.row.arr[index].insResult === 1"
+                  style="color: green"
+                  >鍚堟牸</span
+                >
+                <span
+                  v-else-if="scope.row.arr[index].insResult === 0"
+                  style="color: red"
+                  >涓嶅悎鏍�</span
+                >
+                <span
+                  v-else-if="scope.row.arr[index].insResult === 3"
+                  style="color: #3a7bfa"
+                  >涓嶅垽瀹�</span
+                >
+                <span v-else>寰呭畾</span>
+              </template>
+            </el-table-column>
+          </template>
+        </el-table>
+      </div>
+      <!-- 鐑惊鐜�/娓╁崌璇曢獙妫�楠屽師濮嬭褰� -->
+      <div
+        v-loading="tableLoading"
+        v-else-if="
+          tableLists
+            .find((m) => m.templateId == currentTable)
+            .templateName.includes('鐑惊鐜�') ||
+          tableLists
+            .find((m) => m.templateId == currentTable)
+            .templateName.includes('娓╁崌璇曢獙')
+        "
+      >
+        <el-divider></el-divider>
+        <h4
+          style="
+            margin-bottom: 20px;
+            font-size: 24px;
+            font-weight: 400;
+            text-align: center;
+          "
+        >
+          {{
+            tableLists.find((m) => m.templateId == currentTable).templateName
+          }}
+        </h4>
+        <el-form
+          :inline="true"
+          :model="wareForm"
+          class="form-inline"
+          label-width="100px"
+          style="
+            justify-content: flex-start;
+            display: flex;
+            align-items: center;
+            width: 100%;
+          "
+        >
+          <!-- <el-form-item label="浠櫒鍚嶇О:" style="margin-bottom: 0">
+            <el-input
+              clearable
+              v-model="equipForm.value0"
+              disabled
+              size="small"
+              placeholder=""
+            ></el-input>
+          </el-form-item> -->
+          <el-form-item label="浠櫒鍚嶇О" style="margin-bottom: 0">
+            <el-select
+              ref="thermalCycle"
+              multiple
+              collapse-tags
+              style="margin-left: 20px; width: 280px"
+              v-model="equipForm.value0"
+              size="small"
+              @change="blockModifications('thermalCycle')"
+            >
+              <el-option
+                v-for="item in equipOptions"
+                :key="item.value"
+                :label="item.label"
+                :value="item.label"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+
+          <!-- <el-form-item label="浠櫒鍚嶇О:" style="margin-bottom: 0">
+            <el-input
+              clearable
+              v-model="equipForm.value1"
+              disabled
+              size="small"
+              placeholder=""
+            ></el-input>
+          </el-form-item> -->
+          <el-form-item label="鍨嬪彿:" style="margin-bottom: 0">
+            <el-input
+              clearable
+              v-model="thermalCyclingInfo.model"
+              disabled
+              size="small"
+              placeholder=""
+            ></el-input>
+          </el-form-item>
+          <el-form-item label="璇曢獙鏂规硶:" style="margin-bottom: 0">
+            <el-input
+              clearable
+              v-model="thermalCyclingInfo.methodName"
+              disabled
+              size="small"
+              placeholder=""
+            ></el-input>
+          </el-form-item>
+        </el-form>
+        <el-divider></el-divider>
+        <el-form
+          :inline="true"
+          :model="equipForm"
+          label-width="100px"
+          style="
+            justify-content: flex-start;
+            display: flex;
+            align-items: center;
+            width: 100%;
+          "
+        >
+          <el-form-item label="浠櫒缂栧彿:">
+            <el-select
+              multiple
+              collapse-tags
+              style="margin-left: 20px; width: 280px"
+              v-model="equipForm.code0"
+              :disabled="state > 1"
+              placeholder="璇烽�夋嫨"
+              size="small"
+            >
+              <el-option
+                v-for="item in equipOptions"
+                :key="item.value"
+                :label="item.value"
+                :value="item.value"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <!-- <el-form-item label="浠櫒缂栧彿:">
+            <el-select
+              multiple
+              v-model="equipForm.code1"
+              :disabled="state > 1"
+              placeholder="璇烽�夋嫨"
+              size="small"
+            >
+              <el-option
+                v-for="item in equipOptions"
+                :key="item.value"
+                :label="item.value"
+                :value="item.value"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item> -->
+          <!--          <el-form-item-->
+          <!--            label="寰幆娆℃暟:"-->
+          <!--            v-if="thermalCyclingInfo.inspectionItemClass == '鐩存祦鐢甸樆'"-->
+          <!--          >-->
+          <!--            <el-input-number-->
+          <!--              v-model="thermalCyclingInfo.inspectionItem"-->
+          <!--              :min="1"-->
+          <!--              :max="thermalCyclingInfo.max"-->
+          <!--              label=""-->
+          <!--              style="margin-top: 4px; width: 190px"-->
+          <!--              size="small"-->
+          <!--              @change="thermalCyclingChange"-->
+          <!--            ></el-input-number>-->
+          <!--          </el-form-item>-->
+          <el-button
+            type="primary"
+            size="small"
+            style="margin-bottom: 22px; margin-left: 30px"
+            @click="handleAddThermal"
+            v-if="state == 1"
+            >鏂板</el-button
+          >
+          <el-button
+            size="small"
+            style="margin-bottom: 22px"
+            @click="handleDeleteThermal"
+            v-if="state == 1"
+            >鍒犻櫎</el-button
+          >
+        </el-form>
+        <div class="table-container" v-loading="thermalCyclingLoading">
+          <table border="1" cellpadding="10" class="thermal-table">
+            <tr>
+              <td>妫�楠岄」鐩�</td>
+              <td :colspan="thermalCyclingInfo.length">妫�楠岃繃绋嬪��</td>
+              <td style="width: 100px">缁撹</td>
+            </tr>
+            <tr>
+              <td>搴忓彿</td>
+              <td
+                v-for="(m, i) in thermalCyclingInfo.length"
+                :key="i"
+                style="min-width: 150px"
+              >
+                {{ i + 1 }}
+              </td>
+            </tr>
+            <tr v-for="(item, index) in thermalCyclingInfo.arr" :key="index">
+              <td style="width: 100px; text-align: center">{{ item.name }}</td>
+              <td
+                v-for="(m, i) in thermalCyclingInfo.length"
+                :key="i"
+                style="min-width: 150px"
+              >
+                <div
+                  style="display: flex; align-items: center; margin-bottom: 5px"
+                >
+                  <label
+                    style="width: 100px; white-space: nowrap; font-size: 12px"
+                    >娓╁害:</label
+                  >
+                  <el-input
+                    clearable
+                    size="small"
+                    placeholder=""
+                    v-model="item.arr[i].value0"
+                    :disabled="state > 1"
+                    @change="(m) => saveThermalCycling(m, item, 'value0')"
+                  ></el-input>
+                  <span
+                    style="
+                      font-size: 12px;
+                      margin-left: 13px;
+                      margin-right: 13px;
+                    "
+                  >
+                    鈩�</span
+                  >
+                </div>
+                <div
+                  style="display: flex; align-items: center"
+                  v-if="
+                    item.name != '鐜娓╁害' &&
+                    thermalCyclingInfo.inspectionItemClass == '鐩存祦鐢甸樆'
+                  "
+                >
+                  <label
+                    style="width: 100px; white-space: nowrap; font-size: 12px"
+                    >鐩存祦鐢甸樆:</label
+                  >
+                  <el-input
+                    clearable
+                    size="small"
+                    :disabled="state > 1"
+                    placeholder=""
+                    v-model="item.arr[i].value1"
+                    @change="saveThermalCycling(null, item, null)"
+                  ></el-input>
+                  <span style="margin-left: 5px; font-size: 12px"> 惟/km</span>
+                </div>
+              </td>
+              <td>
+                <template
+                  v-if="item.name == '鐜娓╁害' || item.name == '瀵肩嚎娓╁害'"
+                >
+                  <span>/</span>
+                </template>
+                <template v-else>
+                  <span v-if="item.insResult === 1" style="color: green"
+                    >鍚堟牸</span
+                  >
+                  <span v-else-if="item.insResult === 0" style="color: red"
+                    >涓嶅悎鏍�</span
+                  >
+                  <span v-else-if="item.insResult === 3" style="color: #3a7bfa"
+                    >涓嶅垽瀹�</span
+                  >
+                  <span v-else>寰呭畾</span>
+                </template>
+              </td>
+            </tr>
+          </table>
+        </div>
+      </div>
+      <!-- 鍗曟牴鍨傜洿鐕冪儳妫�楠屽師濮嬭褰� -->
+      <div
+        v-loading="tableLoading"
+        v-else-if="
+          tableLists
+            .find((m) => m.templateId == currentTable)
+            .templateName.includes('鍗曟牴鍨傜洿鐕冪儳')
+        "
+      >
+        <el-divider></el-divider>
+        <h4
+          style="
+            margin-bottom: 20px;
+            font-size: 24px;
+            font-weight: 400;
+            text-align: center;
+          "
+        >
+          {{
+            tableLists.find((m) => m.templateId == currentTable).templateName
+          }}
+        </h4>
+        <el-form
+          :inline="true"
+          :model="wareForm"
+          class="form-inline"
+          label-width="100px"
+          style="
+            justify-content: flex-start;
+            display: flex;
+            align-items: center;
+            width: 100%;
+          "
+        >
+          <el-form-item label="浠櫒鍚嶇О:" style="margin-bottom: 0">
+            <el-input
+              v-model="equipForm.value0"
+              disabled
+              size="small"
+              placeholder=""
+            ></el-input>
+          </el-form-item>
+          <!-- <el-form-item label="浠櫒鍚嶇О" style="margin-bottom: 0">
+            <el-select
+              ref="combustion"
+              multiple
+              collapse-tags
+              style="margin-left: 20px;width: 280px"
+              v-model="equipForm.value0"
+              size="small"
+              @change="blockModifications('combustion')"
+            >
+              <el-option
+                v-for="item in equipOptions"
+                :key="item.value"
+                :label="item.label"
+                :value="item.label"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item> -->
+          <el-form-item label="浠櫒鍚嶇О:" style="margin-bottom: 0">
+            <el-input
+              v-model="equipForm.value1"
+              disabled
+              size="small"
+              placeholder=""
+            ></el-input>
+          </el-form-item>
+          <el-form-item label="鍨嬪彿:" style="margin-bottom: 0">
+            <el-input
+              v-model="singleRootVerticalInfo.model"
+              disabled
+              size="small"
+              placeholder=""
+            ></el-input>
+          </el-form-item>
+          <el-form-item label="璇曢獙鏂规硶:" style="margin-bottom: 0">
+            <el-input
+              v-model="singleRootVerticalInfo.methodName"
+              disabled
+              size="small"
+              placeholder=""
+            ></el-input>
+          </el-form-item>
+        </el-form>
+        <el-divider></el-divider>
+        <el-form
+          :inline="true"
+          :model="equipForm"
+          label-width="100px"
+          style="
+            justify-content: flex-start;
+            display: flex;
+            align-items: center;
+            width: 100%;
+          "
+        >
+          <!-- <el-form-item label="浠櫒缂栧彿:">
+            <el-select
+              multiple
+              collapse-tags
+              style="margin-left: 20px;width: 280px"
+              v-model="equipForm.code0"
+              :disabled="state > 1"
+              placeholder="璇烽�夋嫨"
+              size="small"
+            >
+              <el-option
+                v-for="item in equipOptions"
+                :key="item.value"
+                :label="item.value"
+                :value="item.value"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item> -->
+          <el-form-item label="浠櫒缂栧彿:">
+            <el-select
+              v-model="equipForm.code0"
+              :disabled="state > 1"
+              placeholder="璇烽�夋嫨"
+              size="small"
+            >
+              <el-option
+                v-for="item in equipOptions"
+                :key="item.value"
+                :label="item.value"
+                :value="item.value"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="浠櫒缂栧彿:">
+            <el-select
+              v-model="equipForm.code1"
+              :disabled="state > 1"
+              placeholder="璇烽�夋嫨"
+              size="small"
+            >
+              <el-option
+                v-for="item in equipOptions"
+                :key="item.value"
+                :label="item.value"
+                :value="item.value"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+        </el-form>
+        <table
+          border="1"
+          cellpadding="10"
+          class="thermal-table"
+          style="margin-bottom: 16px"
+        >
+          <tr>
+            <td>妫�楠岄」鐩�</td>
+            <td>鍗曚綅</td>
+            <td>鏍囧噯瑕佹眰</td>
+            <td :colspan="singleRootVerticalInfo.num">妫�楠岃繃绋嬪��</td>
+            <td>妫�楠岀粨鏋�</td>
+            <td>缁撹</td>
+          </tr>
+          <tr v-for="(item, index) in singleRootVerticalInfo.arr" :key="index">
+            <td>{{ item.inspectionItemSubclass }}</td>
+            <td>{{ item.unit }}</td>
+            <td>{{ item.ask }}</td>
+            <td v-for="(m, i) in singleRootVerticalInfo.num">
+              <el-input
+                clearable
+                size="small"
+                placeholder=""
+                v-model="item.value[i]"
+                :disabled="state > 1"
+                @change="(value) => changeSingleRootVertical(value, item)"
+              ></el-input>
+            </td>
+            <td>{{ item.resValue }}</td>
+            <td>
+              <template>
+                <span v-if="item.insResult === 1" style="color: green"
+                  >鍚堟牸</span
+                >
+                <span v-else-if="item.insResult === 0" style="color: red"
+                  >涓嶅悎鏍�</span
+                >
+                <span v-else-if="item.insResult === 3" style="color: #3a7bfa"
+                  >涓嶅垽瀹�</span
+                >
+                <span v-else>寰呭畾</span>
+              </template>
+            </td>
+          </tr>
+        </table>
+      </div>
+      <!-- 鏋剁┖鍦扮嚎搴斿姏搴斿彉 -->
+      <div
+        v-loading="tableLoading"
+        v-else-if="
+          tableLists
+            .find((m) => m.templateId == currentTable)
+            .templateName.includes('鏋剁┖鍦扮嚎搴斿姏搴斿彉')
+        "
+      >
+        <el-divider></el-divider>
+        <el-form
+          :inline="true"
+          :model="stressStrainInfo"
+          class="form-inline"
+          label-width="80px"
+          style="
+            justify-content: flex-start;
+            display: flex;
+            align-items: center;
+            width: 100%;
+          "
+        >
+          <el-row style="width: 100%">
+            <el-col :span="5">
+              <el-form-item label="浠櫒缂栧彿:" style="margin-bottom: 0">
+                <el-select
+                  multiple
+                  collapse-tags
+                  style="margin-left: 20px; width: 200px"
+                  v-model="equipForm.code0"
+                  :disabled="state > 1"
+                  placeholder="璇烽�夋嫨"
+                  size="small"
+                >
+                  <el-option
+                    v-for="item in equipOptions"
+                    :key="item.value"
+                    :label="item.value"
+                    :value="item.value"
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="5">
+              <!-- <el-form-item label="浠櫒鍚嶇О:" style="margin-bottom: 0">
+                <el-input
+                  v-model="equipForm.value0"
+                  disabled
+                  size="small"
+                  placeholder=""
+                  style="width: 170px"
+                ></el-input>
+              </el-form-item> -->
+              <el-form-item label="浠櫒鍚嶇О" style="margin-bottom: 0">
+                <el-select
+                  ref="stressStrain"
+                  multiple
+                  collapse-tags
+                  style="margin-left: 20px; width: 200px"
+                  v-model="equipForm.value0"
+                  size="small"
+                  @change="blockModifications('stressStrain')"
+                >
+                  <el-option
+                    v-for="item in equipOptions"
+                    :key="item.value"
+                    :label="item.label"
+                    :value="item.label"
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="5">
+              <el-form-item label="鍨嬪彿:" style="margin-bottom: 0">
+                <el-input
+                  v-model="stressStrainInfo.model"
+                  disabled
+                  size="small"
+                  placeholder=""
+                  style="width: 170px"
+                ></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="5">
+              <el-form-item label="璇曢獙鏂规硶:" style="margin-bottom: 0">
+                <el-input
+                  v-model="stressStrainInfo.methodS"
+                  disabled
+                  size="small"
+                  placeholder=""
+                  style="width: 170px"
+                ></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="4">
+              <el-form-item label="" style="margin-bottom: 0"
+                ><el-button
+                  size="small"
+                  type="primary"
+                  style="margin-left: 40px"
+                  @click="addStressStrain"
+                  :disabled="state > 1"
+                  >娣� 鍔�</el-button
+                ><el-button
+                  size="small"
+                  type="primary"
+                  style="margin-left: 10px"
+                  @click="saveStressStrain"
+                  :disabled="state > 1"
+                  >淇� 瀛�</el-button
+                ></el-form-item
+              >
+            </el-col>
+          </el-row>
+        </el-form>
+        <table
+          style="border-collapse: collapse"
+          border="1"
+          cellpadding="10"
+          class="thermal-table"
+        >
+          <tbody>
+            <tr style="background-color: #f0f1f5">
+              <td id="lineTd" style="background-color: #f0f1f5">
+                <span
+                  style="
+                    float: left;
+                    margin-top: 20px;
+                    background-color: #f0f1f5;
+                  "
+                  >鍔涘��</span
+                >
+                <span
+                  style="
+                    float: right;
+                    margin-top: 0px;
+                    background-color: #f0f1f5;
+                  "
+                  >浣嶇Щ(mm)</span
+                >
+              </td>
+              <td v-for="(m, i) in timeList" :key="i">{{ m }}min</td>
+              <td>鎿嶄綔</td>
+            </tr>
+            <tr v-for="(item, index) in powerList" :key="index">
+              <td>
+                <el-input
+                  v-model="item.value"
+                  :disabled="state > 1"
+                  size="small"
+                  placeholder=""
+                ></el-input>
+              </td>
+              <td v-for="(m, i) in timeList" :key="i">
+                <el-input
+                  v-model="item.arr[i]"
+                  :disabled="state > 1"
+                  size="small"
+                  placeholder=""
+                ></el-input>
+              </td>
+              <td>
+                <el-button
+                  size="small"
+                  type="text"
+                  @click="delStressStrain(index)"
+                  style="color: red"
+                  >鍒犻櫎</el-button
+                >
+              </td>
+            </tr>
+          </tbody>
+        </table>
+        <div
+          style="
+            display: flex;
+            align-items: center;
+            margin-top: 16px;
+            margin-bottom: 20px;
+          "
+        >
+          <span>寮规�фā閲忥細</span>
+          <el-input
+            size="small"
+            style="width: 100px"
+            @change="changeElasticity"
+            v-model="stressStrainInfo.elasticity"
+            :disabled="state > 1"
+          ></el-input>
+          <span style="color: red; font-size: 12px; margin-left: 16px"
+            >鏍囧噯閲忎负锛歿{
+              stressStrainInfo.ask ? stressStrainInfo.ask : "-"
+            }}
+            锛屼笉鑳借秴杩囨爣鍑嗛噺鐨劼�2</span
+          >
+        </div>
+      </div>
+      <!-- 闃叉尟閿ゅ姛鐜囩壒鎬� -->
+      <div
+        v-loading="tableLoading"
+        v-else-if="
+          tableLists
+            .find((m) => m.templateId == currentTable)
+            .templateName.includes('闃叉尟閿ゅ姛鐜囩壒鎬�')
+        "
+      >
+        <el-divider></el-divider>
+        <el-form
+          :inline="true"
+          :model="powerCharacteristicsInfo"
+          class="form-inline"
+          label-width="80px"
+          style="
+            justify-content: flex-start;
+            display: flex;
+            align-items: center;
+            width: 100%;
+          "
+        >
+          <el-row style="width: 100%">
+            <el-col :span="5">
+              <el-form-item label="浠櫒缂栧彿:" style="margin-bottom: 0">
+                <el-select
+                  multiple
+                  collapse-tags
+                  style="margin-left: 20px; width: 280px"
+                  v-model="equipForm.code0"
+                  :disabled="state > 1"
+                  placeholder="璇烽�夋嫨"
+                  size="small"
+                >
+                  <el-option
+                    v-for="item in equipOptions"
+                    :key="item.value"
+                    :label="item.value"
+                    :value="item.value"
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="5">
+              <!-- <el-form-item label="浠櫒鍚嶇О:" style="margin-bottom: 0">
+                <el-input
+                  v-model="equipForm.value0"
+                  disabled
+                  size="small"
+                  placeholder=""
+                  style="width: 170px"
+                ></el-input>
+              </el-form-item> -->
+              <el-form-item label="浠櫒鍚嶇О" style="margin-bottom: 0">
+                <el-select
+                  ref="shockproofHammer"
+                  multiple
+                  collapse-tags
+                  style="margin-left: 20px; width: 280px"
+                  v-model="equipForm.value0"
+                  size="small"
+                  @change="blockModifications('shockproofHammer')"
+                >
+                  <el-option
+                    v-for="item in equipOptions"
+                    :key="item.value"
+                    :label="item.label"
+                    :value="item.label"
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="5">
+              <el-form-item label="鍨嬪彿:" style="margin-bottom: 0">
+                <el-input
+                  v-model="powerCharacteristicsInfo.model"
+                  disabled
+                  size="small"
+                  placeholder=""
+                  style="width: 170px"
+                ></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="5">
+              <el-form-item label="璇曢獙鏂规硶:" style="margin-bottom: 0">
+                <el-input
+                  v-model="powerCharacteristicsInfo.methodS"
+                  disabled
+                  size="small"
+                  placeholder=""
+                  style="width: 170px"
+                ></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="4">
+              <el-form-item label="" style="margin-top: 4px"
+                ><el-button
+                  size="small"
+                  type="primary"
+                  style="margin-left: 10px"
+                  @click="savePowerCharacteristics"
+                  :disabled="state > 1"
+                  >淇� 瀛�</el-button
+                ></el-form-item
+              >
+            </el-col>
+          </el-row>
+        </el-form>
+        <table
+          style="border-collapse: collapse; margin-bottom: 20px"
+          border="1"
+          cellpadding="10"
+          class="thermal-table"
+        >
+          <tr
+            style="background-color: #f0f1f5; font-size: 18px; font-weight: 700"
+          >
+            <td colspan="8">(鐤插姵鍓�)鍔熺巼鐗规��</td>
+          </tr>
+          <tr style="background-color: #f0f1f5">
+            <td colspan="4">璋愭尟棰戠巼(Hz)</td>
+            <td colspan="4">鑰楄兘(W)</td>
+          </tr>
+          <tr>
+            <td>1</td>
+            <td>2</td>
+            <td>3</td>
+            <td>4</td>
+            <td>1</td>
+            <td>2</td>
+            <td>3</td>
+            <td>4</td>
+          </tr>
+          <tr>
+            <td v-for="(m, i) in powerCharacteristicsInfo.arr0" :key="i">
+              <el-input
+                v-model="powerCharacteristicsInfo.arr0[i].value"
+                :disabled="state > 1"
+                size="small"
+                placeholder=""
+              ></el-input>
+            </td>
+            <td v-for="(m, i) in powerCharacteristicsInfo.arr1" :key="i + 9">
+              <el-input
+                v-model="powerCharacteristicsInfo.arr1[i].value"
+                :disabled="state > 1"
+                size="small"
+                placeholder=""
+              ></el-input>
+            </td>
+          </tr>
+        </table>
+
+        <table
+          style="border-collapse: collapse; margin-bottom: 20px"
+          border="1"
+          cellpadding="10"
+          class="thermal-table"
+        >
+          <tr
+            style="background-color: #f0f1f5; font-size: 18px; font-weight: 700"
+          >
+            <td colspan="8">(鐤插姵鍚�)鍔熺巼鐗规��</td>
+          </tr>
+          <tr style="background-color: #f0f1f5">
+            <td colspan="4">璋愭尟棰戠巼(Hz)</td>
+            <td colspan="4">鑰楄兘(W)</td>
+          </tr>
+          <tr>
+            <td>1</td>
+            <td>2</td>
+            <td>3</td>
+            <td>4</td>
+            <td>1</td>
+            <td>2</td>
+            <td>3</td>
+            <td>4</td>
+          </tr>
+          <tr>
+            <td v-for="(m, i) in powerCharacteristicsInfo.arr2" :key="i + 19">
+              <el-input
+                v-model="powerCharacteristicsInfo.arr2[i].value"
+                :disabled="state > 1"
+                size="small"
+                placeholder=""
+                @change="(m) => changeArr2(m, i)"
+              ></el-input>
+            </td>
+            <td v-for="(m, i) in powerCharacteristicsInfo.arr3" :key="i + 29">
+              <el-input
+                v-model="powerCharacteristicsInfo.arr3[i].value"
+                :disabled="state > 1"
+                size="small"
+                placeholder=""
+                @change="(m) => changeArr3(m, i)"
+              ></el-input>
+            </td>
+          </tr>
+          <tr>
+            <td v-for="(m, i) in powerCharacteristicsInfo.arr2" :key="i + 39">
+              <span v-if="!m.state">寰呭畾</span>
+              <span v-if="m.state == 1" style="color: green">鍚堟牸</span>
+              <span v-if="m.state == 2" style="color: red">涓嶅悎鏍�</span>
+            </td>
+            <td v-for="(m, i) in powerCharacteristicsInfo.arr3" :key="i + 49">
+              <span v-if="!m.state">寰呭畾</span>
+              <span v-if="m.state == 1" style="color: green">鍚堟牸</span>
+              <span v-if="m.state == 2" style="color: red">涓嶅悎鏍�</span>
+            </td>
+          </tr>
+        </table>
+
+        <div style="margin-bottom: 20px; font-size: 12px; color: red">
+          鎻愮ず锛�(鐤插姵鍓�)鍔熺巼鐗规�у瓨鍦ㄧ殑鎯呭喌涓嬶紝(鐤插姵鍚�)鍔熺巼鐗规�т笅闈㈢殑鍊奸渶瑕佸湪鐤插姵鍓嶅��*0.8鍜岀柌鍔冲墠鍊�*1.2涔嬮棿銆�
+        </div>
+      </div>
+      <!-- 鐤插姵璇曢獙妫�楠屽師濮嬭褰� -->
+      <div
+        v-loading="tableLoading"
+        v-else-if="
+          tableLists.find((m) => m.templateId == currentTable).templateName ==
+          '鐤插姵璇曢獙妫�楠屽師濮嬭褰�'
+        "
+      >
+        <el-divider></el-divider>
+        <el-form
+          :inline="true"
+          :model="fatigueTestInfo"
+          class="form-inline"
+          label-width="80px"
+          style="
+            justify-content: flex-start;
+            display: flex;
+            align-items: center;
+            width: 100%;
+          "
+        >
+          <el-row style="width: 100%">
+            <el-col :span="5">
+              <el-form-item label="浠櫒缂栧彿:" style="margin-bottom: 0">
+                <el-select
+                  multiple
+                  collapse-tags
+                  v-model="equipForm.code0"
+                  :disabled="state > 1"
+                  placeholder="璇烽�夋嫨"
+                  size="small"
+                  style="margin-left: 20px; width: 200px"
+                >
+                  <el-option
+                    v-for="item in equipOptions"
+                    :key="item.value"
+                    :label="item.value"
+                    :value="item.value"
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="5">
+              <!-- <el-form-item label="浠櫒鍚嶇О:" style="margin-bottom: 0">
+                <el-input
+                  v-model="equipForm.value0"
+                  disabled
+                  size="small"
+                  placeholder=""
+                  style="width: 170px"
+                ></el-input>
+              </el-form-item> -->
+              <el-form-item label="浠櫒鍚嶇О" style="margin-bottom: 0">
+                <el-select
+                  ref="fatigueTest"
+                  multiple
+                  collapse-tags
+                  style="margin-left: 20px; width: 200px"
+                  v-model="equipForm.value0"
+                  size="small"
+                  @change="blockModifications('fatigueTest')"
+                >
+                  <el-option
+                    v-for="item in equipOptions"
+                    :key="item.value"
+                    :label="item.label"
+                    :value="item.label"
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="5">
+              <el-form-item label="鍨嬪彿:" style="margin-bottom: 0">
+                <el-input
+                  v-model="fatigueTestInfo.model"
+                  disabled
+                  size="small"
+                  placeholder=""
+                  style="width: 170px"
+                ></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="5">
+              <el-form-item label="璇曢獙鏂规硶:" style="margin-bottom: 0">
+                <el-input
+                  v-model="fatigueTestInfo.methodS"
+                  disabled
+                  size="small"
+                  placeholder=""
+                  style="width: 170px"
+                ></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="4">
+              <el-form-item label="" style="margin-top: 4px"
+                ><el-button
+                  size="small"
+                  type="primary"
+                  style="margin-left: 10px"
+                  @click="saveFatigueTest"
+                  :disabled="state > 1"
+                  >淇� 瀛�</el-button
+                ></el-form-item
+              >
+            </el-col>
+          </el-row>
+        </el-form>
+        <table
+          style="border-collapse: collapse; margin-bottom: 20px"
+          border="1"
+          cellpadding="10"
+          class="thermal-table"
+        >
+          <tr>
+            <td class="background-grey">寮�濮嬫椂闂�</td>
+            <td>
+              <el-date-picker
+                v-model="fatigueTestInfo.startTime"
+                type="datetime"
+                :disabled="state > 1"
+                size="small"
+                placeholder=""
+                format="yyyy-MM-dd HH:mm:ss"
+                value-format="yyyy-MM-dd HH:mm:ss"
+                style="width: 100%"
+              >
+              </el-date-picker>
+            </td>
+            <td class="background-grey">缁撴潫鏃堕棿</td>
+            <td>
+              <el-date-picker
+                v-model="fatigueTestInfo.endTime"
+                type="datetime"
+                :disabled="state > 1"
+                size="small"
+                placeholder=""
+                format="yyyy-MM-dd HH:mm:ss"
+                value-format="yyyy-MM-dd HH:mm:ss"
+                style="width: 100%"
+              >
+              </el-date-picker>
+            </td>
+            <td class="background-grey">鏂藉姞寮犲姏</td>
+            <td>
+              <el-input
+                v-model="fatigueTestInfo.tension"
+                :disabled="state > 1"
+                size="small"
+                placeholder=""
+                style="display: inline-block; width: 80%"
+              ></el-input>
+              <span>kN</span>
+            </td>
+          </tr>
+          <tr>
+            <td class="background-grey">婵�鎸櫒鍒板浐瀹氱璺濈</td>
+            <td>
+              <el-input
+                v-model="fatigueTestInfo.distance0"
+                :disabled="state > 1"
+                size="small"
+                placeholder=""
+                style="display: inline-block; width: 80%"
+              ></el-input>
+              <span>m</span>
+            </td>
+            <td class="background-grey">婵�鎸櫒鍒版偓鍨傜嚎澶硅窛绂�</td>
+            <td>
+              <el-input
+                v-model="fatigueTestInfo.distance1"
+                :disabled="state > 1"
+                size="small"
+                placeholder=""
+                style="display: inline-block; width: 80%"
+              ></el-input>
+              <span>m</span>
+            </td>
+            <td class="background-grey">棰戠巼</td>
+            <td>
+              <el-input
+                v-model="fatigueTestInfo.frequency"
+                :disabled="state > 1"
+                size="small"
+                placeholder=""
+                style="display: inline-block; width: 80%"
+              ></el-input>
+              <span>Hz</span>
+            </td>
+          </tr>
+          <tr>
+            <td class="background-grey">娉㈣吂鎸箙</td>
+            <td>
+              <el-input
+                v-model="fatigueTestInfo.amplitude0"
+                :disabled="state > 1"
+                size="small"
+                placeholder=""
+                style="display: inline-block; width: 80%"
+              ></el-input>
+              <span>mm</span>
+            </td>
+            <td class="background-grey">鍗婃尝闀�</td>
+            <td>
+              <el-input
+                v-model="fatigueTestInfo.wavelength"
+                :disabled="state > 1"
+                size="small"
+                placeholder=""
+                style="display: inline-block; width: 80%"
+              ></el-input>
+              <span>m</span>
+            </td>
+            <td class="background-grey">寮洸鎸箙</td>
+            <td>
+              <el-input
+                v-model="fatigueTestInfo.amplitude1"
+                :disabled="state > 1"
+                size="small"
+                placeholder=""
+                style="display: inline-block; width: 80%"
+              ></el-input>
+              <span>mm</span>
+            </td>
+          </tr>
+          <tr>
+            <td class="background-grey">寮洸搴斿彉</td>
+            <td>
+              <el-input
+                v-model="fatigueTestInfo.strain"
+                :disabled="state > 1"
+                size="small"
+                placeholder=""
+                style="display: inline-block; width: 80%"
+              ></el-input>
+              <span>渭 t</span>
+            </td>
+            <td class="background-grey">妗h窛</td>
+            <td>
+              <el-input
+                v-model="fatigueTestInfo.pitch"
+                :disabled="state > 1"
+                size="small"
+                placeholder=""
+                style="display: inline-block; width: 80%"
+              ></el-input>
+              <span>m</span>
+            </td>
+            <td class="background-grey">鎸姩娆℃暟</td>
+            <td>
+              <el-input
+                v-model="fatigueTestInfo.num"
+                :disabled="state > 1"
+                size="small"
+                placeholder=""
+                style="display: inline-block; width: 80%"
+              ></el-input>
+              <span>娆�</span>
+            </td>
+          </tr>
+          <tr>
+            <td class="background-grey">鐩鍙鎹熶激</td>
+            <td>
+              <el-select
+                v-model="fatigueTestInfo.damage"
+                :disabled="state > 1"
+                size="small"
+                placeholder=""
+                style="display: inline-block; width: 80%"
+              >
+                <el-option label="绗﹀悎" value="绗﹀悎" />
+                <el-option label="涓嶇鍚�" value="涓嶇鍚�" />
+              </el-select>
+            </td>
+            <td
+              class="background-grey"
+              v-if="
+                fatigueTestInfo.sampleType &&
+                fatigueTestInfo.sampleType.includes('棰勭粸寮忛噾鍏�')
+              "
+            >
+              鍏夌氦闄勫姞琛板噺
+            </td>
+            <td
+              v-if="
+                fatigueTestInfo.sampleType &&
+                fatigueTestInfo.sampleType.includes('棰勭粸寮忛噾鍏�')
+              "
+            >
+              <el-input
+                v-model="fatigueTestInfo.attenuation"
+                :disabled="state > 1"
+                size="small"
+                placeholder=""
+                style="display: inline-block; width: 80%"
+              ></el-input>
+              <span>dB</span>
+            </td>
+          </tr>
+        </table>
+      </div>
+      <el-upload
+        :action="action"
+        :data="{
+          orderId: id,
+        }"
+        v-if="state == 1 && fileAdd"
+        :on-success="handleSuccessUp"
+        :show-file-list="false"
+        accept=".jpg,.jpeg,.png,.bmp,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar"
+        :headers="headers"
+        :on-change="beforeUpload"
+        style="width: 80px !important"
+        :on-error="onError"
+        ref="upload"
+      >
+        <el-button size="small" type="primary" v-if="state == 1"
+          >闄勪欢涓婁紶</el-button
+        >
+      </el-upload>
+      <ValueTable
+        class="value-table"
+        ref="fileList"
+        :url="$api.insOrderPlan.getFileList"
+        :componentData="componentData0"
+        :delUrl="$api.insOrderPlan.delfile"
+        :key="upIndex"
+        style="height: 100%; margin-top: 16px"
+      />
+    </div>
+    <el-drawer title="鍏夌氦鍒囨崲" :visible.sync="fiberOpticVisible" :size="500">
+      <el-table
+        class="el-table"
+        ref="fiberOpticTable"
+        :data="fiberOptic"
+        height="100%"
+        tooltip-effect="dark"
+        border
+        highlight-current-row
+        @row-click="handleChangeOptic"
+        :row-class-name="tableRowClassName"
+        :current-row-key="currentKey2"
+        :row-key="(record) => record.index"
+        v-if="fiberOpticVisible"
+      >
+        <el-table-column
+          type="index"
+          align="center"
+          label="搴忓彿"
+          width="70px"
+          :key="Math.random()"
+        >
+        </el-table-column>
+        <el-table-column
+          prop="bushColor"
+          label="绠″鑹叉爣"
+          min-width="100px"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          prop="color"
+          label="鍏夌氦鑹叉爣"
+          min-width="100px"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          prop="model"
+          label="鍏夌氦瑙勬牸"
+          min-width="130px"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          prop="standard"
+          label="鍙傝�冩爣鍑�"
+          width="100px"
+          show-overflow-tooltip
+        ></el-table-column>
+      </el-table>
+    </el-drawer>
+    <el-drawer
+      title="鍏夌氦甯﹀垏鎹�"
+      :visible.sync="fiberOpticTapeVisible"
+      :size="500"
+    >
+      <el-table
+        class="el-table"
+        ref="fiberOpticTapeTable"
+        :data="fiberOpticTape"
+        height="100%"
+        tooltip-effect="dark"
+        border
+        highlight-current-row
+        @row-click="handleChangeTape"
+        :row-class-name="tableRowClassName"
+        :current-row-key="currentKey1"
+        :row-key="(record) => record.index"
+        v-if="fiberOpticTapeVisible"
+      >
+        <el-table-column
+          type="index"
+          align="center"
+          label="搴忓彿"
+          width="70px"
+          :key="Math.random()"
+        >
+        </el-table-column>
+        <el-table-column
+          prop="code"
+          label="鍏夌氦甯︾紪鍙�"
+          min-width="110px"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          prop="model"
+          label="鍏夌氦甯﹁鏍�"
+          min-width="110px"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          prop="standard"
+          label="鍙傝�冩爣鍑�"
+          width="90px"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          prop="num"
+          label="鍏夌氦妫�娴嬮噺"
+          min-width="110px"
+          show-overflow-tooltip
+        ></el-table-column>
+      </el-table>
+    </el-drawer>
+    <el-drawer title="濂楃鍒囨崲" :visible.sync="bushingVisible" :size="500">
+      <el-table
+        class="el-table"
+        ref="bushingTable"
+        :data="bushing"
+        height="100%"
+        tooltip-effect="dark"
+        border
+        highlight-current-row
+        @row-click="handleChangeBushing"
+        :row-class-name="tableRowClassName"
+        :current-row-key="currentKey0"
+        :row-key="(record) => record.index"
+        v-if="bushingVisible"
+      >
+        <el-table-column
+          type="index"
+          align="center"
+          label="搴忓彿"
+          width="70px"
+          :key="Math.random()"
+        >
+        </el-table-column>
+        <el-table-column
+          prop="color"
+          label="绠¤壊鏍�"
+          min-width="100px"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          prop="standNum"
+          label="鏍囬噺"
+          min-width="100px"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          prop="testNum"
+          label="娴嬭瘯閲�"
+          min-width="100px"
+          show-overflow-tooltip
+        ></el-table-column>
+      </el-table>
+    </el-drawer>
+    <el-drawer title="鏍峰搧鍒囨崲" :visible.sync="sampleVisible" :size="500">
+      <div style="margin-bottom: 20px; margin-left: 20px">
+        <span>鏍峰搧缂栧彿:</span>
+        <el-input
+          v-model="filterSampleCode"
+          size="small"
+          style="width: 40%; margin-right: 20px"
+          clearable
+          @change="filterSampleProduct"
+          placeholder="璇疯緭鍏ユ牱鍝佺紪鍙�"
+          @clear="filterSampleProduct"
+          @keyup.enter="filterSampleProduct"
+        >
+        </el-input>
+        <el-button
+          type="primary"
+          size="small"
+          @click="filterSampleProduct"
+          icon="el-icon-search"
+          >鏌ヨ</el-button
+        >
+      </div>
+      <el-table
+        class="el-table"
+        ref="productTable"
+        :data="sampleProduct"
+        height="100%"
+        tooltip-effect="dark"
+        border
+        highlight-current-row
+        @row-click="handleChangeSample"
+        :row-class-name="tableRowClassName"
+        :current-row-key="currentKey"
+        :row-key="(record) => record.index"
+        v-if="sampleVisible"
+      >
+        <el-table-column
+          type="index"
+          align="center"
+          label="搴忓彿"
+          width="70px"
+          :key="Math.random()"
+        >
+        </el-table-column>
+        <el-table-column
+          prop="sampleCode"
+          label="鏍峰搧缂栧彿"
+          min-width="100px"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          prop="model"
+          label="鏍峰搧鍨嬪彿"
+          min-width="100px"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          prop="insState"
+          label="妫�娴嬬姸鎬�"
+          width="100px"
+          show-overflow-tooltip
+        >
+          <template slot-scope="scope">
+            <el-tag
+              v-for="(item, i) in typeList"
+              :key="i"
+              v-if="item.value == scope.row.insState"
+              :type="item.type"
+              size="medium"
+              style="margin-right: 5px"
+              >{{ item.label }}</el-tag
+            >
+          </template>
+        </el-table-column>
+        <el-table-column
+          prop="checkName"
+          label="妫�楠屼汉"
+          min-width="80px"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          prop="isLeave"
+          label="鏄惁鐣欐牱"
+          width="95px"
+          show-overflow-tooltip
+          align="center"
+        >
+          <template slot-scope="scope">
+            <span>{{ scope.row.isLeave == 0 ? "鍚�" : "鏄�" }}</span>
+          </template>
+        </el-table-column>
+        <!-- 妫�楠屽崟浼氭湁涓�涓槸鍚︽湁閰嶅鏍峰搧瀛楁鎺у埗鏄剧ず -->
+        <el-table-column
+          prop="joinModel"
+          label="閰嶅鏍峰搧鍨嬪彿"
+          min-width="130px"
+          show-overflow-tooltip
+          v-if="insOrder.mating > 0"
+        ></el-table-column>
+        <el-table-column
+          prop="joinName"
+          label="閰嶅鏍峰搧鍚嶇О"
+          min-width="130px"
+          show-overflow-tooltip
+          v-if="insOrder.mating > 0"
+        ></el-table-column>
+        <el-table-column
+          prop="joinNum"
+          label="閰嶅鏍峰搧鏁伴噺"
+          min-width="130px"
+          show-overflow-tooltip
+          v-if="insOrder.mating > 0"
+        ></el-table-column>
+      </el-table>
+    </el-drawer>
+    <el-drawer title="浠诲姟鍒囨崲" :visible.sync="taskVisible" :size="500">
+      <ValueTable
+        class="value-table"
+        ref="insOrderPlan"
+        :url="$api.insOrderPlan.inspectionOrderDetailsTaskSwitching"
+        :componentData="componentData"
+        :key="upIndex"
+        style="height: 100%"
+      />
+    </el-drawer>
+    <el-dialog title="妫�楠屽鏍�" :visible.sync="reviewDia" width="500px">
+      <div class="body" style="display: flex; padding: 10px" v-if="reviewDia">
+        <div class="search_label" style="width: 150px">
+          <span class="required-span">* </span>涓嶉�氳繃鐨勭悊鐢憋細
+        </div>
+        <div class="search_input" style="width: 100%">
+          <el-input
+            size="small"
+            clearable
+            v-model="noReason"
+            type="textarea"
+            :autosize="{ minRows: 4 }"
+          ></el-input>
+        </div>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="reviewDia = false">鍙� 娑�</el-button>
+        <el-button
+          type="primary"
+          @click="handleReviewDia"
+          :loading="reviewLoading"
+          >纭� 瀹�</el-button
+        >
+      </span>
+    </el-dialog>
+    <el-dialog title="鎸囧畾澶嶆牳浜哄憳" :visible.sync="addVerifyDia" width="400px">
+      <div
+        class="body"
+        style="display: flex; padding: 10px; align-items: center"
+      >
+        <div class="search_label" style="width: 150px">
+          <span class="required-span">*</span>澶嶆牳浜�
+        </div>
+        <div class="search_input" style="width: 100%">
+          <el-select
+            v-model="verifyUser"
+            placeholder="璇烽�夋嫨"
+            size="small"
+            style="width: 100%"
+            clearable
+            filterable
+          >
+            <!-- <el-option v-for="(item,i) in personList" :key="i" :label="item.label" :value="item.value">
+            </el-option> -->
+            <el-option-group
+              v-for="(item, index) in Object.keys(personList)"
+              :key="index"
+              :label="item"
+            >
+              <el-option
+                :disabled="
+                  inspectorList.filter((name) => name == op.name).length > 0
+                "
+                v-for="op in personList[item]"
+                :key="op.id"
+                :label="op.name"
+                :value="op.id"
+              >
+              </el-option>
+            </el-option-group>
+          </el-select>
+        </div>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="addVerifyDia = false">鍙� 娑�</el-button>
+        <el-button type="primary" @click="submit()">纭� 瀹�</el-button>
+      </span>
+    </el-dialog>
+    <el-dialog
+      title="鏁版嵁閲囬泦"
+      :visible.sync="dataGetDia"
+      :close-on-click-modal="false"
+      :close-on-press-escape="false"
+      :show-close="false"
+      custom-class="custom-dialog"
+    >
+      <div>
+        <table border="1" cellpadding="10" class="thermal-table">
+          <tr>
+            <td style="width: 120px">妫�楠岄」</td>
+            <td style="width: 120px">妫�楠屽瓙椤�</td>
+            <td>鏁伴噰鏁版嵁</td>
+          </tr>
+          <template v-for="(item, index) in getData">
+            <tr>
+              <td :rowspan="item.child.length">{{ item.faName }}</td>
+              <td>{{ item.child[0].name }}</td>
+              <td style="text-align: left">
+                <el-checkbox-group
+                  v-model="getDataIndex"
+                  :max="item.child[0].maxNum"
+                >
+                  <el-checkbox
+                    v-for="(n, j) in item.child[0].arr"
+                    :label="j"
+                    :key="j"
+                    >{{ n }}</el-checkbox
+                  >
+                </el-checkbox-group>
+              </td>
+            </tr>
+            <tr
+              v-for="(m, i) in item.child"
+              :key="i + 'bbbbbbbbbbbbbb'"
+              v-show="i > 0"
+            >
+              <td>{{ m.name }}</td>
+              <td style="text-align: left">
+                <el-checkbox-group v-model="getDataIndex" :max="m.maxNum">
+                  <el-checkbox v-for="(n, j) in m.arr" :label="j" :key="j">{{
+                    n
+                  }}</el-checkbox>
+                </el-checkbox-group>
+              </td>
+            </tr>
+          </template>
+        </table>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button
+          type="primary"
+          @click="submitDataGet()"
+          :loading="getDataIndexLoading"
+          >纭� 瀹�</el-button
+        >
+      </span>
+    </el-dialog>
+    <!-- 浜ゆ帴寮规 -->
+    <el-dialog title="妫�楠屼氦鎺�" :visible.sync="connectVisible" width="400px">
+      <div class="search_thing">
+        <div class="search_label" style="width: 90px">
+          <span class="required-span">* </span>浜ゆ帴浜哄憳锛�
+        </div>
+        <div class="search_input">
+          <el-select
+            v-model="connect.connectPerson"
+            placeholder="璇烽�夋嫨"
+            style="width: 100%"
+            filterable
+          >
+            <!-- <el-option
+              v-for="item in personList"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            >
+            </el-option> -->
+            <el-option-group
+              v-for="(item, index) in Object.keys(handover)"
+              :key="index"
+              :label="item"
+            >
+              <el-option
+                :disabled="
+                  inspectorList.filter((name) => name == op.name).length > 0
+                "
+                v-for="op in personList[item]"
+                :key="op.id"
+                :label="op.name"
+                :value="op.id"
+              >
+              </el-option>
+            </el-option-group>
+          </el-select>
+        </div>
+      </div>
+      <div class="search_thing">
+        <div class="search_label" style="width: 90px">
+          <span class="required-span">* </span>璇曢獙瀹わ細
+        </div>
+        <div class="search_input">
+          <el-select
+            v-model="connect.sonLaboratory"
+            placeholder="璇烽�夋嫨"
+            style="width: 100%"
+            filterable
+          >
+            <el-option
+              v-for="item in sonLaboratoryList"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            >
+            </el-option>
+          </el-select>
+        </div>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="connectVisible = false">鍙� 娑�</el-button>
+        <el-button type="primary" @click="confirmConnect" :loading="loading"
+          >纭� 瀹�</el-button
+        >
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import limsTable from "@/components/Table/lims-table.vue";
+import file from "@/utils/file";
+import excelFunction from "@/utils/excelFountion";
+export default {
+  props: ["sonLaboratory", "orderId", "state", "inspectorList", "handover"],
+  components: {
+    limsTable,
+  },
+  data() {
+    return {
+      equipName: [],
+      insFibersId: null, //鍏夌氦甯d
+      insOrderState: null,
+      sonLaboratoryList: [],
+      connect: {
+        connectPerson: "",
+        sonLaboratory: "",
+      },
+      connectVisible: false,
+      filterSampleCode: null,
+      fileterSampleProducts: [],
+      isEdit: false,
+      sagData: [],
+      sagForm: {},
+      dataGetDia: false,
+      wareTableDataLoading: false,
+      fileAdd: false,
+      sampleVisible: false,
+      taskVisible: false,
+      submitLoading: false,
+      searchForm: {
+        sampleName: null,
+        state: null,
+      },
+      id: 0,
+      componentData: {
+        entity: {
+          sonLaboratory: null,
+          userId: 0,
+        },
+        isIndex: false,
+        showSelect: false,
+        select: false,
+        selectMethod: "handleChangeTask",
+        sort: false,
+        do: [],
+        isPage: false,
+        linkEvent: {},
+        tagField: {
+          type: {
+            select: [],
+          },
+          insState: {
+            select: [],
+          },
+        },
+        currentId: "",
+        selectField: {},
+        requiredAdd: [],
+        requiredUp: [],
+      },
+      componentData0: {
+        entity: {
+          insOrderId: "",
+        },
+        isIndex: true,
+        showSelect: false,
+        select: false,
+        sort: false,
+        init: false,
+        do: [
+          {
+            id: "handleDown",
+            font: "涓嬭浇",
+            type: "text",
+            method: "handleDown",
+          },
+          {
+            id: "delete",
+            font: "鍒犻櫎",
+            type: "text",
+            method: "doDiy",
+            disabFun: (row, index) => {
+              return this.state != 1;
+            },
+          },
+        ],
+        isPage: false,
+        linkEvent: {},
+        tagField: {
+          type: {
+            select: [
+              {
+                value: 1,
+                label: "鍥剧墖",
+              },
+              {
+                value: 2,
+                label: "鏂囦欢",
+              },
+            ],
+          },
+        },
+        currentId: "",
+        selectField: {},
+        requiredAdd: [],
+        requiredUp: [],
+      },
+      upIndex: 0,
+      getReportModelLoading: false,
+      insOrder: {},
+      sampleProduct: [],
+      typeList: [],
+      urgentList: [],
+      currentSample: {}, //褰撳墠鏍峰搧淇℃伅
+      tableList: [],
+      loading: false,
+      ps: {},
+      param: {},
+      currentKey: 1,
+      currentKey0: 1,
+      currentKey1: 1,
+      currentKey2: 1,
+      comparisonList: [],
+      excelMethodList: [],
+      equipOptions: [],
+      userId: 0,
+      reviewLoading: false,
+      reviewDia: false,
+      noReason: "",
+      tableWidth: 1000,
+      currentTable: null,
+      tableLists: [],
+      widthList: [],
+      addVerifyDia: false,
+      verifyUser: null,
+      personList: [],
+      enumList: [],
+      fiberOpticVisible: false,
+      fiberOpticTapeVisible: false,
+      bushingVisible: false,
+      fiberOpticTape: [], //鍏夌氦甯﹀垪琛�
+      fiberOptic: [], //鍏夌氦鍒楄〃
+      bushing: [], //濂楃鍒楄〃
+      currentFiberOpticTape: null, //褰撳墠鍏夌氦甯�
+      currentFiberOptic: null, //褰撳墠鍏夌氦
+      currentBushing: null, //褰撳墠濂楃
+      tableLoading: false,
+      upLoading: false,
+      temptList: null,
+      fiber: [],
+      fibers: [],
+      casing: [],
+      currentTab: null,
+      wareForm: {
+        inspectionItem: 1,
+        inspectionItemSubclass: "20(甯告俯)",
+      },
+      wareForm0: {},
+      numOptions: [],
+      temperatureOptions: [],
+      wareTableData: [],
+      otherForm: {
+        humidity: null,
+        temperature: null,
+      },
+      equipForm: {
+        value0: null,
+        code0: null,
+        value1: null,
+        code1: null,
+      },
+      result: null,
+      worker: null,
+      worker0: null,
+      wareLength: [],
+      dataAcquisitionInfo: {},
+      dataAcquisitionInfoNew: {},
+      dataAcquisitionEidtAble: false,
+      isGet: false,
+      dataAcquisitionLoading: false,
+      collected: false,
+      // 鐑惊鐜�---寮�濮�
+      thermalCyclingInfo: {
+        max: 0,
+        inspectionItem: 1,
+        arr: [],
+        length: 1,
+        inspectionItemClass: null,
+      },
+      thermalCyclingLoading: false,
+      temDataAcquisition: false,
+      // 鐑惊鐜�---缁撴潫
+      getData: [
+        {
+          faName: "娉㈤暱闄勫姞琛板噺",
+          child: [
+            {
+              name: "1285nm~1330nm",
+              arr: [12, 13, 14, 15],
+            },
+            {
+              name: "1525nm~1575nm",
+              arr: [12, 13, 14, 15],
+            },
+          ],
+        },
+        {
+          faName: "鎴嚦娉㈤暱",
+          child: [
+            {
+              name: "鎴嚦娉㈤暱",
+              arr: [12, 13, 14, 15],
+            },
+          ],
+        },
+      ],
+      getDataIndex: [],
+      getDataIndexLoading: false,
+      changeType: null,
+      getDataTypeId: "",
+      getDataType: null,
+      singleRootVerticalInfo: {
+        model: "",
+        methodName: "",
+        num: 0,
+        arr: [],
+        ask: "",
+        elasticity: null, //寮规�фā閲�
+      },
+      loadList: [],
+      // 鏋剁┖瀵煎湴绾�-搴斿姏搴斿彉--寮�濮�
+      stressStrainInfo: {
+        elasticity: null,
+      },
+      timeList: [5, 10, 15, 30, 45, 60],
+      powerList0: [
+        {
+          value: "30%RTS",
+          arr: ["", "", "", "", "", ""],
+        },
+        {
+          value: "50%RTS",
+          arr: ["", "", "", "", "", ""],
+        },
+        {
+          value: "70%RTS",
+          arr: ["", "", "", "", "", ""],
+        },
+        {
+          value: "85%RTS",
+          arr: ["", "", "", "", "", ""],
+        },
+      ],
+      powerList: [],
+      // 鏋剁┖瀵煎湴绾�-搴斿姏搴斿彉--缁撴潫
+      // 闃叉尟閿ゅ姛鐜囩壒鎬�---寮�濮�
+      powerCharacteristicsInfo: {
+        model: null,
+        methodS: null,
+        arr0: [
+          {
+            value: "",
+            state: 0,
+          },
+          {
+            value: "",
+            state: 0,
+          },
+          {
+            value: "",
+            state: 0,
+          },
+          {
+            value: "",
+            state: 0,
+          },
+        ], //(鐤插姵鍓�)鍔熺巼鐗规��-璋愭尟棰戠巼(Hz)
+        arr1: [
+          {
+            value: "",
+            state: 0,
+          },
+          {
+            value: "",
+            state: 0,
+          },
+          {
+            value: "",
+            state: 0,
+          },
+          {
+            value: "",
+            state: 0,
+          },
+        ], //(鐤插姵鍓�)鍔熺巼鐗规��-鑰楄兘(W)
+        arr2: [
+          {
+            value: "",
+            state: 0,
+          },
+          {
+            value: "",
+            state: 0,
+          },
+          {
+            value: "",
+            state: 0,
+          },
+          {
+            value: "",
+            state: 0,
+          },
+        ], //(鐤插姵鍚�)鍔熺巼鐗规��-璋愭尟棰戠巼(Hz)
+        arr3: [
+          {
+            value: "",
+            state: 0,
+          },
+          {
+            value: "",
+            state: 0,
+          },
+          {
+            value: "",
+            state: 0,
+          },
+          {
+            value: "",
+            state: 0,
+          },
+        ], //(鐤插姵鍚�)鍔熺巼鐗规��-鑰楄兘(W)
+      },
+      powerCharacteristicsCopy: [
+        {
+          value: "",
+          state: 0,
+        },
+        {
+          value: "",
+          state: 0,
+        },
+        {
+          value: "",
+          state: 0,
+        },
+        {
+          value: "",
+          state: 0,
+        },
+      ],
+      // 闃叉尟閿ゅ姛鐜囩壒鎬�---缁撴潫
+      // 鐤插姵璇曢獙---寮�濮�
+      fatigueTestInfo: {
+        model: null,
+        methodS: null,
+        sampleType: null,
+        // 浠ヤ笅鐨勬槸杈撳叆鍙傛暟
+        startTime: null,
+        endTime: null,
+        tension: null,
+        distance0: null,
+        distance1: null,
+        frequency: null,
+        amplitude0: null,
+        wavelength: null,
+        amplitude1: null,
+        strain: null,
+        pitch: null,
+        num: null,
+        damage: null,
+        attenuation: null,
+      },
+      // 鐤插姵璇曢獙---缁撴潫
+    };
+  },
+  // 鐢ㄤ簬涓婁紶鏂囦欢鐨勪俊鎭�
+  computed: {
+    headers() {
+      return {
+        token: sessionStorage.getItem("token"),
+      };
+    },
+    action() {
+      return this.javaApi + this.$api.insOrderPlan.uploadFile;
+    },
+  },
+  created() {
+    console.log("妫�楠屼汉鍛�---", this.inspectorList);
+    this.componentData.entity.sonLaboratory = this.sonLaboratory;
+    this.id = this.orderId;
+    this.getUserInfo();
+  },
+  mounted() {
+    this.getSonLaboratoryList();
+    this.getTypeDicts();
+    this.getInsStateDicts();
+    this.getComparisonList();
+    this.getAuthorizedPerson();
+    this.scrollInit();
+    this.getPower();
+    this.startWorker();
+  },
+  watch: {
+    // 鐩戝惉浠诲姟id锛岃幏鍙栦换鍔′俊鎭�
+    id(val) {
+      this.loading = true;
+      this.$axios
+        .post(this.$api.insOrderPlan.doInsOrder, {
+          id: val,
+          laboratory: this.sonLaboratory,
+        })
+        .then(async (res) => {
+          this.insOrder = res.data.insOrder;
+          this.insOrderState = res.data.insState;
+          this.componentData0.entity.insOrderId = val;
+          this.$refs.fileList.selectList();
+          this.urgentList.forEach((m) => {
+            if (m.value == this.insOrder.type) {
+              this.insOrder.typeName = m.label;
+            }
+          });
+          this.loading = false;
+          if (!res.data.sampleProduct || res.data.sampleProduct.length == 0) {
+            return this.$message.error("璇ヤ换鍔℃病鏈夋牱鍝佷俊鎭�");
+          }
+          // 璧嬪�煎綋鍓嶆牱鍝佸垪琛�
+          this.sampleProduct = res.data.sampleProduct;
+          this.fileterSampleProducts = JSON.parse(
+            JSON.stringify(res.data.sampleProduct)
+          );
+          this.currentSample = this.HaveJson(this.sampleProduct[0]);
+          let insProduct = this.HaveJson(this.currentSample.insProduct);
+          // 娓╁害銆佹箍搴﹁祴鍊�
+          if (insProduct && insProduct.length > 0) {
+            const filterList = insProduct.filter(
+              (ele) => ele.temperature || ele.humidity
+            );
+            if (filterList && filterList.length > 0) {
+              let { temperature, humidity } = filterList[0];
+              this.otherForm = {
+                temperature: temperature ? temperature : null,
+                humidity: humidity ? humidity : null,
+              };
+            }
+          }
+          // 鑾峰彇褰撳墠鏍峰搧鐨勬楠岄」
+          let list = await this.getCurrentProduct(this.currentSample.id, 0);
+          console.log(888, list);
+          if (list) {
+            this.currentSample.insProduct = this.HaveJson(list);
+          }
+          // 鍒濆鍖栦紶閫掑埌鍚庣鐨勫弬鏁�
+          this.param = {};
+          this.changeType = 0;
+          this.currentSample.insProduct.forEach((a, j) => {
+            this.param[a.id] = {
+              insValue: [],
+              comValue: [],
+              resValue: null,
+              equipValue: [],
+              equipName: [],
+              insResult: null,
+            };
+          });
+          this.determineWhetherToCollectData(); //鏄惁闇�瑕佹暟閲�
+          this.getReportModel(this.currentSample.id); //鑾峰彇濂楃銆佸厜绾ゅ甫銆佸厜绾や俊鎭�
+          if (this.currentSample.index == undefined)
+            this.currentSample["index"] = 1;
+          let bushing = this.currentSample.bushing;
+          this.getTableLists(); //澶勭悊妯℃澘鍒楄〃淇℃伅
+
+          this.componentData.currentId = val;
+          this.currentKey = 1;
+          // 娓呯┖鍏夌氦閰嶇疆鐩稿叧鏁版嵁---涓嬮潰淇℃伅鏆傛椂鍙拷鐣�
+          this.fiberOpticTape = [];
+          this.currentFiberOpticTape = null;
+          this.fiberOptic = [];
+          this.currentFiberOptic = null;
+          this.bushing = [];
+          this.currentBushing = null;
+          this.currentTab = null;
+          if (bushing && bushing.length > 0) {
+            this.bushing = bushing;
+          }
+          // 鍚� Worker 鍙戦�佹秷鎭紝寮�濮嬪鐞嗛�昏緫
+          this.worker.postMessage(
+            JSON.stringify({
+              modelType: this.sampleProduct[0].model,
+              type: "saveData",
+              tableList: this.tableList,
+              param: this.param,
+              currentTable: this.currentTable,
+            })
+          );
+        });
+    },
+    // 鐩戝惉褰撳墠妯℃澘鍙樺寲
+    currentTable(val1, val0) {
+      if (val0 != null && val1 != val0) {
+        // if(this.tableLists.find(m=>m.templateId==val1)&&(this.tableLists.find(m=>m.templateId==val1).templateName=='鎴愬搧缂嗘楠屽師濮嬭褰�')){
+        //   if(this.casing.length>0){
+        //     this.handleChange(this.casing[0].id,3)
+        //   }
+        //   return
+        // }
+        //76:鐤插姵璇曢獙妫�楠屽師濮嬭褰曚笉鎵ц涓嬮潰鐨勬搷浣�
+        if (this.changeType && this.changeType > 0) {
+          // 濡傛灉鏄厜绾ゃ�佸厜绾ゅ甫锛屽垯涓嶆墽琛屼笅闈㈡搷浣�
+          return;
+        }
+        this.tableLists.forEach(async (m, i) => {
+          if (m.templateId == val1) {
+            let list = await this.getCurrentProduct(this.currentSample.id, 0);
+            this.currentSample.insProduct = this.HaveJson(list); //璧嬪�煎綋鍓嶆牱鍝佺殑妫�楠岄」
+            this.param = {}; //鍒濆鍖栦紶鍒板悗绔殑鍙傛暟
+            this.currentSample.insProduct.forEach((a, j) => {
+              this.param[a.id] = {
+                insValue: [],
+                comValue: [],
+                resValue: null,
+                equipValue: [],
+                equipName: [],
+                insResult: null,
+              };
+            });
+            this.getReportModel(this.currentSample.id); //鑾峰彇濂楃銆佸厜绾ゅ甫銆佸厜绾や俊鎭�
+            // 鍘婚噸妯℃澘锛岃繑鍥炴湁鍑犱釜妯℃澘
+            const mySet1 = new Set();
+            this.tableLists = this.currentSample.insProduct.filter((m) => {
+              let num0 = mySet1.size;
+              if (m.templateId != null && m.template != null) {
+                try {
+                  mySet1.add(
+                    JSON.stringify({
+                      template: m.template,
+                      templateId: m.templateId,
+                    })
+                  );
+                } catch (error) {
+                  console.log(222, error);
+                }
+              }
+              let num1 = mySet1.size;
+              if (num1 > num0) {
+                return m;
+              }
+            });
+            if (this.tableLists && this.tableLists.length > 0) {
+              this.tableList = null;
+              this.tableList = this.tableLists.filter(
+                (m) => m.templateId == val1
+              );
+              // 瀵规ā鏉胯繘琛屽鐞�
+              this.handleTableData();
+              // 鍚� Worker 鍙戦�佹秷鎭紝寮�濮嬪鐞嗛�昏緫
+              this.worker.postMessage(
+                JSON.stringify({
+                  modelType: this.sampleProduct[0].model,
+                  type: "saveData",
+                  tableList: this.tableList,
+                  param: this.param,
+                  currentTable: this.currentTable,
+                })
+              );
+            }
+          }
+        });
+      }
+    },
+    // 鐗规畩妫�楠岄」--鐩戝惉璁惧淇℃伅鏀瑰彉
+    "equipForm.code0": {
+      deep: true,
+      handler(oldVal, newVal) {
+        this.changEquip("code0");
+      },
+    },
+    "equipForm.code1": {
+      deep: true,
+      handler(oldVal, newVal) {
+        this.changEquip("code1");
+      },
+    },
+    // equipForm:{
+    //   deep:true,
+    //   handler(oldVal,newVal){
+
+    //   }
+    // },
+  },
+  beforeDestroy() {
+    // 鍦ㄧ粍浠堕攢姣佸墠纭繚鍋滄 Worker锛岄伩鍏嶅唴瀛樻硠婕�
+    this.stopWorker();
+  },
+  methods: {
+    blockModifications(val) {
+      // 鎭㈠鍘熷鍊�
+      this.$nextTick(() => {
+        this.equipForm.value0 = JSON.parse(JSON.stringify(this.equipName));
+        if (this.$refs[val]) {
+          this.$refs[val].blur();
+        } else {
+          console.error(`No ref found with name ${val}`);
+        }
+      });
+    },
+    getSonLaboratoryList() {
+      this.$axios
+        .post(this.$api.insOrderPlan.upPlanUser2, {
+          orderId: this.orderId,
+        })
+        .then((res) => {
+          if (res.code === 200 && res.data.length > 0) {
+            this.sonLaboratoryList = [];
+            res.data.forEach((m) => {
+              this.sonLaboratoryList.push({
+                value: m,
+                label: m,
+              });
+            });
+            this.connect.sonLaboratory = this.sonLaboratoryList[0].value;
+          }
+        });
+    },
+    // 鍐呴儴浜ゆ帴
+    confirmConnect() {
+      if (
+        this.connect.connectPerson == null ||
+        this.connect.connectPerson == "" ||
+        this.connect.connectPerson == undefined
+      ) {
+        this.$message.error("鏈�夋嫨浜ゆ帴浜哄憳");
+        return;
+      }
+      if (
+        this.connect.sonLaboratory == null ||
+        this.connect.sonLaboratory == "" ||
+        this.connect.sonLaboratory == undefined
+      ) {
+        this.$message.error("鏈�夋嫨璇曢獙瀹�");
+        return;
+      }
+      this.loading = true;
+      this.$axios
+        .post(this.$api.insOrderPlan.upPlanUser, {
+          orderId: this.orderId,
+          userId: this.connect.connectPerson,
+          sonLaboratory: this.connect.sonLaboratory,
+        })
+        .then((res) => {
+          if (res.code === 200) {
+            this.loading = false;
+            this.$message.success("鎿嶄綔鎴愬姛");
+          }
+          this.connectVisible = false;
+          this.$emit("goback");
+        })
+        .catch((error) => {
+          console.error(error);
+          this.loading = false;
+        });
+    },
+    // 鏍峰搧缂栧彿鎼滅储
+    filterSampleProduct() {
+      console.log(123, this.filterSampleCode);
+      let list = JSON.parse(JSON.stringify(this.fileterSampleProducts));
+      this.sampleProduct = list.filter((m) =>
+        m.sampleCode.includes(this.filterSampleCode)
+      );
+    },
+    //淇敼璁惧
+    changEquip() {
+      if (
+        this.tableLists.find((m) => m.templateId == this.currentTable) &&
+        (this.tableLists.find((m) => m.templateId == this.currentTable)
+          .templateName == "娓╁害寰幆妫�楠屽師濮嬭褰�" ||
+          this.tableLists
+            .find((m) => m.templateId == this.currentTable)
+            .templateName.includes("鐑惊鐜�") ||
+          this.tableLists
+            .find((m) => m.templateId == this.currentTable)
+            .templateName.includes("娓╁崌璇曢獙") ||
+          this.tableLists
+            .find((m) => m.templateId == this.currentTable)
+            .templateName.includes("鍗曟牴鍨傜洿鐕冪儳") ||
+          this.tableLists
+            .find((m) => m.templateId == this.currentTable)
+            .templateName.includes("寮у瀭") ||
+          this.tableLists
+            .find((m) => m.templateId == this.currentTable)
+            .templateName.includes("鏋剁┖鍦扮嚎搴斿姏搴斿彉") ||
+          this.tableLists
+            .find((m) => m.templateId == this.currentTable)
+            .templateName.includes("闃叉尟閿ゅ姛鐜囩壒鎬�") ||
+          this.tableLists
+            .find((m) => m.templateId == this.currentTable)
+            .templateName.includes("鐤插姵璇曢獙妫�楠屽師濮嬭褰�")) &&
+        this.equipOptions &&
+        this.equipOptions.length > 0
+      ) {
+        let list = this.currentSample.insProduct.filter(
+          (m) =>
+            m.inspectionItem.includes("鐑惊鐜�") ||
+            m.inspectionItem.includes("娓╁害寰幆") ||
+            m.inspectionItem.includes("娓╁崌") ||
+            m.inspectionItem.includes("鍗曟牴鍨傜洿鐕冪儳") ||
+            m.inspectionItem.includes("寮у瀭") ||
+            m.inspectionItem.includes("鍗曟牴鍨傜洿鐕冪儳") ||
+            m.inspectionItem.includes("搴斿姏搴斿彉") ||
+            m.inspectionItem.includes("闃叉尟閿ゅ姛鐜囩壒鎬�") ||
+            m.inspectionItem.includes("鎸姩鐤插姵") ||
+            m.inspectionItem.includes("鑸炲姩鐤插姵")
+        );
+        console.log(123, list);
+        list.forEach((m) => {
+          // 淇濆瓨妫�楠屽��
+          console.log(m);
+          if (m.inspectionItem == "鍗曟牴鍨傜洿鐕冪儳") {
+            this.param[m.id].insResult = {
+              i: m.id,
+              v: { v: m.insResult },
+            };
+            this.param[m.id].resValue = {
+              i: m.id,
+              v: { v: m.resValue },
+            };
+            this.param[m.id].insValue = [];
+            m.value.forEach((item) => {
+              let obj = {
+                i: m.id,
+                v: {
+                  v: item,
+                },
+              };
+              this.param[m.id].insValue.push(obj);
+            });
+          }
+          // //閲嶆柊璧嬪�糹nsValue
+          // if(m.insProductResult){
+          //     const valueArr = JSON.parse(m.insProductResult.insValue)
+          //     valueArr.forEach(ele=>{
+          //       this.param[m.id].insValue.push({
+          //         i:m.id,
+          //         v:{v:ele.v}
+          //       })
+          //     })
+          // }
+          // 鍒濆鍖栬澶囦俊鎭�
+          this.param[m.id].equipValue = [];
+          this.param[m.id].equipName = [];
+          if (this.equipForm.code0) {
+            // 璧嬪�肩涓�涓澶囩殑淇℃伅
+            // this.equipForm.value0 = this.equipOptions.find(
+            //   (m) => m.value == this.equipForm.code0
+            // ).label;
+
+            if (
+              !m.inspectionItem.includes("娓╁害寰幆") &&
+              !m.inspectionItem.includes("鍗曟牴鍨傜洿鐕冪儳")
+            ) {
+              // 璧嬪�艰澶囧悕绉�
+
+              let list1 = [];
+              this.equipOptions
+                .filter((m) => this.equipForm.code0.includes(m.value))
+                .forEach((item) => {
+                  list1.push(item.label);
+                });
+              this.equipForm.value0 = [...new Set(list1)];
+              this.equipForm.code0.forEach((item, index) => {
+                this.param[m.id].equipValue.push({
+                  i: m.id,
+                  v: {
+                    v: item,
+                  },
+                });
+                this.param[m.id].equipName.push({
+                  i: m.id,
+                  v: {
+                    v: list1[index],
+                  },
+                });
+              });
+              console.log("this.equipOptions", this.equipOptions);
+            } else {
+              this.equipForm.value0 = this.equipOptions.find(
+                (m) => m.value == this.equipForm.code0
+              ).label;
+              this.param[m.id].equipValue.push({
+                i: m.id,
+                v: {
+                  v: this.equipForm.code0,
+                },
+              });
+              this.param[m.id].equipName.push({
+                i: m.id,
+                v: {
+                  v: this.equipForm.value0,
+                },
+              });
+            }
+            // this.param[m.id].equipValue.push({
+            //   i: m.id,
+            //   v: {
+            //     v: code0,
+            //   },
+            // });
+            // this.param[m.id].equipName.push({
+            //   i: m.id,
+            //   v: {
+            //     v: value0,
+            //   },
+            // });
+          }
+          if (
+            this.equipForm.code1 &&
+            (m.inspectionItem.includes("娓╁害寰幆") ||
+              m.inspectionItem.includes("鍗曟牴鍨傜洿鐕冪儳"))
+          ) {
+            // 璧嬪�肩浜屼釜璁惧鐨勪俊鎭�
+            this.equipForm.value1 = this.equipOptions.find(
+              (m) => m.value == this.equipForm.code1
+            ).label;
+            this.param[m.id].equipValue.push({
+              i: m.id,
+              v: {
+                v: this.equipForm.code1,
+              },
+            });
+            this.param[m.id].equipName.push({
+              i: m.id,
+              v: {
+                v: this.equipForm.value1,
+              },
+            });
+          }
+          // 淇濆瓨鏁版嵁
+          this.saveInsContext(m.id);
+        });
+      }
+    },
+    // 鐤插姵璇曢獙鐗规��---寮�濮�
+    getFatigueTestInfo() {
+      for (let i in this.fatigueTestInfo) {
+        this.fatigueTestInfo[i] = null;
+      }
+      let obj = this.currentSample.insProduct.filter(
+        (m) =>
+          m.inspectionItem.includes("鎸姩鐤插姵") ||
+          m.inspectionItem.includes("鑸炲姩鐤插姵")
+      )[0];
+      // 鑾峰彇璁惧鍒楄〃
+      this.getEquipOptions(true, obj.id);
+      this.fatigueTestInfo.model = this.currentSample.model;
+      this.fatigueTestInfo.methodS = obj.methodS;
+      this.fatigueTestInfo.sampleType = obj.sampleType;
+      this.fatigueTestInfo.id = obj.id;
+      this.fatigueTestInfo.insProductResult = obj.insProductResult;
+      // 鍥炴樉鏁版嵁
+      if (
+        obj.insProductResult &&
+        obj.insProductResult.insValue &&
+        obj.insProductResult.insValue.length > 5
+      ) {
+        this.fatigueTestInfo = {
+          ...this.fatigueTestInfo,
+          ...JSON.parse(obj.insProductResult.insValue),
+        };
+      }
+    },
+    //鐤插姵璇曢獙淇濆瓨鏂规硶
+    saveFatigueTest() {
+      let obj = this.HaveJson(this.fatigueTestInfo);
+      delete obj.insProductResult;
+      delete obj.id;
+      delete obj.model;
+      delete obj.methodS;
+      delete obj.sampleType;
+      this.$axios
+        .post(
+          this.$api.insOrderPlan.saveInsContext2,
+          {
+            id: this.fatigueTestInfo.insProductResult
+              ? this.fatigueTestInfo.insProductResult.id
+              : "",
+            insProductId: this.fatigueTestInfo.id,
+            sampleId: this.currentSample.id,
+            orderId: this.currentSample.insOrderId,
+            insValue: JSON.stringify(obj),
+            templateName: "鐤插姵璇曢獙",
+          },
+          {
+            headers: {
+              "Content-Type": "application/json",
+            },
+          }
+        )
+        .then((res) => {
+          if (res.code == 201) {
+            this.$message.error("淇濆瓨澶辫触");
+            return;
+          }
+          this.$message.success("淇濆瓨鎴愬姛");
+        })
+        .catch((err) => {
+          console.log(err);
+        });
+    },
+    // 鐤插姵璇曢獙鐗规��---缁撴潫
+    // 闃叉尟閿ゅ姛鐜囩壒鎬�---寮�濮�
+    getPowerCharacteristicsInfo() {
+      this.powerCharacteristicsInfo.arr0 = this.HaveJson(
+        this.powerCharacteristicsCopy
+      );
+      this.powerCharacteristicsInfo.arr1 = this.HaveJson(
+        this.powerCharacteristicsCopy
+      );
+      this.powerCharacteristicsInfo.arr2 = this.HaveJson(
+        this.powerCharacteristicsCopy
+      );
+      this.powerCharacteristicsInfo.arr3 = this.HaveJson(
+        this.powerCharacteristicsCopy
+      );
+      let obj = this.currentSample.insProduct.filter((m) =>
+        m.inspectionItem.includes("闃叉尟閿ゅ姛鐜囩壒鎬�")
+      )[0];
+      // 鑾峰彇璁惧鍒楄〃
+      this.getEquipOptions(true, obj.id);
+      this.powerCharacteristicsInfo.model = this.currentSample.model;
+      this.powerCharacteristicsInfo.methodS = obj.methodS;
+      this.powerCharacteristicsInfo.id = obj.id;
+      this.powerCharacteristicsInfo.insProductResult = obj.insProductResult;
+      // 鍥炴樉鏁版嵁
+      if (obj.insProductResult) {
+        if (
+          obj.insProductResult.insValue &&
+          obj.insProductResult.insValue.length > 5
+        ) {
+          let obj0 = JSON.parse(obj.insProductResult.insValue);
+          this.powerCharacteristicsInfo.arr0 = obj0.arr0;
+          this.powerCharacteristicsInfo.arr1 = obj0.arr1;
+        }
+        if (
+          obj.insProductResult.comValue &&
+          obj.insProductResult.comValue.length > 5
+        ) {
+          let obj1 = JSON.parse(obj.insProductResult.comValue);
+          this.powerCharacteristicsInfo.arr2 = obj1.arr2;
+          this.powerCharacteristicsInfo.arr3 = obj1.arr3;
+        }
+      }
+    },
+    // 鏀瑰彉鐤插姵鍚庣殑璋愭尟棰戠巼(Hz)
+    changeArr2(val, index) {
+      if (!this.powerCharacteristicsInfo.arr0[index].value || !val) {
+        return;
+      }
+      let num0 = Number(this.powerCharacteristicsInfo.arr0[index].value) * 0.8;
+      let num1 = Number(this.powerCharacteristicsInfo.arr0[index].value) * 1.2;
+      if (Number(val) > num0 && Number(val) < num1) {
+        this.powerCharacteristicsInfo.arr2[index].state = 1;
+      } else {
+        this.powerCharacteristicsInfo.arr2[index].state = 2;
+      }
+    },
+    // 鏀瑰彉鐤插姵鍚庣殑璋愯�楄兘(W)
+    changeArr3(val, index) {
+      if (!this.powerCharacteristicsInfo.arr1[index].value || !val) {
+        return;
+      }
+      let num0 = Number(this.powerCharacteristicsInfo.arr1[index].value) * 0.8;
+      let num1 = Number(this.powerCharacteristicsInfo.arr1[index].value) * 1.2;
+      if (Number(val) > num0 && Number(val) < num1) {
+        this.powerCharacteristicsInfo.arr3[index].state = 1;
+      } else {
+        this.powerCharacteristicsInfo.arr3[index].state = 2;
+      }
+    },
+    //闃叉尟閿ゅ姛鐜囩壒鎬т繚瀛樻柟娉�
+    savePowerCharacteristics() {
+      let obj0 = {};
+      obj0.arr0 = this.powerCharacteristicsInfo.arr0;
+      obj0.arr1 = this.powerCharacteristicsInfo.arr1;
+      let obj1 = {};
+      obj1.arr2 = this.powerCharacteristicsInfo.arr2;
+      obj1.arr3 = this.powerCharacteristicsInfo.arr3;
+      this.$axios
+        .post(
+          this.$api.insOrderPlan.saveInsContext2,
+          {
+            id: this.powerCharacteristicsInfo.insProductResult
+              ? this.powerCharacteristicsInfo.insProductResult.id
+              : "",
+            insProductId: this.powerCharacteristicsInfo.id,
+            sampleId: this.currentSample.id,
+            orderId: this.currentSample.insOrderId,
+            insValue: JSON.stringify(obj0),
+            comValue: JSON.stringify(obj1),
+            templateName: "闃叉尟閿ゅ姛鐜囩壒鎬�",
+          },
+          {
+            headers: {
+              "Content-Type": "application/json",
+            },
+          }
+        )
+        .then((res) => {
+          if (res.code == 201) {
+            this.$message.error("淇濆瓨澶辫触");
+            return;
+          }
+          this.$message.success("淇濆瓨鎴愬姛");
+        })
+        .catch((err) => {
+          console.log(err);
+        });
+    },
+    // 闃叉尟閿ゅ姛鐜囩壒鎬�---缁撴潫
+    // 鏋剁┖瀵煎湴绾垮簲鍔涘簲鍙�---寮�濮�
+    getStressStrainInfo() {
+      this.powerList = this.HaveJson(this.powerList0);
+      let obj = this.currentSample.insProduct.filter((m) =>
+        m.inspectionItem.includes("搴斿姏搴斿彉")
+      )[0];
+      // 鑾峰彇璁惧鍒楄〃
+      this.getEquipOptions(true, obj.id);
+      this.stressStrainInfo.model = this.currentSample.model;
+      this.stressStrainInfo.methodS = obj.methodS;
+      this.stressStrainInfo.id = obj.id;
+      this.stressStrainInfo.insProductResult = obj.insProductResult;
+      // 鍥炴樉鏁版嵁
+      this.stressStrainInfo.elasticity = obj.elasticityModulus;
+      if (
+        obj.insProductResult &&
+        obj.insProductResult.insValue &&
+        obj.insProductResult.insValue.length > 5
+      ) {
+        this.powerList = [];
+        let obj0 = JSON.parse(obj.insProductResult.insValue);
+        for (let i in obj0) {
+          this.powerList.push({
+            value: i,
+            arr: obj0[i],
+          });
+        }
+      }
+      let ask = obj.ask
+        ? obj.ask
+            .replace("=", "")
+            .replace("<", "")
+            .replace(">", "")
+            .replace("锛�", "")
+            .replace("锛�", "")
+            .replace("鈮�", "")
+            .replace("鈮�", "")
+        : 0;
+      this.stressStrainInfo.ask = ask;
+    },
+    //鏋剁┖鍦扮嚎搴斿姏搴斿彉淇濆瓨鏂规硶
+    saveStressStrain() {
+      if (
+        this.stressStrainInfo.elasticity == null ||
+        this.stressStrainInfo.elasticity == "" ||
+        undefined == this.stressStrainInfo.elasticity
+      ) {
+        this.$message.error("璇峰厛濉啓寮规�фā閲�");
+        return;
+      }
+      let obj = {};
+      for (let i = 0; i < this.powerList.length; i++) {
+        if (this.powerList[i].value) {
+          obj[this.powerList[i].value] = this.powerList[i].arr;
+        }
+      }
+      obj.elasticityModulus = this.stressStrainInfo.elasticity;
+      this.$axios
+        .post(
+          this.$api.insOrderPlan.saveInsContext2,
+          {
+            id: this.stressStrainInfo.insProductResult
+              ? this.stressStrainInfo.insProductResult.id
+              : "",
+            sampleId: this.currentSample.id,
+            orderId: this.currentSample.insOrderId,
+            insProductId: this.stressStrainInfo.id,
+            insValue: JSON.stringify(obj),
+            templateName: "鏋剁┖鍦扮嚎搴斿姏搴斿彉",
+          },
+          {
+            headers: {
+              "Content-Type": "application/json",
+            },
+          }
+        )
+        .then((res) => {
+          if (res.code == 201) {
+            this.$message.error("淇濆瓨澶辫触");
+            return;
+          }
+          this.$message.success("淇濆瓨鎴愬姛");
+        })
+        .catch((err) => {
+          console.log(err);
+        });
+    },
+    // 鍒犻櫎璁板綍
+    delStressStrain(index) {
+      if (this.powerList.length == 1) {
+        this.$message.warning("鑷冲皯闇�瑕佷竴鏉℃暟鎹�");
+        return;
+      }
+      this.powerList.splice(index, 1);
+    },
+    // 娣诲姞璁板綍
+    addStressStrain() {
+      this.powerList.push({
+        value: "",
+        arr: ["", "", "", "", "", ""],
+      });
+    },
+    // 濉啓寮规�фā閲�
+    changeElasticity(e) {
+      if (e) {
+        if (!this.stressStrainInfo.ask) {
+          this.$message.warning("璇峰厛鍘绘爣鍑嗗簱缁存姢鏍囧噯閲�");
+          this.stressStrainInfo.elasticity = null;
+          return;
+        }
+        let num = Math.abs(e - Number(this.stressStrainInfo.ask));
+        if (num > 2) {
+          this.$message.warning("寮规�фā閲忎笉鑳借秴杩囨爣鍑嗛噺鐨劼�2");
+          this.stressStrainInfo.elasticity = null;
+          return;
+        }
+        this.stressStrainInfo.elasticity = e;
+        // else {
+        //   this.$axios
+        //     .post(
+        //       this.$api.insOrderPlan.write2 +
+        //         "?id=" +
+        //         this.stressStrainInfo.id +
+        //         "&elasticityModulus=" +
+        //         e
+        //     )
+        //     .then((res) => {
+        //       if (res.code == 201) {
+        //         this.$message.error("淇濆瓨澶辫触");
+        //         return;
+        //       }
+        //       this.$message.success("宸蹭繚瀛�");
+        //     });
+        // }
+      }
+    },
+    // 鏋剁┖瀵煎湴绾垮簲鍔涘簲鍙�---缁撴潫
+    // 寮у瀭鐗规��---寮�濮�
+    // 鍒犻櫎琛�
+    deleteSag(index) {
+      if (this.sagData.length == 1) {
+        this.$message.warning("鑷冲皯闇�瑕佷竴鏉℃暟鎹�");
+        return;
+      }
+      this.sagData.splice(index, 1);
+      //this.saveSageInfo('楂樺害','height')
+      this.saveSageInfo("寮у瀭", "sag");
+      this.saveSageInfo("瀹ゆ俯", "temperature");
+      this.saveSageInfo("寮犲姏", "remark");
+      this.saveSageInfo("瀵肩嚎娓╁害", this.sagData[this.sagData.length - 1]);
+    },
+    // 娣诲姞寮у瀭妫�娴�
+    addSag() {
+      this.sagData.push({
+        height: null,
+        sag: null,
+        value0: null,
+        value1: null,
+        value2: null,
+        value3: null,
+        value4: null,
+        value5: null,
+        average: null,
+        temperature: null,
+        remark: null,
+      });
+    },
+    // 鍒濆鍖栭〉闈㈡暟鎹�
+    getSageInfo() {
+      let obj = this.currentSample.insProduct.filter((m) =>
+        m.inspectionItem.includes("寮у瀭")
+      )[0];
+      // 鑾峰彇璁惧鍒楄〃
+      this.getEquipOptions(true, obj.id);
+      this.$axios
+        .post(this.$api.insOrderPlan.getSagTemperatureProducts, {
+          sampleId: this.currentSample.id,
+        })
+        .then((res) => {
+          if (res.code == 201) return;
+          let { productVos, sampleVo } = res.data;
+          // 鍥炴樉鍩虹淇℃伅
+          this.sagForm = sampleVo;
+          this.sagForm.productVos = productVos;
+          productVos.forEach((item) => {
+            // 鍒濆鍖栧悗绔弬鏁�
+            this.param[item.insProduct.id] = {
+              insValue: [],
+              comValue: [],
+              resValue: {
+                i: item.insProduct.id,
+                r: 0,
+                c: 0,
+                v: {
+                  v: null,
+                },
+              },
+              equipValue: [],
+              equipName: [],
+              insResult: {
+                i: item.insProduct.id,
+                v: {
+                  v: null,
+                },
+              },
+            };
+            // 鏈夋暟鎹�->鍥炴樉鏁版嵁
+            if (item.insProduct.insProductResult) {
+              let type = item.insProduct.inspectionItemSubclass;
+              let insValue = JSON.parse(
+                item.insProduct.insProductResult.insValue
+              );
+              if (
+                !(
+                  type == "棰濆畾鎷夋柇鍔�" ||
+                  type == "璺ㄨ窛闀垮害" ||
+                  type == "杞借嵎" ||
+                  type == "瀵肩嚎娓╁害"
+                )
+              ) {
+                if (this.sagData.length < insValue.length) {
+                  for (let i = this.sagData.length; i < insValue.length; i++) {
+                    this.sagData.push({
+                      height: null,
+                      sag: null,
+                      value0: null,
+                      value1: null,
+                      value2: null,
+                      value3: null,
+                      value4: null,
+                      value5: null,
+                      average: null,
+                      temperature: null,
+                      remark: null,
+                    });
+                  }
+                }
+              }
+              if (insValue.length > 0) {
+                switch (type) {
+                  case "棰濆畾鎷夋柇鍔�":
+                    this.$set(this.sagForm, "tensileForce", insValue[0].v);
+                    break;
+                  case "璺ㄨ窛闀垮害":
+                    this.$set(this.sagForm, "spanLength", 100);
+                    break;
+                  case "杞借嵎":
+                    this.$set(this.sagForm, "load", insValue[0].v);
+                    break;
+                  // case '楂樺害':
+                  //   insValue.forEach((m,i)=>{
+                  //     this.sagData[i].height = m.v
+                  //   })
+                  //   break;
+                  case "寮у瀭":
+                    insValue.forEach((m, i) => {
+                      this.sagData[i].sag = m.v;
+                    });
+                    break;
+                  case "瀹ゆ俯":
+                    insValue.forEach((m, i) => {
+                      this.sagData[i].temperature = m.v;
+                    });
+                    break;
+                  case "寮犲姏":
+                    insValue.forEach((m, i) => {
+                      this.sagData[i].remark = m.v;
+                    });
+                    break;
+                  case "瀵肩嚎娓╁害":
+                    let comValue = JSON.parse(
+                      item.insProduct.insProductResult.comValue
+                    );
+                    if (comValue.length > 0) {
+                      comValue.forEach((m, i) => {
+                        this.sagData[i].average = m.v ? m.v : null;
+                      });
+                    }
+                    insValue.forEach((m, i) => {
+                      this.sagData[m.c][`value${m.r}`] = m.v ? m.v : null;
+                    });
+                    break;
+                }
+              }
+            }
+          });
+        })
+        .catch((err) => {});
+    },
+    // 淇濆瓨鏁版嵁
+    saveSageInfo(type, value) {
+      let obj = this.sagForm.productVos.find(
+        (m) => m.insProduct.inspectionItemSubclass == type
+      );
+      if (obj) {
+        if (type == "棰濆畾鎷夋柇鍔�" || type == "璺ㄨ窛闀垮害" || type == "杞借嵎") {
+          this.param[obj.insProduct.id].insValue = [
+            {
+              i: obj.insProduct.id,
+              r: 0,
+              c: 0,
+              v: {
+                v: value,
+              },
+            },
+          ];
+        } else if (type == "瀵肩嚎娓╁害") {
+          let arr = [];
+          for (let i = 0; i < 6; i++) {
+            arr.push(value[`value${i}`]);
+          }
+          arr = arr.filter((m) => m != null).map((m) => Number(m));
+          let num = 0;
+          arr.forEach((item) => {
+            num += item;
+          });
+          value.average = (num / arr.length).toFixed(2);
+          let comValueList = [];
+          let insValueList = [];
+          this.sagData.forEach((item, index) => {
+            comValueList.push({
+              i: obj.insProduct.id,
+              r: 0,
+              c: index,
+              v: {
+                v: item.average,
+              },
+            });
+            for (let i = 0; i < 6; i++) {
+              insValueList.push({
+                i: obj.insProduct.id,
+                r: i,
+                c: index,
+                v: {
+                  v: item[`value${i}`],
+                },
+              });
+            }
+          });
+          this.param[obj.insProduct.id].insValue = insValueList;
+          this.param[obj.insProduct.id].comValue = comValueList;
+        } else {
+          let arr = this.sagData.map((m) => {
+            let obj0 = {
+              i: obj.insProduct.id,
+              r: 0,
+              c: 0,
+              v: {
+                v: m[value],
+              },
+            };
+            return obj0;
+          });
+          this.param[obj.insProduct.id].insValue = arr;
+        }
+        // 杩涜鏁版嵁鐨勪繚瀛�
+        this.saveInsContext(obj.insProduct.id);
+      }
+    },
+    // 寮у瀭鐗规��---缁撴潫
+    // 鏁版嵁閲囬泦
+    getDataAcquisitionDevice() {
+      if (
+        this.tableLists.find((m) => m.templateId == this.currentTable) &&
+        this.tableLists.find((m) => m.templateId == this.currentTable)
+          .templateName == "娓╁害寰幆妫�楠屽師濮嬭褰�"
+      ) {
+        // 娓╁害寰幆妫�楠屽師濮嬭褰�----鏁伴噰----PK8000
+        let temperature = this.wareForm.inspectionItemSubclass;
+        if (typeof temperature == "string" && temperature.includes("(甯告俯)")) {
+          temperature = `20鈩�(甯告俯)`;
+        } else {
+          temperature = temperature + "鈩�";
+        }
+        this.dataAcquisitionLoading = true;
+        this.$axios
+          .post(
+            this.$api.deviceScope.temDataAcquisition,
+            {
+              entrustCode: this.insOrder.entrustCode,
+              sampleCode: this.currentSample.sampleCode,
+              model: this.wareForm0.model,
+              cycles: this.wareForm.inspectionItem,
+              temperature: temperature,
+            },
+            {
+              headers: {
+                "Content-Type": "application/json",
+              },
+              noQs: true,
+            }
+          )
+          .then((res) => {
+            this.dataAcquisitionLoading = false;
+            if (res.code != 200) {
+              return;
+            }
+            // 璧嬪�煎洖鏄綪K8000鐨勬暟鎹�
+            this.wareFormChange();
+          });
+      } else {
+        const _than = this;
+        // 涓�鑸殑鏁版嵁閲囬泦
+        _than.dataAcquisitionLoading = true;
+        let urlStr =
+          this.$api.deviceScope.dataCollection +
+          "?entrustCode=" +
+          this.insOrder.entrustCode +
+          "&sampleCode=" +
+          this.currentSample.sampleCode +
+          "&id=" +
+          this.currentSample.id;
+        console.log(_than.fibers);
+        if (_than.fibers && _than.fibers.length > 0) {
+          //褰撳墠閫変腑鐨勫厜绾ゅ甫
+          let currentFibers = _than.fibers.find(
+            (f) => f.id == _than.currentTab
+          );
+          if (null == currentFibers || currentFibers.length == 0) {
+            currentFibers = _than.fibers[0];
+          }
+          urlStr +=
+            "&fiberOpticRibbon=" +
+            currentFibers.bushingColor +
+            "-" +
+            currentFibers.code;
+        }
+        let replaceUrlStr = urlStr
+          .split("")
+          .map((s) => s.replace("#", "%23"))
+          .join("");
+        this.$axios.get(replaceUrlStr).then((res) => {
+          this.dataAcquisitionLoading = false;
+          if (res.code != 200) {
+            return;
+          }
+          this.dataAcquisitionInfoNew = this.HaveJson(res.data);
+          // 瀵规暟閲囧洖鏉ョ殑鍊艰繘琛屽鐞�
+          this.handleDataAcquisition(res.data);
+        });
+      }
+    },
+    handleDataAcquisition(data) {
+      // 鏄惁鍙互缂栬緫鏁伴噰鏁版嵁
+      if (this.dataAcquisitionEidtAble) {
+        this.getDataType = 1;
+      } else {
+        this.getDataType = 2;
+      }
+      this.dataAcquisitionInfo = {};
+      this.getData = [];
+      for (let i in data) {
+        let obj = {
+          faName: i,
+          child: [],
+        };
+        // 寰幆鏁伴噰鏁版嵁
+        for (let j in data[i]) {
+          // 鎷兼帴瀛楃涓�  妫�楠岄」+妫�楠屽瓙椤�
+          let str0 = "";
+          if (i == j) {
+            str0 = i + ",";
+          } else {
+            str0 = i + "," + j;
+          }
+          if (
+            j != "frequency" &&
+            data[i][j] &&
+            (!data[i][j].result || typeof data[i][j].result == "string")
+          ) {
+            // 澶勭悊鏁伴噰淇℃伅鏍煎紡
+            if (data[i][j].result) {
+              this.dataAcquisitionInfo[str0] = {
+                value: data[i][j].result,
+                frequency: data[i].frequency,
+              };
+            }
+            let list = this.tableList[0].arr;
+            // 寰幆椤甸潰鍒楄〃淇℃伅锛屽垽鏂暟閲囨暟鎹搴旈〉闈㈠垪琛ㄤ俊鎭殑妫�楠岄」鏄摢涓紝骞剁粰褰撳墠妫�楠岄」缁戝畾璁惧淇℃伅
+            list.forEach((item, index) => {
+              let num0 = 0;
+              let str = "";
+              item.forEach((m) => {
+                if (
+                  m.v.ps &&
+                  (m.v.ps.value == "妫�楠屽瓙椤�" || m.v.ps.value == "妫�楠岄」")
+                ) {
+                  if (m.v.ps && m.v.ps.value == "妫�楠岄」") {
+                    if (num0 == 0) {
+                      str = m.v.v + ",";
+                      num0++;
+                    }
+                  }
+                  if (m.v.ps && m.v.ps.value == "妫�楠屽瓙椤�") {
+                    if (num0 == 1) {
+                      str = str + m.v.v;
+                    }
+                  }
+                }
+                // 缁戝畾璁惧淇℃伅
+                if (
+                  data[i][j].equipName &&
+                  data[i][j].equipValue &&
+                  m.v &&
+                  m.v.ps &&
+                  m.v.ps.value == "璁惧缂栫爜" &&
+                  str0 == str
+                ) {
+                  if (!m.v.v) {
+                    this.changeEquip(
+                      data[i][j].equipValue,
+                      m,
+                      data[i][j].equipName
+                    );
+                  }
+                }
+              });
+            });
+          } else if (
+            j != "frequency" &&
+            data[i][j] &&
+            Array.isArray(data[i][j].result)
+          ) {
+            // 濡傛灉杩斿洖鐨勬暟閲囨暟鎹槸鏁扮粍锛屽垯澶勭悊鏁扮粍
+            // 浠ヤ笅閫昏緫涓鸿幏鍙栨瘡涓楠岄」鍙緭鍏ョ殑妫�楠屽�肩殑鏈�澶т釜鏁�
+            let str0 = "";
+            if (i == j) {
+              str0 = i + ",";
+            } else {
+              str0 = i + "," + j;
+            }
+            let list = this.tableList[0].arr;
+            let maxNum = 0;
+            list.forEach((item, index) => {
+              let num0 = 0;
+              let str = "";
+              item.forEach((m) => {
+                if (
+                  m.v.ps &&
+                  (m.v.ps.value == "妫�楠屽瓙椤�" || m.v.ps.value == "妫�楠岄」")
+                ) {
+                  if (m.v.ps && m.v.ps.value == "妫�楠岄」") {
+                    if (num0 == 0) {
+                      str = m.v.v + ",";
+                      num0++;
+                    }
+                  }
+                  if (m.v.ps && m.v.ps.value == "妫�楠屽瓙椤�") {
+                    if (num0 == 1) {
+                      str = str + m.v.v;
+                    }
+                  }
+                  let num = 0;
+                  list[index].forEach((n) => {
+                    if (
+                      n.v.ps &&
+                      n.v.ps.value &&
+                      typeof n.v.ps.value == "string" &&
+                      n.v.ps.value.includes("妫�楠屽��")
+                    ) {
+                      num++;
+                    }
+                  });
+                  if (str0 == str) {
+                    maxNum = num;
+                  }
+                }
+                // 缁戝畾璁惧
+                if (
+                  data[i][j].equipName &&
+                  data[i][j].equipValue &&
+                  m.v &&
+                  m.v.ps &&
+                  m.v.ps.value == "璁惧缂栫爜" &&
+                  str0 == str
+                ) {
+                  if (!m.v.v) {
+                    console.log(
+                      "changeEquip-->>",
+                      data[i][j].equipValue,
+                      m,
+                      data[i][j].equipName
+                    );
+                    this.changeEquip(
+                      data[i][j].equipValue,
+                      m,
+                      data[i][j].equipName
+                    );
+                  }
+                }
+              });
+            });
+            // let arr3 = []
+            // for (let l=0 ;i<data[i][j].result.length;i++){
+            //   arr3.push({
+            //     id:,
+            //     value:
+            //   })
+            // }
+            // 鑾峰彇鍒版渶澶ф楠屽�艰緭鍏ヤ釜鏁板悗閲嶇粍鏁版嵁
+            let obj0 = {
+              name: j,
+              arr: data[i][j].result,
+              maxNum: maxNum,
+              value: [],
+            };
+            // 濡傛灉鏁伴噰杩斿洖鐨勬暟缁勯暱搴﹀ぇ浜庢渶澶ц緭鍏ヤ釜鏁帮紝鍒欏皢鏁伴噰鏁版嵁鍦ㄥ脊妗嗕腑灞曠ず锛岀敤鎴烽�夋嫨闇�瑕佹墜鍔ㄩ�夋嫨鏁伴噰鐨勪俊鎭�
+            if (
+              data[i][j].result &&
+              Array.isArray(data[i][j].result) &&
+              data[i][j].result.length > maxNum
+            ) {
+              obj.child.push(obj0);
+            } else {
+              this.dataAcquisitionInfo[str0] = {
+                value: data[i][j].result,
+              };
+            }
+          }
+        }
+        if (obj.child.length > 0) {
+          this.getData.push(obj);
+        }
+      }
+      // 濡傛灉瀛樺湪鏁伴噰杩斿洖鐨勬暟缁勯暱搴﹀ぇ浜庢渶澶ц緭鍏ヤ釜鏁帮紝鍒欏脊鍑哄脊妗嗛�夋嫨
+      if (this.getData.length > 0) {
+        this.dataGetDia = true;
+        this.getDataIndex = [];
+      } else {
+        // 濡傛灉閮戒笉瀛樺湪锛屽垯锛岃繘鍏ュ鐞嗘暟閲囩嚎绋嬮噷鍘诲鐞嗘暟鎹�
+        try {
+          // 鍚� Worker 鍙戦�佹秷鎭紝寮�濮嬪鐞嗛�昏緫
+          this.getDataIndexLoading = false;
+          this.dataGetDia = false;
+          this.getDataTypeId = "";
+          this.worker0.postMessage(
+            JSON.stringify({
+              dataAcquisitionInfo: this.dataAcquisitionInfo,
+              list: this.tableList[0].arr,
+            })
+          );
+        } catch (error) {
+          console.log(1111, error);
+        }
+      }
+      // 鐩戝惉 Worker 杩斿洖鐨勭粨鏋�
+      this.worker0.onmessage = (event) => {
+        let result = JSON.parse(event.data);
+        if (result.method == "changeInput") {
+          // 閲囬泦鍚庣殑鏁版嵁锛岄渶瑕佽繘琛岃绠楃殑绾跨▼杩涜璁$畻
+          let { list, n } = result.value;
+          this.$set(this.tableList[0], "arr", list);
+          this.changeInput(
+            "",
+            `${this.currentSample.insProduct[0].templateId}-${n.r}-${n.c}-${n.i}`,
+            n
+          );
+        } else if (result.getDataTypeId) {
+          // 鑾峰彇鍒版暟閲囨渶鍚庝竴椤癸紝妫�楠岄」鐨処D
+          this.getDataTypeId = result.getDataTypeId;
+        }
+      };
+    },
+    // 濡傛灉瀛樺湪鏁伴噰杩斿洖鐨勬暟缁勯暱搴﹀ぇ浜庢渶澶ц緭鍏ヤ釜鏁帮紝鍒欏脊鍑哄脊妗嗛�夋嫨锛岃繖閲屾槸寮规鐨勬彁浜�
+    submitDataGet() {
+      if (this.getDataIndex.length == 0) {
+        this.$message.error("璇烽�夋嫨闇�瑕侀噰闆嗙殑鏁版嵁");
+        return;
+      }
+      this.getDataIndex.sort((a, b) => a - b);
+      for (let i = 0; i < this.getData.length; i++) {
+        for (let j = 0; j < this.getData[i].child.length; j++) {
+          // 瀵圭敤鎴烽�夋嫨鐨勬暟閲囦俊鎭繘琛屽鐞嗭紝璧嬪��
+          let arr = [];
+          for (let k = 0; k < this.getDataIndex.length; k++) {
+            arr.push(
+              this.dataAcquisitionInfoNew[this.getData[i].faName][
+                this.getData[i].child[j].name
+              ].result[this.getDataIndex[k]]
+            );
+          }
+          this.dataAcquisitionInfoNew[this.getData[i].faName][
+            this.getData[i].child[j].name
+          ].result = arr;
+        }
+      }
+      this.getDataIndexLoading = true;
+      // 璧嬪�煎畬鎴愬悗闇�瑕佸啀娆¤繘鍏ュ鐞嗘暟閲囩嚎绋嬮噷鍘诲鐞嗘暟鎹�
+      this.handleDataAcquisition(this.dataAcquisitionInfoNew);
+    },
+    // 澶氱嚎绋�
+    startWorker() {
+      if (this.worker) {
+        this.stopWorker(); // 纭繚涔嬪墠鐨� Worker 宸插仠姝�
+      }
+      // 鍒涘缓 Worker 瀹炰緥
+      this.worker = new Worker("/static/js/worker.js");
+      if (this.worker0) {
+        this.stopWorker(); // 纭繚涔嬪墠鐨� Worker 宸插仠姝�
+      }
+      // 鍒涘缓 Worker 瀹炰緥
+      this.worker0 = new Worker("/static/js/worker0.js");
+    },
+    // 鍋滄澶氱嚎绋�
+    stopWorker() {
+      if (this.worker) {
+        this.worker.terminate();
+        this.worker = null;
+      }
+      if (this.worker0) {
+        this.worker0.terminate();
+        this.worker0 = null;
+      }
+    },
+    // 娓╁害寰幆---寮�濮�
+    changeItem(row) {
+      // 鍐呯銆佸绔繘琛岃祴鍊奸�昏緫澶勭悊
+
+      // 璧嬪�煎埌椤甸潰
+      if (row.value0 && !row.value1) {
+        // 璧嬪�煎唴绔�
+        this.$set(row, "comValue", Number(row.value0).toFixed(3));
+      } else if (!row.value0 && row.value1) {
+        // 璧嬪�煎绔�
+        this.$set(row, "comValue", Number(row.value1).toFixed(3));
+      } else if (row.value0 && row.value1) {
+        // 璧嬪�艰绠楀��
+        this.$set(
+          row,
+          "comValue",
+          ((Number(row.value0) + Number(row.value1)) / 2).toFixed(3)
+        );
+      } else {
+        return;
+      }
+      // 璧嬪�煎埌浼犲埌鍚庣鐨勫弬鏁�---鐗规畩椤圭洰蹇呴』涓ユ牸鎸夌収杩欑鏍煎紡浼犲弬锛屽惁鍒欏悗绔瘑鍒笉浜�
+      // 璧嬪�煎唴澶栫
+      this.param[row.id].insValue = [
+        {
+          i: row.id,
+          v: {
+            v: row.value0,
+          },
+        },
+        {
+          i: row.id,
+          v: {
+            v: row.value1,
+          },
+        },
+      ];
+      // 璧嬪�艰绠楀��
+      this.param[row.id].comValue = [
+        {
+          i: row.id,
+          v: {
+            v: row.comValue,
+          },
+        },
+      ];
+      // 鍒ゆ柇缁撴灉锛屽緱鍑虹粨璁�
+      if (this.wareForm.inspectionItemSubclass != "20(甯告俯)") {
+        // 缁欓〉闈㈠垪琛ㄨ祴鍊兼渶缁堝��
+        row.resValue = row.comValue
+          ? Math.abs(row.comValue - Number(row.insProduct.complue)).toFixed(3)
+          : "";
+        // 缁欎紶閫掑埌鍚庣鐨勫弬鏁拌祴鍊兼渶缁堝��
+        this.param[row.id].resValue.v.v = row.resValue;
+        // 鍒ゆ柇缁撹锛岀粰椤甸潰鍒楄〃璧嬪�肩粨璁�
+        if (row.ask && row.resValue) {
+          if (row.ask.includes("<")) {
+            row.insResult = row.resValue < row.ask.split("<")[1] ? 1 : 0;
+          } else if (row.ask.includes(">")) {
+            row.insResult = row.resValue < row.ask.split(">")[1] ? 1 : 0;
+          } else if (row.ask.includes("=")) {
+            row.insResult = row.resValue == row.ask.split("=")[1] ? 1 : 0;
+          } else if (row.ask.includes("鈮�")) {
+            row.insResult = row.resValue >= row.ask.split("鈮�")[1] ? 1 : 0;
+          } else if (row.ask.includes("鈮�")) {
+            row.insResult = row.resValue <= row.ask.split("鈮�")[1] ? 1 : 0;
+          }
+          // 缁欎紶閫掑埌鍚庣鐨勫弬鏁拌祴鍊肩粨璁�
+          this.param[row.id].insResult.v.v = row.insResult;
+        }
+      } else {
+        // 20(甯告俯)榛樿鍚堟牸
+        this.param[row.id].insResult.v.v = 1;
+      }
+      this.$refs.wareTableData.doLayout();
+      // 杩涜鏁版嵁鐨勪繚瀛�
+      this.saveInsContext(row.id);
+    },
+    // 褰撳惊鐜鏁般�佹俯搴︾偣鍙樺寲銆丳K8000鏁伴噰鏃朵細璋冪敤锛屼富瑕佹槸鑾峰彇淇℃伅杩涜鍥炴樉
+    wareFormChange(m, type) {
+      if (
+        this.PROJECT != "妫�娴嬩腑蹇�" ||
+        !this.tableLists.find((m) => m.templateId == this.currentTable) ||
+        this.tableLists.find((m) => m.templateId == this.currentTable)
+          .templateName != "娓╁害寰幆妫�楠屽師濮嬭褰�"
+      ) {
+        return;
+      }
+      if (m && type) {
+        this.wareForm[type] = m;
+      }
+      let wareForm = { ...this.wareForm };
+      if (this.wareForm.inspectionItemSubclass == "20(甯告俯)") {
+        wareForm.inspectionItemSubclass = "20鈩�(甯告俯)";
+      } else {
+        wareForm.inspectionItemSubclass = wareForm.inspectionItemSubclass + "鈩�";
+      }
+      this.wareTableDataLoading = true;
+      this.$axios
+        .post(this.$api.insOrderPlan.temCycle, {
+          sampleId: this.currentSample.id,
+          ...wareForm,
+        })
+        .then((res) => {
+          this.wareTableDataLoading = false;
+          if (res.code == 201) return;
+          let { productVos, sampleVo } = res.data;
+          this.wareForm0 = sampleVo;
+          // 鍒濆鍖栦紶鍒板悗绔殑鍙傛暟
+          productVos = productVos.map((m) => {
+            let obj = { ...m, ...m.insProduct };
+            this.param[obj.id] = {
+              insValue: [],
+              comValue: [],
+              resValue: {
+                i: obj.id,
+                v: {
+                  v: null,
+                },
+              },
+              equipValue: [],
+              equipName: [],
+              insResult: {
+                i: obj.id,
+                v: {
+                  v: null,
+                },
+              },
+            };
+            let insProductResult = obj.insProductResult;
+            // 缁欎紶閫掑埌鍚庣鐨勫弬鏁拌繘琛岃祴鍊硷紝缁欓〉闈㈡暟鎹祴鍊�
+            if (insProductResult) {
+              for (let i in insProductResult) {
+                switch (i) {
+                  // 妫�楠屽�艰祴鍊�
+                  case "insValue":
+                    let insValue = JSON.parse(insProductResult[i]);
+                    if (insValue && insValue.length > 1) {
+                      // 鍚庣鐨勫弬鏁拌繘琛岃祴鍊�
+                      this.param[obj.id].insValue = [
+                        {
+                          i: obj.id,
+                          v: {
+                            v: insValue[0].v,
+                          },
+                        },
+                        {
+                          i: obj.id,
+                          v: {
+                            v: insValue[1].v,
+                          },
+                        },
+                      ];
+                      // 椤甸潰鏁版嵁璧嬪��
+                      obj.value0 = insValue[0].v;
+                      obj.value1 = insValue[1].v;
+                    } else if (insValue && insValue.length == 1) {
+                      // 鍚庣鐨勫弬鏁拌繘琛岃祴鍊�
+                      this.param[obj.id].insValue = [
+                        {
+                          i: obj.id,
+                          v: {
+                            v: insValue[0].v,
+                          },
+                        },
+                        {
+                          i: obj.id,
+                          v: {
+                            v: "",
+                          },
+                        },
+                      ];
+                      // 椤甸潰鏁版嵁璧嬪��
+                      obj.value0 = insValue[0].v;
+                      obj.value1 = "";
+                    }
+                    break;
+                  // 璁$畻鍊艰祴鍊�
+                  case "comValue":
+                    let comValue = JSON.parse(insProductResult[i]);
+                    if (comValue && comValue.length > 0) {
+                      // 鍚庣鐨勫弬鏁拌繘琛岃祴鍊�
+                      this.param[obj.id].comValue = [
+                        {
+                          i: obj.id,
+                          v: {
+                            v: comValue[0].v,
+                          },
+                        },
+                      ];
+                      // 椤甸潰鏁版嵁璧嬪��
+                      obj.comValue = comValue[0].v;
+                    }
+                    break;
+                  default:
+                    break;
+                }
+              }
+              // 鏈�缁堝�艰祴鍊�
+              // 鍚庣鐨勫弬鏁拌繘琛岃祴鍊�
+              this.param[obj.id].resValue = {
+                i: obj.id,
+                v: {
+                  v: obj.lastValue,
+                },
+              };
+              // 椤甸潰鏁版嵁璧嬪��
+              obj.resValue = obj.lastValue;
+              // 缁撹璧嬪��
+              // 鍚庣鐨勫弬鏁拌繘琛岃祴鍊�
+              this.param[obj.id].insResult = {
+                i: obj.id,
+                v: {
+                  v: obj.insResult,
+                },
+              };
+            }
+            return obj;
+          });
+          // 浠ヤ笅鏄娓╁害寰幆椤甸潰鍛堢幇杩涜澶勭悊锛屽幓閲嶃�佹暟鎹噸缃瓑绛�
+          let arr = [];
+          let arr0 = [];
+          let mySet = new Set();
+          productVos.forEach((m, i) => {
+            let num0 = mySet.size;
+            mySet.add(m.inspectionItemClass);
+            let num1 = mySet.size;
+            if (num0 != num1) {
+              if (i > 0) {
+                arr.push(arr0);
+              }
+              arr0 = [];
+              arr0.push(m);
+            } else {
+              arr0.push(m);
+            }
+          });
+          arr.push(arr0);
+          let arr1 = [];
+          this.wareLength = [];
+          for (let i = 0; i < arr.length; i++) {
+            this.wareLength.push(arr[i][0].inspectionItemClass);
+          }
+          for (let i = 0; i < arr[0].length; i++) {
+            arr1.push([]);
+          }
+          arr.forEach((item, index) => {
+            item.forEach((m, i) => {
+              try {
+                arr1[i].push(m);
+              } catch (e) {
+                console.log(e);
+              }
+            });
+          });
+          let arr2 = [];
+          arr1.forEach((item) => {
+            let obj = {
+              bushColor: item[0].bushColor,
+              code: item[0].code,
+              color: item[0].color,
+              arr: item,
+            };
+            arr2.push(obj);
+          });
+          // 杩欐槸椤甸潰鏈�缁堝憟鐜扮殑鏍煎紡
+          this.wareTableData = arr2;
+        });
+      // 鑾峰彇璁惧鍒楄〃
+      this.getEquipOptions(true, this.currentSample.insProduct[0].id);
+      // this.$refs.wareTableData&&this.$refs.wareTableData.doLayout()
+    },
+    // 娓╁害寰幆---缁撴潫
+    // 鐑惊鐜�---寮�濮�
+    // 寰幆娆℃暟鍒囨崲鏃惰皟鐢�
+    thermalCyclingChange() {
+      this.thermalCyclingLoading = true;
+      this.$axios
+        .post(this.$api.insOrderPlan.temCycle, {
+          sampleId: this.currentSample.id,
+          inspectionItem: this.thermalCyclingInfo.inspectionItem,
+        })
+        .then((res) => {
+          this.thermalCyclingLoading = false;
+          if (res.code == 201) return;
+          let { productVos, sampleVo } = res.data;
+          this.thermalCyclingInfo = { ...this.thermalCyclingInfo, ...sampleVo };
+          // if(this.thermalCyclingInfo.inspectionItem>1){
+          //   for(let i in this.param){
+          //     if(this.param[i].inspectionItemSubclass){
+          //       delete this.param[i]
+          //     }
+          //   }
+          // }
+          for (let i in this.param) {
+            if (this.param[i].inspectionItemSubclass) {
+              delete this.param[i];
+            }
+          }
+          if (productVos.length > 0) {
+            this.thermalCyclingInfo.inspectionItemClass =
+              productVos[0].insProduct.inspectionItemClass;
+            // 鏍规嵁妫�楠岄」锛屽垵濮嬪寲浼犲埌鍚庣鐨勫弬鏁�
+            productVos.forEach((item) => {
+              this.param[item.insProduct.id] = {
+                insValue: [],
+                comValue: [],
+                resValue: {
+                  i: item.insProduct.id,
+                  r: 0,
+                  c: 0,
+                  v: {
+                    v: null,
+                  },
+                },
+                equipValue: [],
+                equipName: [],
+                insResult: {
+                  i: item.insProduct.id,
+                  v: {
+                    v: null,
+                  },
+                },
+                inspectionItemSubclass: item.insProduct.inspectionItemSubclass,
+              };
+              let obj = { ...item, ...item.insProduct };
+              let insProductResult = obj.insProductResult;
+              if (insProductResult) {
+                // 缁欓〉闈㈠垪琛ㄨ祴鍊硷紝缁欏悗绔紶鍙傝祴鍊�
+                for (let i in insProductResult) {
+                  switch (i) {
+                    case "insValue":
+                      // 缁欓〉闈㈠垪琛ㄨ祴鍊�
+                      let insValue = JSON.parse(insProductResult[i]);
+                      if (insValue && insValue.length > 0) {
+                        this.thermalCyclingInfo.length = 0;
+                        this.thermalCyclingInfo.arr.forEach((a) => {
+                          if (a.name == obj.inspectionItemSubclass) {
+                            a.arr = [];
+                            for (let i = 0; i < insValue.length; i++) {
+                              a.arr.push({
+                                value0: insValue[i].v,
+                                value1: insValue[i].w,
+                              });
+                              this.thermalCyclingInfo.length++;
+                            }
+                            a.insResult = obj.insResult;
+                          }
+                        });
+                        // 缁欏悗绔紶鍙傝祴鍊�
+                        this.param[obj.id].insValue = [];
+                        insValue.forEach((m) => {
+                          this.param[obj.id].insValue.push({
+                            i: obj.id,
+                            r: 0,
+                            c: 0,
+                            w: m.w,
+                            v: {
+                              v: m.v,
+                            },
+                          });
+                        });
+                      }
+                      break;
+                  }
+                }
+                // 缁欏悗绔紶鍙傝祴鍊�
+                this.param[obj.id].insResult = {
+                  i: obj.id,
+                  v: {
+                    v: obj.insResult,
+                  },
+                };
+              } else {
+                // 缁欓〉闈㈠垪琛ㄨ祴鍊�
+                this.thermalCyclingInfo.arr.forEach((a) => {
+                  if (a.name == obj.inspectionItemSubclass) {
+                    a.insResult = null;
+                    a.arr = [];
+                    a.arr.push({
+                      value0: "",
+                      value1: "",
+                    });
+                  }
+                });
+                this.thermalCyclingInfo.length = 1;
+              }
+            });
+          }
+          // 鑾峰彇璁惧鍒楄〃
+          this.getEquipOptions(true, this.currentSample.insProduct[0].id);
+        });
+    },
+    // 娣诲姞妫�楠屽��
+    handleAddThermal() {
+      this.thermalCyclingInfo.length++;
+      this.thermalCyclingInfo.arr.forEach((item) => {
+        item.arr.push({
+          value0: "",
+          value1: "",
+        });
+      });
+    },
+    // 鍒犻櫎妫�楠屽��
+    handleDeleteThermal() {
+      if (this.thermalCyclingInfo.length == 1) {
+        this.$message.error("鏈�鍚庝竴鏉℃暟鎹笉鑳藉垹闄�");
+        return;
+      } else {
+        this.thermalCyclingInfo.length--;
+        this.thermalCyclingInfo.arr.forEach((item) => {
+          item.arr.pop();
+        });
+        // 鍒犻櫎鍚庨渶瑕佷繚瀛樹竴涓嬫暟鎹�
+        this.saveThermalCycling(true, { name: "瀵肩嚎娓╁害" }, true, true);
+      }
+    },
+    saveThermalCycling(m, item, type, isDelete) {
+      console.log(m, item, type);
+      console.log(this.thermalCyclingInfo);
+      // 缁撴灉鍒ゆ柇
+      if (m == "") {
+        m = "0";
+      }
+      if (m && item && type) {
+        if (
+          item.name == "瀵肩嚎娓╁害" ||
+          item.name == "鑰愬紶娓╁害" ||
+          item.name == "鎺ョ画娓╁害"
+        ) {
+          this.thermalCyclingInfo.arr.forEach((a) => {
+            if (a.name == "鑰愬紶娓╁害") {
+              a.arr.forEach((b, i) => {
+                // 鑾峰彇瀵瑰簲鐨勫绾挎俯搴�
+                let num0 = 0;
+                this.thermalCyclingInfo.arr.forEach((c) => {
+                  if (c.name == "瀵肩嚎娓╁害") {
+                    num0 = c.arr[i].value0;
+                  }
+                });
+                // 鍒ゆ柇缁撹
+                if (!num0 || !b.value0) {
+                  b.state = null;
+                } else if (Number(num0) > Number(b.value0)) {
+                  b.state = 1;
+                } else {
+                  b.state = 0;
+                }
+              });
+              let state = a.arr.filter((b) => b.state == null).length;
+              let state0 = a.arr.filter((b) => b.state == 0).length;
+              let state1 = a.arr.filter((b) => b.state == 1).length;
+              if (state > 0) {
+                // 寰呭畾
+                a.insResult = null;
+              } else if (state0 > 0) {
+                // 涓嶅悎鏍�
+                a.insResult = 0;
+              } else if (state1 == a.arr.length) {
+                // 鍚堟牸
+                a.insResult = 1;
+              }
+            }
+            if (a.name == "鎺ョ画娓╁害") {
+              a.arr.forEach((b, i) => {
+                // 鑾峰彇瀵瑰簲鐨勫绾挎俯搴�
+                let num0 = 0;
+                this.thermalCyclingInfo.arr.forEach((c) => {
+                  if (c.name == "瀵肩嚎娓╁害") {
+                    num0 = c.arr[i].value0;
+                  }
+                });
+                if (!num0 || !b.value0) {
+                  b.state = null;
+                } else if (Number(num0) > Number(b.value0)) {
+                  b.state = 1;
+                } else {
+                  b.state = 0;
+                }
+              });
+              let state = a.arr.filter((b) => b.state == null).length;
+              let state0 = a.arr.filter((b) => b.state == 0).length;
+              let state1 = a.arr.filter((b) => b.state == 1).length;
+              if (state > 0) {
+                a.insResult = null;
+              } else if (state0 > 0) {
+                a.insResult = 0;
+              } else if (state1 == a.arr.length) {
+                a.insResult = 1;
+              }
+            }
+          });
+        }
+      }
+      // 缁欏悗绔紶鍙傝祴鍊�
+      this.thermalCyclingInfo.arr.forEach((item) => {
+        for (let i in this.param) {
+          if (this.param[i].inspectionItemSubclass == item.name) {
+            switch (item.name) {
+              case "鐜娓╁害":
+                this.param[i].insResult.v.v = 1;
+                this.param[i].insValue = [];
+                item.arr.forEach((insValue) => {
+                  this.param[i].insValue.push({
+                    i: i,
+                    r: 0,
+                    c: 0,
+                    v: {
+                      v: insValue.value0,
+                    },
+                  });
+                });
+                break;
+              case "瀵肩嚎娓╁害":
+                this.param[i].insResult.v.v = 1;
+                this.param[i].insValue = [];
+                item.arr.forEach((insValue) => {
+                  this.param[i].insValue.push({
+                    i: i,
+                    r: 0,
+                    c: 0,
+                    w: insValue.value1,
+                    v: {
+                      v: insValue.value0,
+                    },
+                  });
+                });
+                break;
+              case "鑰愬紶娓╁害":
+                this.param[i].insValue = [];
+                item.arr.forEach((insValue) => {
+                  this.param[i].insValue.push({
+                    i: i,
+                    r: 0,
+                    c: 0,
+                    w: insValue.value1,
+                    v: {
+                      v: insValue.value0,
+                    },
+                  });
+                });
+                this.param[i].insResult.v.v = item.insResult;
+                break;
+              case "鎺ョ画娓╁害":
+                this.param[i].insValue = [];
+                item.arr.forEach((insValue) => {
+                  this.param[i].insValue.push({
+                    i: i,
+                    r: 0,
+                    c: 0,
+                    w: insValue.value1,
+                    v: {
+                      v: insValue.value0,
+                    },
+                  });
+                });
+                this.param[i].insResult.v.v = item.insResult;
+                break;
+            }
+          }
+        }
+      });
+      // 淇濆瓨鏁版嵁
+      let currentId = null;
+      for (let i in this.param) {
+        if (this.param[i].inspectionItemSubclass == item.name) {
+          currentId = i;
+        }
+      }
+      if (isDelete) {
+        this.saveInsContext(currentId, true);
+      } else {
+        this.saveInsContext(currentId);
+      }
+    },
+    // 鐑惊鐜�---缁撴潫
+    // 鍗曟牴鍨傜洿鐕冪儳---寮�濮�
+    singleRootVertical() {
+      let obj = this.currentSample.insProduct.filter((m) =>
+        m.inspectionItem.includes("鍗曟牴鍨傜洿鐕冪儳")
+      )[0];
+      this.singleRootVerticalInfo.arr = this.currentSample.insProduct.filter(
+        (m) => m.inspectionItem.includes("鍗曟牴鍨傜洿鐕冪儳")
+      );
+      if (obj) {
+        let tell = obj.tell;
+        this.singleRootVerticalInfo.num = Number(
+          tell.split(",")[1].replace("鏍�", "")
+        );
+        this.singleRootVerticalInfo.model = obj.model;
+        this.singleRootVerticalInfo.methodName = obj.methodS;
+        this.singleRootVerticalInfo.arr.forEach((a) => {
+          this.$set(a, "value", []);
+          a.value = [];
+          for (let i = 0; i < this.singleRootVerticalInfo.num; i++) {
+            this.$set(a.value, i, "");
+            if (a.insProductResult) {
+              let valueList = JSON.parse(a.insProductResult.insValue);
+              if (valueList.length > 0) {
+                this.$set(a.value, i, valueList[i].v);
+              }
+            }
+          }
+          this.$set(a, "resValue", a.lastValue);
+          this.$set(a, "insResult", a.insResult);
+        });
+        this.getEquipOptions(true, obj.id);
+      }
+    },
+    changeSingleRootVertical(value, item) {
+      let arr = item.value.filter((m) => m !== "");
+      if (
+        item.inspectionItemSubclass == "涓婃敮鏋朵笅缂樺拰鐐寲閮ㄥ垎涓婅捣鐐逛箣闂寸殑璺濈"
+      ) {
+        // 姹傛渶灏忓��
+        item.resValue = Math.min(...arr);
+      } else {
+        // 姹傛渶澶у��
+        item.resValue = Math.max(...arr);
+      }
+      // 淇濆瓨鏈�缁堝��
+      this.param[item.id].resValue = {
+        i: item.id,
+        v: {
+          v: item.resValue,
+        },
+      };
+      // 淇濆瓨妫�楠屽��
+      this.param[item.id].insValue = [];
+      item.value.forEach((a) => {
+        let obj = {
+          i: item.id,
+          v: {
+            v: a,
+          },
+        };
+        this.param[item.id].insValue.push(obj);
+      });
+      let ask = item.ask;
+      if (ask) {
+        if (ask.includes("锝�")) {
+          ask = ask.replace("锝�", "~");
+        }
+        if (ask.includes("锛�")) {
+          ask = ask.replace("锛�", ">");
+        }
+        if (ask.includes("锛�")) {
+          ask = ask.replace("锛�", "<");
+        }
+        if (ask.includes("=")) {
+          let val = ask.replace("=", "");
+          item.insResult = item.resValue == Number(val) ? 1 : 0;
+        } else if (ask.includes("鈮�")) {
+          let val = ask.replace("鈮�", "");
+          item.insResult =
+            item.resValue == Number(val) || item.resValue > Number(val) ? 1 : 0;
+        } else if (ask.includes("鈮�")) {
+          let val = ask.replace("鈮�", "");
+          item.insResult =
+            item.resValue == Number(val) || item.resValue < Number(val) ? 1 : 0;
+        } else if (ask.includes("<")) {
+          let val = ask.replace("<", "");
+          item.insResult = item.resValue < Number(val) ? 1 : 0;
+        } else if (ask.includes(">")) {
+          let val = ask.replace(">", "");
+          item.insResult = item.resValue > Number(val) ? 1 : 0;
+        }
+        // 淇濆瓨缁撹
+        this.param[item.id].insResult = {
+          i: item.id,
+          v: {
+            v: item.insResult,
+          },
+        };
+        // 杩涜鏁版嵁鐨勪繚瀛�
+        this.saveInsContext(item.id);
+      }
+    },
+    // 鍗曟牴鍨傜洿鐕冪儳---缁撴潫
+    // 淇濆瓨婀垮害銆佹俯搴︽暟鎹�
+    subOtherForm(m, type) {
+      // let ids = []
+      // for (let i in this.param) {
+      //   ids.push(i)
+      // }
+      this.$axios
+        .post(
+          this.$api.insOrderPlan.write,
+          {
+            [type]: Number(m),
+            insOrderId: this.currentSample.insOrderId,
+          },
+          {
+            headers: {
+              "Content-Type": "application/json",
+            },
+            noQs: true,
+          }
+        )
+        .then((res) => {
+          if (res.code == 201) return;
+          this.$message.success("淇濆瓨鎴愬姛");
+        });
+    },
+    // 鏉冮檺鑾峰彇
+    getPower() {
+      let power = JSON.parse(sessionStorage.getItem("power"));
+      let fileDel = false;
+      let fileAdd = false;
+      let collected = false;
+      let temDataAcquisition = false;
+      for (var i = 0; i < power.length; i++) {
+        if (power[i].menuMethod == "uploadFile") {
+          fileAdd = true;
+        }
+        if (power[i].menuMethod == "delfile") {
+          fileDel = true;
+        }
+        if (power[i].menuMethod == "isItAllowedToModifyTheCollectedValues") {
+          collected = true;
+        }
+        if (power[i].menuMethod == "temDataAcquisition") {
+          temDataAcquisition = true;
+        }
+      }
+      if (!fileDel) {
+        this.componentData0.do.splice(1, 1);
+      }
+      this.fileAdd = fileAdd;
+      this.collected = collected;
+      this.temDataAcquisition = temDataAcquisition;
+    },
+    uploadSample() {
+      this.$axios
+        .post(this.$api.insOrderPlan.doInsOrder, {
+          id: this.id,
+          laboratory: this.sonLaboratory,
+        })
+        .then(async (res) => {
+          this.sampleProduct = res.data.sampleProduct;
+        });
+    },
+    // 鏍规嵁绫诲瀷銆佷换鍔d銆佸疄楠屽鏉ヨ幏鍙栨牱鍝佺殑妫�楠岄」淇℃伅
+    async getCurrentProduct(id, type) {
+      this.tableLoading = true;
+      let res = await this.$axios.post(
+        this.$api.insOrderPlan.getInsProduct +
+          "?id=" +
+          id +
+          "&type=" +
+          type +
+          "&laboratory=" +
+          this.sonLaboratory
+      );
+      this.tableLoading = false;
+      console.log("getCurrentProduct-->", res.data);
+      return res.data;
+    },
+    handleChangeBushing(row, column, event) {
+      this.currentBushing = row;
+      this.fiberOpticTape = [];
+      this.currentFiberOpticTape = null;
+      this.fiberOptic = [];
+      this.currentFiberOptic = null;
+      if (row.fiber && row.fiber.length > 0) {
+        // 鐩存帴閰嶇疆鍏夌氦
+        this.fiberOptic = row.fiber;
+      } else if (row.fibers && row.fibers.length > 0) {
+        // 閰嶇疆鍏夌氦甯﹀悗锛屽啀閰嶇疆鍏夌氦
+        this.fiberOpticTape = row.fibers;
+      }
+      this.bushingVisible = false;
+      this.currentKey0 = row.index;
+    },
+    async handleChangeOptic(row, column, event) {
+      this.currentFiberOptic = row;
+      this.currentFiberOptic.productList.forEach((a) => {
+        this.param[a.id] = {
+          insValue: [],
+          comValue: [],
+          resValue: null,
+          equipValue: [],
+          equipName: [],
+          insResult: null,
+        };
+      });
+      this.fiberOpticVisible = false;
+      let list = await this.getCurrentProduct(row.id, 2);
+      this.getTableLists0(list);
+      this.currentKey2 = row.index;
+    },
+    async handleChangeTape(row, column, event) {
+      this.currentFiberOpticTape = row;
+      this.param = {};
+      this.fiberOptic = [];
+      this.currentFiberOptic = null;
+      this.currentFiberOpticTape.productList.forEach((a) => {
+        this.param[a.id] = {
+          insValue: [],
+          comValue: [],
+          resValue: null,
+          equipValue: [],
+          equipName: [],
+          insResult: null,
+        };
+      });
+      this.fiberOpticTapeVisible = false;
+      let list = await this.getCurrentProduct(row.id, 1);
+      this.getTableLists0(list);
+      if (row.fiber && row.fiber.length > 0) {
+        // 閰嶇疆鍏夌氦
+        this.fiberOptic = row.fiber;
+      }
+      this.currentKey1 = row.index;
+    },
+    // 鍒囨崲鏍峰搧
+    async handleChangeSample(row, column, event) {
+      // 鍒濆鍖栨暟鎹�
+      this.param = {};
+      // 娓呯┖鍏夌氦閰嶇疆鐩稿叧鏁版嵁
+      this.fiberOpticTape = [];
+      this.currentFiberOpticTape = null;
+      this.fiberOptic = [];
+      this.currentFiberOptic = null;
+      this.bushing = [];
+      this.currentBushing = null;
+      this.sampleVisible = false;
+      this.filterSampleCode = null;
+      this.sampleProduct = JSON.parse(
+        JSON.stringify(this.fileterSampleProducts)
+      );
+      // 璧嬪�兼牱鍝�
+      this.currentSample = this.HaveJson(row);
+      let list = await this.getCurrentProduct(row.id, 0);
+      // 璧嬪�兼牱鍝佹楠岄」
+      this.currentSample.insProduct = this.HaveJson(list);
+      // 鍒濆鍖栧悗绔紶鍙�
+      this.param = {};
+      this.changeType = 0;
+      this.currentSample.insProduct.forEach((a, j) => {
+        this.param[a.id] = {
+          insValue: [],
+          comValue: [],
+          resValue: null,
+          equipValue: [],
+          equipName: [],
+          insResult: null,
+        };
+      });
+      // 鑾峰彇濂楃,鍏夌氦甯�,鍏夌氦鏁版嵁
+      this.getReportModel(row.id);
+      let bushing = this.currentSample.bushing;
+      if (bushing && bushing.length > 0) {
+        this.bushing = bushing;
+      }
+      // 澶勭悊椤甸潰鍒楄〃鏁版嵁
+      this.getTableLists();
+      // this.currentKey = row.index
+      this.currentKey = this.sampleProduct.findIndex((m) => m.id == row.id) + 1;
+      this.currentTab = null;
+      // 鍚戝绾跨▼鍘讳繚瀛橀〉闈㈠垪琛ㄦ暟鎹�,鍚庣浼犲弬,褰撳墠妯℃澘淇℃伅
+      this.worker.postMessage(
+        JSON.stringify({
+          modelType: this.sampleProduct[0].model,
+          type: "saveData",
+          tableList: this.tableList,
+          param: this.param,
+          currentTable: this.currentTable,
+        })
+      );
+    },
+    // 鏉惧绠$殑鍒ゆ柇\濡傛灉changeType涓嶇瓑浜�3閭d箞椤甸潰涓嶅睍绀烘澗濂楃妫�楠岄」
+    handleCasing(inspectionItem) {
+      if (this.changeType != 3) {
+        if (inspectionItem.includes("鏉惧绠�")) {
+          return false;
+        } else {
+          return true;
+        }
+      } else {
+        return true;
+      }
+    },
+    // 鑾峰彇濂楃,鍏夌氦甯�,鍏夌氦鏁版嵁
+    getReportModel(id) {
+      if (this.PROJECT != "妫�娴嬩腑蹇�") {
+        return;
+      }
+      this.getReportModelLoading = true;
+      this.$axios
+        .post(
+          this.$api.insOrderPlan.getReportModel +
+            "?sampleId=" +
+            id +
+            "&sonLaboratory=" +
+            this.sonLaboratory,
+          {}
+        )
+        .then((res) => {
+          this.getReportModelLoading = false;
+          this.fibers = res.data["鍏夌氦甯�"];
+          this.fiber = res.data["鍏夌氦"];
+          this.casing = res.data["濂楃"];
+        });
+    },
+    // 濂楃,鍏夌氦甯�,鍏夌氦绛夊垏鎹�,瀵瑰簲鍘熷璁板綍妯℃澘涔熻鍒囨崲
+    async handleChange(m, type) {
+      if (this.fiber && this.fiber.length > 0) {
+        const fiber = this.fiber.find((ele) => ele.id == m);
+        if (fiber) {
+          this.insFibersId = fiber.insFibersId;
+        }
+      }
+      this.changeType = type;
+      if (m) {
+        // 鑾峰彇妫�楠岄」
+        let list = await this.getCurrentProduct(m, type);
+        if (list.length > 0) {
+          // 鍒濆鍖栧悗绔紶鍙�
+          this.param = {};
+          list.forEach((a) => {
+            this.param[a.id] = {
+              insValue: [],
+              comValue: [],
+              resValue: null,
+              equipValue: [],
+              equipName: [],
+              insResult: null,
+            };
+          });
+          // 椤甸潰鍒楄〃鏁版嵁澶勭悊
+          this.getTableLists0(list);
+          // 鑾峰彇濂楃,鍏夌氦甯�,鍏夌氦鏁版嵁
+          this.getReportModel(this.currentSample.id);
+          // 鍚戝绾跨▼淇濆瓨鏁版嵁
+          this.worker.postMessage(
+            JSON.stringify({
+              modelType: this.sampleProduct[0].model,
+              type: "saveData",
+              tableList: this.tableList,
+              param: this.param,
+              currentTable: this.currentTable,
+              bushing: m,
+            })
+          );
+        } else {
+          this.tableLists = [];
+          this.tableList = [];
+          this.$message.error("妫�楠岄」涓虹┖");
+        }
+      }
+    },
+    // 鏀瑰彉浠诲姟
+    handleChangeTask(row) {
+      if (row.length > 0) this.id = row[0].id;
+      this.taskVisible = false;
+    },
+    // 瀛楀吀鑾峰彇淇℃伅
+    getTypeDicts() {
+      this.$axios
+        .post(this.$api.enums.selectEnumByCategory, {
+          category: "绱ф�ョ▼搴�",
+        })
+        .then((res) => {
+          let data = res.data;
+          data.forEach((ele) => {
+            if (ele.value === "0") {
+              ele.type = "success";
+            } else if (ele.value === "1") {
+              ele.type = "warning";
+            } else if (ele.value === "2") {
+              ele.type = "danger";
+            }
+          });
+          this.urgentList = data;
+          this.componentData.tagField.type.select = data;
+        });
+      this.$axios
+        .post(this.$api.enums.selectEnumByCategory, {
+          category: "杞借嵎",
+        })
+        .then((res) => {
+          this.loadList = res.data;
+        });
+    },
+    // 瀛楀吀鑾峰彇淇℃伅
+    getInsStateDicts() {
+      this.$axios
+        .post(this.$api.enums.selectEnumByCategory, {
+          category: "妫�楠屼换鍔$姸鎬�",
+        })
+        .then((res) => {
+          let data = res.data;
+          data.forEach((ele) => {
+            //0:寰呮楠� 1:妫�楠屼腑 2:宸叉楠� 3:寰呭鏍� 4:澶嶆牳鏈�氳繃 5:澶嶆牳閫氳繃
+            if (["2", "5"].includes(ele.value)) {
+              ele.type = "success";
+            } else if (["1", "3"].includes(ele.value)) {
+              ele.type = "warning";
+            } else if (["0", "4"].includes(ele.value)) {
+              ele.type = "danger";
+            }
+          });
+          this.typeList = data;
+          this.componentData.tagField.insState.select = data;
+        });
+    },
+    // 瀛楀吀鑾峰彇淇℃伅
+    getComparisonList() {
+      this.$axios
+        .post(this.$api.enums.selectEnumByCategory, {
+          category: "琛ㄦ牸鍧愭爣杞崲",
+        })
+        .then((res) => {
+          let data = res.data;
+          this.comparisonList = data;
+        });
+    },
+    // 鑾峰彇妫�楠屽�间负涓嬫媺鏃剁殑涓嬫媺鍒楄〃
+    selectEnumByCategoryOfSelect(val) {
+      this.enumList = [];
+      if (val === undefined || val === null) {
+        return;
+      }
+      this.$axios
+        .post(this.$api.enums.selectEnumByCategory, {
+          category: val,
+        })
+        .then((res) => {
+          this.enumList = res.data;
+        });
+    },
+    tableRowClassName({ row, rowIndex }) {
+      row.index = rowIndex + 1;
+    },
+    // 澶勭悊椤甸潰鍒楄〃鏁版嵁--鍘婚噸,鐢熸垚妫�楠屾ā鏉垮垏鎹㈠垪琛�
+    getTableLists() {
+      const mySet1 = new Set();
+      this.tableLists = this.currentSample.insProduct.filter((m) => {
+        let num0 = mySet1.size;
+        if (m.templateId != null && m.template != null) {
+          try {
+            mySet1.add(
+              JSON.stringify({
+                template: m.template,
+                templateId: m.templateId,
+              })
+            );
+          } catch (error) {
+            console.log(222, error);
+          }
+        }
+        let num1 = mySet1.size;
+        if (num1 > num0) {
+          return m;
+        }
+      });
+      console.log(111, this.tableLists);
+      if (this.tableLists && this.tableLists.length > 0) {
+        this.tableList = null;
+        this.tableList = [this.tableLists[0]];
+        this.currentTable = this.tableLists[0].templateId;
+        // 澶勭悊椤甸潰鍒楄〃鏁版嵁
+        this.handleTableData();
+      }
+    },
+    // 鍏夌氦閰嶇疆鐩稿叧妯℃澘table鍒楄〃
+    getTableLists0(list) {
+      const mySet1 = new Set();
+      this.tableLists = list.filter((m) => {
+        let num0 = mySet1.size;
+        if (m.templateId != null && m.template != null) {
+          try {
+            mySet1.add(
+              JSON.stringify({
+                template: m.template,
+                templateId: m.templateId,
+              })
+            );
+          } catch (error) {
+            console.log(333, error);
+          }
+        }
+        let num1 = mySet1.size;
+        if (num1 > num0) {
+          return m;
+        }
+      });
+      if (this.tableLists && this.tableLists.length > 0) {
+        this.tableList = null;
+        this.tableList = [this.tableLists[0]];
+        this.currentTable = this.tableLists[0].templateId;
+        this.currentSample.insProduct = this.HaveJson(list);
+        // 澶勭悊椤甸潰鍒楄〃鏁版嵁
+        this.handleTableData();
+      }
+    },
+    // 澶勭悊椤甸潰鍒楄〃鏁版嵁
+    handleTableData() {
+      this.excelMethodList = []; //excel鍑芥暟鍒楄〃
+      this.widthList = this.tableList[0].style.columnlen; //椤甸潰瀹藉害--鏍规嵁妯℃澘鏉ョ殑
+      // 鐗规畩妫�楠岄」璁惧鏁版嵁娓呯┖
+      this.equipForm = {
+        value0: null,
+        code0: null,
+        value1: null,
+        code1: null,
+      };
+      // 娓╁害寰幆妫�楠屽師濮嬭褰�--寮�濮�
+      if (
+        this.tableLists.find((m) => m.templateId == this.currentTable) &&
+        this.tableLists.find((m) => m.templateId == this.currentTable)
+          .templateName == "娓╁害寰幆妫�楠屽師濮嬭褰�"
+      ) {
+        // 瀵硅姹傚�艰繘琛屾媶鍒嗗鐞�,杩涜�屽緱鍑洪〉闈㈠唴瀹�
+        let ask = this.currentSample.insProduct.filter(
+          (m) => m.inspectionItem == "娓╁害寰幆"
+        )[0].ask;
+        let askList = ask.split(";");
+        // 鑾峰彇寰幆娆℃暟
+        this.numOptions = [];
+        for (let i = 1; i <= askList[askList.length - 1]; i++) {
+          this.numOptions.push({
+            value: i,
+            label: i,
+          });
+        }
+        let mySet1 = new Set();
+        askList.forEach((m, i) => {
+          if (i < askList.length - 1) {
+            mySet1.add(m.split(",")[0].replace("鈩�", ""));
+          }
+        });
+        // 鑾峰彇娓╁害鐐瑰垪琛�
+        this.temperatureOptions = [];
+        mySet1.forEach((m) => {
+          this.temperatureOptions.push({
+            value: String(m),
+            label: m,
+          });
+        });
+        // 鍒濆鍖栭〉闈㈡暟鎹�
+        this.wareTableDataLoading = true;
+        this.$axios
+          .post(
+            this.$api.deviceScope.temDataAcquisition2,
+            {
+              entrustCode: this.insOrder.entrustCode,
+              sampleCode: this.currentSample.sampleCode,
+              model: this.currentSample.model,
+            },
+            {
+              headers: {
+                "Content-Type": "application/json",
+              },
+              noQs: true,
+            }
+          )
+          .then((res) => {
+            this.wareFormChange();
+          });
+      }
+      // 娓╁害寰幆妫�楠屽師濮嬭褰�---缁撴潫
+      // 鐑惊鐜楠屽師濮嬭褰�---寮�濮�
+      if (
+        this.tableLists.find((m) => m.templateId == this.currentTable) &&
+        (this.tableLists
+          .find((m) => m.templateId == this.currentTable)
+          .templateName.includes("鐑惊鐜�") ||
+          this.tableLists
+            .find((m) => m.templateId == this.currentTable)
+            .templateName.includes("娓╁崌璇曢獙"))
+      ) {
+        // 鏍规嵁瑕佹眰鍊兼媶鍒嗘暟鎹�,寰楀埌椤甸潰娓叉煋鐨勪俊鎭�
+        // let ask = this.currentSample.insProduct[0].ask
+        let ask = this.currentSample.insProduct.filter(
+          (m) => m.inspectionItem == "鐑惊鐜�" || m.inspectionItem == "娓╁崌璇曢獙"
+        )[0].ask;
+        let askList = ask.split(";");
+        this.thermalCyclingInfo.max = Number(askList[askList.length - 1]);
+        let arr = [];
+        for (let i = 0; i < askList.length - 1; i++) {
+          arr.push(askList[i].split(",")[0]);
+        }
+        arr = arr.map((item) => {
+          let obj = {};
+          obj.name = item;
+          if (obj.insResult == null || obj.insResult == undefined) {
+            obj.arr = [
+              {
+                value0: "",
+                value1: "",
+              },
+            ];
+            obj.insResult = null;
+          }
+          return obj;
+        });
+        this.thermalCyclingInfo.arr = arr;
+        // 鍒濆鍖栭〉闈㈡暟鎹�
+        this.thermalCyclingChange();
+      }
+      // 鐑惊鐜楠屽師濮嬭褰�---缁撴潫
+      // 鍗曟牴鍨傜洿鐕冪儳妫�楠屽師濮嬭褰�---寮�濮�
+      if (
+        this.tableLists.find((m) => m.templateId == this.currentTable) &&
+        this.tableLists
+          .find((m) => m.templateId == this.currentTable)
+          .templateName.includes("鍗曟牴鍨傜洿鐕冪儳")
+      ) {
+        this.singleRootVertical();
+      }
+      // 鍗曟牴鍨傜洿鐕冪儳妫�楠屽師濮嬭褰�---缁撴潫
+      // 寮у瀭妫�楠屽師濮嬭褰�---寮�濮�
+      if (
+        this.tableLists.find((m) => m.templateId == this.currentTable) &&
+        this.tableLists
+          .find((m) => m.templateId == this.currentTable)
+          .templateName.includes("寮у瀭")
+      ) {
+        this.getSageInfo();
+      }
+      // 寮у瀭妫�楠屽師濮嬭褰�---缁撴潫
+
+      // 鏋剁┖鍦扮嚎搴斿姏搴斿彉妫�楠屽師濮嬭褰�---寮�濮�
+      if (
+        this.tableLists.find((m) => m.templateId == this.currentTable) &&
+        this.tableLists
+          .find((m) => m.templateId == this.currentTable)
+          .templateName.includes("鏋剁┖鍦扮嚎搴斿姏搴斿彉")
+      ) {
+        this.getStressStrainInfo();
+      }
+      // 鏋剁┖鍦扮嚎搴斿姏搴斿彉妫�楠屽師濮嬭褰�---缁撴潫
+
+      // 闃叉尟閿ゅ姛鐜囩壒鎬ф楠屽師濮嬭褰�---寮�濮�
+      if (
+        this.tableLists.find((m) => m.templateId == this.currentTable) &&
+        this.tableLists
+          .find((m) => m.templateId == this.currentTable)
+          .templateName.includes("闃叉尟閿ゅ姛鐜囩壒鎬�")
+      ) {
+        this.getPowerCharacteristicsInfo();
+      }
+      // 闃叉尟閿ゅ姛鐜囩壒鎬ф楠屽師濮嬭褰�---缁撴潫
+      // 鐤插姵璇曢獙妫�楠屽師濮嬭褰�---寮�濮�
+      if (
+        this.tableLists.find((m) => m.templateId == this.currentTable) &&
+        this.tableLists
+          .find((m) => m.templateId == this.currentTable)
+          .templateName.includes("鐤插姵璇曢獙妫�楠屽師濮嬭褰�")
+      ) {
+        this.getFatigueTestInfo();
+      }
+      // 鐤插姵璇曢獙妫�楠屽師濮嬭褰�---缁撴潫
+      // 鏈寰幆涓昏鍋氶〉闈㈡覆鏌撳眰闈㈢殑澶勭悊--鍗曞厓鏍煎悎骞堕澶勭悊
+      this.tableList.forEach((a) => {
+        let mcList = [];
+        a.template.forEach((b) => {
+          if (
+            b.v.mc != undefined &&
+            b.v.mc.cs != undefined &&
+            b.v.mc.rs != undefined
+          ) {
+            mcList.push(b);
+          }
+        });
+        let count = 0;
+        mcList.forEach((b) => {
+          for (var c in a.template) {
+            for (var i = 0; i < b.v.mc.cs; i++) {
+              for (var i2 = 0; i2 < b.v.mc.rs; i2++) {
+                if (
+                  a.template[c].c === b.c + i &&
+                  a.template[c].r === b.r + i2
+                ) {
+                  let bb = this.HaveJson(b);
+                  a.template[c].v.v = bb.v.v;
+                  a.template[c].v.ps = bb.v.ps;
+                  a.template[c].v.fc = bb.v.fc;
+                  a.template[c].v.fs = bb.v.fs;
+                  a.template[c].v.ht = bb.v.ht;
+                  a.template[c].mc = count;
+                  break;
+                }
+              }
+            }
+          }
+          count++;
+        });
+      });
+      // 鏈寰幆涓昏鏄帶鍒跺悎骞�,浠ュ強鎺у埗妫�楠岄」淇℃伅鏄惁灞曠ず鍑烘潵,浠ヤ究鍚庣画妫�楠�
+      this.tableList.forEach((a) => {
+        let dels = new Set(); //闇�瑕佸垹闄ょ殑琛�
+        let ids = []; //鎵�鏈夋楠岄」鐨刬d
+        let set3 = new Set();
+        a.template.forEach((b) => {
+          let size1 = set3.size;
+          let size2 = set3.add(b.r).size;
+          if (size1 < size2) {
+            let str = "";
+            let count4 = 0;
+            let isThree = 0;
+            a.template.forEach((c) => {
+              // 鑾峰彇鍒� 妫�楠岄」鍒嗙被+妫�楠岄」+妫�楠屽瓙椤圭殑鎷兼帴,濡傛灉妯℃澘閲岀殑淇℃伅璺熸帴鍙h繑鍥炵殑妫�楠岄」淇℃伅鑳藉鍖归厤鍒欏睍绀哄嚭鏉�
+              if (b.r === c.r) {
+                if (
+                  c.v.ps != undefined &&
+                  c.v.ps.value === "妫�楠岄」鍒嗙被" &&
+                  count4 === 0
+                ) {
+                  // 涓夌骇鍒嗙被
+                  isThree = 1;
+                } else if (
+                  c.v.ps != undefined &&
+                  c.v.ps.value === "妫�楠岄」" &&
+                  count4 === 0
+                ) {
+                  // 浜岀骇鍒嗙被
+                  isThree = 0;
+                }
+                if (isThree == 0) {
+                  if (c.v.ps != undefined && c.v.ps.value === "妫�楠岄」") {
+                    if (count4 === 0) {
+                      str += c.v.v;
+                      count4 += 1;
+                    }
+                  } else if (
+                    c.v.ps != undefined &&
+                    c.v.ps.value === "妫�楠屽瓙椤�"
+                  ) {
+                    if (count4 === 1) {
+                      str += c.v.v;
+                      count4 += 1;
+                    }
+                  }
+                } else if (isThree == 1) {
+                  if (c.v.ps != undefined && c.v.ps.value === "妫�楠岄」鍒嗙被") {
+                    if (count4 === 0) {
+                      str += c.v.v;
+                      count4 += 1;
+                    }
+                  } else if (c.v.ps != undefined && c.v.ps.value === "妫�楠岄」") {
+                    if (count4 === 1) {
+                      str += c.v.v;
+                      count4 += 1;
+                    }
+                  } else if (
+                    c.v.ps != undefined &&
+                    c.v.ps.value === "妫�楠屽瓙椤�"
+                  ) {
+                    if (count4 === 2) {
+                      str += c.v.v;
+                      count4 += 1;
+                    }
+                  }
+                }
+              }
+            });
+            if (str != "") {
+              let count2 = 0;
+              for (let i in this.currentSample.insProduct) {
+                let inspectionItemClass =
+                  this.currentSample.insProduct[i].inspectionItemClass ==
+                    null ||
+                  this.currentSample.insProduct[i].inspectionItemClass ==
+                    undefined
+                    ? ""
+                    : this.currentSample.insProduct[i].inspectionItemClass;
+                let inspectionItem =
+                  this.currentSample.insProduct[i].inspectionItem == null ||
+                  this.currentSample.insProduct[i].inspectionItem == undefined
+                    ? ""
+                    : this.currentSample.insProduct[i].inspectionItem;
+                let inspectionItemSubclass =
+                  this.currentSample.insProduct[i].inspectionItemSubclass ==
+                    null ||
+                  this.currentSample.insProduct[i].inspectionItemSubclass ==
+                    undefined
+                    ? ""
+                    : this.currentSample.insProduct[i].inspectionItemSubclass;
+                // 濡傛灉鐩哥瓑,閭d箞璇存槑鎵惧埌浜�,骞朵笖鎶奿d瀛樿捣鏉�,鍚庣画妫�楠岄」涔熶細鍦ㄩ〉闈腑鏄剧ず鍑烘潵
+                const itemStr =
+                  inspectionItemClass + inspectionItem + inspectionItemSubclass;
+                if (
+                  this.currentSample.insProduct[i].templateId ===
+                    a.templateId &&
+                  itemStr === str &&
+                  !(this.changeType != 3 && itemStr.includes("鏉惧绠�"))
+                ) {
+                  ids.push({
+                    r: b.r,
+                    id: this.currentSample.insProduct[i].id,
+                    product: this.currentSample.insProduct[i],
+                  });
+                  break;
+                }
+                count2++;
+              }
+              if (count2 == this.currentSample.insProduct.length) {
+                dels.add(b.r);
+              }
+            }
+          }
+        });
+        // 鎿嶄綔鍒犻櫎
+        dels.forEach((del) => {
+          for (let b = 0; b < a.template.length; b++) {
+            if (a.template[b].r === del) {
+              a.template.splice(b, 1);
+              b -= 1;
+            }
+          }
+        });
+        // 鎿嶄綔璧嬪��--涓昏璧嬪�煎崟浣�,璇曢獙鏂规硶绛変俊鎭�
+        ids.forEach((id) => {
+          for (let b = 0; b < a.template.length; b++) {
+            if (a.template[b].r === id.r) {
+              a.template[b].i = id.id;
+              if (
+                a.template[b].v.ps != undefined &&
+                a.template[b].v.ps.value === "鍗曚綅"
+              ) {
+                a.template[b].v.v = id.product.unit;
+              }
+              if (
+                a.template[b].v.ps != undefined &&
+                (a.template[b].v.ps.value === "璇曢獙鏂规硶" ||
+                  a.template[b].v.ps.value === "妫�娴嬫柟娉�")
+              ) {
+                a.template[b].v.v = id.product.methodS;
+              }
+            }
+          }
+        });
+        let set2 = new Set();
+        // 鍚堝苟鐨勬暟鎹鐞�,cs  rs  浠h〃鍚堝苟鐨勬暟閲�
+        a.template.forEach((b) => {
+          let size1 = set2.size;
+          let size2 = set2.add(b.mc).size;
+          if (b.mc != undefined && size1 < size2) {
+            b.v.mc.rs = 0;
+            b.v.mc.cs = 0;
+            a.template.forEach((c) => {
+              if (b.mc === c.mc) {
+                if (b.r === c.r) {
+                  b.v.mc.cs += 1;
+                }
+                if (b.c === c.c) {
+                  b.v.mc.rs += 1;
+                }
+              }
+            });
+          }
+        });
+      });
+      // 鏈寰幆涓昏鏄鍚庣浼犲弬杩涜鍒濆鍖�,鏍峰紡閫昏緫淇敼
+      this.tableList.forEach((a) => {
+        let arrs = [];
+        let set = new Set();
+        let count1 = 0;
+        let conclusionList = []; //缁撹鍒楄〃
+        let finalList = []; //鏈�缁堝�煎垪琛�
+        // 缁撹涓庢渶缁堝�煎湪杩欓噷涓�涓�瀵瑰簲,浠ヤ笅涓や釜鍒楄〃闀垮害鑲畾鏄竴鏍风殑,濡傛灉鏈変笉涓�鏍�,閭d箞澶氬崐鏄ā鏉块厤缃緱闂
+        conclusionList = a.template.filter(
+          (n) => n.v.ps != undefined && n.v.ps.value === "缁撹"
+        ); //缁撹鍒楄〃
+        finalList = a.template.filter(
+          (n) => n.v.ps != undefined && n.v.ps.value === "鏈�缁堝��"
+        ); //鏈�缁堝�煎垪琛�
+        a.template.forEach((b) => {
+          if (
+            b.v.ps != undefined &&
+            b.v.ps.value === "搴忓彿" &&
+            (b.v.mc == undefined || Object.keys(b.v.mc).length === 4)
+          ) {
+            // 瀵瑰簭鍙疯繘琛岃祴鍊�
+            count1++;
+            b.v.v = count1;
+          }
+          if (b.v.ps != undefined && b.v.ps.value === "瑕佹眰鍊�") {
+            // 瀵硅姹傚�艰繘琛岃祴鍊�
+            b.v.v = this.getAsk(b.i);
+          }
+          // 瀵归〉闈㈢殑鍜岀粰鍚庣浼犲弬鐨勬楠屽��,璁$畻鍊�,璁惧缂栫爜,璁惧鍚嶇О,鏈�缁堝��,缁撹杩涜鍒濆鍖�
+          if (
+            b.v.ps != undefined &&
+            typeof b.v.ps.value === "string" &&
+            b.v.ps.value.includes("妫�楠屽��")
+          ) {
+            this.$set(b.v, "v", "");
+            // b.v.v = ''
+            b.u = "";
+            b.i && this.param[b.i] && this.param[b.i].insValue.push(b);
+          }
+          if (b.v.ps != undefined && b.v.ps.value === "璁$畻鍊�") {
+            this.$set(b.v, "v", "");
+            // b.v.v = ''
+            b.i && this.param[b.i] && this.param[b.i].comValue.push(b);
+          }
+          if (b.v.ps != undefined && b.v.ps.value === "璁惧缂栫爜") {
+            // b.v.v = ''
+            this.$set(b.v, "v", "");
+            b.i && this.param[b.i] && this.param[b.i].equipValue.push(b);
+          }
+          if (b.v.ps != undefined && b.v.ps.value === "璁惧鍚嶇О") {
+            this.$set(b.v, "v", "");
+            // b.v.v = ''
+            b.i && this.param[b.i] && this.param[b.i].equipName.push(b);
+          }
+          if (b.v.ps != undefined && b.v.ps.value === "鏈�缁堝��") {
+            // b.v.v = ''
+            this.$set(b.v, "v", "");
+            if (
+              b.i !== undefined &&
+              this.param[b.i] &&
+              !this.param[b.i].resValue
+            ) {
+              this.param[b.i].resValue = b;
+            }
+          }
+          if (b.v.ps != undefined && b.v.ps.value === "缁撹") {
+            if (
+              b.i !== undefined &&
+              this.param[b.i] &&
+              !this.param[b.i].insResult
+            ) {
+              this.param[b.i].insResult = b;
+              conclusionList.forEach((n, i) => {
+                if (n.r == b.r && n.c == b.c) {
+                  b.v.f = `(${
+                    this.comparisonList.find((j) => j.value == finalList[i].c)
+                      .label
+                  }${finalList[i].r + 1})`;
+                }
+              });
+            }
+          }
+          set.add(b.r);
+          // 濡傛灉妯℃澘鍒楄〃鐨勫嚱鏁板瓨鍦�,閭d箞鍔犲叆鍒癳xcel鍑芥暟鍒楄〃閲岄潰
+          if (b.v.f) {
+            this.excelMethodList.push(b);
+          }
+        });
+        // 浠ヤ笅鏄牱寮忓鐞嗛�昏緫
+        set = Array.sort(set);
+        set.forEach((b) => {
+          let arr = [];
+          a.template.forEach((c) => {
+            if (c.r === b) {
+              arr.push(c);
+            }
+          });
+          arrs.push(arr);
+        });
+        a.arr = arrs;
+        this.tableWidth = 0;
+        for (let i = 0; i < arrs[0].length; i++) {
+          this.tableWidth +=
+            a.style.columnlen[i] === undefined ? 100 : a.style.columnlen[i];
+        }
+      });
+      // 鏈寰幆涓昏鏄椤甸潰鍙婂悗绔紶鍙傝繘琛屽垵濮嬪寲璧嬪��
+      this.currentSample.insProduct.forEach(async (a) => {
+        try {
+          // 璁$畻鍊艰祴鍊�
+          let comValue = JSON.parse(a.insProductResult.comValue);
+          for (var i = 0; i < comValue.length; i++) {
+            // this.param[a.id].comValue[i].v.v = this.toFixed(comValue[i].v,this.param[a.id].comValue[i].v.ct)
+            if (
+              this.param[a.id].comValue.find(
+                (m) => m.c == comValue[i].c && m.r == comValue[i].r
+              )
+            ) {
+              this.param[a.id].comValue.find(
+                (m) => m.c == comValue[i].c && m.r == comValue[i].r
+              ).v.v = this.toFixed(
+                comValue[i].v,
+                this.param[a.id].comValue.find(
+                  (m) => m.c == comValue[i].c && m.r == comValue[i].r
+                ).v.ct
+              );
+            } else if (!comValue[i].c || !comValue[i].r) {
+              this.param[a.id].comValue[i].v.v = this.toFixed(
+                comValue[i].v,
+                this.param[a.id].comValue[i].v.ct
+              );
+            }
+          }
+        } catch (e) {}
+        try {
+          // 妫�楠屽�艰祴鍊�
+          let insValue = JSON.parse(a.insProductResult.insValue);
+          for (let i = 0; i < insValue.length; i++) {
+            if (
+              this.param[a.id].insValue.find(
+                (m) => m.c == insValue[i].c && m.r == insValue[i].r
+              )
+            ) {
+              this.param[a.id].insValue.find(
+                (m) => m.c == insValue[i].c && m.r == insValue[i].r
+              ).v.v = this.toFixed(
+                insValue[i].v,
+                this.param[a.id].insValue.find(
+                  (m) => m.c == insValue[i].c && m.r == insValue[i].r
+                ).v.ct
+              );
+              this.param[a.id].insValue.find(
+                (m) => m.c == insValue[i].c && m.r == insValue[i].r
+              ).u = insValue[i].u;
+              // this.param[a.id].insValue[i].v.v = insValue[i].v
+              // this.param[a.id].insValue[i].u = insValue[i].u
+            }
+          }
+        } catch (e) {}
+        try {
+          // 璁惧缂栧彿璧嬪��
+          let equipValue = JSON.parse(a.insProductResult.equipValue);
+          if (
+            this.tableLists.find((m) => m.templateId == this.currentTable) &&
+            ((this.tableLists.find((m) => m.templateId == this.currentTable)
+              .templateName == "娓╁害寰幆妫�楠屽師濮嬭褰�" &&
+              a.inspectionItem.includes("娓╁害寰幆")) ||
+              a.inspectionItem.includes("鐑惊鐜�") ||
+              a.inspectionItem.includes("娓╁崌璇曢獙") ||
+              a.inspectionItem.includes("鍗曟牴鍨傜洿鐕冪儳") ||
+              a.inspectionItem.includes("寮у瀭") ||
+              a.inspectionItem.includes("搴斿姏搴斿彉") ||
+              a.inspectionItem.includes("鎸姩鐤插姵") ||
+              a.inspectionItem.includes("鑸炲姩鐤插姵"))
+          ) {
+            // 鐗规畩椤圭洰鍒濆鍖�
+            this.param[a.id].equipValue = [];
+            for (let i = 0; i < equipValue.length; i++) {
+              this.param[a.id].equipValue.push({
+                v: {
+                  v: "",
+                },
+              });
+            }
+          }
+          for (let i = 0; i < equipValue.length; i++) {
+            if (
+              this.tableLists.find((m) => m.templateId == this.currentTable) &&
+              ((this.tableLists.find((m) => m.templateId == this.currentTable)
+                .templateName == "娓╁害寰幆妫�楠屽師濮嬭褰�" &&
+                a.inspectionItem.includes("娓╁害寰幆")) ||
+                a.inspectionItem.includes("鐑惊鐜�") ||
+                a.inspectionItem.includes("娓╁崌璇曢獙") ||
+                a.inspectionItem.includes("鍗曟牴鍨傜洿鐕冪儳") ||
+                a.inspectionItem.includes("寮у瀭") ||
+                a.inspectionItem.includes("搴斿姏搴斿彉") ||
+                a.inspectionItem.includes("鎸姩鐤插姵") ||
+                a.inspectionItem.includes("鑸炲姩鐤插姵"))
+            ) {
+              // 娓╁害寰幆璁惧璧嬪��
+              // this.$set(this.equipForm, `code` + i, equipValue[i].v);
+              // this.param[a.id].equipValue[i].v.v = equipValue[i].v;
+              if (
+                a.inspectionItem.includes("娓╁害寰幆") ||
+                a.inspectionItem.includes("鍗曟牴鍨傜洿鐕冪儳")
+              ) {
+                this.$set(this.equipForm, `code` + i, equipValue[i].v);
+              } else {
+                if (Array.isArray(this.equipForm.code0)) {
+                  this.equipForm.code0.push(equipValue[i].v);
+                } else {
+                  let arr = [];
+                  arr.push(equipValue[i].v);
+                  this.$set(this.equipForm, `code0`, arr);
+                }
+              }
+              this.param[a.id].equipValue[i].v.v = equipValue[i].v;
+            } else {
+              // 鏅�氳澶囪祴鍊�
+              if (a.inspectionItem.includes("闃叉尟閿ゅ姛鐜囩壒鎬�")) {
+                let filterList = this.param[a.id].equipValue.filter(
+                  (m) => m.v.v != "" && m.v.v != null && m.v.v != undefined
+                );
+                if (filterList.length > 0) {
+                  this.param[a.id].equipValue[i].v.v = filterList[0].v.v;
+                } else {
+                  this.param[a.id].equipValue[i].v.v = equipValue[i].v;
+                }
+              } else {
+                this.param[a.id].equipValue[i].v.v = equipValue[i].v;
+              }
+            }
+          }
+        } catch (e) {}
+        try {
+          // 璁惧鍚嶇О璧嬪��
+          let equipName = JSON.parse(a.insProductResult.equipName);
+          if (
+            this.tableLists.find((m) => m.templateId == this.currentTable) &&
+            ((this.tableLists.find((m) => m.templateId == this.currentTable)
+              .templateName == "娓╁害寰幆妫�楠屽師濮嬭褰�" &&
+              a.inspectionItem.includes("娓╁害寰幆")) ||
+              a.inspectionItem.includes("鐑惊鐜�") ||
+              a.inspectionItem.includes("娓╁崌璇曢獙") ||
+              a.inspectionItem.includes("鍗曟牴鍨傜洿鐕冪儳") ||
+              a.inspectionItem.includes("寮у瀭") ||
+              a.inspectionItem.includes("搴斿姏搴斿彉") ||
+              a.inspectionItem.includes("鎸姩鐤插姵") ||
+              a.inspectionItem.includes("鑸炲姩鐤插姵"))
+          ) {
+            // 璁惧鍚嶇О鍒濆鍖�
+            this.param[a.id].equipName = [];
+            for (let i = 0; i < equipName.length; i++) {
+              this.param[a.id].equipName.push({
+                v: {
+                  v: "",
+                },
+              });
+            }
+          }
+          for (let i = 0; i < equipName.length; i++) {
+            if (
+              this.tableLists.find((m) => m.templateId == this.currentTable) &&
+              ((this.tableLists.find((m) => m.templateId == this.currentTable)
+                .templateName == "娓╁害寰幆妫�楠屽師濮嬭褰�" &&
+                a.inspectionItem.includes("娓╁害寰幆")) ||
+                a.inspectionItem.includes("鐑惊鐜�") ||
+                a.inspectionItem.includes("娓╁崌璇曢獙") ||
+                a.inspectionItem.includes("鍗曟牴鍨傜洿鐕冪儳") ||
+                a.inspectionItem.includes("寮у瀭") ||
+                a.inspectionItem.includes("搴斿姏搴斿彉") ||
+                a.inspectionItem.includes("鎸姩鐤插姵") ||
+                a.inspectionItem.includes("鑸炲姩鐤插姵"))
+            ) {
+              // 娓╁害寰幆璧嬪��
+              // this.$set(this.equipForm, `value` + i, equipName[i].v);
+              if (
+                a.inspectionItem.includes("娓╁害寰幆") ||
+                a.inspectionItem.includes("鍗曟牴鍨傜洿鐕冪儳")
+              ) {
+                this.$set(this.equipForm, `value` + i, equipName[i].v);
+              } else {
+                if (Array.isArray(this.equipForm.value0)) {
+                  this.equipForm.value0.push(equipName[i].v);
+                } else {
+                  let arr = [];
+                  arr.push(equipName[i].v);
+                  this.$set(this.equipForm, `value0`, arr);
+                }
+              }
+              // 淇濈暀鏈�鍒濈殑涓�涓澶囧悕绉�
+              this.equipName = JSON.parse(
+                JSON.stringify(this.equipForm.value0)
+              );
+              this.param[a.id].equipName[i].v.v = equipName[i].v;
+            } else {
+              // 鏅�氳澶囧悕绉拌祴鍊�
+              if (a.inspectionItem.includes("闃叉尟閿ゅ姛鐜囩壒鎬�")) {
+                let filterList = this.param[a.id].equipName.filter(
+                  (m) => m.v.v != "" && m.v.v != null && m.v.v != undefined
+                );
+                if (filterList.length > 0) {
+                  this.param[a.id].equipName[i].v.v = equipName[0].v.v;
+                } else {
+                  this.param[a.id].equipName[i].v.v = equipName[i].v;
+                }
+              }
+              this.param[a.id].equipName[i].v.v = equipName[i].v;
+            }
+          }
+        } catch (e) {}
+        try {
+          // 鏈�缁堝�艰祴鍊�
+          this.param[a.id].resValue.v.v = this.toFixed(
+            a.lastValue,
+            this.param[a.id].resValue.v.ct
+          );
+          // 缁撹璧嬪��
+          this.param[a.id].insResult.v.v = a.insResult;
+        } catch (e) {}
+      });
+      // 瀵筫xcel鍑芥暟杩涜澶勭悊
+      this.handleExcelMethod();
+    },
+    // 妫�楠屽�艰緭鍏ュ悗瑙﹀彂鐨勫嚱鏁�
+    changeInput(m, code, n, getDataType) {
+      console.log("---->999");
+      // 涓烘暟閲囧畾涔変竴涓�昏緫鍙傛暟
+      if (getDataType == "getDataType") {
+        this.getDataType = 2;
+      }
+      let currentInsItemId = null; //褰撳墠妫�楠岄」id
+      if (n) {
+        currentInsItemId = JSON.parse(JSON.stringify(n.i));
+        // 闇�瑕佺瀛﹁鏁版硶鐨勫彲浠ヨ蛋杩欓噷
+        if (this.PROJECT === "妫�娴嬩腑蹇�") {
+          if (
+            this.currentSample.insProduct.find(
+              (ele) =>
+                ele.id == currentInsItemId && ele.inspectionItem == "浣撶Н鐢甸樆鐜�"
+            )
+          ) {
+            if (parseFloat(n.v.v) >= 100000) {
+              let num2 = new this.$Big(n.v.v);
+              n.v.v = num2.toExponential();
+            }
+          }
+        }
+        // 瀹氫箟涓�涓嚱鏁版潵楠岃瘉鍒嗘暟鏄惁鏈夋晥
+        function isValidFraction(fraction) {
+          const [numerator, denominator] = fraction.split("/"); // 鍒嗗瓙鍜屽垎姣�
+          return !(!denominator || !numerator);
+        }
+        const isTrue = isValidFraction(n.v.v);
+        if (!isTrue) {
+          n.v.v = n.v.v.replace("/", "");
+        }
+      }
+      try {
+        // 鍚� Worker 鍙戦�佹秷鎭紝寮�濮嬪鐞嗛�昏緫
+        this.worker.postMessage(
+          JSON.stringify({
+            code: code,
+            tableList: this.tableList,
+            excelMethodList: this.excelMethodList,
+            comparisonList: this.comparisonList,
+            currentSample: this.currentSample,
+            PROJECT: this.PROJECT,
+            param: this.param,
+            currentTable: this.currentTable,
+            getDataTypeId: this.getDataTypeId,
+            modelType: this.sampleProduct[0].model,
+            currentInsItem: n,
+          })
+        );
+      } catch (error) {
+        console.log(444, error);
+      }
+
+      // 鐩戝惉 Worker 杩斿洖鐨勭粨鏋�
+      this.worker.onmessage = (event) => {
+        this.result = JSON.parse(event.data);
+        switch (this.result.method) {
+          case "saveInsContext":
+            this.$nextTick(() => {
+              // this.$delete(this.tableList[0],'arr')
+              this.$set(
+                this.tableList[0],
+                "arr",
+                this.result.value.tableList[0].arr
+              );
+              this.param = this.result.value.param;
+              if (this.result.value.currentInsItemId) {
+                currentInsItemId = this.result.value.currentInsItemId;
+              }
+              // 鐗规畩澶勭悊涓�涓嬬粨璁�,浼氭湁杩欑鐗规畩鎯呭喌
+              for (var i in this.param) {
+                if (
+                  this.param[i].insResult &&
+                  this.param[i].insResult.v &&
+                  this.param[i].insResult.v.v
+                ) {
+                  if (this.param[i].insResult.v.v == "鍚堟牸") {
+                    this.$set(this.param[i].insResult.v, "v", 1);
+                  } else if (this.param[i].insResult.v.v == "涓嶅悎鏍�") {
+                    this.$set(this.param[i].insResult.v, "v", 0);
+                  }
+                }
+              }
+              this.saveInsContext(currentInsItemId);
+              // 濡傛灉鏄暟閲囧彲缂栬緫杈撳叆鐨勬儏鍐�,鍙互鐩存帴淇濆瓨鏁版嵁
+              // if(this.getDataType==2){
+              //   console.log("aaaaaa--->>>",currentInsItemId);
+              //   this.saveInsContext()
+              // }else{
+              //   if(this.isGet&&!this.dataAcquisitionEidtAble){
+              //     // if(this.result.value.getDataTypeId==''){
+              //     //   // 濡傛灉鏄暟閲囦笉鍙紪杈戣緭鍏ョ殑鎯呭喌,涓旀渶鍚庝竴涓暟閲囨病鏈夊畬鎴�,鍒欎笉淇濆瓨鏁版嵁
+              //     //   return
+              //     // }
+              //     // 淇濆瓨鏁版嵁
+              //     this.saveInsContext()
+              //     // setTimeout(()=>{
+              //     // },2000)
+              //   }else if(this.isGet&&this.dataAcquisitionEidtAble){
+              //     if(this.getDataType==1){
+              //       // if(this.result.value.getDataTypeId==''){
+              //       //   // 濡傛灉鏄暟閲囧彲缂栬緫杈撳叆鐨勬儏鍐�,涓旀渶鍚庝竴涓暟閲囨病鏈夊畬鎴�,鍒欎笉淇濆瓨鏁版嵁
+              //       //   return
+              //       // }
+              //       this.saveInsContext()
+              //     }else{
+              //       this.saveInsContext()
+              //     }
+              //   }else{
+              //     this.saveInsContext()
+              //   }
+              // }
+            });
+            break;
+          case "tableList":
+            this.$nextTick(() => {
+              // 鏇存柊鏁版嵁
+              this.$delete(this.tableList[0], "arr");
+              this.$set(this.tableList[0], "arr", this.result.value[0].arr);
+            });
+            break;
+          case "getCurrentInsProduct":
+            // 鏇存柊椤甸潰鏁版嵁
+            this.getCurrentInsProduct(this.result.value);
+            break;
+        }
+      };
+    },
+    // 鏄惁闇�瑕佹暟閲�
+    async determineWhetherToCollectData() {
+      let res = await this.$axios.get(
+        this.$api.deviceScope.determineWhetherToCollectData +
+          "?managementNumber=''"
+      );
+      this.isGet = res.data;
+      if (
+        this.currentSample.insProduct.filter(
+          (ele) => ele.inspectionItemType == "1"
+        ).length > 0
+      ) {
+        this.isEdit = true;
+      }
+    },
+    // 鏍规嵁鍚庣浼犲弬鏇存柊椤甸潰鏁版嵁   param => this.tableList[0].insProductResult
+    getCurrentInsProduct(pId) {
+      if (!this.tableList[0].insProductResult) {
+        this.tableList[0].insProductResult = {};
+      }
+      for (let m in this.param[pId]) {
+        let value = this.param[pId][m];
+        switch (m) {
+          case "comValue":
+            // 璧嬪�艰绠楀��
+            if (value && value.length > 0) {
+              this.tableList[0].insProductResult[m] = [];
+              value.forEach((a, i) => {
+                let obj = {
+                  v: a.v.v,
+                };
+                this.tableList[0].insProductResult[m].push(obj);
+              });
+              try {
+                this.tableList[0].insProductResult[m] = JSON.stringify(
+                  this.tableList[0].insProductResult[m]
+                );
+              } catch (error) {
+                console.log(555, error);
+              }
+            }
+            break;
+          // 璧嬪�兼楠屽��
+          case "insValue":
+            if (value && value.length > 0) {
+              this.tableList[0].insProductResult[m] = [];
+              value.forEach((a, i) => {
+                let obj = {
+                  v: a.v.v,
+                  u: a.u,
+                };
+                this.tableList[0].insProductResult[m].push(obj);
+              });
+              try {
+                this.tableList[0].insProductResult[m] = JSON.stringify(
+                  this.tableList[0].insProductResult[m]
+                );
+              } catch (error) {
+                console.log(666, error);
+              }
+            }
+            break;
+          // 璧嬪�艰澶囩紪鍙�
+          case "equipValue":
+            if (value && value.length > 0) {
+              this.tableList[0].insProductResult[m] = [];
+              value.forEach((a, i) => {
+                let obj = {
+                  v: a.v.v,
+                };
+                this.tableList[0].insProductResult[m].push(obj);
+              });
+              try {
+                this.tableList[0].insProductResult[m] = JSON.stringify(
+                  this.tableList[0].insProductResult[m]
+                );
+              } catch (error) {
+                console.log(777, error);
+              }
+            }
+            break;
+          // 璧嬪�艰澶囧悕绉�
+          case "equipName":
+            if (value && value.length > 0) {
+              this.tableList[0].insProductResult[m] = [];
+              value.forEach((a, i) => {
+                let obj = {
+                  v: a.v.v,
+                };
+                this.tableList[0].insProductResult[m].push(obj);
+              });
+              try {
+                this.tableList[0].insProductResult[m] = JSON.stringify(
+                  this.tableList[0].insProductResult[m]
+                );
+              } catch (error) {
+                console.log(888, error);
+              }
+            }
+            break;
+          // 璧嬪�兼渶缁堝��
+          case "resValue":
+            this.tableList[0].lastValue = value ? value.v.v : "";
+            break;
+          // 璧嬪�肩粨璁�
+          case "insResult":
+            this.tableList[0].insResult = value ? value.v.v : "";
+            break;
+        }
+      }
+    },
+    // 瀵笶XCEL鍑芥暟杩涜澶勭悊
+    handleExcelMethod() {
+      if (this.excelMethodList.length > 0) {
+        this.excelMethodList.map((item) => {
+          // 寰楀埌姣忎釜鍑芥暟鐨勫弬鏁板垪琛�
+          item.valueList = excelFunction.changeParameter(item.v.f);
+          return item;
+        });
+      }
+    },
+    getValue(v) {
+      // 瀵归〉闈㈠睍绀烘暟鎹繘琛屽鐞�,@,浠h〃鎹㈣
+      let str = v.v
+        ? v.v
+        : v.v === 0
+        ? v.v
+        : v.ct && v.ct.s
+        ? v.ct.s.length > 0 &&
+          v.ct.s[0].v
+            .replace(new RegExp("\n", "g"), "<br/>")
+            .replace(new RegExp("@", "g"), "<br/>")
+        : "";
+      // 瀵规暟鎹繚鐣欏皬鏁扮偣杩涜澶勭悊
+      if (v.ct && v.ct.fa && v.ct.fa.includes(".") && str) {
+        let num = 0;
+        let str0 = v.ct.fa.split(".")[1];
+        num = str0.length;
+        str = Number(str).toFixed(num);
+      }
+      if (v.v && typeof v.v == "string" && v.v.includes("@")) {
+        str = v.v.replace(new RegExp("@", "g"), "<br/>");
+      }
+      return str;
+    },
+    // 鑾峰彇褰撳墠杈撳叆妗嗙被鍨�
+    getInspectionValueType(id) {
+      for (var a in this.currentSample.insProduct) {
+        if (this.currentSample.insProduct[a].id == id) {
+          return this.currentSample.insProduct[a].inspectionValueType;
+        }
+      }
+    },
+    // 鑾峰彇瑕佹眰鎻忚堪
+    getTell(id) {
+      for (var a in this.currentSample.insProduct) {
+        if (this.currentSample.insProduct[a].id == id) {
+          return this.currentSample.insProduct[a].tell;
+        }
+      }
+    },
+    // 鍔ㄦ�佽幏鍙栧崟鍏冩牸瀹藉害
+    handleWidth(n) {
+      let sum = 0;
+      if (n.v.mc && n.v.mc.cs && n.v.mc.c != undefined) {
+        for (let i = 0; i < n.v.mc.cs; i++) {
+          let num = this.widthList[i + n.v.mc.c]
+            ? this.widthList[i + n.v.mc.c]
+            : 100;
+          sum += num;
+        }
+      } else {
+        sum = this.widthList[n.c] ? this.widthList[n.c] : 100;
+      }
+      return sum;
+    },
+    // 瀵硅緭鍏ュ�艰繘琛屾牸寮忔牎楠�
+    handleInput(n) {
+      try {
+        n.v.v = n.v.v.replace(/[^\d.^e\-/+]/g, "");
+        n.v.v = n.v.v.replace(/\.{2,}/g, "."); //鍙繚鐣欑涓�涓�. 娓呴櫎澶氫綑鐨�
+        n.v.v = n.v.v
+          .replace(".", "$#$")
+          .replace(/\./g, "")
+          .replace("$#$", ".");
+        n.v.v = n.v.v.replace(/\/{2,}/g, "/"); //鍙繚鐣欑涓�涓�/娓呴櫎澶氫綑鐨�
+        n.v.v = n.v.v
+          .replace("/", "$#$")
+          .replace(/\//g, "")
+          .replace("$#$", "/");
+      } catch (error) {
+        console.log(error);
+      }
+    },
+    getInspectionItemType(id) {
+      for (var a in this.currentSample.insProduct) {
+        if (this.currentSample.insProduct[a].id == id) {
+          return this.currentSample.insProduct[a].inspectionItemType;
+        }
+      }
+    },
+    // 鑾峰彇瑕佹眰鍊�
+    getAsk(id) {
+      for (var a in this.currentSample.insProduct) {
+        if (this.currentSample.insProduct[a].id == id) {
+          return this.currentSample.insProduct[a].ask;
+        }
+      }
+    },
+    getSystemValue(n) {
+      let code = null;
+      try {
+        this.param[n.i].equipValue.forEach((a) => {
+          if (a.r === n.r) {
+            if (a.v.v == null || a.v.v == "") {
+              this.$message.error("璇峰厛閫夋嫨閲囬泦鐨勮澶�");
+              return;
+            } else {
+              code = a.v.v;
+            }
+          }
+        });
+      } catch (e) {
+        // console.log(e);
+        this.$message.error("鎵句笉鍒拌澶囧唴瀹�");
+      }
+      // console.log(n, code);
+      fetch("http://localhost:82/寰俊鍥剧墖_20240518100811.png")
+        .then((res) => res.blob())
+        .then((blob) => {
+          // console.log(blob);
+          const url = URL.createObjectURL(blob);
+          // console.log(url);
+        });
+      /* this.$message.error('閲囬泦澶辫触銆愬凡寮�鏀炬墜鍔ㄦ柟寮忋��')
+        for (var a in this.currentSample.insProduct) {
+          if (this.currentSample.insProduct[a].id == n.i) {
+            this.currentSample.insProduct[a].inspectionItemType = 0
+          }
+        } */
+    },
+    // 鑾峰彇璁惧
+    getEquipOptions(e, id) {
+      console.log(e);
+      if (e) {
+        this.equipOptions = [];
+        let product = this.currentSample.insProduct.find((m) => m.id == id);
+        console.log(product);
+        this.$axios
+          .post(this.$api.deviceScope.selectDeviceByCategory, {
+            inspectionItem: product.inspectionItem,
+            inspectionItemSubclass: product.inspectionItemSubclass,
+            sonLaboratory: product.sonLaboratory,
+          })
+          .then((res) => {
+            if (res.code === 200 && res.data) {
+              this.equipOptions = res.data.map((m) => {
+                m.value = m.managementNumber;
+                m.label = m.deviceName;
+                return m;
+              });
+            }
+          })
+          .catch((error) => {
+            console.error(error);
+          });
+      }
+    },
+    getDic(e, id) {
+      if (e) {
+        for (var a in this.currentSample.insProduct) {
+          if (this.currentSample.insProduct[a].id == id) {
+            let str = this.currentSample.insProduct[a].dic;
+            this.selectEnumByCategoryOfSelect(str);
+            return str;
+          }
+        }
+      }
+    },
+    getUserInfo() {
+      this.$axios.get(this.$api.user.getUserInfo).then((res) => {
+        this.userId = res.data.id;
+        this.componentData.entity.userId = res.data.id;
+        // console.log(1111,this.userId)
+      });
+    },
+    // 澶嶆牳
+    upInsReview(e) {
+      if (e == 1) {
+        // 閫氳繃
+        this.reviewLoading = true;
+        this.$axios
+          .post(this.$api.insOrderPlan.verifyPlan, {
+            orderId: this.orderId,
+            type: 1,
+            laboratory: this.sonLaboratory,
+            tell: null,
+          })
+          .then((res) => {
+            if (res.code === 200) {
+              this.$message.success("鎿嶄綔鎴愬姛");
+              this.$emit("goback");
+            }
+            this.reviewLoading = false;
+          })
+          .catch((error) => {
+            console.error(error);
+            this.reviewLoading = false;
+          });
+      } else {
+        // 涓嶉�氳繃
+        this.reviewDia = true;
+      }
+    },
+    handleReviewDia() {
+      if (this.noReason) {
+        this.reviewLoading = true;
+        this.$axios
+          .post(this.$api.insOrderPlan.verifyPlan, {
+            orderId: this.orderId,
+            type: 0,
+            laboratory: this.sonLaboratory,
+            tell: this.noReason,
+          })
+          .then((res) => {
+            if (res.code === 200) {
+              this.$message.success("鎿嶄綔鎴愬姛");
+              this.$emit("goback");
+            }
+            this.reviewLoading = false;
+          })
+          .catch((error) => {
+            console.error(error);
+            this.reviewLoading = false;
+          });
+      } else {
+        this.$message.error("鏈緭鍏ヤ笉閫氳繃鍘熷洜");
+      }
+    },
+    submit() {
+      if (this.verifyUser === null || this.verifyUser === "") {
+        this.$message.error("璇锋寚瀹氬鏍镐汉鍛�");
+        return;
+      }
+      if (!this.otherForm.humidity) {
+        this.$message.error("璇疯緭鍏ユ箍搴�");
+        return;
+      }
+      if (!this.otherForm.temperature) {
+        this.$message.error("璇疯緭鍏ユ俯搴�");
+        return;
+      }
+      this.addVerifyDia = false;
+      this.submitLoading = true;
+      this.$axios
+        .post(this.$api.insOrderPlan.checkSubmitPlan, {
+          orderId: this.orderId,
+          laboratory: this.sonLaboratory,
+          humidity: this.otherForm.humidity,
+          temperature: this.otherForm.temperature,
+        })
+        .then((res) => {
+          if (res.code === 200) {
+            if (!res.data || res.data.length == 0) {
+              this.$axios
+                .get(
+                  this.$api.insOrderPlan.getEquipName +
+                    "?orderId=" +
+                    this.orderId +
+                    "&sonLaboratory=" +
+                    this.sonLaboratory
+                )
+                .then((response) => {
+                  console.log(typeof response.data, response.data.length);
+                  if (response.data.length > 0) {
+                    let newData = [];
+                    const h = this.$createElement;
+                    for (let i in response.data) {
+                      newData.push(
+                        h(
+                          "p",
+                          { style: "font-size: 14px;color: red;" },
+                          Number(i) + 1 + "銆�" + response.data[i]
+                        )
+                      );
+                    }
+                    newData.push(
+                      h(
+                        "p",
+                        {
+                          style:
+                            "font-size: 16px;color:#000;margin-top:12px;overflow-y: auto;max-height:80vh",
+                        },
+                        "浠ヤ笂椤圭洰鏈�夋嫨璁惧锛岀‘瀹氭彁浜わ紵"
+                      )
+                    );
+                    this.$confirm("鎻愮ず", {
+                      title: "鎻愮ず",
+                      message: h("div", null, newData),
+                      confirmButtonText: "纭畾",
+                      cancelButtonText: "鍙栨秷",
+                      type: "",
+                    })
+                      .then(() => {
+                        this.$axios
+                          .post(this.$api.insOrderPlan.submitPlan, {
+                            orderId: this.orderId,
+                            laboratory: this.sonLaboratory,
+                            verifyUser: this.verifyUser,
+                            entrustCode: this.insOrder.entrustCode,
+                          })
+                          .then((res) => {
+                            if (res.code === 200) {
+                              this.$message.success("鎿嶄綔鎴愬姛");
+                              this.$emit("goback");
+                            }
+                            this.submitLoading = false;
+                          });
+                      })
+                      .catch(() => {
+                        this.submitLoading = false;
+                      });
+                  } else {
+                    this.$axios
+                      .post(this.$api.insOrderPlan.submitPlan, {
+                        orderId: this.orderId,
+                        laboratory: this.sonLaboratory,
+                        verifyUser: this.verifyUser,
+                        entrustCode: this.insOrder.entrustCode,
+                      })
+                      .then((res) => {
+                        if (res.code === 200) {
+                          this.$message.success("鎿嶄綔鎴愬姛");
+                          this.$emit("goback");
+                        }
+                        this.submitLoading = false;
+                      });
+                  }
+                });
+
+              // this.$axios
+              //   .post(this.$api.insOrderPlan.submitPlan, {
+              //     orderId: this.orderId,
+              //     laboratory: this.sonLaboratory,
+              //     verifyUser: this.verifyUser,
+              //     entrustCode: this.insOrder.entrustCode,
+              //   })
+              //   .then((res) => {
+              //     if (res.code === 200) {
+              //       this.$message.success("鎿嶄綔鎴愬姛");
+              //       this.$emit("goback");
+              //     }
+              //     this.submitLoading = false;
+              //   })
+            } else {
+              this.$axios
+                .get(
+                  this.$api.insOrderPlan.getEquipName +
+                    "?orderId=" +
+                    this.orderId +
+                    "&sonLaboratory=" +
+                    this.sonLaboratory
+                )
+                .then((response) => {
+                  console.log(typeof response.data, response.data.length);
+                  if (response.data.length > 0) {
+                    let newData = [];
+                    const h = this.$createElement;
+                    for (let i in response.data) {
+                      newData.push(
+                        h(
+                          "p",
+                          { style: "font-size: 14px;color: red;" },
+                          Number(i) + 1 + "銆�" + response.data[i]
+                        )
+                      );
+                    }
+                    newData.push(
+                      h(
+                        "p",
+                        {
+                          style:
+                            "font-size: 16px;color:#000;margin-top:12px;overflow-y: auto;max-height:80vh",
+                        },
+                        "浠ヤ笂椤圭洰鏈�夋嫨璁惧锛岀‘瀹氭彁浜わ紵"
+                      )
+                    );
+                    this.$confirm("鎻愮ず", {
+                      title: "鎻愮ず",
+                      message: h("div", null, newData),
+                      confirmButtonText: "纭畾",
+                      cancelButtonText: "鍙栨秷",
+                      type: "",
+                    })
+                      .then(() => {
+                        let newData1 = [];
+                        const h1 = this.$createElement;
+                        // 鍘婚噸涓嶅悎鏍煎鐞�
+                        let set = new Set();
+                        res.data.forEach((item) => {
+                          if (!set.has(item)) {
+                            set.add(item);
+                          }
+                        });
+                        res.data = Array.from(set);
+                        for (let i in res.data) {
+                          const lastChar = res.data[i].slice(-1);
+                          if (lastChar == "-") {
+                            res.data[i] = res.data[i].slice(0, -1);
+                          }
+                          newData1.push(
+                            h1(
+                              "p",
+                              { style: "font-size: 14px;color: red;" },
+                              Number(i) + 1 + "銆�" + res.data[i]
+                            )
+                          );
+                        }
+                        newData1.push(
+                          h1(
+                            "p",
+                            {
+                              style:
+                                "font-size: 16px;color:#000;margin-top:12px;overflow-y: auto;max-height:80vh",
+                            },
+                            "浠ヤ笂椤圭洰涓嶅悎鏍硷紝纭畾鎻愪氦锛�"
+                          )
+                        );
+                        this.$confirm("鎻愮ず", {
+                          title: "鎻愮ず",
+                          message: h1("div", null, newData1),
+                          confirmButtonText: "纭畾",
+                          cancelButtonText: "鍙栨秷",
+                          type: "",
+                        })
+                          .then(() => {
+                            this.$axios
+                              .post(this.$api.insOrderPlan.submitPlan, {
+                                orderId: this.orderId,
+                                laboratory: this.sonLaboratory,
+                                verifyUser: this.verifyUser,
+                              })
+                              .then((res) => {
+                                if (res.code === 200) {
+                                  this.$message.success("鎿嶄綔鎴愬姛");
+                                  this.$emit("goback");
+                                }
+                              })
+                              .catch((error) => {
+                                console.error(error);
+                              });
+                          })
+                          .catch(() => {});
+                      })
+                      .catch(() => {
+                        this.submitLoading = false;
+                      });
+                  } else {
+                    let newData = [];
+                    const h = this.$createElement;
+                    // 鍘婚噸涓嶅悎鏍煎鐞�
+                    let set = new Set();
+                    res.data.forEach((item) => {
+                      if (!set.has(item)) {
+                        set.add(item);
+                      }
+                    });
+                    res.data = Array.from(set);
+                    for (let i in res.data) {
+                      const lastChar = res.data[i].slice(-1);
+                      if (lastChar == "-") {
+                        res.data[i] = res.data[i].slice(0, -1);
+                      }
+                      newData.push(
+                        h(
+                          "p",
+                          { style: "font-size: 14px;color: red;" },
+                          Number(i) + 1 + "銆�" + res.data[i]
+                        )
+                      );
+                    }
+                    newData.push(
+                      h(
+                        "p",
+                        {
+                          style:
+                            "font-size: 16px;color:#000;margin-top:12px;overflow-y: auto;max-height:80vh",
+                        },
+                        "浠ヤ笂椤圭洰涓嶅悎鏍硷紝纭畾鎻愪氦锛�"
+                      )
+                    );
+                    this.$confirm("鎻愮ず", {
+                      title: "鎻愮ず",
+                      message: h("div", null, newData),
+                      confirmButtonText: "纭畾",
+                      cancelButtonText: "鍙栨秷",
+                      type: "",
+                    })
+                      .then(() => {
+                        this.$axios
+                          .post(this.$api.insOrderPlan.submitPlan, {
+                            orderId: this.orderId,
+                            laboratory: this.sonLaboratory,
+                            verifyUser: this.verifyUser,
+                          })
+                          .then((res) => {
+                            if (res.code === 200) {
+                              this.$message.success("鎿嶄綔鎴愬姛");
+                              this.$emit("goback");
+                            }
+                          })
+                          .catch((error) => {
+                            console.error(error);
+                          });
+                      })
+                      .catch(() => {});
+                    this.submitLoading = false;
+                  }
+                });
+
+              //   let newData = [];
+              //   const h = this.$createElement;
+              //   // 鍘婚噸涓嶅悎鏍煎鐞�
+              //   let set = new Set();
+              //   res.data.forEach((item) => {
+              //     if (!set.has(item)) {
+              //       set.add(item);
+              //     }
+              //   });
+              //   res.data = Array.from(set);
+              //   for (let i in res.data) {
+              //     const lastChar = res.data[i].slice(-1);
+              //     if (lastChar == "-") {
+              //       res.data[i] = res.data[i].slice(0, -1);
+              //     }
+              //     newData.push(
+              //       h(
+              //         "p",
+              //         { style: "font-size: 14px;color: red;" },
+              //         Number(i) + 1 + "銆�" + res.data[i]
+              //       )
+              //     );
+              //   }
+              //   newData.push(
+              //     h(
+              //       "p",
+              //       {
+              //         style:
+              //           "font-size: 16px;color:#000;margin-top:12px;overflow-y: auto;max-height:80vh",
+              //       },
+              //       "浠ヤ笂椤圭洰涓嶅悎鏍硷紝纭畾鎻愪氦锛�"
+              //     )
+              //   );
+              //   this.$confirm("鎻愮ず", {
+              //     title: "鎻愮ず",
+              //     message: h("div", null, newData),
+              //     confirmButtonText: "纭畾",
+              //     cancelButtonText: "鍙栨秷",
+              //     type: "",
+              //   })
+              //     .then(() => {
+              //       this.$axios
+              //         .post(this.$api.insOrderPlan.submitPlan, {
+              //           orderId: this.orderId,
+              //           laboratory: this.sonLaboratory,
+              //           verifyUser: this.verifyUser,
+              //         })
+              //         .then((res) => {
+              //           if (res.code === 200) {
+              //             this.$message.success("鎿嶄綔鎴愬姛");
+              //             this.$emit("goback");
+              //           }
+              //         })
+              //         .catch((error) => {
+              //           console.error(error);
+              //         });
+              //     })
+              //     .catch(() => {});
+            }
+          }
+          this.submitLoading = false;
+        })
+        .catch((error) => {
+          console.error(error);
+          this.submitLoading = false;
+        });
+      return;
+    },
+    // 缁熶竴鍦ㄨ繖閲屼繚瀛樻暟鎹�
+    saveInsContext(currentInsItemId, isDelete = false) {
+      // console.log("saveInsContext-->",this.param);
+      try {
+        if (this.param) {
+          let param = null;
+          if (currentInsItemId) {
+            param = { [currentInsItemId]: this.param[currentInsItemId] };
+          } else {
+            param = this.param;
+          }
+          console.log("param-->", param);
+          this.$axios
+            .post(this.$api.insOrderPlan.saveInsContext, {
+              param: JSON.stringify(param),
+              currentTable: this.currentTable,
+              sampleId: this.currentSample.id,
+              orderId: this.orderId,
+              sonLaboratory: this.sonLaboratory,
+              isDelete: isDelete,
+            })
+            .then((res) => {
+              if (res.code == 201) {
+                this.$message.error("淇濆瓨澶辫触");
+                return;
+              }
+              this.$message.success("宸蹭繚瀛�");
+            });
+          // 鍚� Worker 鍙戦�佹秷鎭紝寮�濮嬪鐞嗛�昏緫
+          this.worker.postMessage(
+            JSON.stringify({
+              modelType: this.sampleProduct[0].model,
+              type: "saveData",
+              tableList: this.tableList,
+              param: this.param,
+              currentTable: this.currentTable,
+            })
+          );
+        }
+      } catch (error) {
+        console.log(999, error);
+      }
+    },
+    // 璁惧鏀瑰彉
+    changeEquip(val, n, v) {
+      this.$set(n.v, "v", val);
+      this.tableList[0].arr.forEach((item, index) => {
+        item.forEach((m, i) => {
+          if (this.param[m.i]) {
+            this.param[m.i].state = 1;
+          }
+          if (m.i == n.i && m.v.ps && m.v.ps.value == "璁惧鍚嶇О" && v) {
+            this.$set(m.v, "v", v);
+          }
+        });
+      });
+      for (let i in this.param) {
+        if (this.param[i].state != 1) {
+          delete this.param[i];
+        }
+      }
+      if (val && v) {
+        for (let i1 in this.param[n.i].equipName) {
+          if (
+            this.param[n.i].equipName[i1].i === n.i &&
+            this.param[n.i].equipName[i1].r === n.r
+          ) {
+            this.$delete(this.param[n.i].equipValue[i1].v, "v");
+            this.$set(this.param[n.i].equipValue[i1].v, "v", val);
+            this.$delete(this.param[n.i].equipName[i1].v, "v");
+            this.$set(this.param[n.i].equipName[i1].v, "v", v);
+          }
+        }
+      }
+      for (let i in this.equipOptions) {
+        if (this.equipOptions[i].value == val) {
+          for (let i1 in this.param[n.i].equipName) {
+            if (
+              this.param[n.i].equipName[i1].i === n.i &&
+              this.param[n.i].equipName[i1].r === n.r
+            ) {
+              this.$delete(this.param[n.i].equipValue[i1].v, "v");
+              this.$set(this.param[n.i].equipValue[i1].v, "v", val);
+              this.$delete(this.param[n.i].equipName[i1].v, "v");
+              this.$set(
+                this.param[n.i].equipName[i1].v,
+                "v",
+                this.equipOptions[i].label
+              );
+              this.tableList[0].arr.forEach((item, index) => {
+                item.forEach((m) => {
+                  if (m.i == n.i && m.v.ps && m.v.ps.value == "璁惧鍚嶇О") {
+                    this.$set(m.v, "v", this.equipOptions[i].label);
+                  }
+                });
+              });
+            }
+          }
+        }
+      }
+      console.log("param", this.param);
+      console.log("tableList", this.tableList);
+      let ids = [];
+      ids.push(n.i);
+      // 閫夋嫨璁惧闇�瑕佸皢鍚堝苟鐨勫崟鍏冩牸涓�璧疯祴鍊�
+      this.tableList[0].arr.forEach((item, index) => {
+        item.forEach((m, i) => {
+          if (m.i == n.i && m.v.ps && m.v.ps.value == "璁惧鍚嶇О") {
+            if (m.v.mc) {
+              if (m.v.mc.rs) {
+                for (let j = 1; j < m.v.mc.rs; j++) {
+                  let value = m.v.v; // 璁惧鍚嶇О
+                  this.tableList[0].arr[index + j][i].v.v = value;
+                }
+              }
+            }
+          }
+          if (m.i == n.i && m.v.ps && m.v.ps.value == "璁惧缂栫爜") {
+            if (m.v.mc) {
+              if (m.v.mc.rs) {
+                for (let j = 1; j < m.v.mc.rs; j++) {
+                  let value = m.v.v; // 璁惧缂栫爜
+                  this.tableList[0].arr[index + j][i].v.v = value;
+                  let productId = this.tableList[0].arr[index + j][0].i;
+                  ids.push(productId);
+                }
+              }
+            }
+          }
+        });
+      });
+
+      console.log("ids", ids);
+      console.log("tableList2", this.tableList);
+      //淇濆瓨鏁版嵁
+      ids.forEach((id) => {
+        setTimeout(() => {
+          this.saveInsContext(id);
+        }, 100);
+      });
+
+      //this.saveInsContext(ids[i]);
+    },
+    getAuthorizedPerson() {
+      this.$axios.get(this.$api.user.getLaboratoryPersonList).then((res) => {
+        // let data = []
+        // // let userName = JSON.parse(localStorage.getItem("user")).name;
+        // res.data.forEach(a => {
+        //   if(!this.inspectorList.includes(a.name)) {
+        //     data.push({
+        //     label: a.name,
+        //     value: a.id
+        //   })
+        //   }
+        // })
+        this.personList = res.data;
+      });
+    },
+    scrollInit() {
+      // 鑾峰彇瑕佺粦瀹氫簨浠剁殑鍏冪礌
+      const nav = document.getElementById("nav");
+      var flag; // 榧犳爣鎸変笅
+      var downX; // 榧犳爣鐐瑰嚮鐨剎涓嬫爣
+      var scrollLeft; // 褰撳墠鍏冪礌婊氬姩鏉$殑鍋忕Щ閲�
+      nav.addEventListener("mousedown", function (event) {
+        flag = true;
+        downX = event.clientX; // 鑾峰彇鍒扮偣鍑荤殑x涓嬫爣
+        scrollLeft = this.scrollLeft; // 鑾峰彇褰撳墠鍏冪礌婊氬姩鏉$殑鍋忕Щ閲�
+      });
+      nav.addEventListener("mousemove", function (event) {
+        if (flag) {
+          // 鍒ゆ柇鏄惁鏄紶鏍囨寜涓嬫粴鍔ㄥ厓绱犲尯鍩�
+          var moveX = event.clientX; // 鑾峰彇绉诲姩鐨剎杞�
+          var scrollX = moveX - downX; // 褰撳墠绉诲姩鐨剎杞翠笅鏍囧噺鍘诲垰鐐瑰嚮涓嬪幓鐨剎杞翠笅鏍囧緱鍒伴紶鏍囨粦鍔ㄨ窛绂�
+          this.scrollLeft = scrollLeft - scrollX; // 榧犳爣鎸変笅鐨勬粴鍔ㄦ潯鍋忕Щ閲忓噺鍘诲綋鍓嶉紶鏍囩殑婊戝姩璺濈
+        }
+      });
+      // 榧犳爣鎶捣鍋滄鎷栧姩
+      nav.addEventListener("mouseup", function () {
+        flag = false;
+      });
+      // 榧犳爣绂诲紑鍏冪礌鍋滄鎷栧姩
+      nav.addEventListener("mouseleave", function (event) {
+        flag = false;
+      });
+    },
+    // 椤甸潰閲岄潰鍒囨崲鏍峰搧
+    async caretSample(num) {
+      let index = this.currentKey + num;
+      if (index < 1) {
+        this.$message.error("褰撳墠鏄涓�涓牱鍝�");
+        return;
+      } else if (index > this.sampleProduct.length) {
+        this.$message.error("褰撳墠鏄渶鍚庝竴涓牱鍝�");
+        return;
+      }
+      this.currentKey = index;
+      this.currentSample = this.HaveJson(this.sampleProduct[index - 1]);
+      // 鑾峰彇妫�楠岄」
+      let list = await this.getCurrentProduct(this.currentSample.id, 0);
+      this.currentSample.insProduct = this.HaveJson(list);
+      // 鍒濆鍖栧悗绔紶鍙�
+      this.param = {};
+      this.changeType = 0;
+      this.currentSample.insProduct.forEach((a, j) => {
+        this.param[a.id] = {
+          insValue: [],
+          comValue: [],
+          resValue: null,
+          equipValue: [],
+          equipName: [],
+          insResult: null,
+        };
+      });
+      // 鏇存柊椤甸潰鍏夌氦閫夋嫨
+      this.getReportModel(this.currentSample.id);
+      // 椤甸潰鏁版嵁澶勭悊
+      this.getTableLists();
+      // 鏇存柊鍒板绾跨▼
+      this.worker.postMessage(
+        JSON.stringify({
+          modelType: this.sampleProduct[0].model,
+          type: "saveData",
+          tableList: this.tableList,
+          param: this.param,
+          currentTable: this.currentTable,
+        })
+      );
+    },
+    caretBushing(num) {
+      let index = this.currentKey0 + num;
+      if (index < 1) {
+        this.$message.error("褰撳墠鏄涓�涓绠�");
+        return;
+      } else if (index > this.bushing.length) {
+        this.$message.error("褰撳墠鏄渶鍚庝竴涓绠�");
+        return;
+      }
+      this.currentKey0 = index;
+      this.currentBushing = this.HaveJson(this.bushing[index - 1]);
+      this.fiberOpticTape = [];
+      this.currentFiberOpticTape = null;
+      this.fiberOptic = [];
+      this.currentFiberOptic = null;
+      if (this.currentBushing.fiber && this.currentBushing.fiber.length > 0) {
+        // 鐩存帴閰嶇疆鍏夌氦
+        this.fiberOptic = this.currentBushing.fiber;
+      } else if (
+        this.currentBushing.fibers &&
+        this.currentBushing.fibers.length > 0
+      ) {
+        // 閰嶇疆鍏夌氦甯﹀悗锛屽啀閰嶇疆鍏夌氦
+        this.fiberOpticTape = this.currentBushing.fibers;
+      }
+    },
+    async caretTape(num) {
+      let index = this.currentKey1 + num;
+      if (index < 1) {
+        this.$message.error("褰撳墠鏄涓�涓厜绾ゅ甫");
+        return;
+      } else if (index > this.fiberOpticTape.length) {
+        this.$message.error("褰撳墠鏄渶鍚庝竴涓厜绾ゅ甫");
+        return;
+      }
+      this.currentKey1 = index;
+      this.currentFiberOpticTape = this.HaveJson(
+        this.fiberOpticTape[index - 1]
+      );
+      this.param = {};
+      this.fiberOptic = [];
+      this.currentFiberOptic = null;
+      this.currentFiberOpticTape.productList.forEach((a) => {
+        this.param[a.id] = {
+          insValue: [],
+          comValue: [],
+          resValue: null,
+          equipValue: [],
+          equipName: [],
+          insResult: null,
+        };
+      });
+      this.fiberOpticTapeVisible = false;
+      let list = await this.getCurrentProduct(this.currentFiberOpticTape.id, 1);
+      this.getTableLists0(list);
+      if (
+        this.currentFiberOpticTape.fiber &&
+        this.currentFiberOpticTape.fiber.length > 0
+      ) {
+        // 閰嶇疆鍏夌氦
+        this.fiberOptic = this.currentFiberOpticTape.fiber;
+      }
+    },
+    async caretOptic(num) {
+      let index = this.currentKey2 + num;
+      if (index < 1) {
+        this.$message.error("褰撳墠鏄涓�涓厜绾�");
+        return;
+      } else if (index > this.fiberOptic.length) {
+        this.$message.error("褰撳墠鏄渶鍚庝竴涓厜绾�");
+        return;
+      }
+      this.currentKey2 = index;
+      this.currentFiberOptic = this.HaveJson(this.fiberOptic[index - 1]);
+      this.currentFiberOptic.productList.forEach((a) => {
+        this.param[a.id] = {
+          insValue: [],
+          comValue: [],
+          resValue: null,
+          equipValue: [],
+          equipName: [],
+          insResult: null,
+        };
+      });
+      let list = await this.getCurrentProduct(this.currentFiberOptic.id, 2);
+      this.getTableLists0(list);
+    },
+    handleSuccessUp(response) {
+      this.upLoading = false;
+      if (response.code == 200) {
+        this.$message.success("涓婁紶鎴愬姛");
+        this.$refs.fileList.selectList();
+      }
+    },
+    beforeUpload(file) {
+      if (file.size > 1024 * 1024 * 10) {
+        this.$message.error("涓婁紶鏂囦欢涓嶈秴杩�10M");
+        this.$refs.upload.clearFiles();
+        return false;
+      } else {
+        this.upLoading = true;
+        return true;
+      }
+    },
+    onError(err, file, fileList) {
+      this.$message.error("涓婁紶澶辫触");
+      this.$refs.upload.clearFiles();
+    },
+    handleDown(row) {
+      this.$axios
+        .post(this.$api.insOrderPlan.downFile, {
+          id: row.id,
+        })
+        .then((res) => {
+          if (res.code === 200) {
+            let url = "";
+            if (res.data.type == 1) {
+              url = this.javaApi + "/img/" + res.data.fileUrl;
+              file.downloadIamge(url, row.fileName);
+            } else {
+              url = this.javaApi + "/word/" + res.data.fileUrl;
+              const link = document.createElement("a");
+              link.href = url;
+              link.download = row.fileName;
+              link.click();
+            }
+          }
+        })
+        .catch((error) => {});
+    },
+    /**
+     * 灏嗘暟鍊紇淇濈暀ct.fa涓�'##'鍚庣殑鎸囧畾灏忔暟浣嶆暟锛屽苟杩斿洖鏍煎紡鍖栧悗鐨勫瓧绗︿覆銆�
+     *
+     * @param v 瑕佹牸寮忓寲鐨勬暟鍊�
+     * @param ct 鍖呭惈鏍煎紡鍖栭厤缃殑瀵硅薄
+     * @param ct.fa 鏍煎紡鍖栭厤缃瓧绗︿覆锛岃嫢鍖呭惈'##'鍒欐寜鐓у叾鍚庣殑鍐呭纭畾灏忔暟浣嶆暟
+     * @returns 鏍煎紡鍖栧悗鐨勫瓧绗︿覆鎴栧師濮嬫暟鍊硷紙鑻ラ厤缃笉绗﹀悎瑕佹眰锛�
+     */
+    toFixed(v, ct) {
+      if (v && ct && ct.fa) {
+        if (ct.fa.includes(".")) {
+          let num = ct.fa.slice(4).length;
+          return Number(v).toFixed(num);
+        } else {
+          return v;
+        }
+      } else {
+        return v;
+      }
+    },
+  },
+};
+</script>
diff --git a/src/views/business/inspectionTask/index.vue b/src/views/business/inspectionTask/index.vue
index c4c94aa..329d4e4 100644
--- a/src/views/business/inspectionTask/index.vue
+++ b/src/views/business/inspectionTask/index.vue
@@ -1,9 +1,2068 @@
 <template>
-  <div>妫�楠屼换鍔�</div>
+  <div class="bg-1" style="padding: 15px 5px">
+    <basic-container>
+      <div class="search" :style="`height: ${more ? 100 : 50}px;`">
+        <el-row :gutter="10" style="width: 100%">
+          <el-col :span="16" style="display: flex; flex-wrap: wrap">
+            <div
+              class="search_thing"
+              style="margin-left: 20px"
+              v-if="maxNum > 1"
+            >
+              <div class="search_label">濮旀墭缂栧彿锛�</div>
+              <div class="search_input">
+                <el-input
+                  size="small"
+                  placeholder="璇疯緭鍏�"
+                  clearable
+                  v-model="queryParams.entrustCode"
+                  @keyup.enter.native="refreshTable()"
+                ></el-input>
+              </div>
+            </div>
+            <div
+              class="search_thing"
+              style="margin-left: 20px"
+              v-if="maxNum > 2"
+            >
+              <div class="search_label">鏍峰搧缂栧彿锛�</div>
+              <div class="search_input">
+                <el-input
+                  size="small"
+                  placeholder="璇疯緭鍏�"
+                  clearable
+                  v-model="queryParams.sampleCode"
+                  @keyup.enter.native="refreshTable()"
+                ></el-input>
+              </div>
+            </div>
+            <div
+              class="search_thing"
+              style="margin-left: 20px"
+              v-if="maxNum > 3"
+            >
+              <div class="search_label">鏍峰搧鍚嶇О锛�</div>
+              <div class="search_input">
+                <el-input
+                  size="small"
+                  placeholder="鏍峰搧澶х被/鏍峰搧鍚嶇О"
+                  clearable
+                  v-model="queryParams.sample"
+                  @keyup.enter.native="refreshTable()"
+                ></el-input>
+              </div>
+            </div>
+            <div
+              class="search_thing"
+              style="margin-left: 20px"
+              v-if="maxNum >= 4 || more"
+            >
+              <div class="search_label">妫�楠岀姸鎬侊細</div>
+              <div class="search_input">
+                <el-select
+                  size="small"
+                  v-model="queryParams.insState"
+                  style="width: 100%"
+                  clearable
+                  @change="refreshTable()"
+                >
+                  <el-option
+                    v-for="(a, i) in insStateList"
+                    :key="i"
+                    :label="a.dictLabel"
+                    :value="a.dictValue"
+                  ></el-option>
+                </el-select>
+              </div>
+            </div>
+            <div
+              class="search_thing"
+              style="margin-left: 20px"
+              v-if="maxNum >= 5 || more"
+            >
+              <div class="search_label">涓嬪彂鏃堕棿锛�</div>
+              <div class="search_input">
+                <div class="search_input">
+                  <el-date-picker
+                    size="small"
+                    clearable
+                    @change="refreshTable()"
+                    v-model="queryParams.sendTimeRange"
+                    type="daterange"
+                    value-format="yyyy-MM-dd[T]HH:mm:ss"
+                    range-separator="鑷�"
+                    start-placeholder="寮�濮嬫棩鏈�"
+                    end-placeholder="缁撴潫鏃ユ湡"
+                    :default-time="['00:00:00', '23:59:59']"
+                  >
+                  </el-date-picker>
+                </div>
+              </div>
+            </div>
+          </el-col>
+          <el-col :span="8">
+            <div class="search_thing">
+              <el-button
+                v-if="maxNum < 5"
+                type="text"
+                :icon="!more ? 'el-icon-arrow-down' : 'el-icon-arrow-up'"
+                style="color: #3a7bfa"
+                @click="more = !more"
+                >{{ !more ? "鏇村" : "鏀惰捣" }}</el-button
+              >
+              <div class="search_thing" style="padding-left: 10px">
+                <el-button size="small" @click="refresh()">閲� 缃�</el-button>
+                <el-button size="small" type="primary" @click="refreshTable()"
+                  >鏌� 璇�</el-button
+                >
+                <template>
+                  <el-button size="small" type="primary" @click="excelExport"
+                    >鏌ョ湅缁撴灉</el-button
+                  >
+                  <el-button
+                    size="small"
+                    type="primary"
+                    @click="unInsDialogVisible = true"
+                    >瀵煎嚭寰呮淇℃伅</el-button
+                  >
+                </template>
+              </div>
+            </div>
+          </el-col>
+        </el-row>
+      </div>
+    </basic-container>
+    <basic-container>
+      <div class="center">
+        <div class="center-options">
+          <el-row>
+            <el-col :span="24">
+              <div
+                style="
+                  display: flex;
+                  align-items: center;
+                  justify-content: space-between;
+                "
+              >
+                <div style="display: flex; align-items: center">
+                  <ul class="tab">
+                    <li
+                      v-for="(m, i) in tabList"
+                      :key="i"
+                      :class="{ active: i == tabIndex }"
+                      @click="handleTab(m, i)"
+                    >
+                      {{ m.label.replace("璇曢獙瀹�", "") }}
+                    </li>
+                  </ul>
+                  <div>
+                    <el-checkbox
+                      @change="changeCheckBox"
+                      class="view-self-checkbox"
+                      v-model="alone"
+                      ><span>鎴戠殑浠诲姟</span></el-checkbox
+                    >
+                  </div>
+                </div>
+                <div class="center-title">
+                  <p>
+                    <span>鏈湀浠诲姟鏁伴噺:</span>
+                    <span v-if="currentMonthPlanTotal != undefined">{{
+                      currentMonthPlanTotal
+                    }}</span>
+                  </p>
+                  <p>
+                    <span>鎬昏浠诲姟鏁伴噺:</span>
+                    <span v-if="$refs.insOrderPlan != undefined">{{
+                      $refs.insOrderPlan.page.total
+                    }}</span>
+                  </p>
+                </div>
+              </div>
+            </el-col>
+          </el-row>
+        </div>
+        <lims-table
+          ref="insOrderPlan"
+          highlightCurrentRow
+          :rowClassName="changeRowClass"
+          :tableData="tableData"
+          :height="tableMainHeight + ''"
+          :column="column"
+          @pagination="pagination"
+          :page="page"
+          :tableLoading="tableLoading"
+        >
+        </lims-table>
+      </div>
+    </basic-container>
+    <div v-show="activeFace == 0 && state == 0" style="height: 100%"></div>
+
+    <el-dialog title="鎻愮ず" :visible.sync="claimVisible" width="400px">
+      鏄惁璁ら濮旀墭缂栧彿<span style="color: #33c130">{{
+        sampleUserForm.entrustCode
+      }}</span
+      >鐨勪换鍔�
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="claimVisible = false">鍙� 娑�</el-button>
+        <el-button type="primary" @click="confirmClaim" :loading="loading"
+          >纭� 瀹�</el-button
+        >
+      </span>
+    </el-dialog>
+    <el-dialog title="妫�楠屼氦鎺�" :visible.sync="connectVisible" width="400px">
+      <div class="search_thing">
+        <div class="search_label" style="width: 90px">
+          <span class="required-span">* </span>浜ゆ帴浜哄憳锛�
+        </div>
+        <div class="search_input">
+          <el-select
+            v-model="connect.connectPerson"
+            placeholder="璇烽�夋嫨"
+            style="width: 100%"
+            filterable
+          >
+            <el-option-group
+              v-for="(item, index) in Object.keys(personList)"
+              :key="index"
+              :label="item"
+            >
+              <el-option
+                :disabled="
+                  userNameList.filter((name) => name == op.name).length > 0
+                "
+                v-for="op in personList[item]"
+                :key="op.id"
+                :label="op.name"
+                :value="op.id"
+              >
+              </el-option>
+            </el-option-group>
+          </el-select>
+        </div>
+      </div>
+      <div class="search_thing">
+        <div class="search_label" style="width: 90px">
+          <span class="required-span">* </span>璇曢獙瀹わ細
+        </div>
+        <div class="search_input">
+          <el-select
+            v-model="connect.sonLaboratory"
+            placeholder="璇烽�夋嫨"
+            style="width: 100%"
+            filterable
+          >
+            <el-option
+              v-for="item in sonLaboratoryList"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            >
+            </el-option>
+          </el-select>
+        </div>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="connectVisible = false">鍙� 娑�</el-button>
+        <el-button type="primary" @click="confirmConnect" :loading="loading"
+          >纭� 瀹�</el-button
+        >
+      </span>
+    </el-dialog>
+    <div style="width: 100%; height: 100%" v-if="activeFace > 0">
+      <Add :active="activeFace" :currentId="currentId" :examine="examine" />
+    </div>
+    <Inspection
+      v-if="state > 0"
+      @goback="goback"
+      :handover="personList"
+      :sonLaboratoryList="sonLaboratoryList"
+      :orderId="orderId"
+      :inspectorList="inspectorList"
+      :sonLaboratory="componentData.entity.sonLaboratory"
+      :state="state"
+    />
+    <el-dialog
+      title="鏁版嵁鏌ョ湅"
+      :visible.sync="dataDialogVisible"
+      width="100%"
+      fullscreen
+    >
+      <!-- <div
+        style="width: 100%; text-align: right; margin-bottom: 10px"
+        v-if="premissionReviewFun()"
+      >
+        <el-button type="primary" size="small" @click="goReview(currentRow)"
+          >鍓嶅線澶嶆牳</el-button
+        >
+      </div> -->
+      <lims-table
+        ref="dataLookTable"
+        highlightCurrentRow
+        :tableData="dataLooktableData"
+        height="80vh"
+        :column="dataLookColumn"
+        :tableLoading="dataLookTableLoading"
+      >
+      </lims-table>
+    </el-dialog>
+    <!-- 瀵煎嚭寮规 -->
+    <el-dialog
+      :title="title"
+      :visible.sync="dialogVisibleExcel"
+      fullscreen
+      :before-close="handleClose"
+    >
+      <div class="search">
+        <div style="display: flex">
+          <div style="margin-right: 20px">
+            <span>濮旀墭鍗曞彿锛�</span>
+            <el-input
+              size="mini"
+              placeholder="璇疯緭鍏�"
+              clearable
+              style="width: 180px"
+              v-model="excelForm.entrustCode"
+              @keyup.enter.native="refreshTable()"
+            ></el-input>
+          </div>
+          <div style="margin-right: 20px">
+            <span>鏍峰搧缂栧彿锛�</span>
+            <el-input
+              size="mini"
+              placeholder="璇疯緭鍏�"
+              clearable
+              v-model="excelForm.sampleCode"
+              style="width: 180px"
+              @keyup.enter.native="refreshTable()"
+            ></el-input>
+          </div>
+          <div style="margin-right: 20px">
+            <span>妫�楠屼汉锛�</span>
+            <el-select
+              size="mini"
+              v-model="excelForm.sampleName"
+              placeholder="璇烽�夋嫨"
+              @keyup.enter.native="refreshTable()"
+              style="width: 120px"
+            >
+              <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>
+          <div style="margin-right: 20px">
+            <span>鏃ユ湡锛�</span>
+            <el-date-picker
+              size="mini"
+              v-model="excelForm.dateTime"
+              type="daterange"
+              range-separator="鑷�"
+              value-format="yyyy-MM-dd HH:mm:ss"
+              format="yyyy-MM-dd"
+              start-placeholder="寮�濮嬫棩鏈�"
+              end-placeholder="缁撴潫鏃ユ湡"
+            >
+            </el-date-picker>
+          </div>
+        </div>
+        <div class="search_thing">
+          <el-button
+            size="mini"
+            type="primary"
+            icon="el-icon-search"
+            @click="excelSearch"
+            >鏌� 璇�</el-button
+          >
+          <el-button
+            size="mini"
+            icon="el-icon-download"
+            type="primary"
+            @click="excelExportTrends"
+            :loading="outLoading"
+            >瀵� 鍑�</el-button
+          >
+        </div>
+      </div>
+      <!-- 琛ㄦ牸鍐呭 -->
+      <el-divider content-position="left">妫�楠岀粨鏋�</el-divider>
+      <br />
+      <div>
+        <el-tabs
+          type="border-card"
+          v-model="activeName"
+          @tab-click="handleClick"
+        >
+          <el-tab-pane
+            v-for="(v, i) in tabs"
+            :key="i"
+            :label="v"
+            :name="i.toString()"
+          >
+            <el-table
+              :data="tabsData"
+              border
+              ref="showResultTable"
+              v-loading="loadingTable"
+              :height="tableHeight"
+              element-loading-text="鍔犺浇涓�"
+              element-loading-spinner="el-icon-loading"
+              element-loading-background="rgba(255, 255, 255, 1)"
+            >
+              <el-table-column
+                label="搴忓彿"
+                type="index"
+                width="60"
+              ></el-table-column>
+              <el-table-column
+                label="濮旀墭鍗曞彿"
+                show-overflow-tooltip
+                prop="entrustCode"
+                width="180"
+              ></el-table-column>
+              <el-table-column
+                show-overflow-tooltip
+                label="鏍峰搧缂栧彿"
+                prop="sampleCode"
+                width="180"
+              ></el-table-column>
+              <el-table-column
+                label="绠¤壊鏍�"
+                prop="bushing"
+                width="80"
+              ></el-table-column>
+              <el-table-column
+                label="鍏夌氦甯﹁壊鏍�"
+                prop="fibers"
+                width="110"
+              ></el-table-column>
+              <el-table-column
+                label="鍏夌氦鑹叉爣"
+                prop="fiber"
+                width="100"
+              ></el-table-column>
+              <el-table-column
+                label="妫�娴嬮」鐩垎绫�"
+                show-overflow-tooltip
+                prop="inspectionItem"
+                v-if="tabName != '娓╁害寰幆'"
+                width="180"
+              ></el-table-column>
+              <el-table-column
+                label="妫�娴嬩汉"
+                prop="userName"
+                width="80"
+              ></el-table-column>
+              <el-table-column
+                label="妫�娴嬫椂闂�"
+                prop="insTime"
+                width="180"
+              ></el-table-column>
+              <el-table-column
+                label="涓嬪彂鏃堕棿"
+                prop="sendTime"
+                width="180"
+              ></el-table-column>
+              <el-table-column
+                v-for="(v, i) in tableHeader"
+                :label="v.label"
+                :prop="v.prop"
+                :key="i"
+                min-width="120"
+                show-overflow-tooltip
+                :width="calcTableColumnWidth(v.label)"
+              >
+              </el-table-column>
+            </el-table>
+            <el-pagination
+              background
+              style="text-align: right; margin-top: 20px"
+              @size-change="handleSizeChange"
+              @current-change="handleCurrentChange"
+              :current-page="currentPage"
+              :page-sizes="[10, 20, 50, 100, 200]"
+              :page-size="pageSize"
+              layout="total, sizes, prev, pager, next, jumper"
+              :total="total"
+            >
+            </el-pagination>
+          </el-tab-pane>
+        </el-tabs>
+      </div>
+    </el-dialog>
+    <!-- 瀵煎嚭濮旀墭璐圭敤寮规 -->
+    <el-dialog
+      title="濮旀墭璐圭敤缁熻瀵煎嚭"
+      :visible.sync="commissionFeesDialogVisible"
+      width="30%"
+      :before-close="handleCloseCommissionFees"
+    >
+      <el-form :model="exportFees" ref="exportFees" :rules="feesRule">
+        <el-form-item label="涓嬪崟鏃ユ湡" prop="commissionFeesDate">
+          <el-date-picker
+            v-model="exportFees.commissionFeesDate"
+            type="daterange"
+            format="yyyy-MM-dd"
+            value-format="yyyy-MM-dd"
+            range-separator="鑷�"
+            start-placeholder="寮�濮嬫棩鏈�"
+            end-placeholder="缁撴潫鏃ユ湡"
+          >
+          </el-date-picker>
+        </el-form-item>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="handleCloseCommissionFees">鍙� 娑�</el-button>
+        <el-button type="primary" @click="exportcommissionFees"
+          >纭� 瀹�</el-button
+        >
+      </span>
+    </el-dialog>
+    <!-- 瀵煎嚭寰呮淇℃伅寮规 -->
+    <el-dialog
+      title="寰呮浠诲姟瀵煎嚭"
+      :visible.sync="unInsDialogVisible"
+      width="30%"
+      :before-close="handleCloseUnInsDialog"
+    >
+      <el-form
+        :model="unInsProductsData"
+        ref="exportUnInsProducts"
+        :rules="unInsRule"
+      >
+        <el-form-item label="涓嬪彂鏃ユ湡" prop="sendTime">
+          <el-date-picker
+            v-model="unInsProductsData.sendTime"
+            type="daterange"
+            format="yyyy-MM-dd"
+            value-format="yyyy-MM-dd"
+            range-separator="鑷�"
+            start-placeholder="寮�濮嬫棩鏈�"
+            end-placeholder="缁撴潫鏃ユ湡"
+          >
+          </el-date-picker>
+        </el-form-item>
+      </el-form>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="handleCloseUnInsDialog">鍙� 娑�</el-button>
+        <el-button type="primary" @click="exportUnInsProductsFun"
+          >纭� 瀹�</el-button
+        >
+      </span>
+    </el-dialog>
+    <!-- 鏁版嵁鏌ョ湅璇︽儏 -->
+    <el-dialog
+      title="鏌ョ湅璇︽儏"
+      :visible.sync="dialogVisible"
+      width="70%"
+      :before-close="handleClose3"
+    >
+      <el-table
+        v-if="type == '鍗曟牴鍨傜洿鐕冪儳' || type == '鏉惧绠�'"
+        :data="viewDetailsList"
+        border
+        height="400px"
+        style="width: 100%"
+      >
+        <el-table-column
+          type="index"
+          label="搴忓彿"
+          width="80px"
+        ></el-table-column>
+        <el-table-column prop="entrustCode" label="濮旀墭鍗曞彿"></el-table-column>
+        <el-table-column prop="sampleCode" label="鏍峰搧缂栧彿"></el-table-column>
+        <el-table-column
+          prop="color"
+          label="濂楃"
+          v-if="viewDetailsList.filter((ele) => ele.color !== '').length > 0"
+        ></el-table-column>
+        <!-- <el-table-column prop="inspectionItem" label="妫�楠岄」"></el-table-column> -->
+        <el-table-column prop="insValue" label="妫�楠岀粨鏋�"></el-table-column>
+      </el-table>
+
+      <el-table
+        v-if="type == '鎶楁媺寮哄害'"
+        :data="viewDetailsList"
+        height="400px"
+        border
+        style="width: 100%"
+      >
+        <el-table-column
+          type="index"
+          label="搴忓彿"
+          width="80px"
+        ></el-table-column>
+        <el-table-column prop="inspectionItem" label="妫�楠岄」"></el-table-column>
+        <el-table-column
+          prop="inspectionItemSubclass"
+          label="妫�楠屽瓙椤�"
+        ></el-table-column>
+        <el-table-column prop="width" label="瀹藉害"></el-table-column>
+        <el-table-column prop="thickness" label="鍘氬害"></el-table-column>
+        <el-table-column prop="testValue" label="妫�楠屽��"></el-table-column>
+      </el-table>
+
+      <el-table
+        v-if="type == '鏂浼搁暱鐜�'"
+        :data="viewDetailsList"
+        height="400px"
+        border
+        style="width: 100%"
+      >
+        <el-table-column
+          type="index"
+          label="搴忓彿"
+          width="80px"
+        ></el-table-column>
+        <el-table-column prop="inspectionItem" label="妫�楠岄」"></el-table-column>
+        <el-table-column
+          prop="inspectionItemSubclass"
+          label="妫�楠屽瓙椤�"
+        ></el-table-column>
+        <el-table-column
+          v-for="(v, i) in tableHeader"
+          :key="i"
+          :prop="`testValue${i}`"
+          :label="`妫�楠屽��${i + 1}`"
+        ></el-table-column>
+      </el-table>
+    </el-dialog>
+    <!-- 璁㈠崟鍩烘湰淇℃伅寮规 -->
+    <el-dialog
+      title="濮旀墭鍗曚俊鎭�"
+      :visible.sync="orderInfoDialog"
+      top="5vh"
+      width="70%"
+    >
+      <el-divider content-position="left">妫�楠屾牱鍝佺紪鍙峰垪琛�</el-divider>
+      <el-table
+        :data="insSampleListData"
+        border
+        height="200"
+        :cell-style="{ textAlign: 'center' }"
+        :header-cell-style="{ textAlign: 'center' }"
+      >
+        <el-table-column label="鏍峰搧缂栧彿" prop="sampleCode"></el-table-column>
+        <el-table-column label="鐘舵��" prop="state">
+          <template slot-scope="scope">
+            <el-tag type="danger" v-if="scope.row.state == 0">寰呮</el-tag>
+            <el-tag type="warning" v-if="scope.row.state == 1">鍦ㄦ</el-tag>
+            <el-tag type="success" v-if="scope.row.state == 2">宸叉</el-tag>
+          </template>
+        </el-table-column>
+        <el-table-column label="妫�娴嬩汉" prop="inspectName"></el-table-column>
+      </el-table>
+      <br />
+      <el-divider content-position="left">濮旀墭鍗曞唴瀹�</el-divider>
+      <el-table
+        :data="insProductVOSData"
+        border
+        height="300"
+        :cell-style="{ textAlign: 'center' }"
+        :header-cell-style="{ textAlign: 'center' }"
+      >
+        <el-table-column
+          label="鏍峰搧缂栧彿"
+          prop="sampleCode"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          label="鏍峰搧鍨嬪彿"
+          prop="model"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          label="妫�娴嬮」鐩�"
+          prop="testItem"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          label="妫�娴嬪瓙椤�"
+          prop="testItemChildren"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          label="璇曢獙鏂规硶"
+          prop="testMethod"
+          show-overflow-tooltip
+        ></el-table-column>
+        <el-table-column
+          label="鏍囧噯瑕佹眰"
+          prop="requirement"
+          show-overflow-tooltip
+        ></el-table-column>
+      </el-table>
+    </el-dialog>
+  </div>
 </template>
 
 <script>
-export default {};
+import { mapGetters } from "vuex";
+import Inspection from "./Inspection.vue";
+import { getYearAndMonthAndDays } from "@/utils/date";
+import { transformExcel } from "@/utils/file";
+import limsTable from "@/components/Table/lims-table.vue";
+import {
+  getCurrentMonthPlanTotal,
+  exportCommissionFees,
+  exportUnInsProducts,
+  exportInsOrderPlanResult,
+  getTabHeader,
+  getInsOrderTemList,
+  getInsOrderPlanList,
+  claimInsOrderPlan,
+  getSampleInfoByOrderId,
+  selectInsOrderPlanList,
+  upPlanUser2,
+  upPlanUser,
+} from "@/api/business/inspectionTask";
+import {
+  selectSampleAndProductByOrderId,
+  viewDetails,
+} from "@/api/business/inspectionOrder";
+import { getDicts } from "@/api/system/dict/data";
+import { getLaboratoryPersonList } from "@/api/system/user";
+import LimsTable from "../../../components/Table/lims-table.vue";
+export default {
+  components: {
+    Inspection,
+    limsTable,
+    LimsTable,
+  },
+  computed: {
+    ...mapGetters(["permissions", "nickName"]),
+  },
+  data() {
+    return {
+      insStateList: [],
+      urgencyDictList: [],
+      tableData: [],
+      column: [
+        {
+          label: "濮旀墭缂栧彿",
+          prop: "entrustCode",
+          minWidth: "160px",
+          width: "160px",
+          dataType: "link",
+          linkEvent: {
+            method: "selectAllByOne",
+            vueComponent: this,
+          },
+        },
+        {
+          label: "濮旀墭鍗曚綅",
+          prop: "company",
+          minWidth: "160px",
+          width: "160px",
+        },
+        {
+          label: "鏍峰搧鍚嶇О",
+          prop: "sample",
+          minWidth: "140px",
+          width: "140px",
+          dataType: "link",
+          linkEvent: {
+            method: "selectOrderInfo",
+            vueComponent: this,
+          },
+        },
+        {
+          label: "鏍峰搧鍨嬪彿",
+          prop: "model",
+          minWidth: "120px",
+          width: "120px",
+        },
+        {
+          label: "绱ф�ョ▼搴�",
+          prop: "type",
+          dataType: "tag",
+          minWidth: "90px",
+          width: "90px",
+          formatData: (params) => {
+            let index = this.urgencyDictList.findIndex(
+              (item) => item.dictValue == params
+            );
+            if (index > -1) {
+              return this.urgencyDictList[index].dictLabel;
+            } else {
+              return null;
+            }
+          },
+          formatType: (params) => {
+            let index = this.urgencyDictList.findIndex(
+              (item) => item.dictValue == params
+            );
+            if (index > -1) {
+              return this.urgencyDictList[index].listClass;
+            } else {
+              return null;
+            }
+          },
+        },
+        {
+          label: "鐘舵��",
+          prop: "insState",
+          dataType: "tag",
+          minWidth: "100px",
+          width: "100px",
+          formatData: (params) => {
+            let index = this.insStateList.findIndex(
+              (item) => item.dictValue == params
+            );
+            if (index > -1) {
+              return this.insStateList[index].dictLabel;
+            } else {
+              return null;
+            }
+          },
+          formatType: (params) => {
+            let index = this.insStateList.findIndex(
+              (item) => item.dictValue == params
+            );
+            if (index > -1) {
+              return this.insStateList[index].listClass;
+            } else {
+              return null;
+            }
+          },
+        },
+        {
+          label: "妫�楠屼汉",
+          prop: "userName",
+          minWidth: "140px",
+          width: "140px",
+        },
+        {
+          label: "澶嶆牳浜�",
+          prop: "checkName",
+          minWidth: "100px",
+          width: "100px",
+        },
+        {
+          label: "绾﹀畾鏃堕棿",
+          prop: "appointed",
+          minWidth: "120px",
+          width: "120px",
+        },
+        {
+          label: "涓嬪彂鏃堕棿",
+          prop: "sendTime",
+          minWidth: "140px",
+          width: "140px",
+        },
+        {
+          label: "妫�楠屽紑濮嬫椂闂�",
+          prop: "insTime",
+          minWidth: "140px",
+          width: "140px",
+        },
+        {
+          label: "鐞嗙敱",
+          prop: "verifyTell",
+          minWidth: "120px",
+          width: "120px",
+        },
+        {
+          label: "鎿嶄綔",
+          dataType: "action",
+          fixed: "right",
+          operation: [
+            {
+              name: "鏁版嵁鏌ョ湅",
+              type: "text",
+              clickFun: (row) => {
+                this.handleDataLook(row);
+              },
+            },
+            {
+              name: "妫�楠�",
+              type: "text",
+              clickFun: (row) => {
+                this.handleInspection(row);
+              },
+              disabled: (row, index) => {
+                return (
+                  row.userName == null ||
+                  row.insState == 3 ||
+                  row.insState == 5 ||
+                  (row.userName && !row.userName.includes(this.nickName))
+                );
+              },
+            },
+            {
+              name: "浜ゆ帴",
+              type: "text",
+              clickFun: (row) => {
+                this.handleConnect(row);
+              },
+              disabled: (row, index) => {
+                return (
+                  row.userName == null ||
+                  row.insState == 5 ||
+                  row.insState == 3 ||
+                  (row.userName &&
+                    !row.userName.includes(this.nickName) &&
+                    !this.isLeader)
+                );
+              },
+            },
+            {
+              name: "澶嶆牳",
+              type: "text",
+              clickFun: (row) => {
+                this.handleReview(row);
+              },
+              disabled: (row, userName) => {
+                return (
+                  row.userName == null ||
+                  row.insState != 3 ||
+                  (row.checkName && !row.checkName.includes(this.nickName))
+                );
+              },
+            },
+            {
+              name: "璁ら",
+              type: "text",
+              clickFun: (row) => {
+                this.claimFun(row);
+              },
+              disabled: (row, index) => {
+                return row.userName != null || row.checkName != null;
+              },
+            },
+          ],
+        },
+      ],
+      dataLooktableData: [],
+      insResultList: [
+        {
+          value: 1,
+          label: "鍚堟牸",
+          type: "success",
+        },
+        {
+          value: 0,
+          label: "涓嶅悎鏍�",
+          type: "danger",
+        },
+        {
+          value: 3,
+          label: "涓嶅垽瀹�",
+          type: "",
+        },
+      ],
+      dataLookColumn: [
+        {
+          label: "濮旀墭缂栧彿",
+          prop: "entrustCode",
+          minWidth: "160px",
+          width: "160px",
+        },
+        {
+          label: "鏍峰搧缂栧彿",
+          prop: "sampleCode",
+          minWidth: "160px",
+          width: "160px",
+        },
+        {
+          label: "绠″鑹叉爣",
+          prop: "bushColor",
+          minWidth: "100px",
+          width: "100px",
+        },
+        {
+          label: "鍏夌氦甯︾紪鍙�",
+          prop: "code",
+          minWidth: "120px",
+          width: "120px",
+        },
+        {
+          label: "鍏夌氦鑹叉爣",
+          prop: "color",
+          minWidth: "100px",
+          width: "100px",
+        },
+        {
+          label: "妫�楠岄」",
+          prop: "inspectionItem",
+          minWidth: "120px",
+          width: "120px",
+        },
+        {
+          label: "妫�楠屽瓙椤�",
+          prop: "inspectionItemSubclass",
+          minWidth: "120px",
+          width: "120px",
+        },
+        {
+          label: "妫�楠岀粨鏋�",
+          prop: "lastValue",
+          minWidth: "120px",
+          width: "120px",
+        },
+        {
+          label: "缁撴灉鍒ゅ畾",
+          prop: "insResult",
+          minWidth: "100px",
+          width: "100px",
+          dataType: "tag",
+          formatData: (params) => {
+            let index = this.insResultList.findIndex(
+              (item) => item.value == params
+            );
+            if (index > -1) {
+              return this.insResultList[index].label;
+            } else {
+              return null;
+            }
+          },
+          formatType: (params) => {
+            let index = this.insResultList.findIndex(
+              (item) => item.value == params
+            );
+            if (index > -1) {
+              return this.insResultList[index].type;
+            } else {
+              return null;
+            }
+          },
+        },
+        {
+          label: "鍗曚綅",
+          prop: "unit",
+          minWidth: "120px",
+          width: "120px",
+        },
+        {
+          label: "璇曢獙瑕佹眰",
+          prop: "tell",
+          minWidth: "120px",
+          width: "120px",
+        },
+        {
+          label: "妫�楠屼汉",
+          prop: "checkName",
+          minWidth: "120px",
+          width: "120px",
+        },
+        {
+          label: "妫�楠屾棩鏈�",
+          prop: "checkTime",
+          minWidth: "140px",
+          width: "140px",
+        },
+        {
+          label: "鏍峰搧鍚嶇О",
+          prop: "sample",
+          minWidth: "160px",
+          width: "160px",
+        },
+        {
+          label: "鏍峰搧鍨嬪彿",
+          prop: "model",
+          minWidth: "160px",
+          width: "160px",
+        },
+        {
+          label: "璇曢獙瀹�",
+          prop: "sonLaboratory",
+          minWidth: "120px",
+          width: "120px",
+        },
+        {
+          dataType: "action",
+          label: "鎿嶄綔",
+          fixed: "right",
+          operation: [
+            {
+              name: "鏌ョ湅",
+              type: "text",
+              clickFun: (row) => {
+                this.viewDetails(row);
+              },
+              // showHide: (row) => {
+              //   return (
+              //     row.inspectionItem == "鍗曟牴鍨傜洿鐕冪儳" ||
+              //     row.inspectionItem.includes("鏉惧绠�") ||
+              //     row.inspectionItemSubclass.includes("鏉惧绠�") ||
+              //     (row.inspectionItem == "鎶楁媺寮哄害" &&
+              //       (row.inspectionItemSubclass == "鐑�佸寲澶勭悊鍓�" ||
+              //         row.inspectionItemSubclass == "鐑�佸寲澶勭悊鍚�")) ||
+              //     (row.inspectionItem == "鏂浼搁暱鐜�" &&
+              //       (row.inspectionItemSubclass == "鐑�佸寲澶勭悊鍓�" ||
+              //         row.inspectionItemSubclass == "鐑�佸寲澶勭悊鍚�"))
+              //   );
+              // },
+            },
+          ],
+        },
+      ],
+      dataLookTableLoading: false,
+      queryParams: {
+        entrustCode: null,
+        sampleCode: null,
+        sample: null,
+        insState: null,
+        sendTimeRange: [],
+      },
+      page: {
+        total: 0,
+        size: 20,
+        current: 1,
+      },
+      tableLoading: false,
+
+      //old
+      tableHeader: [],
+      type: "",
+      maxNum: 1,
+      isShowMore: false,
+      more: false,
+      dialogVisible: false,
+      viewDetailsList: [],
+      unInsDialogVisible: false,
+      unInsProductsData: {
+        sendTime: [],
+      },
+      exportFees: {
+        commissionFeesDate: [],
+      },
+      feesRule: {
+        commissionFeesDate: {
+          required: true,
+          message: "璇烽�夋嫨涓嬪崟鏃ユ湡",
+          trigger: "change",
+        },
+      },
+      unInsRule: {
+        sendTime: {
+          required: true,
+          message: "璇烽�夋嫨涓嬪彂鏃ユ湡",
+          trigger: "change",
+        },
+      },
+      commissionFeesDialogVisible: false,
+      commissionFeesDate: null,
+      orderInfoDialog: false, //璁㈠崟鍩烘湰淇℃伅寮规
+      tableHeight: 0,
+      tableMainHeight: 0,
+      outLoading: false,
+      trendsTable: [],
+      pageSize: 20,
+      total: 0,
+      currentPage: 1,
+      loadingTable: true,
+      activeName: "0",
+      tabName: null,
+      tabsData: [],
+      tabs: [],
+      selectTab: "",
+      excelForm: {
+        entrustCode: null,
+        sampleCode: null,
+        sampleName: null,
+        dateTime: null,
+      },
+      dialogVisibleExcel: false,
+      examine: null,
+      inspectorList: [], //妫�楠屼汉鍛樺垪琛�
+      alone: false,
+      sampleUserForm: {
+        entrustCode: null,
+        insSampleId: null,
+        userId: null,
+      },
+      claimVisible: false,
+      tabList: [],
+      active: 1,
+      tabIndex: 0,
+      componentDataDataLook: {
+        isPage: false,
+        entity: {
+          id: 0,
+          orderBy: {
+            field: "sampleCode",
+            order: "asc",
+          },
+        },
+        isIndex: false,
+        showSelect: false,
+        select: false,
+        do: [
+          {
+            id: "",
+            font: "鏌ョ湅",
+            type: "text",
+            method: "viewDetails",
+            showFun: (row, index) => {
+              return (
+                row.inspectionItem == "鍗曟牴鍨傜洿鐕冪儳" ||
+                row.inspectionItem.includes("鏉惧绠�") ||
+                row.inspectionItemSubclass.includes("鏉惧绠�") ||
+                (row.inspectionItem == "鎶楁媺寮哄害" &&
+                  (row.inspectionItemSubclass == "鐑�佸寲澶勭悊鍓�" ||
+                    row.inspectionItemSubclass == "鐑�佸寲澶勭悊鍚�")) ||
+                (row.inspectionItem == "鏂浼搁暱鐜�" &&
+                  (row.inspectionItemSubclass == "鐑�佸寲澶勭悊鍓�" ||
+                    row.inspectionItemSubclass == "鐑�佸寲澶勭悊鍚�"))
+              );
+            },
+          },
+        ],
+        tagField: {
+          insState: {
+            select: [],
+          },
+          insResult: {
+            select: [
+              {
+                value: 1,
+                label: "鍚堟牸",
+                type: "success",
+              },
+              {
+                value: 0,
+                label: "涓嶅悎鏍�",
+                type: "danger",
+              },
+              {
+                value: 3,
+                label: "涓嶅垽瀹�",
+                type: "",
+              },
+            ],
+          },
+        },
+        selectField: {},
+        spanConfig: {
+          rows: [
+            // {
+            //   name: "entrustCode",
+            //   index: 0,
+            // },
+            // {
+            //   name: "sampleCode",
+            //   index: 1,
+            // },
+          ],
+        },
+        requiredAdd: [],
+        requiredUp: [],
+      },
+      dataDialogVisible: false,
+
+      upIndex: 0,
+      planTotal: 0,
+      state: 0, //0:鍙拌处椤碉紝1锛氭楠岄〉闈�,2妫�楠岄〉闈�(澶嶆牳)锛岄粯璁や负0
+      activeFace: 0, //1锛氫笅鍗曪紝2锛氭煡鐪嬶紝3锛氬鏍革紝榛樿涓�0
+      currentId: null,
+      entityCopy: {},
+      orderId: 0,
+      personList: [],
+      connectVisible: false,
+      connect: {
+        connectPerson: "",
+        sonLaboratory: "",
+      },
+      loading: false,
+      currentTime: null,
+      sonLaboratoryList: [],
+      userNameList: [],
+      currentRow: null,
+      insProductVOSData: [],
+      insSampleListData: [],
+      currentMonthPlanTotal: 0,
+    };
+  },
+  created() {
+    this.getLaboratoryDicts();
+    this.getTypeDicts();
+    this.getInsStateDicts();
+    this.getAuthorizedPerson();
+    this.currentTime = getYearAndMonthAndDays();
+    this.getTableHeight();
+    this.handleResize();
+  },
+  mounted() {
+    window.addEventListener("resize", this.getTableHeight);
+    // 鐩戝惉绐楀彛澶у皬鏀瑰彉浜嬩欢
+    window.addEventListener("resize", this.handleResize);
+  },
+  beforeDestroy() {
+    window.removeEventListener("resize", this.getTableHeight);
+    window.removeEventListener("resize", this.handleResize);
+  },
+  watch: {
+    more() {
+      this.getTableHeight();
+    },
+    tabsData() {
+      this.$nextTick(() => {
+        this.$refs.showResultTable &&
+          this.$refs.showResultTable.forEach((e) => e.doLayout());
+      });
+    },
+  },
+  computed: {
+    title() {
+      return this.selectTab + "妫�楠岀粨鏋滄樉绀�";
+    },
+    isLeader() {
+      const power = JSON.parse(sessionStorage.getItem("power"));
+      if (power) {
+        const filterList = power.filter((ele) => ele.menuMethod == "leader");
+        return filterList.length > 0;
+      }
+      return false;
+    },
+  },
+  methods: {
+    pagination({ page, limit }) {
+      this.page.current = page;
+      this.page.size = limit;
+      this.getList();
+    },
+    getList() {
+      this.tableLoading = true;
+      selectInsOrderPlanList({ ...this.queryParams, ...this.page })
+        .then((res) => {
+          if (res.code === 200) {
+            this.tableData = res.data.records;
+            this.page.total = res.data.total;
+          }
+          this.tableLoading = false;
+        })
+        .catch((error) => {
+          this.tableLoading = false;
+          console.error(error);
+        });
+    },
+    getCurrentMonthPlanTotal() {
+      let startTime = null;
+      let endTime = null;
+      if (this.queryParams.sendTimeRange.length > 1) {
+        startTime = this.queryParams.sendTimeRange[0].replace("T", " ");
+        endTime = this.queryParams.sendTimeRange[1].replace("T", " ");
+      }
+      getCurrentMonthPlanTotal({
+        sonLaboratory: this.queryParams.sonLaboratory,
+        startTime: startTime,
+        endTime: endTime,
+      })
+        .then((res) => {
+          if (res.code === 200) {
+            this.currentMonthPlanTotal = res.data;
+          }
+        })
+        .catch((error) => {
+          console.error(error);
+        });
+    },
+    // 瀹氫箟涓�涓嚱鏁版潵澶勭悊瑙嗗彛瀹藉害鍙樺寲
+    handleResize() {
+      //瑙嗗彛瀹藉害
+      let windowWidth = window.innerWidth;
+      //鍑忓幓宸﹁竟鑿滃崟鏍忓搴�200锛岄〉杈硅窛40,鍙宠竟鐨勬搷浣滄寜閽搴iewportWidth*33.33333%
+      let viewportWidth = windowWidth - 200 - 40;
+      //鎼滅储琛ㄥ崟鏈�澶у搴�
+      let formMaxWidth = viewportWidth - viewportWidth * 0.3333333;
+      //鍗曚釜鎼滅储妗嗗搴︿负230
+      this.maxNum = formMaxWidth / 250;
+    },
+    // 鏌ョ湅璇︽儏
+    viewDetails(row) {
+      this.dialogVisible = true;
+      if (
+        row.inspectionItem.includes("鏉惧绠�") ||
+        row.inspectionItemSubclass.includes("鏉惧绠�")
+      ) {
+        this.type = "鏉惧绠�";
+      } else {
+        this.type = row.inspectionItem;
+      }
+      let data = {
+        inspectionItem: row.inspectionItem,
+        inspectionItemSubclass: row.inspectionItemSubclass,
+        insProductId: row.insProductId,
+        insSampleId: row.insSampleId,
+        entrustCode: row.entrustCode,
+        sampleCode: row.sampleCode,
+      };
+      viewDetails(data)
+        .then((res) => {
+          if (res.code === 200) {
+            this.viewDetailsList = res.data;
+            if (res.data[0].tableHeader) {
+              this.tableHeader = res.data[0].tableHeader;
+            } else {
+              this.tableHeader = [
+                {
+                  testValue0: "",
+                },
+              ];
+            }
+          }
+        })
+        .catch((error) => {
+          console.error(error);
+        });
+    },
+    handleCommand(command) {
+      switch (command) {
+        case "showInsResults":
+          //鏌ヨ妫�楠岀粨鏋�
+          this.excelExport();
+          break;
+        case "exportFees":
+          //瀵煎嚭濮旀墭璐圭敤
+          this.commissionFeesDialogVisible = true;
+          break;
+        case "exportUnInsProducts":
+          //瀵煎嚭寰呮淇℃伅
+          this.unInsDialogVisible = true;
+          break;
+      }
+    },
+    // 瀵煎嚭濮旀墭璐圭敤
+    exportcommissionFees() {
+      this.$refs.exportFees.validate((valid) => {
+        if (valid) {
+          let data = {
+            startTime: this.exportFees.commissionFeesDate[0],
+            endTime: this.exportFees.commissionFeesDate[1],
+          };
+          exportCommissionFees(data)
+            .then((res) => {
+              transformExcel(res, "濮旀墭璐圭敤缁熻.xlsx");
+              this.$nextTick(() => {
+                this.$message.success("瀵煎嚭鎴愬姛");
+                this.commissionFeesDate = null;
+                this.commissionFeesDialogVisible = false;
+              });
+            })
+            .catch((error) => {
+              console.error(error);
+            });
+        }
+      });
+    },
+    handleCloseCommissionFees() {
+      this.exportFees.commissionFeesDate = null;
+      this.commissionFeesDialogVisible = false;
+      this.$refs.exportFees.resetFields();
+    },
+    // 瀵煎嚭寰呮浠诲姟
+    exportUnInsProductsFun() {
+      this.$refs.exportUnInsProducts.validate((valid) => {
+        if (valid) {
+          let data = {
+            startDate: this.unInsProductsData.sendTime[0],
+            endDate: this.unInsProductsData.sendTime[1],
+            entrustCode: this.queryParams.entrustCode,
+            insState: this.queryParams.insState,
+            sampleCode: this.queryParams.sampleCode,
+            sample: this.queryParams.sample,
+            sonLaboratory: this.queryParams.sonLaboratory,
+          };
+          console.log(data);
+          exportUnInsProducts(data)
+            .then((res) => {
+              transformExcel(res, "寰呮浠诲姟缁熻.xlsx");
+              this.$nextTick(() => {
+                this.$message.success("瀵煎嚭鎴愬姛");
+                this.handleCloseUnInsDialog();
+              });
+            })
+            .catch((error) => {
+              console.error(error);
+            });
+        }
+      });
+    },
+    handleCloseUnInsDialog() {
+      this.unInsProductsData.sendTime = [];
+      this.unInsDialogVisible = false;
+      this.$refs.exportUnInsProducts.resetFields();
+    },
+    //鍓嶅線澶嶆牳鎸夐挳鏉冮檺鏍¢獙
+    premissionReviewFun() {
+      if (this.currentRow) {
+        let row = this.currentRow;
+        return !(
+          row.userName == null ||
+          row.insState != 3 ||
+          (row.checkName && !row.checkName.includes(this.nickName))
+        );
+      }
+    },
+    //鍓嶅線澶嶆牳鏂规硶
+    goReview(currentRow) {
+      this.dataDialogVisible = false;
+      this.$nextTick(() => {
+        this.handleReview(currentRow);
+      });
+    },
+    //鏌ョ湅妫�楠岀粨鏋�-璁$畻琛ㄦ牸鍒楀搴�
+    calcTableColumnWidth(columnName) {
+      let width = 120;
+      if (columnName) {
+        let clacWidth = 20 * columnName.length;
+        width = clacWidth > width ? clacWidth : width;
+      }
+      return width;
+    },
+    getTableHeight() {
+      const outherMainHeight = this.more ? 386 : 336; //涓昏〃鏍煎叾浣欓珮搴�
+      const otherHeight = 320; // 鍏朵綑楂樺害
+      const tableH = 50; // 璺濈椤甸潰涓嬫柟鐨勯珮搴�
+      const tableHeightDetil = window.innerHeight - tableH;
+      if (tableHeightDetil <= 300) {
+        this.tableHeight = 200;
+        this.tableMainHeight = 200;
+      } else {
+        this.tableHeight = window.innerHeight - tableH - otherHeight;
+        this.tableMainHeight = window.innerHeight - tableH - outherMainHeight;
+      }
+    },
+    // 瀵煎嚭鏌ョ湅缁撴灉鏁版嵁
+    excelExportTrends() {
+      this.$message.warning("姝e湪瀵煎嚭 璇风◢鍚�...");
+      this.outLoading = true;
+      exportInsOrderPlanResult({
+        sampleType: this.tabName,
+        sonLaboratory: this.selectTab,
+        entrustCode: this.excelForm.entrustCode,
+        sampleCode: this.excelForm.sampleCode,
+        createUser: this.excelForm.sampleName,
+        insTime: this.excelForm.dateTime,
+        headerS: JSON.stringify(this.tableHeader),
+      })
+        .then((res) => {
+          this.outLoading = false;
+          this.$message.success("瀵煎嚭鎴愬姛");
+          const blob = new Blob([res], { type: "application/octet-stream" });
+          const url = URL.createObjectURL(blob);
+          const link = document.createElement("a");
+          link.href = url;
+          link.download = "妫�楠岀粨鏋�.xlsx";
+          link.click();
+        })
+        .catch((error) => {
+          console.error(error);
+        });
+    },
+    handleClose3() {
+      this.dialogVisible = false;
+    },
+    handleSizeChange(val) {
+      this.pageSize = val;
+      let table = JSON.parse(JSON.stringify(this.trendsTable));
+      this.tabsData = table.slice(0, val);
+      console.log(`姣忛〉 ${val} 鏉);
+    },
+    handleCurrentChange(val) {
+      let table = JSON.parse(JSON.stringify(this.trendsTable));
+      this.tabsData = table.slice(
+        (val - 1) * this.pageSize,
+        val * this.pageSize
+      );
+      console.log(`褰撳墠椤�: ${val}`);
+    },
+    handleClick(tab, event) {
+      this.tabName = this.tabs[tab.name];
+      this.getTabHeader(this.tabs[tab.name]);
+    },
+    excelSearch() {
+      this.getTabHeader(this.tabName);
+    },
+    // 瀵煎嚭寮规鑾峰彇tabs椤垫爣绛�
+    excelExport() {
+      this.resetForm();
+      this.outLoading = false;
+      this.activeName = "0";
+      if (this.selectTab == null || this.selectTab == "") {
+        this.selectTab = this.tabList[0].value;
+      }
+      this.loadingTable = true;
+      getTabHeader({
+        sonLaboratory: this.selectTab,
+        samples: "",
+      })
+        .then((res) => {
+          if (res.code === 200) {
+            this.tabs = res.data.tabHeader;
+            this.tabName = this.tabs[0];
+            this.getTabHeader(this.tabs[0]); // 鑾峰彇鍔ㄦ�佽〃澶�
+          }
+        })
+        .catch((error) => {
+          console.error(error);
+        });
+      this.dialogVisibleExcel = true;
+    },
+    // samples鑾峰彇鍔ㄦ�佽〃澶�
+    getTabHeader(samples) {
+      getTabHeader({
+        sonLaboratory: this.selectTab,
+        samples: samples,
+      })
+        .then((res) => {
+          if (res.code === 200) {
+            this.loadingTable = true;
+            this.tableHeader = [];
+            this.tableHeader = res.data.tableHeader;
+            let data = {
+              sampleType: samples,
+              sonLaboratory: this.selectTab,
+              entrustCode: this.excelForm.entrustCode,
+              sampleCode: this.excelForm.sampleCode,
+              createUser: this.excelForm.sampleName,
+              insTime: this.excelForm.dateTime,
+              headerS: JSON.stringify(this.tableHeader),
+            };
+            if (samples == "娓╁害寰幆") {
+              // 鑾峰彇琛ㄦ牸鏁版嵁
+              getInsOrderTemList(data)
+                .then((res) => {
+                  if (res.code === 200) {
+                    this.tabsData = [];
+                    this.trendsTable = res.data;
+                    // 鍒嗛〉
+                    this.total = this.trendsTable.length;
+                    this.tabsData = res.data.slice(0, this.pageSize);
+                    this.loadingTable = false;
+                  }
+                })
+                .catch((error) => {
+                  console.error(error);
+                });
+            } else {
+              // 鑾峰彇琛ㄦ牸鏁版嵁
+              getInsOrderPlanList(data)
+                .then((res) => {
+                  if (res.code === 200) {
+                    this.tabsData = [];
+                    this.trendsTable = res.data;
+                    // 鍒嗛〉
+                    this.total = this.trendsTable.length;
+                    this.tabsData = res.data.slice(0, this.pageSize);
+                    this.loadingTable = false;
+                  }
+                })
+                .catch((error) => {
+                  console.error(error);
+                });
+            }
+          }
+        })
+        .catch((error) => {
+          console.error(error);
+        });
+    },
+    // 娓呯┖琛ㄥ崟
+    resetForm() {
+      this.excelForm = {
+        entrustCode: null,
+        sampleCode: null,
+        sampleName: null,
+        dateTime: null,
+      };
+    },
+
+    // 鏁版嵁鏌ョ湅
+    handleDataLook(row) {
+      this.dataLookTableLoading = true;
+      selectSampleAndProductByOrderId({ id: row.id })
+        .then((res) => {
+          if (res.code === 200) {
+            this.dataLooktableData = res.data;
+          }
+          this.dataLookTableLoading = false;
+        })
+        .catch((error) => {
+          console.error(error);
+          this.dataLookTableLoading = false;
+        });
+      this.dataDialogVisible = true;
+    },
+    changeCheckBox(val) {
+      this.queryParams.userId = val ? 0 : null;
+      this.refreshTable();
+    },
+    refresh() {
+      if (this.tabList.length > 0) {
+        this.tabIndex = 0;
+        this.queryParams.sonLaboratory = this.tabList[0].value;
+      }
+      this.refreshTable();
+    },
+    claimFun(row) {
+      if (row) {
+        this.sampleUserForm = {
+          entrustCode: row.entrustCode,
+          insSampleId: row.id,
+          sonLaboratory: row.sonLaboratory,
+        };
+        this.claimVisible = true;
+      }
+    },
+    confirmClaim() {
+      this.loading = true;
+      claimInsOrderPlan(this.sampleUserForm)
+        .then((res) => {
+          if (res.code === 200 && res.data) {
+            this.loading = false;
+            this.$message.success("璁ら鎴愬姛");
+            this.claimVisible = false;
+            this.refreshTable("page");
+          }
+        })
+        .catch((error) => {
+          console.error(error);
+          this.loading = false;
+        });
+    },
+    refreshTable() {
+      this.getList();
+      this.$nextTick(() => {
+        this.getCurrentMonthPlanTotal();
+      });
+    },
+    changeRowClass({ row, rowIndex }) {
+      if (this.currentTime == row.appointed) {
+        return "highlight-warning-row-border";
+      } else if (this.currentTime > row.appointed) {
+        return "highlight-danger-row-border";
+      }
+      return "";
+    },
+    onReset() {
+      this.searchForm = {
+        sampleName: null,
+        state: null,
+      };
+      this.componentData.entity.insState = null;
+      this.componentData.entity.sampleName = null;
+      this.refreshTable();
+    },
+    onSubmit() {
+      this.componentData.entity.insState = this.searchForm.state;
+      this.componentData.entity.sampleName = this.searchForm.sampleName;
+      this.$nextTick(() => {
+        this.refreshTable();
+      });
+    },
+    handleTab(m, i) {
+      console.log("aaa", m, i);
+      this.selectTab = m.value;
+      this.tabIndex = i;
+      this.queryParams.sonLaboratory = m.value;
+      this.refreshTable();
+    },
+    getTypeDicts() {
+      getDicts("urgency_level")
+        .then((res) => {
+          if (res.code === 200) {
+            this.urgencyDictList = res.data;
+          }
+        })
+        .catch((error) => {
+          console.error(error);
+        });
+    },
+    getInsStateDicts() {
+      getDicts("inspection_task_state")
+        .then((res) => {
+          if (res.code === 200) {
+            this.insStateList = res.data;
+          }
+        })
+        .catch((error) => {
+          console.error(error);
+        });
+      // this.$axios
+      //   .post(this.$api.enums.selectEnumByCategory, {
+      //     category: "",
+      //   })
+      //   .then((res) => {
+      //     let data = res.data;
+
+      //     data.forEach((ele) => {
+      //       //0:寰呮楠� 1:妫�楠屼腑 2:宸叉楠� 3:寰呭鏍� 4:澶嶆牳鏈�氳繃 5:澶嶆牳閫氳繃
+      //       if (["2", "5"].includes(ele.value)) {
+      //         ele.type = "success";
+      //       } else if (["1", "3"].includes(ele.value)) {
+      //         ele.type = "warning";
+      //       } else if (["0", "4"].includes(ele.value)) {
+      //         ele.type = "danger";
+      //       }
+      //     });
+      //     this.componentData.tagField.insState.select = data;
+      //   });
+    },
+    getLaboratoryDicts() {
+      getDicts("sys_sub_lab")
+        .then((res) => {
+          if (res.code === 200) {
+            this.tabList = res.data.map((ele) => {
+              return {
+                label: ele.dictLabel,
+                value: ele.dictValue,
+              };
+            });
+            if (this.tabList.length > 0) {
+              this.queryParams.sonLaboratory = this.tabList[0].value;
+            }
+            this.refreshTable();
+          }
+        })
+        .catch((error) => {
+          console.error(error);
+        });
+    },
+    selectAllByOne(row) {
+      this.$router.push({
+        name: "showDetails",
+        query: {
+          active: 2,
+          currentId: row.id,
+          examine: 1,
+          isPlan: true,
+        },
+      });
+    },
+    //鏌ョ湅濮旀墭鍗曞熀鏈俊鎭�
+    selectOrderInfo(row) {
+      if (row) {
+        getSampleInfoByOrderId({
+          id: row.id,
+          sonLaboratory: row.sonLaboratory,
+        })
+          .then((res) => {
+            if (res.code == 200) {
+              this.insSampleListData = res.data.insSamples;
+              this.insProductVOSData = res.data.insProductVOS;
+            }
+          })
+          .catch((error) => {
+            console.error(error);
+          });
+      }
+      this.$nextTick(() => {
+        this.orderInfoDialog = true;
+      });
+    },
+    playOrder(num) {
+      this.activeFace = num;
+    },
+    goback() {
+      this.state = 0;
+      this.refreshTable("page");
+    },
+    handleInspection(row) {
+      //褰撳墠妫�楠屼换鍔$殑妫�楠屼汉鍒楄〃
+      let inspectorList = [];
+      if (row.userName) {
+        inspectorList = row.userName.split(",");
+      }
+      inspectorList.push(this.nickName);
+      this.inspectorList = inspectorList;
+      this.state = 1;
+      this.orderId = row.id;
+    },
+    handleConnect(row) {
+      this.orderId = row.id;
+      this.connect = {
+        connectPerson: "",
+        sonLaboratory: "",
+      };
+      this.userNameList = row.userName.split(",");
+      this.connectVisible = true;
+      upPlanUser2({
+        orderId: this.orderId,
+      })
+        .then((res) => {
+          if (res.code === 200 && res.data.length > 0) {
+            this.sonLaboratoryList = [];
+            res.data.forEach((m) => {
+              this.sonLaboratoryList.push({
+                value: m,
+                label: m,
+              });
+            });
+            this.connect.sonLaboratory = row.sonLaboratory;
+          }
+        })
+        .catch((error) => {
+          console.error(error);
+        });
+    },
+    confirmConnect() {
+      if (
+        this.connect.connectPerson == null ||
+        this.connect.connectPerson == "" ||
+        this.connect.connectPerson == undefined
+      ) {
+        this.$message.error("鏈�夋嫨浜ゆ帴浜哄憳");
+        return;
+      }
+      if (
+        this.connect.sonLaboratory == null ||
+        this.connect.sonLaboratory == "" ||
+        this.connect.sonLaboratory == undefined
+      ) {
+        this.$message.error("鏈�夋嫨璇曢獙瀹�");
+        return;
+      }
+      this.loading = true;
+      upPlanUser({
+        orderId: this.orderId,
+        userId: this.connect.connectPerson,
+        sonLaboratory: this.connect.sonLaboratory,
+      })
+        .then((res) => {
+          if (res.code === 200) {
+            this.loading = false;
+            this.$message.success("鎿嶄綔鎴愬姛");
+            this.refreshTable("page");
+          }
+          this.connectVisible = false;
+        })
+        .catch((error) => {
+          console.error(error);
+          this.loading = false;
+        });
+    },
+    handleReview(row) {
+      this.state = 2;
+      this.orderId = row.id;
+    },
+    getAuthorizedPerson() {
+      getLaboratoryPersonList()
+        .then((res) => {
+          if (res.code === 200) {
+            this.personList = res.data;
+          }
+        })
+        .catch((error) => {
+          console.error(error);
+        });
+    },
+    handleClose(done) {
+      done();
+    },
+    getStyle() {
+      return "height: calc(100% - " + (this.more ? "94" : "44") + "px)";
+    },
+  },
+};
 </script>
 
-<style></style>
+<style scoped lang="scss">
+.ins-order-plan-main .title {
+  font-size: 20px;
+  color: #3a7bfa;
+}
+
+.search {
+  background-color: #fff;
+  display: flex;
+  align-items: center;
+}
+
+.search_thing {
+  display: flex;
+  align-items: center;
+  height: 50px;
+  width: 230px;
+}
+
+.search_label {
+  /* width: 90px; */
+  font-size: 14px;
+  text-align: right;
+}
+
+.search_input {
+  width: calc(100% - 70px);
+}
+
+.ins-order-plan-main .search {
+  width: 100%;
+  margin-bottom: 10px;
+  height: 80px;
+  background-color: #fff;
+  border-radius: 3px;
+}
+
+.search .form-inline {
+  height: 50px;
+  padding-top: 20px;
+  padding-left: 20px;
+}
+
+.tab {
+  list-style-type: none;
+  display: flex;
+  padding-inline-start: 0px;
+}
+
+.tab li {
+  line-height: 24px;
+  padding: 6px 14px;
+  font-size: 14px;
+  color: #333333;
+  border: 1px solid #eeeeee;
+  cursor: pointer;
+}
+
+.tab li:nth-child(1) {
+  border-radius: 8px 0 0 8px;
+}
+
+.tab li:nth-last-child(1) {
+  border-radius: 0 8px 8px 0;
+}
+
+.tab li.active {
+  border-color: #3a7bfa;
+  color: #3a7bfa;
+}
+
+.center .center-options .center-title {
+  display: flex;
+  align-items: center;
+  justify-content: right;
+  text-align: right;
+  span:last-child {
+    color: #3a7bfa;
+    font-size: 23px;
+    font-weight: 400;
+  }
+  p:last-child {
+    margin-left: 20px;
+  }
+}
+
+.view-self-checkbox {
+  margin-left: 50px;
+}
+.ins-order-plan-main .el-form-item__label {
+  color: #000;
+}
+
+.ins-order-plan-main .el-table th.el-table__cell > .cell {
+  height: 46px;
+  line-height: 30px;
+}
+</style>

--
Gitblit v1.9.3