From 36fc9186e39f2fd317603728b4ad3482a91b079b Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期三, 19 三月 2025 14:22:48 +0800
Subject: [PATCH] 合并装备代码

---
 src/views/business/inspectionTask/components/InspectionWord.vue                          |    2 
 src/views/CNAS/process/ensureResults/ensureResultsValidity/components/evaluateDialog.vue |    2 
 src/views/CNAS/process/ensureResults/ensureResultsValidity/components/carryOutDialog.vue |    2 
 src/views/business/productSamplingInfo/components/addQuarterItem.vue                     |    2 
 src/workers/DataWorker.worker.js                                                         |    0 
 src/views/CNAS/process/ensureResults/qualityControlPlan/components/processingSheet.vue   |    2 
 src/views/business/inspectionReview/index.vue                                            |   49 
 src/views/business/productOrder/index.vue                                                |   15 
 src/views/business/inspectionTask/index.vue                                              |  201 +++--
 src/views/CNAS/process/ensureResults/qualityControlPlan/components/detailFormDialog.vue  |    2 
 src/views/CNAS/process/ensureResults/qualityControlPlan/index.vue                        |    4 
 src/views/business/materialOrder/copperOrder.vue                                         |    7 
 src/views/business/materialOrder/customsInspection.vue                                   |  547 +++++++------
 src/layout/components/Sidebar/SidebarItem.vue                                            |   21 
 src/views/thirdpartylogin.vue                                                            |   21 
 src/views/business/productSamplingInfo/index.vue                                         |    6 
 src/components/Table/lims-table.vue                                                      |  180 ++--
 src/views/business/unpass/index.vue                                                      |    2 
 src/permission.js                                                                        |    2 
 src/utils/dict/DictOptions.js                                                            |    1 
 src/assets/styles/sidebar.scss                                                           |   39 
 src/views/business/reportPreparation/index.vue                                           |    8 
 src/views/business/finishedProductSampling/components/addQuarterItem.vue                 |    2 
 src/views/CNAS/personnel/personnelInfo/components/Edit.vue                               |    2 
 src/views/business/productOrder/components/add.vue                                       |   44 
 src/views/business/inspectionTask/inspection.vue                                         |    8 
 src/views/business/productOrder/components/cable-config.vue                              |    4 
 src/router/index.js                                                                      |    2 
 src/views/business/materialOrder/index.vue                                               |   70 +
 src/components/UpPdfStamp/index.vue                                                      |    1 
 src/views/CNAS/process/ensureResults/qualityControlPlan/components/recordsDialog.vue     |    2 
 src/utils/excelFountion.js                                                               |    2 
 src/views/business/unpass/components/PurchaseVerification.vue                            |    1 
 src/views/business/productOrder/components/printDialog.vue                               |    1 
 package.json                                                                             |    1 
 src/views/CNAS/process/demand/index.vue                                                  |   20 
 src/workers/InspectionWorker.worker.js                                                   |  912 ------------------------
 src/views/performance/manHour/workTimeConfig.vue                                         |    3 
 src/views/CNAS/process/ensureResults/qualityControlPlan/components/rectifyDialogNew.vue  |    2 
 src/components/Preview/filePreview.vue                                                   |    1 
 src/views/business/productOrder/components/auxiliaryWireCore.vue                         |    9 
 41 files changed, 739 insertions(+), 1,463 deletions(-)

diff --git a/package.json b/package.json
index 750ba15..7e70330 100644
--- a/package.json
+++ b/package.json
@@ -41,6 +41,7 @@
     "@vue-office/excel": "^1.7.14",
     "@vue/composition-api": "^1.7.2",
     "axios": "0.28.1",
+    "big.js": "^6.2.2",
     "clipboard": "2.0.8",
     "core-js": "3.37.1",
     "dom-to-image": "^2.6.0",
diff --git a/src/assets/styles/sidebar.scss b/src/assets/styles/sidebar.scss
index e6f52a7..69f9693 100644
--- a/src/assets/styles/sidebar.scss
+++ b/src/assets/styles/sidebar.scss
@@ -1,17 +1,18 @@
 #app {
