From 025e5c58bfaeee5721b726fc2b960208d7540348 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期五, 18 九月 2026 14:15:21 +0800
Subject: [PATCH] 新疆——新聚lims 1.按钮限制放开 2.检验单详情温湿度、检测时间、检测地方校验必填

---
 src/views/business/inspectionTask/components/InspectionWord.vue |   80 ++++++++++++++++++---------------------
 1 files changed, 37 insertions(+), 43 deletions(-)

diff --git a/src/views/business/inspectionTask/components/InspectionWord.vue b/src/views/business/inspectionTask/components/InspectionWord.vue
index 666c720..d9ff99f 100644
--- a/src/views/business/inspectionTask/components/InspectionWord.vue
+++ b/src/views/business/inspectionTask/components/InspectionWord.vue
@@ -48,13 +48,23 @@
                 placeholder="璇疯緭鍏ユ娴嬪湴鐐�" size="small" style="width: 200px"
                 @change="m => subOtherForm(m, 'detectionPlace')"></el-input>
             </el-form-item>
-            <el-form-item v-if="isDirectTemplateOrder()" label="璁惧:">
+            <el-form-item label="璁惧:">
               <el-select v-model="currentOtherForm.deviceIds" :disabled="state != 1" multiple filterable clearable
                 size="small" placeholder="璇烽�夋嫨璁惧" style="width: 360px"
                 @change="m => subOtherForm(m, 'deviceIds')">
                 <el-option v-for="device in deviceOptions" :key="device.id" :label="device.label"
                   :value="device.id" />
               </el-select>
+            </el-form-item>
+          </el-form>
+          <el-form :inline="true" :model="currentOtherForm" class="form-inline template-panel__conclusion--divided"
+            size="small" label-width="84px">
+            <el-form-item label="妫�楠岀粨璁�:">
+              <el-radio-group v-model="currentOtherForm.insResult" :disabled="state != 2"
+                @change="m => subOtherForm(m, 'insResult')">
+                <el-radio :label="1">鍚堟牸</el-radio>
+                <el-radio :label="0">涓嶅悎鏍�</el-radio>
+              </el-radio-group>
             </el-form-item>
           </el-form>
         </div>
@@ -105,9 +115,9 @@
                       </el-select>
                     </template>
                     <template v-else-if="n.v.ps != undefined && n.v.ps.value === '璁$畻鍊�' && state == 1"><span
-                        :style="`font-family:${n.v.ff} !important;`">{{ toFixed(n.v.v, n.v.ct) }}</span></template>
+                        :style="`font-family:${n.v.ff} !important;`">{{ n.v.v }}</span></template>
                     <template v-else-if="n.v.ps != undefined && n.v.ps.value === '鏈�缁堝��' && state == 1">
-                      <span :style="`font-family:${n.v.ff} !important;`">{{ toFixed(n.v.v, n.v.ct) }}</span>
+                      <span :style="`font-family:${n.v.ff} !important;`">{{ n.v.v }}</span>
                     </template>
                     <template v-else-if="n.v.ps != undefined && n.v.ps.value === '鏍峰搧缂栧彿'">
                       <div :title="currentSample.sampleCode"
@@ -458,7 +468,8 @@
         humidity: null,
         detectionTime: null,
         detectionPlace: null,
-        deviceIds: []
+        deviceIds: [],
+        insResult: null
       }
     }
   },
@@ -504,16 +515,15 @@
             humidity: item.humidity != null ? item.humidity : null,
             detectionTime: item.detectionTime != null ? item.detectionTime : null,
             detectionPlace: item.detectionPlace != null ? item.detectionPlace : null,
-            deviceIds: Array.isArray(item.deviceIds) ? [...item.deviceIds] : []
+            deviceIds: Array.isArray(item.deviceIds) ? [...item.deviceIds] : [],
+            insResult: item.insResult != null ? item.insResult : null
           })
         })
         if (this.typeSource == '1') {
           this.retestTag = '1'
         }
         this.getEquipOptions(1)
-        if (this.sonLaboratory === '鏂拌仛') {
-          this.loadDeviceOptions()
-        }
+        this.loadDeviceOptions()
         // 鑾峰彇褰撳墠鏍峰搧鐨勬楠岄」
         let list = await this.getCurrentProduct(this.currentSample.id, 0)
         if (list === undefined) {
@@ -1232,13 +1242,6 @@
     getValue(v) {
       // 瀵归〉闈㈠睍绀烘暟鎹繘琛屽鐞�,@,浠h〃鎹㈣
       let str = v.v ? v.v : (v.v === 0 ? v.v : (v.ct && v.ct.s ? v.ct.s.length > 0 && v.ct.s[0].v.replace(new RegExp('\n', 'g'), '<br/>').replace(new RegExp('@', 'g'), '<br/>') : ''))
-      // 瀵规暟鎹繚鐣欏皬鏁扮偣杩涜澶勭悊
-      if (v.ct && v.ct.fa && v.ct.fa.includes('.') && str) {
-        let num = 0
-        let str0 = v.ct.fa.split('.')[1]
-        num = str0.length
-        str = Number(str).toFixed(num)
-      }
       if (v.v && typeof v.v == 'string' && v.v.includes('@')) {
         str = v.v.replace(new RegExp('@', 'g'), '<br/>')
       }
@@ -1345,11 +1348,6 @@
         })
       }
     },
