From 3bc3b3afb6a8a380186d3b0554f0cfedef4926d8 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期三, 16 九月 2026 15:34:38 +0800
Subject: [PATCH] 新疆——新聚lims 1.检验任务的温湿度改为每个检验模版都填单独的温湿度 2.报告编制列表操作栏功能删除 3.检验单详情检验值输入框改为可以填汉字及数值

---
 src/views/business/inspectionTask/components/InspectionWord.vue |  109 ++++++++++++++---
 src/views/business/materialOrder/customsInspectionView.vue      |    2 
 src/views/business/productOrder/components/addOrder.vue         |    2 
 src/views/business/inspectionReview/index.vue                   |   60 +++++-----
 src/views/business/reportPreparation/index.vue                  |   21 +--
 src/views/business/productOrder/components/addView.vue          |    2 
 src/workers/InspectionWorker.worker.js                          |    6 +
 src/views/business/inspectionTask/inspection.vue                |  113 ++++++++++++------
 src/views/business/materialOrder/customsInspectionOrder.vue     |    2 
 9 files changed, 211 insertions(+), 106 deletions(-)

diff --git a/src/views/business/inspectionReview/index.vue b/src/views/business/inspectionReview/index.vue
index f20dcad..787b497 100644
--- a/src/views/business/inspectionReview/index.vue
+++ b/src/views/business/inspectionReview/index.vue
@@ -198,36 +198,36 @@
                 return row.checkName == null || (row.checkName && !row.checkName.includes(this.nickName))
               }
             },
-            {
-              name: "涓嬭浇鎶ュ憡",
-              type: "text",
-              clickFun: (row) => {
-                this.download(row);
-              },
-            },
-            {
-              name: "涓婁紶",
-              type: "upload",
-              accept: '.doc,.docx',
-              url: '/insReport/inReport',
-              uploadIdFun: (row) => {
-                return row.insReportId
-              }
-            },
-            {
-              name: "杩樺師",
-              type: "text",
-              clickFun: (row) => {
-                this.handleRestore(row);
-              },
-            },
-            {
-              name: "鏌ョ湅鎶ュ憡",
-              type: "text",
-              clickFun: (row) => {
-                this.handleIssued(row);
-              }
-            },
+            // {
+            //   name: "涓嬭浇鎶ュ憡",
+            //   type: "text",
+            //   clickFun: (row) => {
+            //     this.download(row);
+            //   },
+            // },
+            // {
+            //   name: "涓婁紶",
+            //   type: "upload",
+            //   accept: '.doc,.docx',
+            //   url: '/insReport/inReport',
+            //   uploadIdFun: (row) => {
+            //     return row.insReportId
+            //   }
+            // },
+            // {
+            //   name: "杩樺師",
+            //   type: "text",
+            //   clickFun: (row) => {
+            //     this.handleRestore(row);
+            //   },
+            // },
+            // {
+            //   name: "鏌ョ湅鎶ュ憡",
+            //   type: "text",
+            //   clickFun: (row) => {
+            //     this.handleIssued(row);
+            //   }
+            // },
             // {
             //   name: "浜т笟閾�",
             //   type: "text",
diff --git a/src/views/business/inspectionTask/components/InspectionWord.vue b/src/views/business/inspectionTask/components/InspectionWord.vue
index 189de42..0b59485 100644
--- a/src/views/business/inspectionTask/components/InspectionWord.vue
+++ b/src/views/business/inspectionTask/components/InspectionWord.vue
@@ -26,6 +26,21 @@
             </el-select>
           </div>
         </div>
+        <div style="text-align: left; margin-top: 8px;">
+          <el-form :inline="true" :model="currentOtherForm" class="form-inline" label-width="50px"
+            style="text-align: left; display: inline">
+            <el-form-item label="娓╁害:" style="margin-bottom: 0">
+              <el-input v-model="currentOtherForm.temperature" :disabled="state > 1" placeholder="" size="small"
+                style="width: 90px" @change="m => subOtherForm(m, 'temperature')"></el-input>
+              <span style="margin-left: 4px">鈩�</span>
+            </el-form-item>
+            <el-form-item label="婀垮害:" style="margin-bottom: 0">
+              <el-input v-model="currentOtherForm.humidity" :disabled="state > 1" placeholder="" size="small"
+                style="width: 90px" @change="m => subOtherForm(m, 'humidity')"></el-input>
+              <span style="margin-left: 4px">%RH</span>
+            </el-form-item>
+          </el-form>
+        </div>
         <!-- 甯歌妫�楠屽師濮嬭褰� -->
         <div id="tableBox" v-loading="tableLoading" class="center-box">
           <table v-for="(item, index) in tableList" :key="index + currentTable + currentSample.id" border="1"