+
   .main-container {
     height: 100%;
-    transition: margin-left 0.28s;
+    transition: margin-left .28s;
     margin-left: $base-sidebar-width;
     position: relative;
   }
 
   .sidebarHide {
-    margin-left: 0 !important;
+    margin-left: 0!important;
   }
 
   .sidebar-container {
-    -webkit-transition: width 0.28s;
+    -webkit-transition: width .28s;
     transition: width 0.28s;
     width: $base-sidebar-width !important;
     background-color: $base-menu-background;
@@ -23,13 +24,12 @@
     left: 0;
     z-index: 1001;
     overflow: hidden;
-    -webkit-box-shadow: 2px 0 6px rgba(0, 21, 41, 0.35);
+    -webkit-box-shadow: 2px 0 6px rgba(0,21,41,.35);
     //box-shadow: 2px 0 6px rgba(0,21,41,.35);
 
     // reset element-ui css
     .horizontal-collapse-transition {
-      transition: 0s width ease-in-out, 0s padding-left ease-in-out,
-        0s padding-right ease-in-out;
+      transition: 0s width ease-in-out, 0s padding-left ease-in-out, 0s padding-right ease-in-out;
     }
 
     .scrollbar-wrapper {
@@ -70,8 +70,7 @@
       width: 100% !important;
     }
 
-    .el-menu-item,
-    .el-submenu__title {
+    .el-menu-item, .el-submenu__title {
       overflow: hidden !important;
       text-overflow: ellipsis !important;
       white-space: nowrap !important;
@@ -81,7 +80,7 @@
     .submenu-title-noDropdown,
     .el-submenu__title {
       &:hover {
-        background-color: rgba(0, 0, 0, 0.06) !important;
+        background-color: rgba(0, 0, 0, 0.08) !important;
       }
     }
 
@@ -89,16 +88,16 @@
       color: $base-menu-color-active !important;
     }
 
-    & .nest-menu .el-submenu > .el-submenu__title,
+    & .nest-menu .el-submenu>.el-submenu__title,
     & .el-submenu .el-menu-item {
       min-width: $base-sidebar-width !important;
 
       &:hover {
-        background-color: rgba(0, 0, 0, 0.06) !important;
+        background-color: rgba(0, 0, 0, 0.08) !important;
       }
     }
 
-    & .theme-dark .nest-menu .el-submenu > .el-submenu__title,
+    & .theme-dark .nest-menu .el-submenu>.el-submenu__title,
     & .theme-dark .el-submenu .el-menu-item {
       background-color: $base-sub-menu-background !important;
 
@@ -138,7 +137,7 @@
     .el-submenu {
       overflow: hidden;
 
-      & > .el-submenu__title {
+      &>.el-submenu__title {
         padding: 0 !important;
 
         .svg-icon {
@@ -146,17 +145,18 @@
           height: 1.5em;
           margin-left: 25px;
         }
+
       }
     }
 
     .el-menu--collapse {
       .el-submenu {
-        & > .el-submenu__title {
+        &>.el-submenu__title {
           height: auto; /* 鏍规嵁鍐呭鑷姩璋冩暣楂樺害 */
           flex-direction: column; /* 鏀瑰彉甯冨眬鏂瑰悜涓哄瀭鐩� */
           align-items: center; /* 灞呬腑瀵归綈 */
           margin-bottom: 10px;
-          & > span {
+          &>span {
             display: block !important;
             visibility: visible !important;
             white-space: normal; /* 鍏佽鎹㈣ */
@@ -179,7 +179,7 @@
     }
 
     .sidebar-container {
-      transition: transform 0.28s;
+      transition: transform .28s;
       width: $base-sidebar-width !important;
     }
 
@@ -193,6 +193,7 @@
   }
 
   .withoutAnimation {
+
     .main-container,
     .sidebar-container {
       transition: none;
@@ -202,13 +203,13 @@
 
 // when menu collapsed
 .el-menu--vertical {
-  & > .el-menu {
+  &>.el-menu {
     .svg-icon {
       margin-right: 16px;
     }
   }
 
-  .nest-menu .el-submenu > .el-submenu__title,
+  .nest-menu .el-submenu>.el-submenu__title,
   .el-menu-item {
     &:hover {
       // you can use $subMenuHover
@@ -217,7 +218,7 @@
   }
 
   // the scroll bar appears when the subMenu is too long
-  > .el-menu--popup {
+  >.el-menu--popup {
     max-height: 100vh;
     overflow-y: auto;
 
diff --git a/src/components/Preview/filePreview.vue b/src/components/Preview/filePreview.vue
index f1c8d13..7633c5e 100644
--- a/src/components/Preview/filePreview.vue
+++ b/src/components/Preview/filePreview.vue
@@ -96,7 +96,6 @@
       if (state) {
         this.imgUrl = this.fileUrl.replaceAll('word', 'img')
       }
-      console.log(2222, this.imgUrl)
       return state;
     },
     isPdf() {
diff --git a/src/components/Table/lims-table.vue b/src/components/Table/lims-table.vue
index dad9288..3accd8a 100644
--- a/src/components/Table/lims-table.vue
+++ b/src/components/Table/lims-table.vue
@@ -11,10 +11,10 @@
 
       <el-table-column v-for="(item, index) in column" :key="index" :column-key="item.columnKey"
         :filter-method="item.filterHandler" :filter-multiple="item.filterMultiple" :filtered-value="item.filteredValue"
-        :filters="item.filters" :fixed="item.fixed" :label="item.label" :min-width="item.minWidth" :prop="item.prop"
-        :show-overflow-tooltip="item.dataType === 'action' || item.dataType === 'slot' ? false : true"
-        :sortable="item.sortable ? true : false" :type="item.type"
-        :width="item.dataType == 'action' ? btnWidth : item.width" align="center">
+        :filters="item.filters" :fixed="item.fixed" :label="item.label" :prop="item.prop"
+                       :show-overflow-tooltip="item.dataType === 'action' || item.dataType === 'slot' ? false : true"
+                       :min-width="item.dataType == 'action' ? btnWidth : getTitleWidth(item)"
+        :sortable="item.sortable ? true : false" :type="item.type" :width="item.dataType == 'action' ? btnWidth : getTitleWidth(item)" align="center">
         <!-- <div class="123" v-if="item.type == ''"> -->
         <template v-if="item.hasOwnProperty('colunmTemplate')" :slot="item.colunmTemplate" slot-scope="scope">
           <slot v-if="item.theadSlot" :index="index" :name="item.theadSlot" :row="scope.row" />
@@ -63,7 +63,8 @@
           </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"
@@ -72,13 +73,19 @@
                 {{ o.name }}
               </el-button>
               <el-upload :action="javaApi + o.url + '?id=' + (o.uploadIdFun ? o.uploadIdFun(scope.row) : scope.row.id)"
-                size="mini" ref="upload" :multiple="o.multiple ? o.multiple : false" :limit="1"
+                         :key="uploadKeys[scope.$index]"
+                         ref="uploadRef"
+                size="mini" :multiple="o.multiple ? o.multiple : false" :limit="1"
                 :disabled="o.disabled ? o.disabled(scope.row) : false" :accept="o.accept
                   ? o.accept
                   : '.jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar'
                   " v-if="o.type == 'upload'" style="display: inline-block; width: 50px"
-                v-show="o.showHide ? o.showHide(scope.row) : true" :headers="uploadHeader" :on-error="onError"
-                :on-exceed="onExceed" :on-success="handleSuccessUp" :show-file-list="false" :key="key">
+                         v-show="o.showHide ? o.showHide(scope.row) : true" :headers="uploadHeader"
+                         :before-upload="(file) => beforeUpload(file, scope.$index)"
+                         :on-change="(file, fileList) => handleChange(file, fileList, scope.$index)"
+                         :on-error="(error, file, fileList) => onError(error, file, fileList, scope.$index)"
+                         :on-success="(response, file, fileList) => handleSuccessUp(response, file, fileList, scope.$index)"
+                         :on-exceed="onExceed" :show-file-list="false">
                 <el-button :size="o.size ? o.size : 'small'" type="text"
                   :disabled="o.disabled ? o.disabled(scope.row) : false">{{ o.name }}</el-button>
               </el-upload>
@@ -99,7 +106,7 @@
         </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"
+    <pagination v-show="page.total > 0" :total="page.total" :layout="page.layout" :page.sync="page.current"
       :limit.sync="page.size" @pagination="pagination" />
   </div>
 </template>
@@ -158,7 +165,6 @@
   name: "ZTTable",
   filters: {
     typeFn(val, row) {
-      // console.log(val, row, '11111111');
       if (typeof val === "function") {
         return val(row);
       } else return val;
@@ -258,27 +264,61 @@
   data() {
     return {
       spanList: [],
-      btnWidth: '120px',
+      btnWidth: "120px",
+      uploadRefs: [],
+      currentFiles: {}, // 鐢ㄤ簬瀛樺偍姣忚鐨勫綋鍓嶆枃浠�
+      uploadKeys: {} // 鐢ㄤ簬鍔ㄦ�侀噸缃粍浠�
     };
   },
   mounted() {
     this.calculateSpanInfo();
     this.$nextTick(() => {
       this.$refs.multipleTable.doLayout();
-    });
+      this.tableData.forEach((_, index) => {
+        if (this.$refs.uploadRef) {
+          this.$refs.uploadRef[index] = this.$refs.uploadRef[index] || {};
+        }
+      });
+    })
+  },
+  watch: {
+    tableData: {
+      handler() {
+        // 褰撹〃鏍兼暟鎹彉鍖栨椂锛屽垵濮嬪寲 uploadKeys
+        this.tableData.forEach((_, index) => {
+          this.$set(this.uploadKeys, index, Date.now());
+        });
+      },
+      immediate: true
+    }
   },
   methods: {
-    getWidth(row) {
+    getWidth(row, row0) {
       let count = 0;
       row.forEach((a) => {
-        if (a.showHide !== undefined && a.showHide()) {
+        if (a.showHide !== undefined && a.showHide(row0)) {
           count += a.name.length;
         } else if (!a.showHide) {
           count += a.name.length;
         }
       });
-      this.btnWidth = count * 15 + 80 + "px";
-      return count * 15 + 80 + "px";
+      this.btnWidth = count * 15 + 50 + "px";
+      return count * 15 + 50 + "px";
+    },
+    getTitleWidth(row) {
+      if (row.label.includes('鏃堕棿') || row.label.includes('缂栧彿') || row.label.includes('鏍峰搧鍚嶇О') || row.label.includes('闆朵欢')) {
+        return 160
+      } else if (row.label.includes('鎿嶄綔')) {
+        return row.width
+      } else {
+        const span = document.createElement('span');
+        span.innerText = row.label;
+        document.body.appendChild(span);
+        const width = `${span.offsetWidth + 50}px`;
+        document.body.removeChild(span);
+
+        return width;
+      }
     },
     iconFn(row) {
       if (row.name === "缂栬緫" || row.name === "淇敼") {
@@ -290,9 +330,6 @@
       } else {
         return row.icon;
       }
-      // if (typeof (val) === 'function') {
-      //   return val(row);
-      // } else return val;
     },
     formatType(val, format) {
       if (typeof format === "function") {
@@ -307,21 +344,53 @@
     setCurrent(row) {
       this.$refs.multipleTable.setCurrentRow();
     },
-    handleSuccessUp(response, label) {
-      if (typeof label === "string") {
-        if (response.code == 200) {
-          this.upData[label] = response.data.url;
+    handleSuccessUp(response, file, fileList, index) {
+      if (response.code == 200) {
+        // 娓呴櫎鏂囦欢鍒楄〃骞舵洿鏂板綋鍓嶆枃浠�
+        if (this.uploadRefs[index]) {
+          this.uploadRefs[index].clearFiles();
         }
+        this.currentFiles[index] = file;
+        this.$message.success("涓婁紶鎴愬姛");
+        // 閲嶇疆缁勪欢鐘舵��
+        this.resetUploadComponent(index);
+
       } else {
-        if (response.code == 200) {
-          this.$message.success("涓婁紶鎴愬姛");
-        }
+        this.$message.error(response.message);
       }
     },
-    onError(err, file, fileList) {
-      this.$message.error("涓婁紶澶辫触");
-      this.$refs.upload.clearFiles();
-      this.uploading = false;
+    resetUploadComponent(index) {
+      // 鍔ㄦ�佹敼鍙� key 鏉ュ己鍒堕噸缃粍浠�
+      this.uploadKeys[index] = Date.now(); // 浣跨敤鏃堕棿鎴充綔涓烘柊鐨� key
+    },
+    handleChange(file, fileList, index) {
+      // 濡傛灉鏂囦欢鏁伴噺瓒呰繃闄愬埗锛岀Щ闄ゆ渶鏃╃殑鏂囦欢
+      if (fileList.length > 1) {
+        // 绉婚櫎鏈�鏃╃殑鏂囦欢
+        const earliestFile = fileList[0];
+        this.uploadRefs[index].handleRemove(earliestFile);
+      }
+
+      // 鏇存柊褰撳墠鏂囦欢
+      this.currentFiles[index] = file;
+    },
+    beforeUpload (file, index) {
+      this.currentFiles[index] = {}
+      if (file.size > 1024 * 1024 * 10) {
+        this.$message.error('涓婁紶鏂囦欢涓嶈秴杩�10M');
+        // this.$refs.upload.clearFiles()
+        return false;
+      } else {
+        return true;
+      }
+    },
+    onError(error, file, fileList, index) {
+      this.$message.error('鏂囦欢涓婁紶澶辫触锛岃閲嶈瘯');
+
+      // 娓呴櫎鏂囦欢鍒楄〃
+      if (this.uploadRefs[index]) {
+        this.uploadRefs[index].clearFiles();
+      }
     },
     onExceed() {
       this.$message.warning("瓒呭嚭鏂囦欢涓暟");
@@ -330,7 +399,6 @@
       this.$emit("pagination", { page: page, limit: limit });
     },
     indexMethod(index) {
-      // return index * 2;
       return (this.page.current - 1) * this.page.size + index + 1;
     },
     // 鐐瑰嚮鍗曞厓鏍糽ink浜嬩欢
@@ -399,40 +467,7 @@
           };
         }
       }
-      // // 鐗规畩鐨勫悎骞惰
-      // if (
-      //   this.data.spanConfig != undefined &&
-      //   this.data.spanConfig.special &&
-      //   this.data.spanConfig.special.main &&
-      //   this.data.spanConfig.special.rows &&
-      //   this.data.spanConfig.special.rows.length > 0
-      // ) {
-      //   let i = null;
-      //   let obj = this.data.spanConfig.special.rows.find((item, index) => {
-      //     i = index;
-      //     return item.index == columnIndex;
-      //   });
-      //   if (obj) {
-      //     const _row = this.specialSpanList[i].arr[rowIndex];
-      //     const _col = _row > 0 ? 1 : 0;
-      //     return {
-      //       rowspan: _row,
-      //       colspan: _col,
-      //     };
-      //   }
-      // }
     },
-    // 鍥炴樉澶氶�夐�変腑鐘舵��
-    toggleRowSelection(list) {
-      this.$nextTick(() => {
-        this.tableData.forEach(row => {
-          let obj = list.find(m => m == row[this.rowKey])
-          if (obj) {
-            this.$refs.multipleTable.toggleRowSelection(obj, true);
-          }
-        });
-      });
-    }
   },
 };
 </script>
@@ -442,10 +477,13 @@
   text-align: center;
 }
 
+.link {
+  color: rgb(64, 158, 255);
+  cursor: pointer;
+}
 >>>.cell {
   padding: 0 !important;
 }
-
 .cell {
   white-space: nowrap;
   overflow: hidden;
@@ -454,17 +492,10 @@
   padding-left: 10px !important;
 }
 
-.link {
-  color: rgb(64, 158, 255);
-  cursor: pointer;
-}
-
 >>>.el-table__body-wrapper::-webkit-scrollbar {
   height: 10px;
   /* 璁剧疆婊氬姩鏉″搴� */
 }
-</style>
-<style>
 .lims-table .highlight-warning-row-border td:first-child {
   border-left: 4px solid #ffcd29;
 }
@@ -472,11 +503,6 @@
 .lims-table .highlight-warning-row-border td:last-child {
   border-right: 4px solid #ffcd29;
 }
-
-/* .lims-table .highlight-danger-row-border td {
-		border-top: 2px solid red;
-		border-bottom: 2px solid red;
-	} */
 
 .lims-table .highlight-danger-row-border td:first-child {
   border-left: 4px solid #f56c6c;
diff --git a/src/components/UpPdfStamp/index.vue b/src/components/UpPdfStamp/index.vue
index 844eac4..9e83bc3 100644
--- a/src/components/UpPdfStamp/index.vue
+++ b/src/components/UpPdfStamp/index.vue
@@ -125,7 +125,6 @@
     // 娓叉煋绔�
     drawStamps(x, y, index) {
       var img = new Image();
-      console.log(this.stampsName)
       // 璁剧疆鍥剧墖婧�
       img.src = require("@/assets/stamps/" + this.stampsName + ".png"); // 鏇挎崲涓轰綘鐨勫浘鐗囬摼鎺�
       let that = this
diff --git a/src/layout/components/Sidebar/SidebarItem.vue b/src/layout/components/Sidebar/SidebarItem.vue
index 3b68ff2..1a7b1bf 100644
--- a/src/layout/components/Sidebar/SidebarItem.vue
+++ b/src/layout/components/Sidebar/SidebarItem.vue
@@ -1,10 +1,9 @@
 <template>
   <div v-if="!item.hidden">
-    <template
-      v-if="hasOneShowingChild(item.children, item) && (!onlyOneChild.children || onlyOneChild.noShowingChildren) && !item.alwaysShow">
+    <template v-if="hasOneShowingChild(item.children,item) && (!onlyOneChild.children||onlyOneChild.noShowingChildren)&&!item.alwaysShow">
       <app-link v-if="onlyOneChild.meta" :to="resolvePath(onlyOneChild.path, onlyOneChild.query)">
-        <el-menu-item :index="resolvePath(onlyOneChild.path)" :class="{ 'submenu-title-noDropdown': !isNest }">
-          <item :icon="onlyOneChild.meta.icon || (item.meta && item.meta.icon)" :title="onlyOneChild.meta.title" />
+        <el-menu-item :index="resolvePath(onlyOneChild.path)" :class="{'submenu-title-noDropdown':!isNest}">
+          <item :icon="onlyOneChild.meta.icon||(item.meta&&item.meta.icon)" :title="onlyOneChild.meta.title" />
         </el-menu-item>
       </app-link>
     </template>
@@ -13,8 +12,14 @@
       <template slot="title">
         <item v-if="item.meta" :icon="item.meta && item.meta.icon" :title="item.meta.title" />
       </template>
-      <sidebar-item v-for="(child, index) in item.children" :key="child.path + index" :is-nest="true" :item="child"
-        :base-path="resolvePath(child.path)" class="nest-menu" />
+      <sidebar-item
+        v-for="(child, index) in item.children"
+        :key="child.path + index"
+        :is-nest="true"
+        :item="child"
+        :base-path="resolvePath(child.path)"
+        class="nest-menu"
+      />
     </el-submenu>
   </div>
 </template>
@@ -70,7 +75,7 @@
 
       // Show parent if there are no child router to display
       if (showingChildren.length === 0) {
-        this.onlyOneChild = { ...parent, path: '', noShowingChildren: true }
+        this.onlyOneChild = { ... parent, path: '', noShowingChildren: true }
         return true
       }
 
@@ -96,4 +101,4 @@
 ::v-deep .el-submenu__title i {
   color: #ffffff !important;
 }
-</style>
\ No newline at end of file
+</style>
diff --git a/src/permission.js b/src/permission.js
index b66190b..dbae342 100644
--- a/src/permission.js
+++ b/src/permission.js
@@ -9,7 +9,7 @@
 
 NProgress.configure({ showSpinner: false })
 
-const whiteList = ['/login', '/register']
+const whiteList = ['/login', '/register', '/thirdpartylogin', '/logindemo']
 
 const isWhiteList = (path) => {
   return whiteList.some(pattern => isPathMatch(pattern, path))
diff --git a/src/router/index.js b/src/router/index.js
index 9d4db52..e2b4cf6 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -74,7 +74,7 @@
     hidden: true,
   },
   {
-    path: "",
+    path: "/",
     component: Layout,
     redirect: "index",
     children: [
diff --git a/src/utils/dict/DictOptions.js b/src/utils/dict/DictOptions.js
index 338a94e..9eb9daf 100644
--- a/src/utils/dict/DictOptions.js
+++ b/src/utils/dict/DictOptions.js
@@ -8,7 +8,6 @@
        * 瀛楀吀璇锋眰锛屾柟娉曠鍚嶄负function(dictMeta: DictMeta): Promise
        */
       request: (dictMeta) => {
-        console.log(`load dict ${dictMeta.type}`)
         return Promise.resolve([])
       },
       /**
diff --git a/src/utils/excelFountion.js b/src/utils/excelFountion.js
index eced05c..3cd11a9 100644
--- a/src/utils/excelFountion.js
+++ b/src/utils/excelFountion.js
@@ -46,7 +46,6 @@
     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);
       }
@@ -255,7 +254,6 @@
     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"
diff --git a/src/views/CNAS/personnel/personnelInfo/components/Edit.vue b/src/views/CNAS/personnel/personnelInfo/components/Edit.vue
index 639af6b..0076ed3 100644
--- a/src/views/CNAS/personnel/personnelInfo/components/Edit.vue
+++ b/src/views/CNAS/personnel/personnelInfo/components/Edit.vue
@@ -371,7 +371,7 @@
       }
     },
     getUserList(){
-      selectUserCondition({ type: 0 }).then((res) => {
+      selectUserCondition({ type: 2 }).then((res) => {
         this.userList = res.data;
       })
     },
diff --git a/src/views/CNAS/process/demand/index.vue b/src/views/CNAS/process/demand/index.vue
index ef70abd..6d9b25b 100644
--- a/src/views/CNAS/process/demand/index.vue
+++ b/src/views/CNAS/process/demand/index.vue
@@ -17,7 +17,7 @@
         <el-form-item label="濮旀墭浜�" prop="commissionUser">
           <el-input v-model="entitySearch.commissionUser" clearable placeholder="璇疯緭鍏�" size="small"
             @keyup.enter.native="refreshTable()"></el-input>
-        </el-form-item>
+        </el-form-item>li
         <el-form-item>
           <el-button icon="el-icon-refresh" size="mini" @click="refresh">閲� 缃�</el-button>
           <el-button type="primary" icon="el-icon-search" size="mini" @click="refreshTable">鏌� 璇�</el-button>
@@ -29,14 +29,14 @@
     </div>
     <div class="table">
       <el-table v-loading="tableListLoading" :data="tableList"
-                height="630" style="width: 100%" border :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }">
-        <el-table-column align="center" label="搴忓彿" type="index" width="60"></el-table-column>
-        <el-table-column label="璇曟牱鍚嶇О" prop="sampleName" show-overflow-tooltip width="120"></el-table-column>
-        <el-table-column label="濮旀墭缂栧彿" prop="entrustCode" show-overflow-tooltip width="120"></el-table-column>
-        <el-table-column label="濮旀墭鏃堕棿" prop="commissionDate" width="120"></el-table-column>
-        <el-table-column label="鍨嬪彿" prop="modelNo"></el-table-column>
-        <el-table-column label="濮旀墭鍗曚綅" prop="commissionUnit" show-overflow-tooltip width="120"></el-table-column>
-        <el-table-column label="鐢熶骇鍗曚綅" prop="production" show-overflow-tooltip width="120"></el-table-column>
+                height="630" border :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }">
+        <el-table-column align="center" label="搴忓彿" type="index"></el-table-column>
+        <el-table-column label="璇曟牱鍚嶇О" prop="sampleName" show-overflow-tooltip></el-table-column>
+        <el-table-column label="濮旀墭缂栧彿" prop="entrustCode" show-overflow-tooltip></el-table-column>
+        <el-table-column label="濮旀墭鏃堕棿" prop="commissionDate" show-overflow-tooltip></el-table-column>
+        <el-table-column label="鍨嬪彿" prop="modelNo" show-overflow-tooltip></el-table-column>
+        <el-table-column label="濮旀墭鍗曚綅" prop="commissionUnit" show-overflow-tooltip></el-table-column>
+        <el-table-column label="鐢熶骇鍗曚綅" prop="production" show-overflow-tooltip></el-table-column>
         <el-table-column label="濮旀墭浜�" prop="commissionUser"></el-table-column>
         <el-table-column label="鏍峰搧鏁伴噺" prop="quantity"></el-table-column>
         <el-table-column label="鏍峰搧鐘舵��" prop="sampleStatus"></el-table-column>
@@ -46,7 +46,7 @@
             <span v-if="scope.row.isLeave === 0">鍚�</span>
           </template>
         </el-table-column>
-        <el-table-column label="鏍峰搧澶勭悊鏂瑰紡" prop="processing">
+        <el-table-column label="鏍峰搧澶勭悊鏂瑰紡" prop="processing" width="150">
           <template slot-scope="scope">
             <span v-if="scope.row.processing === 1">瀹為獙瀹ゅ鐞�</span>
             <span v-if="scope.row.processing === 0">濮旀墭鍗曚綅鍙栧洖</span>
diff --git a/src/views/CNAS/process/ensureResults/ensureResultsValidity/components/carryOutDialog.vue b/src/views/CNAS/process/ensureResults/ensureResultsValidity/components/carryOutDialog.vue
index e568f28..7b4f94e 100644
--- a/src/views/CNAS/process/ensureResults/ensureResultsValidity/components/carryOutDialog.vue
+++ b/src/views/CNAS/process/ensureResults/ensureResultsValidity/components/carryOutDialog.vue
@@ -254,7 +254,7 @@
       this.$emit('closeCarryOutDia')
     },
     getAuthorizedPerson() {
-      selectUserCondition({ type: 1 }).then((res) => {
+      selectUserCondition({ type: 2 }).then((res) => {
         let data = [];
         res.data.forEach((a) => {
           data.push({
diff --git a/src/views/CNAS/process/ensureResults/ensureResultsValidity/components/evaluateDialog.vue b/src/views/CNAS/process/ensureResults/ensureResultsValidity/components/evaluateDialog.vue
index bd3bd9b..25d5c22 100644
--- a/src/views/CNAS/process/ensureResults/ensureResultsValidity/components/evaluateDialog.vue
+++ b/src/views/CNAS/process/ensureResults/ensureResultsValidity/components/evaluateDialog.vue
@@ -296,7 +296,7 @@
       })
     },
     getAuthorizedPerson() {
-      selectUserCondition({ type: 1 }).then((res) => {
+      selectUserCondition({ type: 2 }).then((res) => {
         let data = [];
         res.data.forEach((a) => {
           data.push({
diff --git a/src/views/CNAS/process/ensureResults/qualityControlPlan/components/detailFormDialog.vue b/src/views/CNAS/process/ensureResults/qualityControlPlan/components/detailFormDialog.vue
index 8ce627d..7672cfe 100644
--- a/src/views/CNAS/process/ensureResults/qualityControlPlan/components/detailFormDialog.vue
+++ b/src/views/CNAS/process/ensureResults/qualityControlPlan/components/detailFormDialog.vue
@@ -162,7 +162,7 @@
       this.$emit('closeDia')
     },
     getUserList(){
-      selectUserCondition({ type: 0 }).then((res) => {
+      selectUserCondition({ type: 2 }).then((res) => {
         this.userList = res.data;
       })
     },
diff --git a/src/views/CNAS/process/ensureResults/qualityControlPlan/components/processingSheet.vue b/src/views/CNAS/process/ensureResults/qualityControlPlan/components/processingSheet.vue
index a337f53..0b7fb4b 100644
--- a/src/views/CNAS/process/ensureResults/qualityControlPlan/components/processingSheet.vue
+++ b/src/views/CNAS/process/ensureResults/qualityControlPlan/components/processingSheet.vue
@@ -449,7 +449,7 @@
       this.$emit('closeProcessingDia')
     },
     getAuthorizedPerson() {
-      selectUserCondition({ type: 1 }).then((res) => {
+      selectUserCondition({ type: 2 }).then((res) => {
         let data = [];
         res.data.forEach((a) => {
           data.push({
diff --git a/src/views/CNAS/process/ensureResults/qualityControlPlan/components/recordsDialog.vue b/src/views/CNAS/process/ensureResults/qualityControlPlan/components/recordsDialog.vue
index b5c9e52..3c57bb1 100644
--- a/src/views/CNAS/process/ensureResults/qualityControlPlan/components/recordsDialog.vue
+++ b/src/views/CNAS/process/ensureResults/qualityControlPlan/components/recordsDialog.vue
@@ -376,7 +376,7 @@
       this.$emit('closeRecordsDia')
     },
     getAuthorizedPerson() {
-      selectUserCondition({ type: 1 }).then((res) => {
+      selectUserCondition({ type: 2 }).then((res) => {
         let data = [];
         res.data.forEach((a) => {
           data.push({
diff --git a/src/views/CNAS/process/ensureResults/qualityControlPlan/components/rectifyDialogNew.vue b/src/views/CNAS/process/ensureResults/qualityControlPlan/components/rectifyDialogNew.vue
index 2ee9c46..da1212b 100644
--- a/src/views/CNAS/process/ensureResults/qualityControlPlan/components/rectifyDialogNew.vue
+++ b/src/views/CNAS/process/ensureResults/qualityControlPlan/components/rectifyDialogNew.vue
@@ -406,7 +406,7 @@
       this.showStep = step
     },
     getAuthorizedPerson() {
-      selectUserCondition({ type: 1 }).then((res) => {
+      selectUserCondition({ type: 2 }).then((res) => {
         let data = [];
         res.data.forEach((a) => {
           data.push({
diff --git a/src/views/CNAS/process/ensureResults/qualityControlPlan/index.vue b/src/views/CNAS/process/ensureResults/qualityControlPlan/index.vue
index 6ec2abf..36da145 100644
--- a/src/views/CNAS/process/ensureResults/qualityControlPlan/index.vue
+++ b/src/views/CNAS/process/ensureResults/qualityControlPlan/index.vue
@@ -200,7 +200,6 @@
           minWidth: '160'
         }, {
           dataType: 'action',
-          minWidth: '170',
           label: '鎿嶄綔',
           fixed: 'right',
           operation: [
@@ -284,7 +283,6 @@
           minWidth: '150px'
         }, {
           dataType: 'action',
-          width: '260',
           label: '鎿嶄綔',
           fixed: 'right',
           operation: [
@@ -473,7 +471,7 @@
       this.getUserList()
     },
     getUserList() {
-      selectUserCondition({ type: 0 }).then((res) => {
+      selectUserCondition({ type: 2 }).then((res) => {
         this.userList = res.data;
       })
     },
diff --git a/src/views/business/finishedProductSampling/components/addQuarterItem.vue b/src/views/business/finishedProductSampling/components/addQuarterItem.vue
index bea5678..c4b20b1 100644
--- a/src/views/business/finishedProductSampling/components/addQuarterItem.vue
+++ b/src/views/business/finishedProductSampling/components/addQuarterItem.vue
@@ -279,7 +279,7 @@
       }
     },
     getUserList(){
-      selectUserCondition({ type: 0 }).then((res) => {
+      selectUserCondition().then((res) => {
         this.userList = res.data;
       })
     },
diff --git a/src/views/business/inspectionReview/index.vue b/src/views/business/inspectionReview/index.vue
index 8b979dc..8705d53 100644
--- a/src/views/business/inspectionReview/index.vue
+++ b/src/views/business/inspectionReview/index.vue
@@ -23,8 +23,8 @@
     </div>
     <div>
       <lims-table :tableData="tableData" :column="column" :page="page" :tableLoading="tableLoading"
-        :rowClassName="rowClassName" :height="'calc(100vh - 270px)'" @pagination="pagination"
-        key="tableData0"></lims-table>
+                  :rowClassName="rowClassName" :height="'calc(100vh - 270px)'" @pagination="pagination"
+                  key="tableData0"></lims-table>
     </div>
     <!--鎶ュ憡鏌ョ湅-->
     <el-dialog title="鎶ュ憡鏌ョ湅" :visible.sync="issuedVisible" width="80vw" :modal-append-to-body="false"
@@ -108,7 +108,18 @@
           prop: "type",
           dataType: "tag",
           formatData: (params) => {
-            return this.urgencyLevel.find((m) => m.value == params).label;
+            if (this.urgencyLevel.find((m) => m.value == params)) {
+              return this.urgencyLevel.find((m) => m.value == params).label;
+            } else {
+              return null
+            }
+          },
+          formatType: (params) => {
+            if (this.urgencyLevel.find((m) => m.value == params)) {
+              return this.urgencyLevel.find((m) => m.value == params).type;
+            } else {
+              return null
+            }
           },
         },
         {
@@ -128,11 +139,18 @@
           prop: "insState",
           dataType: "tag",
           formatData: (params) => {
-            return this.inspectionTaskState.find((m) => m.value == params)
-              .label;
+            if (this.inspectionTaskState.find((m) => m.value == params)) {
+              return this.inspectionTaskState.find((m) => m.value == params).label;
+            } else {
+              return null
+            }
           },
           formatType: (params) => {
-            return this.inspectionTaskState.find((m) => m.value == params).type;
+            if (this.inspectionTaskState.find((m) => m.value == params)) {
+              return this.inspectionTaskState.find((m) => m.value == params).type;
+            } else {
+              return null
+            }
           },
         },
         { label: "妫�楠屼汉", prop: "userName" },
@@ -229,10 +247,10 @@
       fullscreen: false,
       option: null,
       orderTypeList: [
-        { label: '濮旀墭璇曢獙', value: 'Customer-ordered test' },
-        { label: '鎶芥', value: '鎶芥' },
-        { label: '杩涘巶妫�楠�', value: '杩涘巶妫�楠�' },
-        { label: '瀛e害妫�楠�', value: 'Quarterly inspection' },
+        { label: '濮旀墭璇曢獙', value: 'Customer-ordered test', type: 'success' },
+        { label: '鎶芥', value: '鎶芥', type: 'danger' },
+        { label: '杩涘巶妫�楠�', value: '杩涘巶妫�楠�', type: 'info' },
+        { label: '瀛e害妫�楠�', value: 'Quarterly inspection', type: '' },
       ],
       urgencyLevel: [],
       inspectionTaskState: [],
@@ -286,13 +304,6 @@
       }
       return "";
     },
-    // 鏌ョ湅浜т笟閾句俊鎭�
-    // openInfoDialog (row) {
-    //   this.showInfoDialog = true
-    //   this.$nextTick(() => {
-    //     this.$refs.showInfoDialog.getInfo(row.ifsInventoryId)
-    //   })
-    // },
     selectAllByOne(row) {
       this.isCopper = row.isCopper
       this.customsInspection = row
@@ -373,10 +384,6 @@
     // 鏌ョ湅鎶ュ憡
     handleIssued(row) {
       // todo: 鏌ョ湅鎶ュ憡缁勪欢
-/*      if (!row.tempUrlPdf) return this.$message.warning('鏂囦欢鏈笂浼�')
-      this.currentInfo = row
-      this.lookDialogVisible = true*/
-      console.log(this.javaApi)
       this.currentInfo = row;
       let fileName = row.url
       let fileType = "docx"
diff --git a/src/views/business/inspectionTask/components/InspectionWord.vue b/src/views/business/inspectionTask/components/InspectionWord.vue
index 620a42f..7991e24 100644
--- a/src/views/business/inspectionTask/components/InspectionWord.vue
+++ b/src/views/business/inspectionTask/components/InspectionWord.vue
@@ -1919,7 +1919,7 @@
       }
     },
     getAuthorizedPerson() {
-      selectUserCondition({ type: 0 }).then((res) => {
+      selectUserCondition({ type: 1 }).then((res) => {
         let data = [];
         res.data.forEach((a) => {
           data.push({
diff --git a/src/views/business/inspectionTask/index.vue b/src/views/business/inspectionTask/index.vue
index c1b6a22..b635be5 100644
--- a/src/views/business/inspectionTask/index.vue
+++ b/src/views/business/inspectionTask/index.vue
@@ -50,7 +50,50 @@
         </div>
         <lims-table :tableData="tableData" :column="column" :page="page" :tableLoading="tableLoading"
           :rowClassName="rowClassName" :height="'calc(100vh - 300px)'" @pagination="pagination"
-          key="tableData0"></lims-table>
+          key="tableData0">
+          <div slot="action" slot-scope="scope">
+            <el-button size="small" type="text" @click="handleDataLook(scope.row)">鏁版嵁鏌ョ湅</el-button>
+            <el-button type="text" size="small"
+                       :disabled="(scope.row.userName == null || scope.row.insState == 3 || scope.row.insState == 5) && checkPermi(['update:product:onPlan'])"
+                       @click="editInspection(scope.row)">淇敼妫�楠屽��</el-button>
+            <el-button type="text" size="small" :disabled="(
+                  scope.row.userName == null ||
+                  scope.row.insState == 3 ||
+                  scope.row.insState == 5 ||
+                  (scope.row.userName && !scope.row.userName.includes(nickName))
+                )"
+                       @click="handleInspection(scope.row)">妫�楠�</el-button>
+            <el-button type="text" size="small" :disabled="(
+                  scope.row.userName == null ||
+                  scope.row.insState == 5 ||
+                  scope.row.insState == 3 ||
+                  (scope.row.userName && !scope.row.userName.includes(nickName))
+                )"
+                       @click="handleConnect(scope.row)">浜ゆ帴</el-button>
+            <el-button type="text" size="small" @click="viewInspectInfo(scope.row)">鍘熷璁板綍</el-button>
+            <el-popover placement="bottom" trigger="hover" style="margin-left: 6px">
+              <template #reference>
+                <el-button link type="text" size="small">鏇村</el-button>
+              </template>
+              <div>
+                <el-button :disabled="scope.row.insState != 3" style="margin-left: 10px" type="text" size="small" @click="download(scope.row)">涓嬭浇鎶ュ憡</el-button>
+                <el-upload ref='upload'
+                           :action="javaApi + '/insReport/inReport'"
+                           :before-upload="beforeUpload"
+                           :data="{id: scope.row.insReportId}"
+                           :headers="uploadHeader" :on-error="onError"
+                           :on-success="handleSuccessUp"
+                           :show-file-list="false"
+                           style="display: inline;margin: 0 6px"
+                           accept='.jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar'>
+                  <el-button :disabled="scope.row.insState != 3" size="small" type="text">涓婁紶</el-button>
+                </el-upload>
+                <el-button :disabled="scope.row.insState != 3" type="text" size="small" @click="handleRestore(scope.row)">杩樺師</el-button>
+                <el-button :disabled="scope.row.insState != 3" type="text" size="small" @click="handleIssued(scope.row)">鏌ョ湅鎶ュ憡</el-button>
+              </div>
+            </el-popover>
+          </div>
+        </lims-table>
       </div>
     </div>
     <el-dialog :visible.sync="claimVisible" title="鎻愮ず" width="400px">
@@ -91,7 +134,7 @@
       </span>
     </el-dialog>
     <el-dialog :visible.sync="dataDialogVisible" title="鏁版嵁鏌ョ湅" width="80%">
-      <div v-if="dataDialogVisible" style="height: 70vh; overflow-y: auto">
+      <div v-if="dataDialogVisible" style="height: 74vh; overflow-y: auto">
         <div>
           <el-form :model="entity" :inline="true">
             <el-form-item label="妫�楠岄」" prop="outputWorkTime">
@@ -184,6 +227,7 @@
 } from "@/api/business/inspectionTask.js";
 import { mapGetters } from "vuex";
 import {getRetestResult} from "@/api/business/rawMaterialOrder";
+import {upReportUrl} from "@/api/business/insReport";
 export default {
   name: 'InspectionTask',
   components: {
@@ -363,80 +407,16 @@
         { label: "妫�楠屽紑濮嬫椂闂�", prop: "insTime", width: "140px" },
         { label: "鐞嗙敱", prop: "verifyTell", width: "140px" },
         {
-          dataType: "action",
           fixed: "right",
-          label: "鎿嶄綔",
-          operation: [
-            {
-              name: "鏁版嵁鏌ョ湅",
-              type: "text",
-              clickFun: (row) => {
-                this.handleDataLook(row);
-              },
-            },
-            {
-              name: "淇敼妫�楠屽��",
-              type: "text",
-              clickFun: (row) => {
-                this.editInspection(row);
-              },
-              disabled: (row) => {
-                return (row.userName == null || row.insState == 3 || row.insState == 5) && this.checkPermi(['update:product:onPlan'])
-              },
-            },
-            {
-              name: "鏌ョ湅宸ユ椂",
-              type: "text",
-              clickFun: (row) => {
-                this.viewManHour(row);
-              },
-              showHide: (row) => {
-                return this.checkPermi(['get:working:hours:byOrder'])
-              },
-            },
-            {
-              name: "妫�楠�",
-              type: "text",
-              clickFun: (row) => {
-                this.handleInspection(row);
-              },
-              disabled: (row) => {
-                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) => {
-                return (
-                  row.userName == null ||
-                  row.insState == 5 ||
-                  row.insState == 3 ||
-                  (row.userName && !row.userName.includes(this.nickName))
-                );
-              },
-            },
-            {
-              name: "鍘熷璁板綍",
-              type: "text",
-              clickFun: (row) => {
-                this.viewInspectInfo(row);
-              },
-            },
-          ],
-        },
+          dataType: "slot",
+          slot: "action",
+          width: '340px',
+          label: "鎿嶄綔"
+        }
       ],
       page: {
         total: 0,
-        size: 10,
+        size: 20,
         current: 0,
       },
       tableLoading: false,
@@ -535,7 +515,7 @@
       ],
       lookPage: {
         total: 0,
-        size: 10,
+        size: 20,
         current: 0,
       },
       lookTableLoading: false,
@@ -638,6 +618,56 @@
       this.page.current = 1;
       this.queryParams.typeSource = this.tabIndex;
       this.getList();
+    },
+    // 涓嬭浇鎶ュ憡
+    download(row) {
+      let url = (row.urlS===null||row.urlS==='')?row.url:row.urlS
+      const link = document.createElement('a');
+      link.href = this.javaApi + url;
+      link.target = '_blank';
+      document.body.appendChild(link);
+      link.click();
+    },
+    // 杩樺師鎿嶄綔
+    handleRestore(row) {
+      this.$confirm('鏄惁杩樺師褰撳墠鎶ュ憡?', "璀﹀憡", {
+        confirmButtonText: "纭畾",
+        cancelButtonText: "鍙栨秷",
+        type: "warning"
+      }).then(() => {
+        upReportUrl({ id: row.insReportId }).then(res => {
+          if (res.code === 200) {
+            this.$message.success('杩樺師鎴愬姛')
+            this.refreshTable()
+          }
+        })
+      }).catch(() => { })
+
+    },
+    // 鏌ョ湅鎶ュ憡
+    handleIssued(row) {
+      // todo: 鏌ョ湅鎶ュ憡缁勪欢
+      this.currentInfo = row;
+      let fileName = row.url
+      let fileType = "docx"
+      if (row.tempUrlPdf != null || row.tempUrlPdf === '') {
+        fileName = row.tempUrlPdf
+        fileType = "pdf"
+      }
+      fileName = fileName.replace('/word/','')
+      const userName = this.nickName
+      this.option = {
+        url: this.javaApi + "/word/" + fileName,
+        isEdit: false,
+        fileType: fileType,
+        title: fileName,
+        lang: 'zh-CN',
+        isPrint: false,
+        user_id: 1,
+        user_name: userName,
+        editUrl: this.javaApi + "/insReport/onlyOffice/save?fileName=" + fileName
+      }
+      this.issuedVisible = true;
     },
     // 鏌ョ湅浜т笟閾句俊鎭�
     openInfoDialog(row) {
@@ -852,7 +882,6 @@
       this.bindCurrentInfo = row;
       getBindingProductByProductId({ productId: row.insProductId })
         .then((res) => {
-          // console.log(res)
           this.bindTableData = res.data;
           this.bindDialogVisible = true;
         })
@@ -865,7 +894,6 @@
         productId: this.bindCurrentInfo.insProductId,
       })
         .then((res) => {
-          // console.log(res)
           this.bindAddTableData = res.data;
           this.bindAddDialogVisible = true;
         })
@@ -915,6 +943,29 @@
         });
       });
     },
+    beforeUpload (file) {
+      if (file.size > 1024 * 1024 * 10) {
+        this.$message.error('涓婁紶鏂囦欢涓嶈秴杩�10M');
+        this.$refs.upload.clearFiles()
+        return false;
+      } else {
+        return true;
+      }
+    },
+    onError(error, file, fileList, index) {
+      this.$message.error('鏂囦欢涓婁紶澶辫触锛岃閲嶈瘯');
+    },
+    onExceed() {
+      this.$message.warning("瓒呭嚭鏂囦欢涓暟");
+    },
+    handleSuccessUp(response) {
+      if (response.code == 200) {
+        this.$refs.upload.clearFiles()
+        this.$message.success("涓婁紶鎴愬姛");
+      } else {
+        this.$message.error(response.message);
+      }
+    },
   },
 };
 </script>
diff --git a/src/views/business/inspectionTask/inspection.vue b/src/views/business/inspectionTask/inspection.vue
index a8b72dc..512b516 100644
--- a/src/views/business/inspectionTask/inspection.vue
+++ b/src/views/business/inspectionTask/inspection.vue
@@ -541,8 +541,8 @@
   delfile,
   inspectionOrderDetailsTaskSwitching
 } from "@/api/business/inspectionTask.js";
-import InspectionWorker from '../../../InspectionWorker.worker';
-import DataWorker from '../../../DataWorker.worker';
+import InspectionWorker from '../../../workers/InspectionWorker.worker';
+import DataWorker from '../../../workers/DataWorker.worker';
 import html2canvas from "html2canvas";
 import { mapGetters } from "vuex";
 import viewManHourDia from "@/views/business/inspectionTask/components/viewManHourDia.vue";
@@ -1133,7 +1133,6 @@
       this.dataAcquisitionInfo = {};
       this.getData = [];
       for (let i in this.objectOrder(data)) {
-        console.log("i---", i);
         let obj = {};
         if (i.includes("@")) {
           obj = {
@@ -1476,7 +1475,6 @@
     },
     // 淇濆瓨婀垮害銆佹俯搴︽暟鎹�
     subOtherForm(m, type) {
-      console.log("m---", m);
       write({
         [type]: type === "remark" ? m : Number(m),
         id: this.insOrder.id,
@@ -2747,7 +2745,7 @@
       }
     },
     getAuthorizedPerson() {
-      selectUserCondition({ type: 0 }).then((res) => {
+      selectUserCondition({ type: 1 }).then((res) => {
         let data = [];
         res.data.forEach((a) => {
           data.push({
diff --git a/src/views/business/materialOrder/copperOrder.vue b/src/views/business/materialOrder/copperOrder.vue
index 1f76b7c..25436fb 100644
--- a/src/views/business/materialOrder/copperOrder.vue
+++ b/src/views/business/materialOrder/copperOrder.vue
@@ -1808,4 +1808,11 @@
   justify-content: space-between;
   margin-bottom: 10px;
 }
+>>>.warning-row {
+  color: #1890FF;
+}
+.node_i {
+  color: orange;
+  font-size: 18px;
+}
 </style>
diff --git a/src/views/business/materialOrder/customsInspection.vue b/src/views/business/materialOrder/customsInspection.vue
index 2404734..e9a28fa 100644
--- a/src/views/business/materialOrder/customsInspection.vue
+++ b/src/views/business/materialOrder/customsInspection.vue
@@ -5,25 +5,23 @@
         <div>
           <span>閲囪喘璁㈠崟淇℃伅</span>
           <ul class="tab" v-if="active > 1 && isShowTab">
-            <li v-for="(m, i) in dataTitle" :key="i" :class="{ active: i === dataIndex }" @click="handleDataTab(m, i)">
-              {{ m.label }}</li>
+            <li v-for="(m,i) in dataTitle" :key="i" :class="{active:i===dataIndex}" @click="handleDataTab(m,i)">{{m.label}}</li>
           </ul>
         </div>
         <div>
-          <el-select v-show="active == 1" v-model="template" placeholder="涓嬪崟妯℃澘" size="small" style="margin-right: 10px;"
-            @change="selectInsOrderTemplateByIdList">
+          <el-select v-show="active==1" v-model="template" placeholder="涓嬪崟妯℃澘" size="small" style="margin-right: 10px;"
+                     @change="selectInsOrderTemplateByIdList">
             <el-option v-for="(a, ai) in templates" :key="ai" :label="a.name" :value="a.id">
               <span style="float: left">{{ a.name }}</span>
               <i class="el-icon-delete" style="float: right; color: #66b1ff; font-size: 16px"
-                @click.stop="handleDelete(a)"></i>
+                 @click.stop="handleDelete(a)"></i>
             </el-option>
           </el-select>
-          <el-button v-show="active == 1" size="small" @click="templateDia = true">
+          <el-button v-show="active==1" size="small" @click="templateDia=true">
             <span style="color: #3A7BFA;">淇濆瓨妯℃澘</span>
           </el-button>
-          <el-button v-show="active == 1 && addObj.orderType === '杩涘巶妫�楠�'" :loading="noNeedCheckLoad" size="small"
-            type="primary" @click="noNeedCheck">鍏嶆</el-button>
-          <el-button v-show="active == 1" :loading="saveLoad" size="small" type="primary" @click="save">鎻愪氦</el-button>
+          <el-button v-show="active==1 && addObj.orderType === '杩涘巶妫�楠�'" :loading="noNeedCheckLoad" size="small" type="primary" @click="noNeedCheck">鍏嶆</el-button>
+          <el-button v-show="active==1" :loading="saveLoad" size="small" type="primary" @click="save">鎻愪氦</el-button>
           <el-button size="small" @click="goBack">
             <span style="color: #3A7BFA;">杩斿洖</span>
           </el-button>
@@ -35,41 +33,42 @@
         <el-row>
           <el-col :span="6">
             <el-form-item class="addObj-form-item" label="閲囪喘璁㈠崟鍙�:">
-              <el-input v-model="addObj.orderNo" class="addObj-info" clearable disabled placeholder=""
-                size="small"></el-input>
+              <el-input v-model="addObj.orderNo" class="addObj-info" clearable disabled placeholder="" size="small"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="6">
             <el-form-item class="addObj-form-item" label="濮旀墭鍗曚綅:">
-              <el-input v-model="addObj.company" class="addObj-info" clearable disabled placeholder=""
-                size="small"></el-input>
+              <el-input v-model="addObj.company" class="addObj-info" clearable disabled placeholder="" size="small"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="6">
             <el-form-item class="addObj-form-item" label="鎺ユ敹鏃堕棿:">
-              <el-date-picker v-model="addObj.receiverDate" disabled placeholder="閫夋嫨鏃ユ湡" size="small"
-                style="width: 100%;" type="date" value-format="yyyy-MM-dd">
+              <el-date-picker
+                v-model="addObj.receiverDate"
+                disabled
+                placeholder="閫夋嫨鏃ユ湡"
+                size="small"
+                style="width: 100%;"
+                type="date"
+                value-format="yyyy-MM-dd">
               </el-date-picker>
             </el-form-item>
           </el-col>
           <el-col :span="6">
             <el-form-item class="addObj-form-item" label="闆朵欢鍙�:">
-              <el-input v-model="addObj.partNo" class="addObj-info" clearable disabled placeholder=""
-                size="small"></el-input>
+              <el-input v-model="addObj.partNo" class="addObj-info" clearable disabled placeholder="" size="small"></el-input>
             </el-form-item>
           </el-col>
         </el-row>
         <el-row>
           <el-col :span="6">
             <el-form-item class="addObj-form-item" label="鏍峰搧鍚嶇О:">
-              <el-input v-model="addObj.sample" class="addObj-info" clearable disabled placeholder=""
-                size="small"></el-input>
+              <el-input v-model="addObj.sample" class="addObj-info" clearable disabled placeholder="" size="small"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="6">
             <el-form-item class="addObj-form-item" label="鏍峰搧鎬绘暟:">
-              <el-input v-model="addObj.qtyArrived" class="addObj-info" clearable disabled placeholder=""
-                size="small"></el-input>
+              <el-input v-model="addObj.qtyArrived" class="addObj-info" clearable disabled placeholder="" size="small"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="6">
@@ -91,24 +90,22 @@
           </el-col>
           <el-col :span="6">
             <el-form-item class="addObj-form-item" label="鎶芥鏁伴噺:" prop="testQuantity">
-              <el-input v-model="addObj.testQuantity" :disabled="active > 1" class="addObj-info" clearable
-                placeholder="璇峰~鍐欐娊妫�鏁伴噺" size="small"></el-input>
+              <el-input v-model="addObj.testQuantity" :disabled="active > 1" class="addObj-info"
+                        clearable
+                        placeholder="璇峰~鍐欐娊妫�鏁伴噺" size="small"></el-input>
             </el-form-item>
           </el-col>
           <el-col :span="6">
             <el-form-item class="addObj-form-item" label="妫�楠岀被鍒�:" prop="orderType">
-              <el-select v-model="addObj.orderType" :disabled="active > 1 || orderType == 1" clearable size="small"
-                style="width: 100%">
-                <el-option v-for="a in dict.type.check_type" :key="a.value" :label="a.label"
-                  :value="a.value"></el-option>
+              <el-select v-model="addObj.orderType" :disabled="active>1 || orderType==1" clearable size="small" style="width: 100%">
+                <el-option v-for="a in dict.type.check_type" :key="a.value" :label="a.label" :value="a.value"></el-option>
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="6">
             <el-form-item class="addObj-form-item" label="瑙勬牸鍨嬪彿:" placeholder="璇峰~鍐�" prop="partDetail">
               <el-tooltip :content="addObj.partDetail" :disabled="!addObj.partDetail">
-                <el-input v-model="addObj.partDetail" :disabled="active > 1" clearable class="addObj-info"
-                  size="small"></el-input>
+                <el-input v-model="addObj.partDetail" :disabled="active > 1" clearable class="addObj-info" size="small"></el-input>
               </el-tooltip>
             </el-form-item>
           </el-col>
@@ -116,24 +113,29 @@
         <el-row>
           <el-col :span="6">
             <el-form-item class="addObj-form-item" label="绱ф�ョ▼搴�:" placeholder="璇烽�夋嫨" prop="type">
-              <el-select v-model="addObj.type" :disabled="active > 1" class="addObj-info" clearable size="small"
-                style="width: 100%">
-                <el-option v-for="a in dict.type.urgency_level" :key="a.value" :label="a.label"
-                  :value="a.value"></el-option>
+              <el-select v-model="addObj.type" :disabled="active>1" class="addObj-info" clearable size="small" style="width: 100%">
+                <el-option v-for="a in dict.type.urgency_level" :key="a.value" :label="a.label" :value="a.value"></el-option>
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="6">
             <el-form-item class="addObj-form-item" label="绾﹀畾鏃堕棿:" prop="appointed">
-              <el-date-picker v-model="addObj.appointed" :disabled="active > 1" format="yyyy-MM-dd" placeholder="閫夋嫨鏃ユ湡"
-                size="small" style="width: 100%" type="date" value-format="yyyy-MM-dd">
+              <el-date-picker
+                v-model="addObj.appointed"
+                :disabled="active > 1"
+                format="yyyy-MM-dd"
+                placeholder="閫夋嫨鏃ユ湡"
+                size="small"
+                style="width: 100%"
+                type="date"
+                value-format="yyyy-MM-dd">
               </el-date-picker>
             </el-form-item>
           </el-col>
           <el-col :span="6">
             <el-form-item class="addObj-form-item" label="澶囨敞:">
-              <el-input v-model="addObj.remark" :autosize="{ minRows: 2, maxRows: 2 }" :disabled="active > 1"
-                :placeholder="active > 1 ? '' : '璇疯緭鍏�'" clearable size="small" type="textarea"></el-input>
+              <el-input v-model="addObj.remark" :autosize="{ minRows: 2, maxRows: 2}" :disabled="active>1" :placeholder="active>1 ? '' : '璇疯緭鍏�'" clearable
+                        size="small" type="textarea"></el-input>
             </el-form-item>
           </el-col>
         </el-row>
@@ -141,146 +143,162 @@
     </div>
     <div>
       <div style="display: flex;justify-content: space-between;background-color: #F5F7FB;margin-bottom: 6px">
-        <div v-if="active == 1">
+        <div v-if="active==1">
           <el-form :inline="true" :model="addObj1" label-width="90px">
             <el-form-item label="鏍峰搧鍨嬪彿:" style="margin-bottom: 6px;margin-top: 6px">
-              <el-select v-model="model" :placeholder="active > 1 ? '' : '璇疯緭鍏�'" allow-create clearable
-                default-first-option filterable size="small" @change="changeModel">
+              <el-select v-model="model" :placeholder="active>1 ? '' : '璇疯緭鍏�'"
+                         allow-create clearable default-first-option filterable
+                         size="small"
+                         @change="changeModel">
                 <el-option v-for="item in models" :key="item.value" :label="item.label" :value="item.value">
                 </el-option>
               </el-select>
             </el-form-item>
             <el-form-item label="妫�楠屾爣鍑�:" style="margin-bottom: 6px;margin-top: 6px">
-              <el-select v-model="standardMethodListId" :loading="methodLoad" :placeholder="active > 1 ? '' : '璇疯緭鍏�'"
-                clearable size="small" @change="changeStandardMethodListId" @focus="methodFocus">
+              <el-select v-model="standardMethodListId" :loading="methodLoad"
+                         :placeholder="active>1 ? '' : '璇疯緭鍏�'" clearable size="small"
+                         @change="changeStandardMethodListId" @focus="methodFocus">
                 <el-option v-for="item in methods" :key="item.id" :label="item.code" :value="item.id">
                 </el-option>
               </el-select>
             </el-form-item>
-            <el-form-item label="" style="margin-bottom: 6px;margin-top: 6px">
-              <el-button type="primary" size="small">杞﹂棿闄勪欢鏌ョ湅</el-button>
-            </el-form-item>
           </el-form>
         </div>
         <div style="margin-bottom: 6px;margin-top: 6px">
-          <el-button v-show="active == 1" :disabled="sampleList.length === 2" size="small" type="primary"
-            @click="handleSplitCountNum">鎷嗗垎</el-button>
+          <el-button v-show="active==1" :disabled="sampleList.length === 2" size="small" type="primary" @click="handleSplitCountNum">鎷嗗垎</el-button>
         </div>
       </div>
 
-      <el-table ref="sampleTable" :data="sampleList" class="el-table sampleTable" highlight-current-row
-        :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border max-height="400px" tooltip-effect="dark"
-        @selection-change="selectSample" @row-click="rowClick">
-        <el-table-column v-if="active == 1" :selectable="selectable" type="selection" width="65"></el-table-column>
+      <el-table ref="sampleTable" :data="sampleList"
+                class="el-table sampleTable"
+                highlight-current-row
+                :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border
+                max-height="400px"
+                tooltip-effect="dark"
+                @selection-change="selectSample" @row-click="rowClick">
+        <el-table-column v-if="active==1" :selectable="selectable" type="selection" width="65"></el-table-column>
         <el-table-column align="center" label="搴忓彿" prop="index" type="index" width="65"></el-table-column>
         <el-table-column align="center" label="鏍峰搧鍚嶇О" min-width="100" prop="sample">
           <template slot-scope="scope">
-            <el-input v-model="scope.row.sample" :disabled="active > 1 || scope.$index !== 0" size="small"
-              @change="(val) => changeValue(val, 'sample')"></el-input>
+            <el-input v-model="scope.row.sample" :disabled="active>1 || scope.$index !== 0" size="small" @change="(val)=>changeValue(val, 'sample')"></el-input>
           </template>
         </el-table-column>
         <el-table-column align="center" label="鏍峰搧缂栧彿" min-width="140" prop="sampleCode">
           <template slot-scope="scope">
-            <el-input v-model="scope.row.sampleCode" :disabled="active > 1 || scope.$index !== 0" clearable
-              placeholder="涓嶅~鍐欏垯绯荤粺鑷姩鐢熸垚" size="small" @change="(val) => changeValue(val, 'sampleCode')"></el-input>
+            <el-input v-model="scope.row.sampleCode" :disabled="active>1 || scope.$index !== 0" clearable placeholder="涓嶅~鍐欏垯绯荤粺鑷姩鐢熸垚"
+                      size="small"
+                      @change="(val)=>changeValue(val, 'sampleCode')"></el-input>
           </template>
         </el-table-column>
         <el-table-column align="center" label="鏍峰搧鍨嬪彿" min-width="100" prop="model">
           <template slot-scope="scope">
-            <el-select v-model="scope.row.model" :disabled="active > 1 || scope.$index !== 0" allow-create
-              default-first-option filterable placeholder="鏍峰搧鍨嬪彿" size="small" style="width: 100%;"
-              @change="handleChangeModel">
+            <el-select v-model="scope.row.model" :disabled="active>1 || scope.$index !== 0" allow-create default-first-option filterable
+                       placeholder="鏍峰搧鍨嬪彿" size="small" style="width: 100%;" @change="handleChangeModel">
               <el-option v-for="item in models" :key="item.value" :label="item.label" :value="item.value">
               </el-option>
             </el-select>
           </template>
         </el-table-column>
-        <el-table-column v-if="!(active > 1)" align="center" label="鍨嬪彿鍙傛暟" prop="modelNum" width="130">
+        <el-table-column v-if="!(active>1)" align="center" label="鍨嬪彿鍙傛暟" prop="modelNum" width="130">
           <template slot-scope="scope">
-            <el-input v-model="scope.row.modelNum" :disabled="active > 1 || scope.$index !== 0" clearable
-              placeholder="闈炲繀濉�" size="small"
-              @input="methodChange(scope.row.standardMethodListId, scope.row)"></el-input>
+            <el-input v-model="scope.row.modelNum" :disabled="active>1|| scope.$index !== 0" clearable placeholder="闈炲繀濉�"
+                      size="small"
+                      @input="methodChange(scope.row.standardMethodListId, scope.row)"></el-input>
           </template>
         </el-table-column>
         <el-table-column align="center" label="妫�楠屾爣鍑�" min-width="100" prop="standardMethodListId">
           <template slot-scope="scope">
-            <el-select v-model="scope.row.standardMethodListId"
-              :disabled="scope.row.model == null || active > 1 || scope.$index !== 0" :loading="methodLoad" clearable
-              placeholder="妫�楠屾爣鍑�" size="small" style="width: 100%;" @change="(value) => methodChange(value, scope.row)"
-              @clear="productList = []" @focus="methodFocus">
+            <el-select v-model="scope.row.standardMethodListId" :disabled="scope.row.model==null||active>1|| scope.$index !== 0"
+                       :loading="methodLoad" clearable placeholder="妫�楠屾爣鍑�" size="small"
+                       style="width: 100%;" @change="(value)=>methodChange(value, scope.row)" @clear="productList = []" @focus="methodFocus">
               <el-option v-for="item in methods" :key="item.id" :label="item.code" :value="item.id">
               </el-option>
             </el-select>
           </template>
         </el-table-column>
-        <el-table-column v-if="addObj.mating == 1" align="center" label="閰嶅鏍峰搧鍚嶇О" prop="joinName" width="140">
+        <el-table-column v-if="addObj.mating==1" align="center" label="閰嶅鏍峰搧鍚嶇О" prop="joinName" width="140">
           <template slot-scope="scope">
-            <el-input v-model="scope.row.joinName" :autosize="{ minRows: 1, maxRows: 1 }" size="small"
-              type="textarea"></el-input>
+            <el-input v-model="scope.row.joinName" :autosize="{ minRows: 1, maxRows: 1}" size="small"
+                      type="textarea"></el-input>
           </template>
         </el-table-column>
-        <el-table-column v-if="addObj.mating == 1" align="center" label="閰嶅鏍峰搧鍨嬪彿" prop="joinModel" width="140">
+        <el-table-column v-if="addObj.mating==1" align="center" label="閰嶅鏍峰搧鍨嬪彿" prop="joinModel" width="140">
           <template slot-scope="scope">
-            <el-input v-model="scope.row.joinModel" :autosize="{ minRows: 1, maxRows: 1 }" size="small"
-              type="textarea"></el-input>
+            <el-input v-model="scope.row.joinModel" :autosize="{ minRows: 1, maxRows: 1}" size="small"
+                      type="textarea"></el-input>
           </template>
         </el-table-column>
-        <el-table-column v-if="addObj.mating == 1" align="center" label="閰嶅鏍峰搧鏁伴噺" prop="joinNum" width="140">
+        <el-table-column v-if="addObj.mating==1" align="center" label="閰嶅鏍峰搧鏁伴噺" prop="joinNum" width="140">
           <template slot-scope="scope">
             <el-input-number v-model="scope.row.joinNum" :controls="false" :max="100" :min="1" :precision="0"
-              size="small" style="width: 80%;"></el-input-number>
+                             size="small" style="width: 80%;"></el-input-number>
           </template>
         </el-table-column>
         <el-table-column align="center" label="寰呮椤规暟閲�" prop="quantity" width="105">
           <template slot-scope="scope">
-            <el-select v-model="scope.row.quantity" disabled clearable size="small">
-              <el-option v-for="item in quantityList" :key="item.value" :label="item.label"
-                :value="item.value"></el-option>
+            <el-select v-model="scope.row.quantity" disabled clearable
+                       size="small">
+              <el-option v-for="item in quantityList" :key="item.value" :label="item.label" :value="item.value"></el-option>
             </el-select>
           </template>
         </el-table-column>
       </el-table>
-      <el-table ref="productTable" v-loading="getProductLoad" :data="productList" :row-class-name="tableRowClassName"
-        class="el-table" max-height="400px" style="margin-bottom: 10px;"
-        :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border tooltip-effect="dark"
-        @select="selectOne" @selection-change="selectProduct" @select-all="handleAll">
-        <el-table-column v-if="active == 1" :selectable="selectable" type="selection" width="65"></el-table-column>
+      <el-table ref="productTable" v-loading="getProductLoad" :data="productList"
+                :row-class-name="tableRowClassName"
+                class="el-table"
+                max-height="400px"
+                style="margin-bottom: 10px;"
+                :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border
+                tooltip-effect="dark"
+                @select="selectOne"
+                @selection-change="selectProduct"
+                @select-all="handleAll">
+        <el-table-column v-if="active==1" :selectable="selectable" type="selection" width="65"></el-table-column>
         <el-table-column label="妫�楠岄」" min-width="140" prop="inspectionItem" show-overflow-tooltip>
           <template slot="header" slot-scope="scope">
             <div style="display: flex;align-items: center;flex-direction: column;font-size: 14px">
               <span>妫�楠岄」</span>
-              <el-input v-if="active == 1" v-model="inspectionItem" placeholder="璇疯緭鍏�" size="mini"
-                @input="searchFilterList" />
+              <el-input
+                v-if="active==1"
+                v-model="inspectionItem"
+                placeholder="璇疯緭鍏�"
+                size="mini"
+                @input="searchFilterList"/>
             </div>
           </template>
         </el-table-column>
-        <el-table-column label="妫�楠岄」瀛愰」" min-width="140" prop="inspectionItemSubclass" show-overflow-tooltip>
+        <el-table-column label="妫�楠岄」瀛愰」" min-width="140" prop="inspectionItemSubclass"
+                         show-overflow-tooltip>
           <template slot="header" slot-scope="scope">
             <div style="display: flex;align-items: center;flex-direction: column;font-size: 14px">
               <span>妫�楠岄」瀛愰」</span>
-              <el-input v-if="active == 1" v-model="inspectionItemSubclass" placeholder="璇疯緭鍏�" size="mini"
-                @input="searchFilterList" />
+              <el-input
+                v-if="active==1"
+                v-model="inspectionItemSubclass"
+                placeholder="璇疯緭鍏�"
+                size="mini"
+                @input="searchFilterList"/>
             </div>
           </template>
         </el-table-column>
         <el-table-column label="瑕佹眰鍊�" min-width="220px" prop="ask">
           <template slot-scope="scope">
-            <el-input v-if="active == 1 && isAskOnlyRead" v-model="scope.row.ask" :autosize="{ minRows: 1, maxRows: 3 }"
-              clearable placeholder="瑕佹眰鍊�" size="small" type="textarea"
-              @change="e => requestChange(e, scope.row)"></el-input>
+            <el-input v-if="active==1&&isAskOnlyRead" v-model="scope.row.ask" :autosize="{ minRows: 1, maxRows: 3}" clearable placeholder="瑕佹眰鍊�"
+                      size="small" type="textarea"
+                      @change="e=>requestChange(e,scope.row)"></el-input>
             <span v-else>
-              <template>{{ scope.row.ask }}</template>
+              <template >{{ scope.row.ask }}</template>
             </span>
           </template>
         </el-table-column>
         <el-table-column label="瑕佹眰鎻忚堪" min-width="220px" prop="tell">
           <template slot-scope="scope">
-            <el-input v-if="active == 1 && isAskOnlyRead" v-model="scope.row.tell"
-              :autosize="{ minRows: 1, maxRows: 3 }" clearable placeholder="瑕佹眰鎻忚堪" size="small" type="textarea"
-              @change="e => requestChange(e, scope.row, 'tell')"></el-input>
+            <el-input v-if="active==1&&isAskOnlyRead" v-model="scope.row.tell" :autosize="{ minRows: 1, maxRows: 3}" clearable placeholder="瑕佹眰鎻忚堪"
+                      size="small" type="textarea"
+                      @change="e=>requestChange(e,scope.row,'tell')"></el-input>
             <span v-else>
-              <template>{{ scope.row.tell }}</template>
-            </span>
+                <template >{{ scope.row.tell }}</template>
+              </span>
           </template>
         </el-table-column>
         <el-table-column label="鏉′欢" min-width="140" prop="radius" show-overflow-tooltip></el-table-column>
@@ -288,29 +306,35 @@
           <template slot="header" slot-scope="scope">
             <div style="display: flex;align-items: center;flex-direction: column;font-size: 14px">
               <span>璇曢獙鏂规硶</span>
-              <el-input v-if="active == 1" v-model="methodS" placeholder="璇疯緭鍏�" size="mini" @input="searchFilterList" />
+              <el-input
+                v-if="active==1"
+                v-model="methodS"
+                placeholder="璇疯緭鍏�"
+                size="mini"
+                @input="searchFilterList"/>
             </div>
           </template>
         </el-table-column>
         <el-table-column label="璁¢噺鍗曚綅" prop="unit" show-overflow-tooltip width="100"></el-table-column>
         <el-table-column label="鍗曚环" prop="price" show-overflow-tooltip width="100"></el-table-column>
         <el-table-column label="鍖洪棿" min-width="120" prop="section" show-overflow-tooltip></el-table-column>
-        <el-table-column :filter-method="filterHandler" :filters="filters" label="瀛愬疄楠屽" min-width="130"
-          prop="sonLaboratory" show-overflow-tooltip></el-table-column>
+        <el-table-column :filter-method="filterHandler" :filters="filters" label="瀛愬疄楠屽" min-width="130" prop="sonLaboratory"
+                         show-overflow-tooltip></el-table-column>
       </el-table>
     </div>
     <!--鐗规畩鍊煎鐞嗘-->
-    <el-dialog :before-close="beforeClose" :close-on-click-modal="false" :close-on-press-escape="false"
-      :show-close="false" :visible.sync="bsm1DiaAll" min-width="400px" title="妫�娴嬪埌鐗规畩椤癸紝璇蜂綔鍑轰互涓嬮�夋嫨">
+    <el-dialog :before-close="beforeClose" :close-on-click-modal="false" :close-on-press-escape="false" :show-close="false"
+               :visible.sync="bsm1DiaAll"
+               min-width="400px"
+               title="妫�娴嬪埌鐗规畩椤癸紝璇蜂綔鍑轰互涓嬮�夋嫨">
       <div v-for="(item, index) in bsm1DiaList" :key="item.id" class="body" style="max-height: 60vh;">
-        <span>{{ item.inspectionItem }}</span>
+        <span>{{item.inspectionItem}}</span>
         <el-row v-if="item.bsm1">
           <el-col :span="24" class="search_thing" style="height: initial;margin: 5px 0;">
             <div class="search_label" style="width: 80px;"><span class="required-span">* </span>閫夐」锛�</div>
             <div class="search_input">
               <el-radio-group v-model="item.bsm1Val" v-removeAriaHidden @input="upBsmAll(item)">
-                <el-radio v-for="(a, ai) in JSON.parse(item.bsmRow.sectionCopy)" :key="ai" :label="a"
-                  style="margin-bottom: 2px;margin-top: 2px;"></el-radio>
+                <el-radio v-for="(a, ai) in JSON.parse(item.bsmRow.sectionCopy)" :key="ai" :label="a" style="margin-bottom: 2px;margin-top: 2px;"></el-radio>
               </el-radio-group>
             </div>
           </el-col>
@@ -318,8 +342,8 @@
             <div class="search_label" style="width: 80px;">瑕佹眰鍊硷細</div>
             <div class="search_input">
               <el-radio-group v-model="item.bsm1Val" v-removeAriaHidden @input="upBsmAll(item)">
-                <el-radio v-for="(a, ai) in JSON.parse(item.bsmRow.sectionCopy)" :key="ai" :label="a">{{
-                  JSON.parse(item.bsmRow.askCopy)[ai] }}</el-radio>
+                <el-radio v-for="(a, ai) in JSON.parse(item.bsmRow.sectionCopy)" :key="ai"
+                          :label="a">{{JSON.parse(item.bsmRow.askCopy)[ai]}}</el-radio>
               </el-radio-group>
             </div>
           </el-col>
@@ -332,8 +356,9 @@
       </span>
     </el-dialog>
     <el-dialog :close-on-click-modal="false" :close-on-press-escape="false"
-      :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border :show-close="false"
-      :visible.sync="bsm3Dia" title="鍖洪棿鍊煎~鍐�" width="800px">
+               :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border
+               :show-close="false" :visible.sync="bsm3Dia"
+               title="鍖洪棿鍊煎~鍐�" width="800px">
       <el-table :data="editTable" height="80vh" style="width: 100%">
         <!-- inspectionItemList -->
         <el-table-column label="妫�楠岄」" prop="inspectionItemList" width="180">
@@ -346,27 +371,36 @@
         </el-table-column>
         <el-table-column label="璇嗗埆绗﹀��" prop="value">
           <template slot-scope="scope">
-            <el-input v-model="scope.row.value" placeholder="璇疯緭鍏�" size="small"
-              @input="inputValueHandler(scope.row, scope.$index)"></el-input>
+            <el-input v-model="scope.row.value" placeholder="璇疯緭鍏�" size="small" @input="inputValueHandler(scope.row,scope.$index)"></el-input>
           </template>
         </el-table-column>
       </el-table>
       <span slot="footer" class="dialog-footer">
         <el-row>
-          <el-button @click="bsm3Dia = false">鍙� 娑�</el-button>
+          <el-button @click="bsm3Dia=false">鍙� 娑�</el-button>
           <el-button :loading="saveLoad" type="primary" @click="save0">纭� 瀹�</el-button>
         </el-row>
       </span>
     </el-dialog>
-    <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :show-close="false"
-      :visible.sync="dialogVisible" title="鎻愮ず" width="32%">
+    <el-dialog
+      :close-on-click-modal="false"
+      :close-on-press-escape="false"
+      :show-close="false"
+      :visible.sync="dialogVisible"
+      title="鎻愮ず"
+      width="32%">
       <span>{{ dialogMessage }}</span>
       <span slot="footer" class="dialog-footer">
-        <el-button type="primary" @click="dialogVisible = false, closeOpenPage()">纭� 瀹�</el-button>
+        <el-button type="primary" @click="dialogVisible= false,closeOpenPage()">纭� 瀹�</el-button>
       </span>
     </el-dialog>
-    <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :show-close="false"
-      :visible.sync="dialogVisible2" title="鎻愮ず" width="32%">
+    <el-dialog
+      :close-on-click-modal="false"
+      :close-on-press-escape="false"
+      :show-close="false"
+      :visible.sync="dialogVisible2"
+      title="鎻愮ず"
+      width="32%">
       <span>{{ dialogMessage2 }}</span>
       <span slot="footer" class="dialog-footer">
         <el-button type="primary" @click="dialogVisible2 = false">纭� 瀹�</el-button>
@@ -384,8 +418,13 @@
         <el-button :loading="templateLoading" type="primary" @click="addTemplateDia">纭� 瀹�</el-button>
       </span>
     </el-dialog>
-    <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :show-close="false"
-      :visible.sync="noNeedCheckDia" title="鍏嶆鎻愮ず" width="32%">
+    <el-dialog
+      :close-on-click-modal="false"
+      :close-on-press-escape="false"
+      :show-close="false"
+      :visible.sync="noNeedCheckDia"
+      title="鍏嶆鎻愮ず"
+      width="32%">
       <span>纭鍏嶆褰撳墠妫�楠屽崟锛�</span>
       <span slot="footer" class="dialog-footer">
         <el-button :loading="noNeedCheckLoad" type="primary" @click="handleNoNeedCheck">纭� 瀹�</el-button>
@@ -423,7 +462,7 @@
       active: 0,
       currentId: 0,
       isReport: '',
-      editTable: [], // 鍖洪棿鐗规畩鍊煎~鍐�
+      editTable:[], // 鍖洪棿鐗规畩鍊煎~鍐�
       template: null,
       saveLoad: false, // 淇濆瓨鎸夐挳loading
       noNeedCheckLoad: false, // 鍏嶆鎸夐挳loading
@@ -516,9 +555,9 @@
       addObj1: {},
       model: null,
       standardMethodListId: null,
-      inspectionItem: null,
-      inspectionItemSubclass: null,
-      methodS: null,
+      inspectionItem:null,
+      inspectionItemSubclass:null,
+      methodS:null,
       codeLevel: '', // 鏍峰搧鎵�鍦ㄧ骇鍒�
       selectTreeTem: '', // 鏍峰搧鐖剁骇
       checkType: [], // 妫�楠岀被鍨嬮�夐」鏁版嵁
@@ -531,14 +570,14 @@
       templateName: '', // 淇濆瓨妯$増鍚嶇О
       templates: [], // 妯$増涓嬫媺妗嗘暟鎹�
       quantityList: [
-        { label: 1, value: 1 },
-        { label: 2, value: 2 },
-        { label: 3, value: 3 },
-        { label: 4, value: 4 },
-        { label: 5, value: 5 },
-        { label: 6, value: 6 },
-        { label: 7, value: 7 },
-        { label: 8, value: 8 },
+        { label: 1, value: 1},
+        { label: 2, value: 2},
+        { label: 3, value: 3},
+        { label: 4, value: 4},
+        { label: 5, value: 5},
+        { label: 6, value: 6},
+        { label: 7, value: 7},
+        { label: 8, value: 8},
       ],
       types: [], // 绱ф�ョ▼搴︿笅鎷夋
       dataTitle: [
@@ -553,7 +592,7 @@
       ],
       dataIndex: 0,
       isShowTab: false,
-      symbolList: ['RTS'],
+      symbolList:['RTS'],
       bsm3Dia: false, // 鍖洪棿鍊煎~鍐欏脊妗�
       bsmRow: {},
       bsm1: false,
@@ -619,7 +658,7 @@
     this.getInfo() // 鑾峰彇鏁版嵁
   },
   methods: {
-    save1() {
+    save1 () {
       if (this.bsm1DiaList.length > 0) {
         this.bsm1DiaList.forEach(item => {
           if (!item.bsm1Val) {
@@ -640,24 +679,24 @@
       done()
     },
     //鐗规畩鍊煎~鍐欏鐞�
-    inputValueHandler(row, index) {
-      if (row) {
-        const nextIndex = index + 1
+    inputValueHandler(row,index){
+      if(row){
+        const nextIndex = index+1
         for (let i = nextIndex; i < this.editTable.length; i++) {
           const element = this.editTable[i];
-          if (element.model == row.model && row.symbolItem == element.symbolItem) {
+          if(element.model==row.model&&row.symbolItem==element.symbolItem){
             this.editTable[i].value = row.value
           }
         }
       }
     },
     // 鏌ョ湅鏃跺垏鎹ab鏍�
-    handleDataTab(m, i) {
+    handleDataTab (m, i) {
       this.dataIndex = i
       this.getInfo()
     },
     // 鑾峰彇鏁版嵁
-    getInfo() {
+    getInfo () {
       if (this.active == 2) {
         let orderId = ''
         if (!this.customsInspection.enterOrderId && this.customsInspection.quarterOrderId) {
@@ -705,7 +744,7 @@
           }
         })
       } else {
-        notificationRawOrder({ ifsInventoryId: this.customsInspection.id }).then(res => {
+        notificationRawOrder({ifsInventoryId:this.customsInspection.id}).then(res => {
           if (res.code === 200) {
             if (res.data === 1) {
               if (this.orderType != 1) {
@@ -719,7 +758,7 @@
           }
         })
         // 鎶ユ娴佺▼
-        selectStandardTreeListByPartNo({ partNo: this.customsInspection.partNo }).then(res => {
+        selectStandardTreeListByPartNo({partNo:this.customsInspection.partNo}).then(res => {
           if (res.data !== null) {
             this.addObj.sample = res.data.label
             this.codeLevel = res.data.code
@@ -751,7 +790,7 @@
     },
     // 鏌ヨ妯℃澘-鍙嶆樉妯℃澘
     selectInsOrderTemplateByIdList(e) {
-      selectRawMaterOrderTemplateById({ id: e }).then(res => {
+      selectRawMaterOrderTemplateById({id: e}).then(res => {
         let obj = JSON.parse(res.data)
         this.sampleList = obj.sampleList;
         this.productList = obj.sampleList[0].insProduct
@@ -773,7 +812,7 @@
           thing: JSON.stringify({
             // addObj: this.addObj,
             sampleList: sampleList,
-            selectTree: this.selectTree
+            selectTree:this.selectTree
           })
         }).then(res => {
           this.templateLoading = false;
@@ -793,22 +832,22 @@
         cancelButtonText: "鍙栨秷",
         type: "warning"
       }).then(() => {
-        delRawMaterOrderTemplate({ id: row.id }).then(res => {
+        delRawMaterOrderTemplate({id: row.id}).then(res => {
           this.$message.success('鍒犻櫎鎴愬姛')
           this.selectInsOrderTemplate()
         }).catch(e => {
           this.$message.error('鍒犻櫎澶辫触')
         })
-      }).catch(() => { })
+      }).catch(() => {})
     },
     // 鏌ヨ妯℃澘鍒楄〃
     selectInsOrderTemplate() {
-      selectRawMaterOrderTemplate({ partNo: this.addObj.partNo }).then(res => {
+      selectRawMaterOrderTemplate({partNo:this.addObj.partNo}).then(res => {
         this.templates = res.data
       })
     },
     // 鎷嗗垎
-    handleSplitCountNum() {
+    handleSplitCountNum () {
       this.sample.joinName = null
       this.sample.joinModel = null
       this.sample.joinNum = 1
@@ -831,7 +870,7 @@
       this.computationalPairing(this.sampleList.length)
     },
     // 妫�楠岄」鍒楄〃绛涢��
-    searchFilterList() {
+    searchFilterList () {
       const vtw = {
         inspectionItem: this.inspectionItem, // 妫�楠岄」
         inspectionItemSubclass: this.inspectionItemSubclass, // 妫�楠岄」瀛愰」
@@ -842,7 +881,7 @@
       })
       this.changeProductList0()
       if (isHaveValue) {
-        for (let i in vtw) {
+        for(let i in vtw) {
           if (vtw[i]) {
             this.productList = this.productList0.filter((item) => {
               return item[i] && item[i].includes(vtw[i])
@@ -855,11 +894,11 @@
       }
     },
     containsValue(str) {
-      if (str) {
+      if(str){
         let symbolItem = ''
-        this.symbolList.some(value => {
-          if (str.includes(value)) {
-            symbolItem = value
+        this.symbolList.some(value =>{
+          if(str.includes(value)){
+            symbolItem  = value
             return true
           }
         })
@@ -880,18 +919,18 @@
           })
           this.getTotal(sampleList)
           let projectNum = this.totalArr.filter(a => a.state == 1).length
-          if (projectNum == 0) {
+          if(projectNum==0){
             this.$confirm('妫�楠岄」鐩负绌猴紝鏄惁纭鎻愪氦?', "鎻愮ず", {
               confirmButtonText: "纭畾",
               cancelButtonText: "鍙栨秷",
               type: "warning"
             }).then(() => {
               this.saveMethod(sampleList)
-            }).catch(() => { })
-          } else {
-            let isRTS = this.totalArr.find(a => a.ask != null && this.symbolList.find(b => a.ask.includes(b)) && a.state == 1)
+            }).catch(() => {})
+          }else{
+            let isRTS = this.totalArr.find(a => a.ask != null && this.symbolList.find(b=>a.ask.includes(b)) && a.state == 1)
             if (isRTS) {
-              this.editTable = this.handleData(sampleList, this.containsValue, 0)
+              this.editTable = this.handleData(sampleList,this.containsValue, 0)
               this.editTable.forEach(item => {
                 item.value = item.modelNum
               })
@@ -907,21 +946,21 @@
       });
     },
     // 鎻愪氦鍖洪棿鍊�
-    save0() {
-      if (this.editTable.every(m => m.value)) {
+    save0(){
+      if(this.editTable.every(m=>m.value)){
         this.sampleList.forEach(item => {
           item.insProduct = this.productList
         })
-        let sampleList = this.handleData(this.HaveJson(this.sampleList), this.handleAsk, 1)
+        let sampleList = this.handleData(this.HaveJson(this.sampleList),this.handleAsk,1)
         sampleList.forEach(a => {
-          a.insProduct = a.insProduct.filter(b => b.state === 1)
+          a.insProduct = a.insProduct.filter(b=>b.state === 1)
         })
         this.saveMethod(sampleList)
-      } else {
+      }else{
         this.$message.error('璇峰~鍐欒瘑鍒鍊�')
       }
     },
-    noNeedCheck() {
+    noNeedCheck () {
       this.$refs['addObj'].validate((valid) => {
         if (valid) {
           if (!this.sampleList.every(m => m.standardMethodListId)) {
@@ -935,7 +974,7 @@
           })
           this.getTotal(sampleList)
           let projectNum = this.totalArr.filter(a => a.state == 1).length
-          if (projectNum != 0) {
+          if (projectNum!=0){
             this.$message.error('鍏嶆涓嶅彲閫夋嫨妫�楠岄」')
             return
           }
@@ -946,7 +985,7 @@
         }
       });
     },
-    handleNoNeedCheck() {
+    handleNoNeedCheck () {
       // 妫�楠岀被鍨嬩负杩涘巶妫�楠屾椂鍙�夋嫨鍏嶆锛屼絾涓嶈兘閫夋嫨妫�楠岄」
       const sampleList = this.HaveJson(this.sampleList)
       sampleList.forEach(item => {
@@ -986,7 +1025,7 @@
           } else {
             a.model = a.model + ((a.modelNum == null || a.modelNum == '' || a.modelNum == 'null') ? '' : ('-' + a.modelNum))
           }
-          a.insProduct = a.insProduct.filter(b => b.state === 1)
+          a.insProduct = a.insProduct.filter(b=>b.state === 1)
           return a
         }),
       }).then(res => {
@@ -994,11 +1033,11 @@
         this.noNeedCheckDia = false
         this.$message.success('宸叉彁浜�')
         this.closeOpenPage()
-      }).catch(e => {
+      }).catch(e=>{
         this.noNeedCheckLoad = false
       })
     },
-    saveMethod(sampleList) {
+    saveMethod(sampleList){
       let trees = this.selectTree.split(" - ")
       if (trees.length < 3) {
         this.$message.error('鏈�夋嫨瀵硅薄')
@@ -1040,7 +1079,7 @@
           } else {
             a.model = a.model + ((a.modelNum == null || a.modelNum == '' || a.modelNum == 'null') ? '' : ('-' + a.modelNum))
           }
-          a.insProduct = a.insProduct.filter(b => b.state === 1)
+          a.insProduct = a.insProduct.filter(b=>b.state === 1)
           return a
         }),
       }).then(res => {
@@ -1048,12 +1087,12 @@
         this.$message.success('宸叉彁浜�')
         this.bsm3Dia = false;
         this.closeOpenPage()
-      }).catch(e => {
+      }).catch(e=>{
         this.saveLoad = false
       })
     },
-    handleAsk(ask, symbolItem, value) {
-      try {
+    handleAsk(ask,symbolItem, value) {
+      try{
         let code = [">", "<", "=", "锛�", "锛�", "鈮�", "鈮�", "卤", "*", "/"];
         let code2 = ['+', '*', '/', '-']
         if (ask.includes('&')) {
@@ -1097,42 +1136,42 @@
             return code[index] + '' + num
           }
         }
-      } catch (e) { }
+      }catch(e){}
     },
-    handleData(sampleList, calBack, type) {
+    handleData(sampleList,calBack,type){
       let editTable = []
       sampleList.forEach(item => {
         let obj = {
-          sampleCode: item.sampleCode,
-          model: item.model,
-          symbolList: [],
-          sampleId: item.id,
-          modelNum: item.modelNum,
+          sampleCode:item.sampleCode,
+          model:item.model,
+          symbolList:[],
+          sampleId:item.id,
+          modelNum:item.modelNum,
         }
         if (item.insProduct && item.insProduct.length > 0) {
           item.insProduct.forEach(a => {
             if (a.state == 1) {
-              if (type == 0) {
+              if(type==0){
                 let str = calBack(a.ask)
-                str && obj.symbolList.push({
-                  symbolItem: str,
-                  inspectionItem: a.inspectionItem,
+                str&&obj.symbolList.push({
+                  symbolItem:str,
+                  inspectionItem:a.inspectionItem,
                 })
-              } else if (type == 1) {
+              }else if(type==1){
                 let arr = this.editTable.filter(b => b.sampleId == item.id)
-                for (var i = 0; i < arr.length; i++) {
-                  if (a.ask) {
-                    if (a.ask.includes(arr[i].symbolItem)) {
-                      let ask = calBack(a.ask, arr[i].symbolItem, arr[i].value)
+                for (var i=0;i<arr.length;i++){
+                  if(a.ask){
+                    if(a.ask.includes(arr[i].symbolItem)){
+                      let ask = calBack(a.ask, arr[i].symbolItem,arr[i].value)
                       if (ask) {
                         a.ask = ask
                       }
-                      let tell = this.handleAsk(a.tell, arr[i].symbolItem, arr[i].value)
+                      let tell = this.handleAsk(a.tell, arr[i].symbolItem,arr[i].value)
                       if (tell) {
                         a.tell = tell
                       }
                     }
-                  } else {
+                  }else{
                     this.$message.error('瑕佹眰鍊间负绌猴紝闇�瑕佸幓鏍囧噯搴撶淮鎶わ紒')
                   }
                 }
@@ -1148,21 +1187,21 @@
                 if (b.productList && b.productList.length > 0) {
                   b.productList.forEach(c => {
                     if (c.state == 1) {
-                      if (type == 0) {
+                      if(type==0){
                         let str = calBack(c.ask)
-                        str && obj.symbolList.push({
-                          symbolItem: str,
-                          inspectionItem: c.inspectionItem,
+                        str&&obj.symbolList.push({
+                          symbolItem:str,
+                          inspectionItem:c.inspectionItem,
                         })
-                      } else if (type == 1) {
+                      }else if(type==1){
                         let arr = this.editTable.filter(b => b.sampleId == item.id)
                         arr.forEach(f => {
-                          if (c.ask.includes(f.symbolItem)) {
-                            let ask = calBack(c.ask, f.symbolItem, f.value)
+                          if(c.ask.includes(f.symbolItem)){
+                            let ask = calBack(c.ask, f.symbolItem,f.value)
                             if (ask) {
                               c.ask = ask
                             }
-                            let tell = this.handleTell(c.tell, f.symbolItem, f.value)
+                            let tell = this.handleTell(c.tell, f.symbolItem,f.value)
                             if (tell) {
                               c.tell = tell
                             }
@@ -1179,25 +1218,25 @@
                 if (b.productList && b.productList.length > 0) {
                   b.productList.forEach(c => {
                     if (c.state == 1) {
-                      if (type == 0) {
+                      if(type==0){
                         let str = calBack(c.ask)
-                        str && obj.symbolList.push({
-                          symbolItem: str,
-                          inspectionItem: c.inspectionItem,
+                        str&&obj.symbolList.push({
+                          symbolItem:str,
+                          inspectionItem:c.inspectionItem,
                         })
-                      } else if (type == 1) {
+                      }else if(type==1){
                         // let ask = calBack(c.ask, c.rts)
                         // if (ask && c.state == 1) {
                         //   c.ask = csk
                         // }
                         let arr = this.editTable.filter(b => b.sampleId == item.id)
                         arr.forEach(f => {
-                          if (c.ask.includes(f.symbolItem)) {
-                            let ask = calBack(c.ask, f.symbolItem, f.value)
+                          if(c.ask.includes(f.symbolItem)){
+                            let ask = calBack(c.ask, f.symbolItem,f.value)
                             if (ask) {
                               c.ask = ask
                             }
-                            let tell = this.handleTell(c.tell, f.symbolItem, f.value)
+                            let tell = this.handleTell(c.tell, f.symbolItem,f.value)
                             if (tell) {
                               c.tell = tell
                             }
@@ -1212,25 +1251,25 @@
                     if (c.productList && c.productList.length > 0) {
                       c.productList.forEach(d => {
                         if (d.state == 1) {
-                          if (type == 0) {
+                          if(type==0){
                             let str = calBack(d.ask)
-                            str && obj.symbolList.push({
-                              symbolItem: str,
-                              inspectionItem: d.inspectionItem,
+                            str&&obj.symbolList.push({
+                              symbolItem:str,
+                              inspectionItem:d.inspectionItem,
                             })
-                          } else if (type == 1) {
+                          }else if(type==1){
                             // let ask = calBack(d.ask, d.rts)
                             // if (ask && d.state == 1) {
                             //   d.ask = ask
                             // }
                             let arr = this.editTable.filter(b => b.sampleId == item.id)
                             arr.forEach(f => {
-                              if (d.ask.includes(f.symbolItem)) {
-                                let ask = calBack(d.ask, f.symbolItem, f.value)
+                              if(d.ask.includes(f.symbolItem)){
+                                let ask = calBack(d.ask, f.symbolItem,f.value)
                                 if (ask) {
                                   d.ask = ask
                                 }
-                                let tell = this.handleTell(d.tell, f.symbolItem, f.value)
+                                let tell = this.handleTell(d.tell, f.symbolItem,f.value)
                                 if (tell) {
                                   d.tell = tell
                                 }
@@ -1246,11 +1285,11 @@
             }
           })
         }
-        if (type == 0) {
+        if(type==0){
           editTable.push(obj)
         }
       })
-      if (type == 0) {
+      if(type==0){
         editTable.forEach(a => {
           a.symbolList.forEach(b => {
             let arr = a.symbolList.filter(c => c.symbolItem == b.symbolItem);
@@ -1259,13 +1298,13 @@
         })
         editTable.forEach(a => {
           let mySet = new Set();
-          a.symbolList = a.symbolList.filter(b => {
+          a.symbolList = a.symbolList.filter(b =>{
             let num0 = mySet.size;
             mySet.add(b.symbolItem);
             let num1 = mySet.size;
-            if (num0 != num1) {
+            if(num0!=num1){
               return true;
-            } else {
+            }else{
               return false
             }
           })
@@ -1274,19 +1313,19 @@
         editTable.forEach(a => {
           a.symbolList.forEach(b => {
             let obj = {
-              sampleCode: a.sampleCode,
-              model: a.model,
-              symbolItem: b.symbolItem,
-              sampleId: a.sampleId,
-              value: null,
-              inspectionItemList: b.inspectionItemList,
-              modelNum: a.modelNum,
+              sampleCode:a.sampleCode,
+              model:a.model,
+              symbolItem:b.symbolItem,
+              sampleId:a.sampleId,
+              value:null,
+              inspectionItemList:b.inspectionItemList,
+              modelNum:a.modelNum,
             }
             editTableNew.push(obj)
           })
         })
         return editTableNew
-      } else {
+      }else{
         return sampleList
       }
     },
@@ -1296,7 +1335,7 @@
       } catch (e) {
       }
     },
-    replaceAll(str, find, value) {
+    replaceAll(str,find,value) {
       if (str === undefined) {
         return str
       }
@@ -1374,10 +1413,10 @@
         let num1 = mySet0.size
         mySet0.add(item.sonLaboratory)
         let num2 = mySet0.size
-        if (num2 > num1) {
+        if(num2>num1){
           this.sonLaboratoryList.push({
-            label: item.sonLaboratory,
-            value: item.sonLaboratory,
+            label:item.sonLaboratory,
+            value:item.sonLaboratory,
           })
         }
       })
@@ -1425,11 +1464,11 @@
           } else {
             this.methods = res.data.standardMethodList
           }
-        } catch (e) { }
+        } catch (e) {}
       })
     },
     // 璧嬪�肩涓�鏉¢粯璁ゆ暟鎹�
-    addListInfo(codeLevel, data) {
+    addListInfo (codeLevel, data) {
       this.sampleList = []
       this.productList = []
       this.sample.model = this.addObj.model
@@ -1522,14 +1561,14 @@
       }
       this.bsm2Val3 = this.HaveJson(this.permute(nums))
     },
-    tableRowClassName({ row, rowIndex }) {
+    tableRowClassName({row, rowIndex}) {
       if (row.state === 0) {
         return '';
       }
       return 'warning-row';
     },
     // 淇敼鏍峰搧鍚嶇О
-    changeValue(val, string) {
+    changeValue (val, string) {
       if (this.sampleList.length > 1) {
         // 鏈変袱鏉℃牱鍝佹椂锛岀浜屾潯鏍峰搧淇℃伅鍜岀涓�鏉′繚鎸佷竴鑷�
         this.sampleList.forEach(item => {
@@ -1556,9 +1595,9 @@
       }
       this.getProductLoad = true
       let selectTreeList = this.selectTree.split(" - ")
-      this.addObj.model && (selectTreeList[selectTreeList.length - 1] = this.addObj.model)
+      this.addObj.model&&(selectTreeList[selectTreeList.length - 1] = this.addObj.model)
       selectStandardProductList({
-        model: this.addObj.model ? this.addObj.model : row.model,
+        model: this.addObj.model?this.addObj.model:row.model,
         modelNum: row.modelNum,
         standardMethodListId: val,
         factory: selectTreeList.join(" - "),
@@ -1578,7 +1617,7 @@
           })
         }, 200)
       }).catch(err => {
-        console.log('err-', err)
+        console.log('err-',err)
       })
     },
     // 閫夋嫨鏍峰搧鍨嬪彿鐨勫洖璋�
@@ -1639,7 +1678,7 @@
       }
     },
     // 鍏ㄩ�夌壒娈婂�煎鐞嗘閫夋嫨瑕佹眰鍊肩殑鍥炶皟
-    upBsmAll(item) {
+    upBsmAll (item) {
       const i = this.bsm1DiaList.findIndex(obj => obj.id === item.id)
       if (i > -1) {
         // 鎵惧埌鐩稿簲鐨勬楠岄」璧嬪��
@@ -1670,7 +1709,7 @@
     selectOne(selection, row) {
       this.bsm1DiaList = []
       row.state = row.state == 1 ? 0 : 1
-      if (row.section === null) {
+      if(row.section === null) {
         row.section = ""
       }
       if (row.sectionCopy === undefined && row.section) {
@@ -1684,18 +1723,18 @@
       if (row.tell.includes('[')) {
         this.$set(row, 'tellCopy', row.tell)
       }
-      let arr = this.productList.filter(m => m.state == 1 && row.sectionCopy && row.sectionCopy.includes(m.sectionCopy) && m.ask && m.sectionCopy.indexOf('[') == -1)
-      if (row.bsm === '1' && row.sectionCopy !== '' && row.sectionCopy !== null && row.sectionCopy !== undefined && row.state === 1 && arr.length == 0) {
+      let arr = this.productList.filter(m=>m.state==1&&row.sectionCopy&&row.sectionCopy.includes(m.sectionCopy)&&m.ask&&m.sectionCopy.indexOf('[')==-1)
+      if (row.bsm === '1' && row.sectionCopy !== '' && row.sectionCopy !== null && row.sectionCopy !== undefined && row.state === 1&&arr.length==0) {
         if (row.sectionCopy.indexOf('[') > -1) {
           row.bsmRow = this.HaveJson(row)
         }
         row.bsm1 = true
         this.bsm1DiaList.push(row)
         this.bsm1DiaAll = true
-      } else if (row.bsm === '1' && row.sectionCopy !== '' && row.sectionCopy !== null && row.state === 0 && arr.length == 0) {
+      } else if (row.bsm === '1' && row.sectionCopy !== '' && row.sectionCopy !== null && row.state === 0&&arr.length==0) {
         row.bsm1 = false
-      } else if (arr.length > 0) {
-        try {
+      }else if(arr.length>0){
+        try{
           row.bsmRow = this.HaveJson(row)
           let section = arr[0].section
           let arr0 = JSON.parse(row.section)
@@ -1705,7 +1744,7 @@
           row.section = section
           row.ask = arr1[index]
           row.tell = arr4[index]
-        } catch (e) { }
+        } catch(e) {}
       }
       this.sampleList.map(item => {
         if (this.sampleIds.indexOf(item.id) > -1) {
@@ -1725,7 +1764,7 @@
     handleAll(e) {
       if (e.length > 0) {
         this.productList.map(m => {
-          if (e.find(a => a.id == m.id)) {
+          if(e.find(a=>a.id == m.id)){
             m.state = 1
           }
           return m
@@ -1789,10 +1828,10 @@
         this.$refs.productTable.doLayout()
       })
     },
-    changeProductList0() {
-      this.productList0.forEach(a => {
+    changeProductList0(){
+      this.productList0.forEach(a=>{
         let obj = this.productList.find(m => m.id == a.id)
-        if (obj) {
+        if(obj){
           a.state = obj.state
           a.section = obj.section
           a.ask = obj.ask
@@ -1800,7 +1839,7 @@
           // a.price = obj.price
           a.tell = obj.tell
         }
-        if (a.state == 0 && a.bsmRow) {
+        if(a.state == 0&&a.bsmRow){
           a = this.HaveJson(a.bsmRow)
         }
       })
@@ -1809,7 +1848,7 @@
       const property = column['property'];
       return row[property] === value;
     },
-    goBack() {
+    goBack () {
       if (this.active == 1) {
         this.$router.go(-1)
       } else {
@@ -1830,7 +1869,6 @@
   justify-content: space-between;
   margin-bottom: 10px;
 }
-
 .tab {
   list-style-type: none;
   display: flex;
@@ -1859,4 +1897,7 @@
   background-color: #ffffff;
 
 }
+>>>.warning-row {
+  color: #1890FF;
+}
 </style>
diff --git a/src/views/business/materialOrder/index.vue b/src/views/business/materialOrder/index.vue
index b7c2f45..a263e75 100644
--- a/src/views/business/materialOrder/index.vue
+++ b/src/views/business/materialOrder/index.vue
@@ -275,7 +275,7 @@
       ],
       page: {
         total: 0,
-        size: 10,
+        size: 20,
         current: 1
       },
       tableData1: [],
@@ -356,7 +356,7 @@
       ],
       page1: {
         total: 0,
-        size: 10,
+        size: 20,
         current: 1
       },
       tableData2: [],
@@ -412,7 +412,25 @@
         { label: '闆朵欢鎻忚堪', prop: 'partDesc' },
         { label: '渚涘簲鍟嗗悕绉�', prop: 'supplierName' },
         { label: '涓嶅悎鏍兼弿杩�', prop: 'unqualifiedDesc' },
-        { label: '鍏嶆', prop: 'isExemption' },
+        {
+          dataType: 'tag',
+          label: '鍏嶆',
+          prop: 'isExemption',
+          formatData: (params) => {
+            if (params == 1) {
+              return '鍏嶆'
+            } else {
+              return null
+            }
+          },
+          formatType: (params) => {
+            if (params == 1) {
+              return 'success'
+            } else {
+              return null
+            }
+          }
+        },
         {
           label: '鏍峰搧鍚嶇О',
           prop: 'sampleName',
@@ -515,7 +533,7 @@
       ],
       page2: {
         total: 0,
-        size: 10,
+        size: 20,
         current: 1
       },
       tableData3: [],
@@ -565,7 +583,25 @@
         { label: '闆朵欢鎻忚堪', prop: 'partDesc' },
         { label: '渚涘簲鍟嗗悕绉�', prop: 'supplierName' },
         { label: '涓嶅悎鏍兼弿杩�', prop: 'unqualifiedDesc' },
-        { label: '鍏嶆', prop: 'isExemption' },
+        {
+          dataType: 'tag',
+          label: '鍏嶆',
+          prop: 'isExemption',
+          formatData: (params) => {
+            if (params == 1) {
+              return '鍏嶆'
+            } else {
+              return null
+            }
+          },
+          formatType: (params) => {
+            if (params == 1) {
+              return 'success'
+            } else {
+              return null
+            }
+          }
+        },
         {
           label: '鏍峰搧鍚嶇О',
           prop: 'sampleName',
@@ -621,7 +657,7 @@
       ],
       page3: {
         total: 0,
-        size: 10,
+        size: 20,
         current: 1
       },
       tableData4: [],
@@ -671,7 +707,25 @@
         { label: '闆朵欢鎻忚堪', prop: 'partDesc' },
         { label: '渚涘簲鍟嗗悕绉�', prop: 'supplierName' },
         { label: '涓嶅悎鏍兼弿杩�', prop: 'unqualifiedDesc' },
-        { label: '鍏嶆', prop: 'isExemption' },
+        {
+          dataType: 'tag',
+          label: '鍏嶆',
+          prop: 'isExemption',
+          formatData: (params) => {
+            if (params == 1) {
+              return '鍏嶆'
+            } else {
+              return null
+            }
+          },
+          formatType: (params) => {
+            if (params == 1) {
+              return 'success'
+            } else {
+              return null
+            }
+          }
+        },
         {
           label: '鏍峰搧鍚嶇О',
           prop: 'sampleName',
@@ -744,7 +798,7 @@
       ],
       page4: {
         total: 0,
-        size: 10,
+        size: 20,
         current: 1
       },
       entity: {
diff --git a/src/views/business/productOrder/components/add.vue b/src/views/business/productOrder/components/add.vue
index 350dce2..b41c345 100644
--- a/src/views/business/productOrder/components/add.vue
+++ b/src/views/business/productOrder/components/add.vue
@@ -598,7 +598,7 @@
 } from "@/api/business/rawMaterialOrder";
 import {
   addInsOrder, addInsOrderTemplate, delInsOrderTemplate,
-  getQuarterOnOrder,
+  getQuarterOnOrder, selectInsOrderTemplateById,
   selectOrderManDay,
   updateInsOrder,
   upInsOrder,
@@ -608,6 +608,7 @@
 import {selectsStandardMethodByFLSSM} from "@/api/standard/standardLibrary";
 import limsTable from "@/components/Table/lims-table.vue";
 import {selectCustomPageList} from "@/api/system/customer";
+import {mapGetters} from "vuex";
 
 export default {
   name: 'Add',
@@ -615,6 +616,9 @@
     limsTable,
     cableConfig,
     AuxiliaryWireCore
+  },
+  computed:{
+  ...mapGetters(["nickName"]),
   },
   dicts: ['check_type1', 'urgency_level', 'form_type', 'sample_status_list'],
   data() {
@@ -981,7 +985,7 @@
       },
       // 鑾峰彇鐢ㄦ埛鍒楄〃
       getAuthorizedPerson() {
-        selectUserCondition().then(res => {
+        selectUserCondition({ type: 1 }).then(res => {
           let data = []
           res.data.forEach(a => {
             data.push({
@@ -1126,7 +1130,9 @@
             sampleList.forEach(a => {
               if (a.insProduct.length > 0) {
                 a.insProduct.forEach(c => {
-                  delete c.id
+                  if (this.tabIndex != 4) {
+                    delete c.id
+                  }
                 })
               }
               if (a.endModels) {
@@ -1164,7 +1170,9 @@
           sampleList.forEach(a => {
             if (a.insProduct.length > 0) {
               a.insProduct.forEach(c => {
-                delete c.id
+                if (this.tabIndex != 4) {
+                  delete c.id
+                }
               })
             }
             if (a.endModels) {
@@ -1263,14 +1271,16 @@
         }
       },
       saveMethod(sampleList){
-        console.log('sampleList----', sampleList)
         this.saveLoad = true
         if (this.addObj.quarterItemId) {
           this.addObj.quarterItemId = this.addObj.quarterItemId[1]
         }
         if(this.tabIndex==4&&this.active==2){
+          if (this.addObj.createTime) {
+            delete this.addObj.createTime
+          }
           // 閫�鍥炲悗鎻愪氦
-          updateInsOrder({insOrder: this.addObj, sampleList: sampleList}).then(res => {
+          updateInsOrder({insOrder: this.addObj, sampleProduct: sampleList}).then(res => {
             this.saveLoad = false
             this.$message.success('宸叉彁浜�')
             this.bsm3Dia = false;
@@ -1404,7 +1414,6 @@
         if (node.data.code === '[3]') {
           this.sampleViewEn = val.sampleTypeEn
         } else if (node.data.code === '[4]') {
-          console.log('node.data---', node.data)
           if (node.data.children!==null && node.data.children.length>0) {
             this.sampleViewEn = val.sampleEn
           }
@@ -1648,14 +1657,12 @@
         backtrack([], nums);
         return result;
       },
-      tableRowClassName({
-        row,
-        rowIndex
-      }) {
-        if (row.state === 0) {
+      tableRowClassName({row, rowIndex}) {
+        if (row.state == 1) {
+          return 'warning-row';
+        } else {
           return '';
         }
-        return 'warning-row';
       },
       selectInsOrderTemplate() {
         selectInsOrderTemplate({company: this.addObj.company}).then(res => {
@@ -1708,12 +1715,13 @@
         selectInsOrderTemplateById({id: e}).then(res => {
           let obj = JSON.parse(res.data)
           //鍒跺崟浜鸿缃负褰撳墠鐧诲綍鐢ㄦ埛
-          let user = JSON.parse(localStorage.getItem('user'))
+          let user = this.nickName
           obj.addObj.custom = user.name
           obj.addObj.userId = user.userId
           this.addObj = obj.addObj;
           this.sampleList = obj.sampleList;
           this.selectTree = obj.selectTree
+          this.rowClick(this.sampleList[0])
         })
       },
       delSampleAndProduct() {
@@ -2214,7 +2222,11 @@
 </script>
 
 <style scoped>
-.el-table .warning-row .cell {
-  color: #3A7BFA;
+>>>.warning-row {
+  color: #1890FF;
+}
+.node_i {
+  color: orange;
+  font-size: 18px;
 }
 </style>
diff --git a/src/views/business/productOrder/components/auxiliaryWireCore.vue b/src/views/business/productOrder/components/auxiliaryWireCore.vue
index 7545392..5e7898e 100644
--- a/src/views/business/productOrder/components/auxiliaryWireCore.vue
+++ b/src/views/business/productOrder/components/auxiliaryWireCore.vue
@@ -250,10 +250,7 @@
         this.$refs.productTable.doLayout()
       })
     },
-    tableRowClassName({
-                        row,
-                        rowIndex
-                      }) {
+    tableRowClassName({row, rowIndex}) {
       if (row.state === 0) {
         return '';
       }
@@ -397,7 +394,7 @@
   font-size: 12px;
 }
 
-.ins_order_config .el-table .warning-row .cell {
-  color: #3A7BFA;
+>>>.warning-row {
+  color: #1890FF;
 }
 </style>
diff --git a/src/views/business/productOrder/components/cable-config.vue b/src/views/business/productOrder/components/cable-config.vue
index e0f5de1..46c3e9e 100644
--- a/src/views/business/productOrder/components/cable-config.vue
+++ b/src/views/business/productOrder/components/cable-config.vue
@@ -384,7 +384,7 @@
   display: flex;
   justify-content: space-between;
 }
-.el-table .warning-row .cell {
-  color: #3A7BFA;
+>>>.warning-row {
+  color: #1890FF;
 }
 </style>
diff --git a/src/views/business/productOrder/components/printDialog.vue b/src/views/business/productOrder/components/printDialog.vue
index 589d674..77a921f 100644
--- a/src/views/business/productOrder/components/printDialog.vue
+++ b/src/views/business/productOrder/components/printDialog.vue
@@ -163,7 +163,6 @@
         }).then(res => {
           if (res.code === 200 && res.data.length > 0) {
             res.data.forEach(item => {
-              console.log('item---', item)
               item.sendTime = item.sendTime && item.sendTime.substring(0, 10)
               item.sampleNumber = item.qtyArrived + item.buyUnitMeas
               this.$set(item, 'barcode', item.entrustCode)
diff --git a/src/views/business/productOrder/index.vue b/src/views/business/productOrder/index.vue
index 18745a7..8b8acdd 100644
--- a/src/views/business/productOrder/index.vue
+++ b/src/views/business/productOrder/index.vue
@@ -529,7 +529,7 @@
       ],
       page: {
         total: 0,
-        size: 10,
+        size: 20,
         current: 1
       },
       state: 0,// 0:鍙拌处椤碉紝1锛氭楠岄〉闈�,2妫�楠岄〉闈�(澶嶆牳)锛岄粯璁や负0,3鏁版嵁鏌ョ湅
@@ -558,7 +558,7 @@
       tableDataLook: [],
       tableDataLookPage: {
         total: 0,
-        size: 10,
+        size: 20,
         current: 1
       },
       tableDataLookColumn: [
@@ -649,7 +649,7 @@
       ],
       pageFile: {
         total: 0,
-        size: 10,
+        size: 20,
         current: 1
       },
       formData: {},
@@ -686,7 +686,7 @@
       ],
       pageDelete: {
         total: 0,
-        size: 10,
+        size: 20,
         current: 1
       },
       deleteDialogVisible: false,
@@ -946,7 +946,8 @@
         path: "/productOrder/add", query: {
           examine: 1,
           active: 2,
-          currentId: row.id
+          currentId: row.id,
+          tabIndex: this.tabIndex,
         }
       });
     },
@@ -976,7 +977,7 @@
     closeDia () {
       this.tableDataLookPage = {
         total: 0,
-        size: 10,
+        size: 20,
         current: 1
       }
       this.dataDialogVisible = false
@@ -1039,7 +1040,7 @@
     },
     getDeleteList() {
       this.tableLoadingDelete = true
-      selectNoProducts({ orderId: this.orderId, revocationInsProductIds: this.revocationInsProductIds }).then(res => {
+      selectNoProducts({ orderId: this.orderId, revocationInsProductIds: this.revocationInsProductIds, ...this.pageDelete }).then(res => {
         this.tableLoadingDelete = false
         this.componentDataDelete = res.data.records
         this.pageDelete.total = res.data.total
diff --git a/src/views/business/productSamplingInfo/components/addQuarterItem.vue b/src/views/business/productSamplingInfo/components/addQuarterItem.vue
index dbfbce5..57e3908 100644
--- a/src/views/business/productSamplingInfo/components/addQuarterItem.vue
+++ b/src/views/business/productSamplingInfo/components/addQuarterItem.vue
@@ -273,7 +273,7 @@
       }
     },
     getUserList(){
-      selectUserCondition({ type: 0 }).then((res) => {
+      selectUserCondition().then((res) => {
         this.userList = res.data;
       })
     },
diff --git a/src/views/business/productSamplingInfo/index.vue b/src/views/business/productSamplingInfo/index.vue
index 3b9720b..82c9d40 100644
--- a/src/views/business/productSamplingInfo/index.vue
+++ b/src/views/business/productSamplingInfo/index.vue
@@ -316,7 +316,7 @@
       ],
       page: {
         total: 0,
-        size: 10,
+        size: 20,
         current: 1
       },
       tableData1: [],
@@ -362,7 +362,7 @@
       ],
       page1: {
         total: 0,
-        size: 10,
+        size: 20,
         current: 1
       },
       yearSampleDia: false, // 骞村害鎶芥牱
@@ -610,7 +610,7 @@
       return 'height: calc(100% - ' + '44' + 'px)'
     },
     getUserList() {
-      selectUserCondition({ type: 0 }).then((res) => {
+      selectUserCondition().then((res) => {
         this.userList = res.data;
       })
     },
diff --git a/src/views/business/reportPreparation/index.vue b/src/views/business/reportPreparation/index.vue
index 7e161aa..61584a6 100644
--- a/src/views/business/reportPreparation/index.vue
+++ b/src/views/business/reportPreparation/index.vue
@@ -184,8 +184,8 @@
           <el-button size="small" style="height: 38px" type="primary">闄勪欢涓婁紶</el-button>
         </el-upload>
       </div>
-      <lims-table :tableData="tableDataFile" :column="columnFile" height="500px" key="tableDataFile"
-        :tableLoading="tableLoadingFile"></lims-table>
+      <lims-table :tableData="tableDataFile" :column="columnFile" height="500px"
+        key="tableDataFile" :tableLoading="tableLoadingFile"></lims-table>
     </el-dialog>
   </div>
 </template>
@@ -205,7 +205,7 @@
 import { mapGetters } from "vuex";
 import { selectUserCondition } from "@/api/business/inspectionTask";
 import limsTable from "@/components/Table/lims-table.vue";
-import { delFile, downFile, getFileList } from "@/api/business/rawMaterialOrder";
+import {delFile, downFile, getFileList} from "@/api/business/rawMaterialOrder";
 export default {
   name: 'ReportPreparation',
   components: { limsTable, onlyoffice },
@@ -815,7 +815,7 @@
     },
     // 鑾峰彇浜哄憳鍒楄〃
     getAuthorizedPerson() {
-      selectUserCondition({ type: 0 }).then((res) => {
+      selectUserCondition({ type: 1 }).then((res) => {
         let data = [];
         res.data.forEach((a) => {
           data.push({
diff --git a/src/views/business/unpass/components/PurchaseVerification.vue b/src/views/business/unpass/components/PurchaseVerification.vue
index 6594480..ae4619d 100644
--- a/src/views/business/unpass/components/PurchaseVerification.vue
+++ b/src/views/business/unpass/components/PurchaseVerification.vue
@@ -246,7 +246,6 @@
   // 鏂规硶闆嗗悎
   methods: {
     async getInsOrder(operationType, item) {
-      console.log('operationType----', operationType)
       this.operationType = operationType
       this.info = item
       // 鏌ヨ宸叉彁浜ょ殑鏁版嵁
diff --git a/src/views/business/unpass/index.vue b/src/views/business/unpass/index.vue
index b3a7250..e52f63b 100644
--- a/src/views/business/unpass/index.vue
+++ b/src/views/business/unpass/index.vue
@@ -95,7 +95,7 @@
       ],
       page: {
         total: 0,
-        size: 10,
+        size: 20,
         current: 1
       },
     }
diff --git a/src/views/performance/manHour/workTimeConfig.vue b/src/views/performance/manHour/workTimeConfig.vue
index 0ec72f6..87be98a 100644
--- a/src/views/performance/manHour/workTimeConfig.vue
+++ b/src/views/performance/manHour/workTimeConfig.vue
@@ -277,8 +277,7 @@
       })
         .then(() => {
           deleteAuxiliaryWorkingHours({ id: row.id }).then((res) => {
-            console.log('res', res)
-            if (res.code == 200) {
+            if (res.code == 200){
               this.$message.success("鍒犻櫎鎴愬姛");
               this.refresh();
             }
diff --git a/src/views/thirdpartylogin.vue b/src/views/thirdpartylogin.vue
index 692ce99..1fe70ea 100644
--- a/src/views/thirdpartylogin.vue
+++ b/src/views/thirdpartylogin.vue
@@ -5,25 +5,18 @@
 export default {
   data() {
     return {
-      SSO: window.location.hash
-    }
+    };
   },
   created() {
-    this.initLogin()
-    console.log(this.SSO)
+    this.initLogin();
   },
   methods: {
     initLogin() {
-      const code = this.SSO.split('&')[0].split('=')[1]
-      console.log(code)
-
-      if (code) {
-        this.$store.dispatch('LoginBySSO', code).then(() => {
-          this.$router.push({ path: '/' })
-        })
-      }
+      this.$store.dispatch('LoginBySSO', {code: this.$route.query.code}).then(() => {
+        this.$router.push({path: '/'});
+      });
     }
   }
-}
+};
 </script>
-<style scoped></style>
+<style scoped></style>
\ No newline at end of file
diff --git a/src/DataWorker.worker.js b/src/workers/DataWorker.worker.js
similarity index 100%
rename from src/DataWorker.worker.js
rename to src/workers/DataWorker.worker.js
diff --git a/src/InspectionWorker.worker.js b/src/workers/InspectionWorker.worker.js
similarity index 68%
rename from src/InspectionWorker.worker.js
rename to src/workers/InspectionWorker.worker.js
index 59ac692..5736162 100644
--- a/src/InspectionWorker.worker.js
+++ b/src/workers/InspectionWorker.worker.js
@@ -1,4 +1,6 @@
 // 澶氱嚎绋嬮噷闈㈤渶瑕佷繚瀛樼殑鏁版嵁
+import Big from "big.js";
+
 let code = "";
 // 琛ㄦ牸鏁版嵁锛堟覆鏌擄級
 let tableList = null;
@@ -1439,913 +1441,3 @@
     console.log("error", error);
   }
 }
-
-/*
- *  big.js v5.2.2
- *  A small, fast, easy-to-use library for arbitrary-precision decimal arithmetic.
- *  Copyright (c) 2018 Michael Mclaughlin <M8ch88l@gmail.com>
- *  https://github.com/MikeMcl/big.js/LICENCE
- */
-(function (GLOBAL) {
-  "use strict";
-  var Big,
-    /************************************** EDITABLE DEFAULTS *****************************************/
-
-    // The default values below must be integers within the stated ranges.
-
-    /*
-     * The maximum number of decimal places (DP) of the results of operations involving division:
-     * div and sqrt, and pow with negative exponents.
-     */
-    DP = 20, // 0 to MAX_DP
-    /*
-     * The rounding mode (RM) used when rounding to the above decimal places.
-     *
-     *  0  Towards zero (i.e. truncate, no rounding).       (ROUND_DOWN)
-     *  1  To nearest neighbour. If equidistant, round up.  (ROUND_HALF_UP)
-     *  2  To nearest neighbour. If equidistant, to even.   (ROUND_HALF_EVEN)
-     *  3  Away from zero.                                  (ROUND_UP)
-     */
-    RM = 1, // 0, 1, 2 or 3
-    // The maximum value of DP and Big.DP.
-    MAX_DP = 1e6, // 0 to 1000000
-    // The maximum magnitude of the exponent argument to the pow method.
-    MAX_POWER = 1e6, // 1 to 1000000
-    /*
-     * The negative exponent (NE) at and beneath which toString returns exponential notation.
-     * (JavaScript numbers: -7)
-     * -1000000 is the minimum recommended exponent value of a Big.
-     */
-    NE = -7, // 0 to -1000000
-    /*
-     * The positive exponent (PE) at and above which toString returns exponential notation.
-     * (JavaScript numbers: 21)
-     * 1000000 is the maximum recommended exponent value of a Big.
-     * (This limit is not enforced or checked.)
-     */
-    PE = 21, // 0 to 1000000
-    /**************************************************************************************************/
-
-    // Error messages.
-    NAME = "[big.js] ",
-    INVALID = NAME + "Invalid ",
-    INVALID_DP = INVALID + "decimal places",
-    INVALID_RM = INVALID + "rounding mode",
-    DIV_BY_ZERO = NAME + "Division by zero",
-    // The shared prototype object.
-    P = {},
-    UNDEFINED = void 0,
-    NUMERIC = /^-?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i;
-
-  /*
-   * Create and return a Big constructor.
-   *
-   */
-  function _Big_() {
-    /*
-     * The Big constructor and exported function.
-     * Create and return a new instance of a Big number object.
-     *
-     * n {number|string|Big} A numeric value.
-     */
-    function Big(n) {
-      var x = this;
-
-      // Enable constructor usage without new.
-      if (!(x instanceof Big)) return n === UNDEFINED ? _Big_() : new Big(n);
-
-      // Duplicate.
-      if (n instanceof Big) {
-        x.s = n.s;
-        x.e = n.e;
-        x.c = n.c.slice();
-      } else {
-        parse(x, n);
-      }
-
-      /*
-       * Retain a reference to this Big constructor, and shadow Big.prototype.constructor which
-       * points to Object.
-       */
-      x.constructor = Big;
-    }
-
-    Big.prototype = P;
-    Big.DP = DP;
-    Big.RM = RM;
-    Big.NE = NE;
-    Big.PE = PE;
-    Big.version = "5.2.2";
-
-    return Big;
-  }
-
-  /*
-   * Parse the number or string value passed to a Big constructor.
-   *
-   * x {Big} A Big number instance.
-   * n {number|string} A numeric value.
-   */
-  function parse(x, n) {
-    var e, i, nl;
-
-    // Minus zero?
-    if (n === 0 && 1 / n < 0) n = "-0";
-    else if (!NUMERIC.test((n += ""))) throw Error(INVALID + "number");
-
-    // Determine sign.
-    x.s = n.charAt(0) == "-" ? ((n = n.slice(1)), -1) : 1;
-
-    // Decimal point?
-    if ((e = n.indexOf(".")) > -1) n = n.replace(".", "");
-
-    // Exponential form?
-    if ((i = n.search(/e/i)) > 0) {
-      // Determine exponent.
-      if (e < 0) e = i;
-      e += +n.slice(i + 1);
-      n = n.substring(0, i);
-    } else if (e < 0) {
-      // Integer.
-      e = n.length;
-    }
-
-    nl = n.length;
-
-    // Determine leading zeros.
-    for (i = 0; i < nl && n.charAt(i) == "0"; ) ++i;
-
-    if (i == nl) {
-      // Zero.
-      x.c = [(x.e = 0)];
-    } else {
-      // Determine trailing zeros.
-      for (; nl > 0 && n.charAt(--nl) == "0"; );
-      x.e = e - i - 1;
-      x.c = [];
-
-      // Convert string to array of digits without leading/trailing zeros.
-      for (e = 0; i <= nl; ) x.c[e++] = +n.charAt(i++);
-    }
-
-    return x;
-  }
-
-  /*
-   * Round Big x to a maximum of dp decimal places using rounding mode rm.
-   * Called by stringify, P.div, P.round and P.sqrt.
-   *
-   * x {Big} The Big to round.
-   * dp {number} Integer, 0 to MAX_DP inclusive.
-   * rm {number} 0, 1, 2 or 3 (DOWN, HALF_UP, HALF_EVEN, UP)
-   * [more] {boolean} Whether the result of division was truncated.
-   */
-  function round(x, dp, rm, more) {
-    var xc = x.c,
-      i = x.e + dp + 1;
-
-    if (i < xc.length) {
-      if (rm === 1) {
-        // xc[i] is the digit after the digit that may be rounded up.
-        more = xc[i] >= 5;
-      } else if (rm === 2) {
-        more =
-          xc[i] > 5 ||
-          (xc[i] == 5 &&
-            (more || i < 0 || xc[i + 1] !== UNDEFINED || xc[i - 1] & 1));
-      } else if (rm === 3) {
-        more = more || !!xc[0];
-      } else {
-        more = false;
-        if (rm !== 0) throw Error(INVALID_RM);
-      }
-
-      if (i < 1) {
-        xc.length = 1;
-
-        if (more) {
-          // 1, 0.1, 0.01, 0.001, 0.0001 etc.
-          x.e = -dp;
-          xc[0] = 1;
-        } else {
-          // Zero.
-          xc[0] = x.e = 0;
-        }
-      } else {
-        // Remove any digits after the required decimal places.
-        xc.length = i--;
-
-        // Round up?
-        if (more) {
-          // Rounding up may mean the previous digit has to be rounded up.
-          for (; ++xc[i] > 9; ) {
-            xc[i] = 0;
-            if (!i--) {
-              ++x.e;
-              xc.unshift(1);
-            }
-          }
-        }
-
-        // Remove trailing zeros.
-        for (i = xc.length; !xc[--i]; ) xc.pop();
-      }
-    } else if (rm < 0 || rm > 3 || rm !== ~~rm) {
-      throw Error(INVALID_RM);
-    }
-
-    return x;
-  }
-
-  /*
-   * Return a string representing the value of Big x in normal or exponential notation.
-   * Handles P.toExponential, P.toFixed, P.toJSON, P.toPrecision, P.toString and P.valueOf.
-   *
-   * x {Big}
-   * id? {number} Caller id.
-   *         1 toExponential
-   *         2 toFixed
-   *         3 toPrecision
-   *         4 valueOf
-   * n? {number|undefined} Caller's argument.
-   * k? {number|undefined}
-   */
-  function stringify(x, id, n, k) {
-    var e,
-      s,
-      Big = x.constructor,
-      z = !x.c[0];
-
-    if (n !== UNDEFINED) {
-      if (n !== ~~n || n < (id == 3) || n > MAX_DP) {
-        throw Error(id == 3 ? INVALID + "precision" : INVALID_DP);
-      }
-
-      x = new Big(x);
-
-      // The index of the digit that may be rounded up.
-      n = k - x.e;
-
-      // Round?
-      if (x.c.length > ++k) round(x, n, Big.RM);
-
-      // toFixed: recalculate k as x.e may have changed if value rounded up.
-      if (id == 2) k = x.e + n + 1;
-
-      // Append zeros?
-      for (; x.c.length < k; ) x.c.push(0);
-    }
-
-    e = x.e;
-    s = x.c.join("");
-    n = s.length;
-
-    // Exponential notation?
-    if (
-      id != 2 &&
-      (id == 1 || (id == 3 && k <= e) || e <= Big.NE || e >= Big.PE)
-    ) {
-      s =
-        s.charAt(0) +
-        (n > 1 ? "." + s.slice(1) : "") +
-        (e < 0 ? "e" : "e+") +
-        e;
-
-      // Normal notation.
-    } else if (e < 0) {
-      for (; ++e; ) s = "0" + s;
-      s = "0." + s;
-    } else if (e > 0) {
-      if (++e > n) for (e -= n; e--; ) s += "0";
-      else if (e < n) s = s.slice(0, e) + "." + s.slice(e);
-    } else if (n > 1) {
-      s = s.charAt(0) + "." + s.slice(1);
-    }
-
-    return x.s < 0 && (!z || id == 4) ? "-" + s : s;
-  }
-
-  // Prototype/instance methods
-
-  /*
-   * Return a new Big whose value is the absolute value of this Big.
-   */
-  P.abs = function () {
-    var x = new this.constructor(this);
-    x.s = 1;
-    return x;
-  };
-
-  /*
-   * Return 1 if the value of this Big is greater than the value of Big y,
-   *       -1 if the value of this Big is less than the value of Big y, or
-   *        0 if they have the same value.
-   */
-  P.cmp = function (y) {
-    var isneg,
-      x = this,
-      xc = x.c,
-      yc = (y = new x.constructor(y)).c,
-      i = x.s,
-      j = y.s,
-      k = x.e,
-      l = y.e;
-
-    // Either zero?
-    if (!xc[0] || !yc[0]) return !xc[0] ? (!yc[0] ? 0 : -j) : i;
-
-    // Signs differ?
-    if (i != j) return i;
-
-    isneg = i < 0;
-
-    // Compare exponents.
-    if (k != l) return (k > l) ^ isneg ? 1 : -1;
-
-    j = (k = xc.length) < (l = yc.length) ? k : l;
-
-    // Compare digit by digit.
-    for (i = -1; ++i < j; ) {
-      if (xc[i] != yc[i]) return (xc[i] > yc[i]) ^ isneg ? 1 : -1;
-    }
-
-    // Compare lengths.
-    return k == l ? 0 : (k > l) ^ isneg ? 1 : -1;
-  };
-
-  /*
-   * Return a new Big whose value is the value of this Big divided by the value of Big y, rounded,
-   * if necessary, to a maximum of Big.DP decimal places using rounding mode Big.RM.
-   */
-  P.div = function (y) {
-    var x = this,
-      Big = x.constructor,
-      a = x.c, // dividend
-      b = (y = new Big(y)).c, // divisor
-      k = x.s == y.s ? 1 : -1,
-      dp = Big.DP;
-
-    if (dp !== ~~dp || dp < 0 || dp > MAX_DP) throw Error(INVALID_DP);
-
-    // Divisor is zero?
-    if (!b[0]) throw Error(DIV_BY_ZERO);
-
-    // Dividend is 0? Return +-0.
-    if (!a[0]) return new Big(k * 0);
-
-    var bl,
-      bt,
-      n,
-      cmp,
-      ri,
-      bz = b.slice(),
-      ai = (bl = b.length),
-      al = a.length,
-      r = a.slice(0, bl), // remainder
-      rl = r.length,
-      q = y, // quotient
-      qc = (q.c = []),
-      qi = 0,
-      d = dp + (q.e = x.e - y.e) + 1; // number of digits of the result
-
-    q.s = k;
-    k = d < 0 ? 0 : d;
-
-    // Create version of divisor with leading zero.
-    bz.unshift(0);
-
-    // CommunicateAdd zeros to make remainder as long as divisor.
-    for (; rl++ < bl; ) r.push(0);
-
-    do {
-      // n is how many times the divisor goes into current remainder.
-      for (n = 0; n < 10; n++) {
-        // Compare divisor and remainder.
-        if (bl != (rl = r.length)) {
-          cmp = bl > rl ? 1 : -1;
-        } else {
-          for (ri = -1, cmp = 0; ++ri < bl; ) {
-            if (b[ri] != r[ri]) {
-              cmp = b[ri] > r[ri] ? 1 : -1;
-              break;
-            }
-          }
-        }
-
-        // If divisor < remainder, subtract divisor from remainder.
-        if (cmp < 0) {
-          // Remainder can't be more than 1 digit longer than divisor.
-          // Equalise lengths using divisor with extra leading zero?
-          for (bt = rl == bl ? b : bz; rl; ) {
-            if (r[--rl] < bt[rl]) {
-              ri = rl;
-              for (; ri && !r[--ri]; ) r[ri] = 9;
-              --r[ri];
-              r[rl] += 10;
-            }
-            r[rl] -= bt[rl];
-          }
-
-          for (; !r[0]; ) r.shift();
-        } else {
-          break;
-        }
-      }
-
-      // CommunicateAdd the digit n to the result array.
-      qc[qi++] = cmp ? n : ++n;
-
-      // Update the remainder.
-      if (r[0] && cmp) r[rl] = a[ai] || 0;
-      else r = [a[ai]];
-    } while ((ai++ < al || r[0] !== UNDEFINED) && k--);
-
-    // Leading zero? Do not remove if result is simply zero (qi == 1).
-    if (!qc[0] && qi != 1) {
-      // There can't be more than one zero.
-      qc.shift();
-      q.e--;
-    }
-
-    // Round?
-    if (qi > d) round(q, dp, Big.RM, r[0] !== UNDEFINED);
-
-    return q;
-  };
-
-  /*
-   * Return true if the value of this Big is equal to the value of Big y, otherwise return false.
-   */
-  P.eq = function (y) {
-    return !this.cmp(y);
-  };
-
-  /*
-   * Return true if the value of this Big is greater than the value of Big y, otherwise return
-   * false.
-   */
-  P.gt = function (y) {
-    return this.cmp(y) > 0;
-  };
-
-  /*
-   * Return true if the value of this Big is greater than or equal to the value of Big y, otherwise
-   * return false.
-   */
-  P.gte = function (y) {
-    return this.cmp(y) > -1;
-  };
-
-  /*
-   * Return true if the value of this Big is less than the value of Big y, otherwise return false.
-   */
-  P.lt = function (y) {
-    return this.cmp(y) < 0;
-  };
-
-  /*
-   * Return true if the value of this Big is less than or equal to the value of Big y, otherwise
-   * return false.
-   */
-  P.lte = function (y) {
-    return this.cmp(y) < 1;
-  };
-
-  /*
-   * Return a new Big whose value is the value of this Big minus the value of Big y.
-   */
-  P.minus = P.sub = function (y) {
-    var i,
-      j,
-      t,
-      xlty,
-      x = this,
-      Big = x.constructor,
-      a = x.s,
-      b = (y = new Big(y)).s;
-
-    // Signs differ?
-    if (a != b) {
-      y.s = -b;
-      return x.plus(y);
-    }
-
-    var xc = x.c.slice(),
-      xe = x.e,
-      yc = y.c,
-      ye = y.e;
-
-    // Either zero?
-    if (!xc[0] || !yc[0]) {
-      // y is non-zero? x is non-zero? Or both are zero.
-      return yc[0] ? ((y.s = -b), y) : new Big(xc[0] ? x : 0);
-    }
-
-    // Determine which is the bigger number. Prepend zeros to equalise exponents.
-    if ((a = xe - ye)) {
-      if ((xlty = a < 0)) {
-        a = -a;
-        t = xc;
-      } else {
-        ye = xe;
-        t = yc;
-      }
-
-      t.reverse();
-      for (b = a; b--; ) t.push(0);
-      t.reverse();
-    } else {
-      // Exponents equal. Check digit by digit.
-      j = ((xlty = xc.length < yc.length) ? xc : yc).length;
-
-      for (a = b = 0; b < j; b++) {
-        if (xc[b] != yc[b]) {
-          xlty = xc[b] < yc[b];
-          break;
-        }
-      }
-    }
-
-    // x < y? Point xc to the array of the bigger number.
-    if (xlty) {
-      t = xc;
-      xc = yc;
-      yc = t;
-      y.s = -y.s;
-    }
-
-    /*
-     * Append zeros to xc if shorter. No need to add zeros to yc if shorter as subtraction only
-     * needs to start at yc.length.
-     */
-    if ((b = (j = yc.length) - (i = xc.length)) > 0) for (; b--; ) xc[i++] = 0;
-
-    // Subtract yc from xc.
-    for (b = i; j > a; ) {
-      if (xc[--j] < yc[j]) {
-        for (i = j; i && !xc[--i]; ) xc[i] = 9;
-        --xc[i];
-        xc[j] += 10;
-      }
-
-      xc[j] -= yc[j];
-    }
-
-    // Remove trailing zeros.
-    for (; xc[--b] === 0; ) xc.pop();
-
-    // Remove leading zeros and adjust exponent accordingly.
-    for (; xc[0] === 0; ) {
-      xc.shift();
-      --ye;
-    }
-
-    if (!xc[0]) {
-      // n - n = +0
-      y.s = 1;
-
-      // Result must be zero.
-      xc = [(ye = 0)];
-    }
-
-    y.c = xc;
-    y.e = ye;
-
-    return y;
-  };
-
-  /*
-   * Return a new Big whose value is the value of this Big modulo the value of Big y.
-   */
-  P.mod = function (y) {
-    var ygtx,
-      x = this,
-      Big = x.constructor,
-      a = x.s,
-      b = (y = new Big(y)).s;
-
-    if (!y.c[0]) throw Error(DIV_BY_ZERO);
-
-    x.s = y.s = 1;
-    ygtx = y.cmp(x) == 1;
-    x.s = a;
-    y.s = b;
-
-    if (ygtx) return new Big(x);
-
-    a = Big.DP;
-    b = Big.RM;
-    Big.DP = Big.RM = 0;
-    x = x.div(y);
-    Big.DP = a;
-    Big.RM = b;
-
-    return this.minus(x.times(y));
-  };
-
-  /*
-   * Return a new Big whose value is the value of this Big plus the value of Big y.
-   */
-  P.plus = P.add = function (y) {
-    var t,
-      x = this,
-      Big = x.constructor,
-      a = x.s,
-      b = (y = new Big(y)).s;
-
-    // Signs differ?
-    if (a != b) {
-      y.s = -b;
-      return x.minus(y);
-    }
-
-    var xe = x.e,
-      xc = x.c,
-      ye = y.e,
-      yc = y.c;
-
-    // Either zero? y is non-zero? x is non-zero? Or both are zero.
-    if (!xc[0] || !yc[0]) return yc[0] ? y : new Big(xc[0] ? x : a * 0);
-
-    xc = xc.slice();
-
-    // Prepend zeros to equalise exponents.
-    // Note: reverse faster than unshifts.
-    if ((a = xe - ye)) {
-      if (a > 0) {
-        ye = xe;
-        t = yc;
-      } else {
-        a = -a;
-        t = xc;
-      }
-
-      t.reverse();
-      for (; a--; ) t.push(0);
-      t.reverse();
-    }
-
-    // Point xc to the longer array.
-    if (xc.length - yc.length < 0) {
-      t = yc;
-      yc = xc;
-      xc = t;
-    }
-
-    a = yc.length;
-
-    // Only start adding at yc.length - 1 as the further digits of xc can be left as they are.
-    for (b = 0; a; xc[a] %= 10) b = ((xc[--a] = xc[a] + yc[a] + b) / 10) | 0;
-
-    // No need to check for zero, as +x + +y != 0 && -x + -y != 0
-
-    if (b) {
-      xc.unshift(b);
-      ++ye;
-    }
-
-    // Remove trailing zeros.
-    for (a = xc.length; xc[--a] === 0; ) xc.pop();
-
-    y.c = xc;
-    y.e = ye;
-
-    return y;
-  };
-
-  /*
-   * Return a Big whose value is the value of this Big raised to the power n.
-   * If n is negative, round to a maximum of Big.DP decimal places using rounding
-   * mode Big.RM.
-   *
-   * n {number} Integer, -MAX_POWER to MAX_POWER inclusive.
-   */
-  P.pow = function (n) {
-    var x = this,
-      one = new x.constructor(1),
-      y = one,
-      isneg = n < 0;
-
-    if (n !== ~~n || n < -MAX_POWER || n > MAX_POWER)
-      throw Error(INVALID + "exponent");
-    if (isneg) n = -n;
-
-    for (;;) {
-      if (n & 1) y = y.times(x);
-      n >>= 1;
-      if (!n) break;
-      x = x.times(x);
-    }
-
-    return isneg ? one.div(y) : y;
-  };
-
-  /*
-   * Return a new Big whose value is the value of this Big rounded using rounding mode rm
-   * to a maximum of dp decimal places, or, if dp is negative, to an integer which is a
-   * multiple of 10**-dp.
-   * If dp is not specified, round to 0 decimal places.
-   * If rm is not specified, use Big.RM.
-   *
-   * dp? {number} Integer, -MAX_DP to MAX_DP inclusive.
-   * rm? 0, 1, 2 or 3 (ROUND_DOWN, ROUND_HALF_UP, ROUND_HALF_EVEN, ROUND_UP)
-   */
-  P.round = function (dp, rm) {
-    var Big = this.constructor;
-    if (dp === UNDEFINED) dp = 0;
-    else if (dp !== ~~dp || dp < -MAX_DP || dp > MAX_DP)
-      throw Error(INVALID_DP);
-    return round(new Big(this), dp, rm === UNDEFINED ? Big.RM : rm);
-  };
-
-  /*
-   * Return a new Big whose value is the square root of the value of this Big, rounded, if
-   * necessary, to a maximum of Big.DP decimal places using rounding mode Big.RM.
-   */
-  P.sqrt = function () {
-    var r,
-      c,
-      t,
-      x = this,
-      Big = x.constructor,
-      s = x.s,
-      e = x.e,
-      half = new Big(0.5);
-
-    // Zero?
-    if (!x.c[0]) return new Big(x);
-
-    // Negative?
-    if (s < 0) throw Error(NAME + "No square root");
-
-    // Estimate.
-    s = Math.sqrt(x + "");
-
-    // Math.sqrt underflow/overflow?
-    // Re-estimate: pass x coefficient to Math.sqrt as integer, then adjust the result exponent.
-    if (s === 0 || s === 1 / 0) {
-      c = x.c.join("");
-      if (!((c.length + e) & 1)) c += "0";
-      s = Math.sqrt(c);
-      e = (((e + 1) / 2) | 0) - (e < 0 || e & 1);
-      r = new Big(
-        (s == 1 / 0
-          ? "1e"
-          : (s = s.toExponential()).slice(0, s.indexOf("e") + 1)) + e
-      );
-    } else {
-      r = new Big(s);
-    }
-
-    e = r.e + (Big.DP += 4);
-
-    // Newton-Raphson iteration.
-    do {
-      t = r;
-      r = half.times(t.plus(x.div(t)));
-    } while (t.c.slice(0, e).join("") !== r.c.slice(0, e).join(""));
-
-    return round(r, (Big.DP -= 4), Big.RM);
-  };
-
-  /*
-   * Return a new Big whose value is the value of this Big times the value of Big y.
-   */
-  P.times = P.mul = function (y) {
-    var c,
-      x = this,
-      Big = x.constructor,
-      xc = x.c,
-      yc = (y = new Big(y)).c,
-      a = xc.length,
-      b = yc.length,
-      i = x.e,
-      j = y.e;
-
-    // Determine sign of result.
-    y.s = x.s == y.s ? 1 : -1;
-
-    // Return signed 0 if either 0.
-    if (!xc[0] || !yc[0]) return new Big(y.s * 0);
-
-    // Initialise exponent of result as x.e + y.e.
-    y.e = i + j;
-
-    // If array xc has fewer digits than yc, swap xc and yc, and lengths.
-    if (a < b) {
-      c = xc;
-      xc = yc;
-      yc = c;
-      j = a;
-      a = b;
-      b = j;
-    }
-
-    // Initialise coefficient array of result with zeros.
-    for (c = new Array((j = a + b)); j--; ) c[j] = 0;
-
-    // Multiply.
-
-    // i is initially xc.length.
-    for (i = b; i--; ) {
-      b = 0;
-
-      // a is yc.length.
-      for (j = a + i; j > i; ) {
-        // Current sum of products at this digit position, plus carry.
-        b = c[j] + yc[i] * xc[j - i - 1] + b;
-        c[j--] = b % 10;
-
-        // carry
-        b = (b / 10) | 0;
-      }
-
-      c[j] = (c[j] + b) % 10;
-    }
-
-    // Increment result exponent if there is a final carry, otherwise remove leading zero.
-    if (b) ++y.e;
-    else c.shift();
-
-    // Remove trailing zeros.
-    for (i = c.length; !c[--i]; ) c.pop();
-    y.c = c;
-
-    return y;
-  };
-
-  /*
-   * Return a string representing the value of this Big in exponential notation to dp fixed decimal
-   * places and rounded using Big.RM.
-   *
-   * dp? {number} Integer, 0 to MAX_DP inclusive.
-   */
-  P.toExponential = function (dp) {
-    return stringify(this, 1, dp, dp);
-  };
-
-  /*
-   * Return a string representing the value of this Big in normal notation to dp fixed decimal
-   * places and rounded using Big.RM.
-   *
-   * dp? {number} Integer, 0 to MAX_DP inclusive.
-   *
-   * (-0).toFixed(0) is '0', but (-0.1).toFixed(0) is '-0'.
-   * (-0).toFixed(1) is '0.0', but (-0.01).toFixed(1) is '-0.0'.
-   */
-  P.toFixed = function (dp) {
-    return stringify(this, 2, dp, this.e + dp);
-  };
-
-  /*
-   * Return a string representing the value of this Big rounded to sd significant digits using
-   * Big.RM. Use exponential notation if sd is less than the number of digits necessary to represent
-   * the integer part of the value in normal notation.
-   *
-   * sd {number} Integer, 1 to MAX_DP inclusive.
-   */
-  P.toPrecision = function (sd) {
-    return stringify(this, 3, sd, sd - 1);
-  };
-
-  /*
-   * Return a string representing the value of this Big.
-   * Return exponential notation if this Big has a positive exponent equal to or greater than
-   * Big.PE, or a negative exponent equal to or less than Big.NE.
-   * Omit the sign for negative zero.
-   */
-  P.toString = function () {
-    return stringify(this);
-  };
-
-  /*
-   * Return a string representing the value of this Big.
-   * Return exponential notation if this Big has a positive exponent equal to or greater than
-   * Big.PE, or a negative exponent equal to or less than Big.NE.
-   * Include the sign for negative zero.
-   */
-  P.valueOf = P.toJSON = function () {
-    return stringify(this, 4);
-  };
-
-  // Export
-
-  Big = _Big_();
-
-  Big["default"] = Big.Big = Big;
-
-  //AMD.
-  if (typeof define === "function" && define.amd) {
-    define(function () {
-      return Big;
-    });
-
-    // Node and other CommonJS-like environments that support module.exports.
-  } else if (typeof module !== "undefined" && module.exports) {
-    module.exports = Big;
-
-    //Browser.
-  } else {
-    GLOBAL.Big = Big;
-  }
-})(this);

--
Gitblit v1.9.3