-    // 鏂拌仛鐩存帴缁戝畾妯℃澘鐨勫崟鎹紝璁惧鎸夋ā鏉块�夋嫨
-    isDirectTemplateOrder() {
-      return this.sonLaboratory === '鏂拌仛' && this.currentSample &&
-        (this.currentSample.insProduct || []).some(product => product.templateRowIndex != null)
-    },
     loadDeviceOptions() {
       search({ status: 0 }).then(res => {
         this.deviceOptions = (res.data || []).map(device => ({
@@ -1369,13 +1367,23 @@
     upInsReview(e) {
       if (e == 1) {
         // 閫氳繃
+        // 姣忎釜妯℃澘閮借鏈夌粨璁猴紱鍏ㄩ儴鍚堟牸鎵嶇畻鏁村崟鍚堟牸
+        const insResults = this.tableLists.map(
+          item => (this.otherForm[item.templateId] || {}).insResult
+        )
+        const missingIndex = insResults.findIndex(result => result !== 0 && result !== 1)
+        if (missingIndex > -1) {
+          this.$message.error(`璇烽�夋嫨銆�${this.tableLists[missingIndex].templateName}銆嶇殑妫�楠岀粨璁篳)
+          return
+        }
         this.reviewLoading = true;
         verifyPlan({
           orderId: this.orderId,
           type: 1,
           laboratory: this.sonLaboratory,
           tell: null,
-          userId: this.checkUser
+          userId: this.checkUser,
+          insResult: insResults.every(result => result === 1) ? 1 : 0
         }).then(res => {
           if (res.code === 200) {
             this.$message.success("鎿嶄綔鎴愬姛")
@@ -1423,7 +1431,8 @@
           humidity: null,
           detectionTime: null,
           detectionPlace: null,
-          deviceIds: []
+          deviceIds: [],
+          insResult: null
         })
       }
     },
@@ -1456,7 +1465,7 @@
         if (!form.humidity) missing.push(`璇峰~鍐欍��${m.templateName}銆嶇殑婀垮害`)
         if (!form.detectionTime) missing.push(`璇烽�夋嫨銆�${m.templateName}銆嶇殑妫�娴嬫椂闂碻)
         if (!form.detectionPlace) missing.push(`璇峰~鍐欍��${m.templateName}銆嶇殑妫�娴嬪湴鐐筦)
-        if (this.isDirectTemplateOrder() && (!form.deviceIds || form.deviceIds.length === 0)) {
+        if (!form.deviceIds || form.deviceIds.length === 0) {
           missing.push(`璇烽�夋嫨銆�${m.templateName}銆嶇殑璁惧`)
         }
       })
@@ -1723,26 +1732,6 @@
       }).catch(error => {
 
       })
-    },
-    /**
-     * 灏嗘暟鍊紇淇濈暀ct.fa涓�'##'鍚庣殑鎸囧畾灏忔暟浣嶆暟锛屽苟杩斿洖鏍煎紡鍖栧悗鐨勫瓧绗︿覆銆�
-     *
-     * @param v 瑕佹牸寮忓寲鐨勬暟鍊�
-     * @param ct 鍖呭惈鏍煎紡鍖栭厤缃殑瀵硅薄
-     * @param ct.fa 鏍煎紡鍖栭厤缃瓧绗︿覆锛岃嫢鍖呭惈'##'鍒欐寜鐓у叾鍚庣殑鍐呭纭畾灏忔暟浣嶆暟
-     * @returns 鏍煎紡鍖栧悗鐨勫瓧绗︿覆鎴栧師濮嬫暟鍊硷紙鑻ラ厤缃笉绗﹀悎瑕佹眰锛�
-     */
-    toFixed(v, ct) {
-      if (v && ct && ct.fa) {
-        if (ct.fa.includes('.')) {
-          let num = ct.fa.slice(4).length
-          return Number(v).toFixed(num)
-        } else {
-          return v
-        }
-      } else {
-        return v
-      }
     }
   }
 }
@@ -1817,6 +1806,11 @@
   color: #606266;
 }
 
+.template-panel__conclusion--divided {
+  border-top: 1px dashed #e4e7ed;
+  padding-top: 12px;
+}
+
 .center {
   width: calc(100% - 40px);
   /* max-height: 580px; */

--
Gitblit v1.9.3