@@ -220,7 +235,8 @@
   getInsProductUnqualifiedRetest,
   search, selectUserCondition,
   submitPlan,
-  verifyPlan
+  verifyPlan,
+  write
 } from "@/api/business/inspectionTask";
 import { getUserNow, saveUnqualifiedContext } from "@/api/business/rawMaterialOrder";
 import InspectionWorker from '@/workers/InspectionWorker.worker';
@@ -340,10 +356,8 @@
       numOptions: [],
       temperatureOptions: [],
       wareTableData: [],
-      otherForm: {
-        humidity: null,
-        temperature: null,
-      },
+      // 娓╁害銆佹箍搴︽寜妯℃澘 id 鍒嗙粍锛歿 [templateId]: { temperature, humidity } }
+      otherForm: {},
       equipForm: {
         value0: null,
         code0: null,
@@ -418,6 +432,13 @@
     },
     action() {
       return this.javaApi + "/insOrderPlan/uploadFile";
+    },
+    // 褰撳墠妯℃澘瀵瑰簲鐨勬俯搴︺�佹箍搴�
+    currentOtherForm() {
+      return this.otherForm[this.currentTable] || {
+        temperature: null,
+        humidity: null
+      }
     }
   },
   created() {
@@ -453,11 +474,15 @@
         this.sampleProduct = res.data.sampleProduct
         this.currentSample = this.HaveJson(this.sampleProduct[0])
         let insProduct = this.HaveJson(this.currentSample.insProduct)
-        // 娓╁害銆佹箍搴﹁祴鍊�
-        this.otherForm = {
-          temperature: this.insOrder.temperature ? this.insOrder.temperature : null,
-          humidity: this.insOrder.humidity ? this.insOrder.humidity : null,
-        }
+        // 娓╁害銆佹箍搴﹁祴鍊硷細鎸夋ā鏉� id 鍒嗙粍鍥炴樉
+        this.otherForm = {}
+        const conditionList = this.insOrder.templateConditions || []
+        conditionList.forEach(item => {
+          this.$set(this.otherForm, item.templateId, {
+            temperature: item.temperature != null ? item.temperature : null,
+            humidity: item.humidity != null ? item.humidity : null
+          })
+        })
         if (this.typeSource == '1') {
           this.retestTag = '1'
         }
@@ -515,6 +540,8 @@
             if (this.tableLists && this.tableLists.length > 0) {
               this.tableList = null;
               this.tableList = this.tableLists.filter(m => m.templateId == val1)
+              // 妯℃澘闆嗗悎鍙兘鍙樺寲锛岃ˉ榻愭俯搴︺�佹箍搴︽Ы浣�
+              this.tableLists.forEach(m => this.ensureOtherForm(m.templateId))
               // 瀵规ā鏉胯繘琛屽鐞�
               this.handleTableData()
             }
@@ -846,6 +873,8 @@
         this.tableList = null;
         this.tableList = [this.tableLists[0]]
         this.currentTable = this.tableLists[0].templateId;
+        // 琛ラ綈姣忎釜妯℃澘鐨勬俯搴︺�佹箍搴︽Ы浣�
+        this.tableLists.forEach(m => this.ensureOtherForm(m.templateId))
         // 澶勭悊椤甸潰鍒楄〃鏁版嵁
         this.handleTableData()
       }
@@ -875,6 +904,8 @@
         this.tableList = [this.tableLists[0]]
         this.currentTable = this.tableLists[0].templateId;
         this.currentSample.insProduct = this.HaveJson(list)
