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/inspection.vue |  113 ++++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 77 insertions(+), 36 deletions(-)

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搴撳瓨鐗╂枡鎵规灞炴��");

--
Gitblit v1.9.3