+        // 琛ラ綈姣忎釜妯℃澘鐨勬俯搴︺�佹箍搴︽Ы浣�
+        this.tableLists.forEach(m => this.ensureOtherForm(m.templateId))
         // 澶勭悊椤甸潰鍒楄〃鏁版嵁
         this.handleTableData()
       }
@@ -1210,15 +1241,24 @@
     // 瀵硅緭鍏ュ�艰繘琛屾牸寮忔牎楠�
     handleInput(n) {
       try {
-        n.v.v = n.v.v.replace(/[^\d.^e>\-/+]/g, '');
-        n.v.v = n.v.v.replace(/\.{2,}/g, "."); //鍙繚鐣欑涓�涓�. 娓呴櫎澶氫綑鐨�
-        n.v.v = n.v.v.replace(".", "$#$").replace(/\./g, "").replace("$#$", ".");
-        n.v.v = n.v.v.replace(/\/{2,}/g, "/"); //鍙繚鐣欑涓�涓�/娓呴櫎澶氫綑鐨�
-        n.v.v = n.v.v.replace("/", "$#$").replace(/\//g, "").replace("$#$", "/");
+        const v = n.v.v;
+        // 鑳藉姏鑼冨洿宸插簾寮�,妫�楠屽�肩被鍨嬩笉鍐嶄綔涓哄垽鏂緷鎹�傛暣涓插彧鐢辩畻寮忓瓧绗︾粍鎴愭椂鎵嶈鑼冨寲鏍煎紡,
+        // 鍑虹幇涓枃绛夊叾瀹冨瓧绗﹀嵆鎸夋枃鏈鐞嗗師鏍蜂繚鐣�,鍚﹀垯鏂囧瓧浼氳閫愬瓧鍒犳帀
+        if (typeof v !== "string" || /[^\d.^e>锛炩墺鈮�<锛滄柇瑁傝剢鍖朶-/+]/.test(v)) {
+          return;
+        }
+        n.v.v = v
+          .replace(/\.{2,}/g, ".") //鍙繚鐣欑涓�涓�. 娓呴櫎澶氫綑鐨�
+          .replace(".", "$#$")
+          .replace(/\./g, "")
+          .replace("$#$", ".")
+          .replace(/\/{2,}/g, "/") //鍙繚鐣欑涓�涓�/娓呴櫎澶氫綑鐨�
+          .replace("/", "$#$")
+          .replace(/\//g, "")
+          .replace("$#$", "/");
       } catch (error) {
         console.log(error);
       }
-
     },
     getInspectionItemType(id) {
       for (var a in this.currentSample.insProduct) {
@@ -1332,17 +1372,42 @@
         this.$message.error('鏈緭鍏ヤ笉閫氳繃鍘熷洜')
       }
     },
+    // 淇濊瘉妯℃澘鐨勬俯搴︺�佹箍搴︽Ы浣嶅瓨鍦�
+    ensureOtherForm(templateId) {
+      if (templateId == null) return
+      if (!this.otherForm[templateId]) {
+        this.$set(this.otherForm, templateId, {
+          temperature: null,
+          humidity: null
+        })
+      }
+    },
+    // 淇濆瓨褰撳墠妯℃澘鐨勬俯搴︺�佹箍搴�
+    subOtherForm(m, type) {
+      write({
+        id: this.insOrder.id,
+        templateId: this.currentTable,
+        [type]: Number(m)
+      }).then(res => {
+        this.$message.success("淇濆瓨鎴愬姛")
+      })
+    },
     submit() {
       if (this.verifyUser === null || this.verifyUser === '') {
         this.$message.error("璇锋寚瀹氬鏍镐汉鍛�")
         return
       }
-      if (!this.otherForm.humidity) {
-        this.$message.error("璇疯緭鍏ユ箍搴�")
-        return
-      }
-      if (!this.otherForm.temperature) {
-        this.$message.error("璇疯緭鍏ユ俯搴�")
+      const labels = { temperature: "娓╁害", humidity: "婀垮害" }
+      const keys = ["temperature", "humidity"]
+      const missing = []
+      this.tableLists.forEach(m => {
+        const form = this.otherForm[m.templateId] || {}
+        keys.forEach(key => {
+          if (!form[key]) missing.push(`銆�${m.templateName}銆嶇殑${labels[key]}`)
+        })
+      })
+      if (missing.length > 0) {
+        this.$message.error(`璇峰~鍐�${missing[0]}`)
         return
       }
       this.submitLoading = true;
diff --git a/src/views/business/inspectionTask/inspection.vue b/src/views/business/inspectionTask/inspection.vue
index 68b3a9a..0020801 100644
--- a/src/views/business/inspectionTask/inspection.vue
+++ b/src/views/business/inspectionTask/inspection.vue
@@ -2,17 +2,17 @@
   <div v-loading="loading" class="inspection" style="background-color: rgb(245, 247, 251);">
     <el-row class="title">
       <el-col v-if="insOrder.ifsOrderType!=='02wg'" :span="8" style="text-align: left">
-        <el-form :inline="true" :model="otherForm" class="form-inline" label-width="50px"
+        <el-form :inline="true" :model="currentOtherForm" class="form-inline" label-width="50px"
           style="text-align: right; padding-top: 0; display: inline">
           <el-form-item label="娓╁害:" style="margin-bottom: 0">
-            <el-input v-model="otherForm.temperature" :disabled="state > 1" placeholder="" size="small"
+            <el-input v-model="currentOtherForm.temperature" :disabled="state > 1" placeholder="" size="small"
               style="width: 90px; line-height: 60px" @change="(m) => subOtherForm(m, 'temperature')"></el-input>
             <span style="margin-left: 4px">鈩�</span>
           </el-form-item>
           <el-form-item label="婀垮害:" style="margin-bottom: 0">
-            <el-input v-model="otherForm.humidity" :disabled="state > 1" placeholder="" size="small"
+            <el-input v-model="currentOtherForm.humidity" :disabled="state > 1" placeholder="" size="small"
               style="width: 90px; line-height: 60px" @change="(m) => subOtherForm(m, 'humidity')"></el-input>
-            <span style="margin-left: 4px">%</span>
+            <span style="margin-left: 4px">%RH</span>
           </el-form-item>
         </el-form>
       </el-col>
@@ -22,7 +22,7 @@
         <el-button v-if="typeSource == 1" size="small" type="primary" @click="openPurchase">杩涜揣楠岃瘉</el-button>
         <el-button v-if="state == 1 && [0,1].includes(Number(typeSource))" size="small" type="primary"
           @click="openUnPassDialog('add')">涓嶅悎鏍煎鐞�</el-button>
-        <el-button size="small" type="primary" @click="sampleVisible = true; uploadSample();">鏍峰搧鍒囨崲</el-button>
+        <!-- <el-button size="small" type="primary" @click="sampleVisible = true; uploadSample();">鏍峰搧鍒囨崲</el-button> -->
         <!--        <el-button v-if="state == 1" size="small" type="primary" @click="taskVisible = true">浠诲姟鍒囨崲</el-button>-->
         <el-button v-if="state == 1" size="small" type="primary" @click="addVerifyDia = true">鎻愪氦</el-button>
         <!-- 澶嶆牳 -->
@@ -301,12 +301,12 @@
                         align-items: center;
                         width: 100%;
                       ">
-                        <i class="el-icon-caret-left table_caret" style="width: 16px" @click="caretSample(-1)"></i>
+                        <!-- <i class="el-icon-caret-left table_caret" style="width: 16px" @click="caretSample(-1)"></i> -->
                         <div
                           :style="`font-family:${n.v.ff} !important;overflow: hidden;white-space: nowrap;width: calc(100% - 32px);`">
                           {{ currentSample.sampleCode }}
                         </div>
-                        <i class="el-icon-caret-right table_caret" style="width: 16px" @click="caretSample(1)"></i>
+                        <!-- <i class="el-icon-caret-right table_caret" style="width: 16px" @click="caretSample(1)"></i> -->
                       </div>
                     </template>
                     <template v-else-if="
@@ -336,6 +336,7 @@
       <lims-table :tableData="tableData" :column="column" :page="page" :tableLoading="tableLoading"
         :height="'calc(100vh - 290px)'" @pagination="pagination" style="height: 100%; margin-top: 16px"></lims-table>
     </div>
+    <!-- 鏍峰搧鍒囨崲宸插仠鐢�
     <el-drawer :size="550" :visible.sync="sampleVisible" title="鏍峰搧鍒囨崲">
       <el-table v-if="sampleVisible" ref="productTable" :current-row-key="currentKey" :data="sampleProduct"
                 :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border
@@ -356,7 +357,9 @@
             <span>{{ scope.row.isLeave == 0 ? "鍚�" : "鏄�" }}</span>
           </template>
         </el-table-column>
+    -->
         <!-- 妫�楠屽崟浼氭湁涓�涓槸鍚︽湁閰嶅鏍峰搧瀛楁鎺у埗鏄剧ず -->
+    <!--
         <el-table-column v-if="insOrder.mating > 0" label="閰嶅鏍峰搧鍨嬪彿" min-width="130px" prop="joinModel"
           show-overflow-tooltip></el-table-column>
         <el-table-column v-if="insOrder.mating > 0" label="閰嶅鏍峰搧鍚嶇О" min-width="130px" prop="joinName"
@@ -365,6 +368,7 @@
           show-overflow-tooltip></el-table-column>
       </el-table>
     </el-drawer>
+    -->
     <el-drawer :size="500" :visible.sync="taskVisible" title="浠诲姟鍒囨崲">
       <lims-table :tableData="tableData0" :column="column0" :page="page0" :tableLoading="tableLoading0"
         :height="'calc(100vh - 90px)'" :currentChange="handleChangeTask"></lims-table>
@@ -685,10 +689,8 @@
         inspectionItem: 1,
         inspectionItemSubclass: "20(甯告俯)",
       },
-      otherForm: {
-        humidity: null,
-        temperature: null,
-      },
+      // 娓╁害銆佹箍搴︽寜妯℃澘 id 鍒嗙粍锛歿 [templateId]: { temperature, humidity } }
+      otherForm: {},
       equipForm: {
         value0: null,
         code0: null,
@@ -841,6 +843,15 @@
     action() {
       return this.javaApi + "/insOrderPlan/uploadFile";
     },
+    // 褰撳墠妯℃澘瀵瑰簲鐨勬俯搴︺�佹箍搴�
+    currentOtherForm() {
+      return (
+        this.otherForm[this.currentTable] || {
+          temperature: null,
+          humidity: null,
+        }
+      );
+    },
   },
   created() {
     this.saveQueue = Promise.resolve();
@@ -915,6 +926,8 @@
               this.tableList = this.tableLists.filter(
                 (m) => m.templateId == val1
               );
+              // 妯℃澘闆嗗悎鍙兘鍙樺寲锛岃ˉ榻愭俯搴︺�佹箍搴︽Ы浣�
+              this.tableLists.forEach((m) => this.ensureOtherForm(m.templateId));
               // 瀵规ā鏉胯繘琛屽鐞�
               this.handleTableData();
             }
@@ -1102,13 +1115,15 @@
         this.sampleProduct = res.data.sampleProduct;
         this.currentSample = this.HaveJson(this.sampleProduct[0]);
         let insProduct = this.HaveJson(this.currentSample.insProduct);
-        // 娓╁害銆佹箍搴﹁祴鍊�
-        this.otherForm = {
-          temperature: this.insOrder.temperature
-            ? this.insOrder.temperature
-            : null,
-          humidity: this.insOrder.humidity ? this.insOrder.humidity : null,
-        };
+        // 娓╁害銆佹箍搴﹁祴鍊硷細鎸夋ā鏉� id 鍒嗙粍鍥炴樉
+        this.otherForm = {};
+        (this.insOrder.templateConditions || []).forEach((item) => {
+          this.$set(this.otherForm, item.templateId, {
+            temperature: item.temperature != null ? item.temperature : null,
+            humidity: item.humidity != null ? item.humidity : null,
+          });
+        });
+        this.tableLists.forEach((m) => this.ensureOtherForm(m.templateId));
         if (this.typeSource == "1") {
           this.getRawMaterialTag(this.currentSample.id); // 鍘熸潗鏂欑殑妫�楠屼换鍔℃煡璇㈡壒鏁�
           this.rawMaterialTag = "1";
@@ -1614,12 +1629,26 @@
         this.worker0 = null;
       }
     },
-    // 淇濆瓨婀垮害銆佹俯搴︽暟鎹�
+    // 淇濊瘉妯℃澘鐨勬俯搴︺�佹箍搴︽Ы浣嶅瓨鍦�
+    ensureOtherForm(templateId) {
+      if (templateId == null) return;
+      if (!this.otherForm[templateId]) {
+        this.$set(this.otherForm, templateId, {
+          temperature: null,
+          humidity: null,
+        });
+      }
+    },
+    // 淇濆瓨褰撳墠妯℃澘鐨勬俯搴︺�佹箍搴︼紱澶囨敞鏄崟鎹骇锛屼笉甯︽ā鏉�
     subOtherForm(m, type) {
-      write({
-        [type]: type === "remark" ? m : Number(m),
-        id: this.insOrder.id,
-      }).then((res) => {
+      const payload = { id: this.insOrder.id };
+      if (type === "remark") {
+        payload.remark = m;
+      } else {
+        payload.templateId = this.currentTable;
+        payload[type] = Number(m);
+      }
+      write(payload).then((res) => {
         this.$message.success("淇濆瓨鎴愬姛");
       });
     },
@@ -1786,6 +1815,8 @@
         this.tableList = null;
         this.tableList = [this.tableLists[0]];
         this.currentTable = this.tableLists[0].templateId;
+        // 琛ラ綈姣忎釜妯℃澘鐨勬俯搴︺�佹箍搴︽Ы浣�
+        this.tableLists.forEach((m) => this.ensureOtherForm(m.templateId));
         // 澶勭悊椤甸潰鍒楄〃鏁版嵁
         this.handleTableData();
       }
@@ -2132,14 +2163,18 @@
     // 瀵硅緭鍏ュ�艰繘琛屾牸寮忔牎楠�
     handleInput(n) {
       try {
-        n.v.v = n.v.v.replace(/[^\d.^e>锛炩墺鈮�<锛滄柇瑁傝剢鍖朶-/+]/g, "");
-        n.v.v = n.v.v.replace(/\.{2,}/g, "."); //鍙繚鐣欑涓�涓�. 娓呴櫎澶氫綑鐨�
-        n.v.v = n.v.v
+        const v = n.v.v;
+        // 鑳藉姏鑼冨洿宸插簾寮�,妫�楠屽�肩被鍨嬩笉鍐嶄綔涓哄垽鏂緷鎹�傛暣涓插彧鐢辩畻寮忓瓧绗︾粍鎴愭椂鎵嶈鑼冨寲鏍煎紡,
+        // 鍑虹幇涓枃绛夊叾瀹冨瓧绗﹀嵆鎸夋枃鏈鐞嗗師鏍蜂繚鐣�,鍚﹀垯鏂囧瓧浼氳閫愬瓧鍒犳帀
+        if (typeof v !== "string" || /[^\d.^e>锛炩墺鈮�<锛滄柇瑁傝剢鍖朶-/+]/.test(v)) {
+          return;
+        }
+        n.v.v = v
+          .replace(/\.{2,}/g, ".") //鍙繚鐣欑涓�涓�. 娓呴櫎澶氫綑鐨�
           .replace(".", "$#$")
           .replace(/\./g, "")
-          .replace("$#$", ".");
-        n.v.v = n.v.v.replace(/\/{2,}/g, "/"); //鍙繚鐣欑涓�涓�/娓呴櫎澶氫綑鐨�
-        n.v.v = n.v.v
+          .replace("$#$", ".")
+          .replace(/\/{2,}/g, "/") //鍙繚鐣欑涓�涓�/娓呴櫎澶氫綑鐨�
           .replace("/", "$#$")
           .replace(/\//g, "")
           .replace("$#$", "/");
@@ -2267,13 +2302,19 @@
         this.$message.error("璇烽�夋嫨璁惧");
         return;
       }
-      if (!this.otherForm.humidity && this.insOrder.ifsOrderType!=='02wg') {
-        this.$message.error("璇疯緭鍏ユ箍搴�");
-        return;
-      }
-      if (!this.otherForm.temperature && this.insOrder.ifsOrderType!=='02wg') {
-        this.$message.error("璇疯緭鍏ユ俯搴�");
-        return;
+      if (this.insOrder.ifsOrderType !== "02wg") {
+        const labels = { temperature: "娓╁害", humidity: "婀垮害" };
+        const missing = [];
+        this.tableLists.forEach((m) => {
+          const form = this.otherForm[m.templateId] || {};
+          ["temperature", "humidity"].forEach((key) => {
+            if (!form[key]) missing.push(`銆�${m.templateName}銆嶇殑${labels[key]}`);
+          });
+        });
+        if (missing.length > 0) {
+          this.$message.error(`璇峰~鍐�${missing[0]}`);
+          return;
+        }
       }
       if (!this.insOrder.lotPartId && this.insOrder.ifsOrderType==='02wg') {
         this.$message.error("璇峰~鍐橧FS搴撳瓨鐗╂枡鎵规灞炴��");
diff --git a/src/views/business/materialOrder/customsInspectionOrder.vue b/src/views/business/materialOrder/customsInspectionOrder.vue
index f18ef61..8c6ffe8 100644
--- a/src/views/business/materialOrder/customsInspectionOrder.vue
+++ b/src/views/business/materialOrder/customsInspectionOrder.vue
@@ -520,7 +520,7 @@
         productionEn: null,
         typeSource: 1,
         ifsInventoryId: '',
-        sampleStatus: 'In good condition',
+        sampleStatus: '',
       },
       addObjRules: { // 琛ㄥ崟鏍¢獙瑙勫垯
         testQuantity: [
diff --git a/src/views/business/materialOrder/customsInspectionView.vue b/src/views/business/materialOrder/customsInspectionView.vue
index 883295e..a0024f4 100644
--- a/src/views/business/materialOrder/customsInspectionView.vue
+++ b/src/views/business/materialOrder/customsInspectionView.vue
@@ -501,7 +501,7 @@
         productionEn: null,
         typeSource: 1,
         ifsInventoryId: '',
-        sampleStatus: 'In good condition',
+        sampleStatus: '',
       },
       addObjRules: { // 琛ㄥ崟鏍¢獙瑙勫垯
         testQuantity: [
diff --git a/src/views/business/productOrder/components/addOrder.vue b/src/views/business/productOrder/components/addOrder.vue
index ceeb352..f2f0522 100644
--- a/src/views/business/productOrder/components/addOrder.vue
+++ b/src/views/business/productOrder/components/addOrder.vue
@@ -705,7 +705,7 @@
         orderType: null,
         send: 1,
         formType: '閫佹', //  鏉ユ牱鏂瑰紡
-        sampleStatus: 'In good condition', // 鏍峰搧鐘舵��
+        sampleStatus: '', // 鏍峰搧鐘舵��
         testQuantity: '', // 鏍峰搧鐘舵��
         production: null,
         productionEn: null,
diff --git a/src/views/business/productOrder/components/addView.vue b/src/views/business/productOrder/components/addView.vue
index 608c69f..59b6502 100644
--- a/src/views/business/productOrder/components/addView.vue
+++ b/src/views/business/productOrder/components/addView.vue
@@ -680,7 +680,7 @@
         orderType: null,
         send: 1,
         formType: '閫佹', //  鏉ユ牱鏂瑰紡
-        sampleStatus: 'In good condition', // 鏍峰搧鐘舵��
+        sampleStatus: '', // 鏍峰搧鐘舵��
         testQuantity: '', // 鏍峰搧鐘舵��
         production: null,
         productionEn: null,
diff --git a/src/views/business/reportPreparation/index.vue b/src/views/business/reportPreparation/index.vue
index a9e4513..74f7232 100644
--- a/src/views/business/reportPreparation/index.vue
+++ b/src/views/business/reportPreparation/index.vue
@@ -48,15 +48,15 @@
         :isSelection="true" :handleSelectionChange="handleChange" :height="'calc(100vh - 290px)'"
         @pagination="pagination" key="valueTableData">
         <div slot="action" slot-scope="scope">
-          <el-button size="small" type="text" @click="viewIssued(scope.row)">鏌ョ湅鎶ュ憡</el-button>
+<!--          <el-button size="small" type="text" @click="viewIssued(scope.row)">鏌ョ湅鎶ュ憡</el-button>-->
           <el-upload ref='upload1' style="display: inline;margin: 0 6px" :action="fileAction1 + '?id=' + scope.row.id"
             :auto-upload="true" :before-upload="fileBeforeUpload1" :headers="uploadHeader" :on-error="onError1"
             :on-success="handleSuccessUp1" :show-file-list="false" accept='.doc,.docx'>
             <el-button size="small" type="text"
               :disabled="scope.row.state != 0 || nickName !== scope.row.writeUserName">涓婁紶</el-button>
           </el-upload>
-          <el-button type="text" size="small" :disabled="scope.row.state != 0 || nickName !== scope.row.writeUserName"
-            @click="handleRestore(scope.row)">杩樺師</el-button>
+<!--          <el-button type="text" size="small" :disabled="scope.row.state != 0 || nickName !== scope.row.writeUserName"-->
+<!--            @click="handleRestore(scope.row)">杩樺師</el-button>-->
           <el-button type="text" size="small" :disabled="scope.row.state != 0 || nickName !== scope.row.writeUserName"
             @click="sendBackTask(scope.row)">閫�鍥炰换鍔�</el-button>
           <el-button type="text" size="small" :disabled="scope.row.state != 0 || nickName !== scope.row.writeUserName"
@@ -67,17 +67,10 @@
           <el-button type="text" size="small"
             :disabled="scope.row.state == null || scope.row.state == 0 || scope.row.isExamine == 0 || scope.row.isExamine == null || scope.row.isRatify == 1 || nickName !== scope.row.ratifyUser"
             @click="handleApprove(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 style="margin-left: 10px" type="text" size="small"
-                :disabled="!scope.row.url && !scope.row.urlS" @click="download(scope.row)">涓嬭浇</el-button>
-              <el-button type="text" size="small" @click="viewInspectInfo(scope.row)">鍘熷璁板綍</el-button>
-              <el-button type="text" size="small" @click="handleFileLook(scope.row)">闄勪欢涓婁紶</el-button>
-            </div>
-          </el-popover>
+          <el-button style="margin-left: 10px" type="text" size="small"
+                     :disabled="!scope.row.url && !scope.row.urlS" @click="download(scope.row)">涓嬭浇</el-button>
+          <el-button type="text" size="small" @click="viewInspectInfo(scope.row)">鍘熷璁板綍</el-button>
+          <el-button type="text" size="small" @click="handleFileLook(scope.row)">闄勪欢涓婁紶</el-button>
         </div>
       </lims-table>
     </div>
diff --git a/src/workers/InspectionWorker.worker.js b/src/workers/InspectionWorker.worker.js
index fe3e56d..d77d1f7 100644
--- a/src/workers/InspectionWorker.worker.js
+++ b/src/workers/InspectionWorker.worker.js
@@ -1223,6 +1223,12 @@
           return "鏂鑴嗗寲";
         }
       }
+      // 鍙傛暟浠e叆鍚庡惈涓枃鏃�(濡傛楠屽�煎~浜�"鍧囧寑"),涓嶈兘鍐嶅綋鍏紡 eval 鈥斺��
+      // eval("鍧囧寑") 浼氭姏 ReferenceError,琚灞� catch 鍚炴帀鍚庤繑鍥� undefined,
+      // 璇ュ崟鍏冩牸鐨勭粨鏋滄棦涓嶅啓鍥炰篃涓嶅悜涓嬫父鍏紡浼犻��,鏁存潯璁$畻閾炬柇鍦ㄨ繖閲�
+      if (/[涓�-榫/.test(str)) {
+        return str.trim();
+      }
       // 璁$畻甯歌鐨�
       const value = eval(str);
       // 闄ら浂绛夐潪鏈夐檺缁撴灉涓嶅啓鍥炲崟鍏冩牸(涓� Excel 鐨� #DIV/0! 涓�鑷�:涓嶅嚭鍊�)

--
Gitblit v1.9.3