From 25be2de9e655bacb32830a48120512e53e3f741e Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期一, 24 二月 2025 10:47:26 +0800
Subject: [PATCH] 不合格复测搬迁

---
 src/views/business/inspectionTask/components/InspectionWord.vue | 2330 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 src/api/business/inspectionTask.js                              |    8 
 src/views/business/unpass/components/addUnPass.vue              |    2 
 src/api/business/rawMaterialOrder.js                            |    8 
 src/views/business/inspectionTask/inspection.vue                |   12 
 5 files changed, 2,353 insertions(+), 7 deletions(-)

diff --git a/src/api/business/inspectionTask.js b/src/api/business/inspectionTask.js
index 6c52426..98e0ead 100644
--- a/src/api/business/inspectionTask.js
+++ b/src/api/business/inspectionTask.js
@@ -279,3 +279,11 @@
     params: query,
   });
 }
+// 鏌ヨ澶嶆祴妯$増
+export function getInsProductUnqualifiedRetest(query) {
+  return request({
+    url: "/insOrderPlan/getInsProductUnqualifiedRetest",
+    method: "get",
+    params: query,
+  });
+}
diff --git a/src/api/business/rawMaterialOrder.js b/src/api/business/rawMaterialOrder.js
index 6076b50..4b5c746 100644
--- a/src/api/business/rawMaterialOrder.js
+++ b/src/api/business/rawMaterialOrder.js
@@ -286,3 +286,11 @@
     params: query
   })
 }
+// 淇濆瓨涓嶅悎鏍煎娴嬫暟鎹�
+export function saveUnqualifiedContext(query) {
+  return request({
+    url: '/insOrderPlan/saveUnqualifiedContext',
+    method: 'delete',
+    params: query
+  })
+}
diff --git a/src/views/business/inspectionTask/components/InspectionWord.vue b/src/views/business/inspectionTask/components/InspectionWord.vue
new file mode 100644
index 0000000..4b88e82
--- /dev/null
+++ b/src/views/business/inspectionTask/components/InspectionWord.vue
@@ -0,0 +1,2330 @@
+<template>
+  <el-dialog :close-on-press-escape="false"
+             :visible.sync="isShow"
+             custom-class="unPassCheck"
+             title="涓嶅悎鏍煎娴�"
+             width="90%"
+             @close="$emit('closeUnPassCheckDialog')">
+    <div v-loading="loading" class="inspection">
+<!--      <el-row class="title">-->
+<!--        <el-col :span="24" style="text-align: right;">-->
+<!--          <el-button size="small" type="primary" @click="addVerifyDia = true" v-if="state==1">鎻愪氦</el-button>-->
+<!--        </el-col>-->
+<!--      </el-row>-->
+      <div class="center">
+        <div class="search" style="text-align: left;display: flex;align-items: center;justify-content: space-between;">
+          <div style="display: flex;align-items: center;">
+            <span v-if="tableList.length>0">妫�楠屾ā鏉匡細</span>
+            <el-radio-group v-model="currentTable" size="small">
+              <el-radio-button v-for="(item,index) in tableLists" :key="index" :label="item.templateId"
+                               size="small">{{ item.templateName }}</el-radio-button>
+            </el-radio-group>
+          </div>
+          <div style="display: flex;align-items: center;">
+            <span v-if="typeSource == '1'">&nbsp;&nbsp;澶嶆祴娆℃暟锛�</span>
+            <el-select v-if="typeSource == '1'" v-model="retestTag"
+                       placeholder="璇烽�夋嫨"
+                       size="small" @change="m=>handleChangeCableTag(currentSample.id,4, 'cableTag', m)">
+              <el-option
+                v-for="item in unPassNumList"
+                :key="item.retestTag"
+                :label="item.retestTag"
+                :value="item.retestTag">
+              </el-option>
+            </el-select>
+          </div>
+        </div>
+        <!-- 甯歌妫�楠屽師濮嬭褰� -->
+        <div id="tableBox" v-loading="tableLoading" class="center-box">
+          <table v-for="(item,index) in tableList" :key="index+currentTable+currentSample.id" border="1" cellpadding="10" class="tables">
+            <tbody>
+            <tr v-for="(m,i) in item.arr" :key="i">
+              <td v-for="(n,j) in m" v-if="n.v.mc==undefined || Object.keys(n.v.mc).length === 4" :id='item.templateId+"-"+n.i+"-"+n.r+"-"+n.c'
+                  :key="j" :colspan="n.v.mc&&n.v.mc.cs?n.v.mc.cs:1"
+                  :rowspan="n.v.mc&&n.v.mc.rs?n.v.mc.rs:1"
+                  :style="`background:${n.v.bg?n.v.bg:''};color:${n.v.fc};font-size:${n.v.fs}px;width:${handleWidth(n)}px !important;height:${item.style.rowlen[n.r]}px;font-wight:${n.v.bl?'bold':''};`">
+                <div :class="`content-h-${n.v.ht} content-v-${n.v.vt}`" :style="`width:${handleWidth(n)}px !important;min-height:${item.style.rowlen[n.r]}px;`"
+                     class="content">
+                  <template v-if="n.v.ps!=undefined && typeof n.v.ps.value ==='string'&& n.v.ps.value.includes('妫�楠屽��') && state==1">
+                    <el-input v-if="getInspectionValueType(n.i) == 1" :key="'abc-'+'000'+index+'000'+i+'000'+j" v-model="n.v.v"
+                              :disabled="(getInspectionItemType(n.i) == 1 && !dataAcquisitionEidtAble )|| (n.u != userId && n.u != undefined && n.u != '')"
+                              class="table_input"
+                              @change="m=>changeInput(m,`${item.templateId}-${n.r}-${n.c}-${n.i}`, n,'getDataType')" @input="handleInput(n)" @mousewheel.native.prevent
+                              @keydown.enter="changeInput('',`${item.templateId}-${n.r}-${n.c}-${n.i}`, n, 'getDataType')">
+                    </el-input>
+                    <el-input v-else-if="getInspectionValueType(n.i) == 2" v-model="n.v.v" :disabled="getInspectionItemType(n.i) == 1 || (n.u != userId && n.u != undefined && n.u != '')"
+                              class="table_input"
+                              type="textarea"
+                              @change="m=>changeInput(m,`${item.templateId}-${n.r}-${n.c}-${n.i}`,n,'getDataType')" />
+<!--                    <el-select v-else-if="getInspectionValueType(n.i) == 5" v-model="n.v.v" :disabled="state>1||getInspectionItemType(n.i) == 1 || (n.u != userId && n.u != undefined && n.u != '')"-->
+<!--                               class="table_input" @change="m=>changeInput(m,`${item.templateId}-${n.r}-${n.c}-${n.i}`,n,'getDataType')"-->
+<!--                               @visible-change="e=>getDic(e,n.i)">-->
+<!--                      <el-option v-for="(e, i) in enumList" :key="i" :label="e.label" :value="e.value"></el-option>-->
+<!--                    </el-select>-->
+                    <span v-else-if="getInspectionValueType(n.i) == 4"
+                          :style="`font-family:${n.v.ff} !important;`">/</span>
+                  </template>
+                  <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='缁撹'">
+                    <el-select v-if="(getInspectionValueType(n.i) == 2 || getInspectionValueType(n.i) == 5) && state==1&&PROJECT=='瑁呭鐢电紗'"
+                               v-model="n.v.v" class="table_input" @change="m=>changeInput(m,`${item.templateId}-${n.r}-${n.c}-${n.i}`, n,'getDataType')">
+                      <el-option :value="1" label="鍚堟牸"></el-option>
+                      <el-option :value="0" label="涓嶅悎鏍�"></el-option>
+                      <el-option :value="3" label="涓嶅垽瀹�"></el-option>
+                      <el-option :value="2" label="寰呭畾"></el-option>
+                    </el-select>
+                    <template v-if="state > 1">
+                      <span v-if="n.v.v===1" :style="`font-family:${n.v.ff} !important;color: green;`">鍚堟牸</span>
+                      <span v-else-if="n.v.v===0" :style="`font-family:${n.v.ff} !important;color: red;`">涓嶅悎鏍�</span>
+                      <span v-else-if="n.v.v===3" :style="`font-family:${n.v.ff} !important;color: #3A7BFA;`">涓嶅垽瀹�</span>
+                      <span v-else :style="`font-family:${n.v.ff} !important;`">寰呭畾</span>
+                    </template>
+                    <template v-if="getInspectionValueType(n.i) != 2 && state==1">
+                      <span v-if="n.v.v===1" :style="`font-family:${n.v.ff} !important;color: green;`">鍚堟牸</span>
+                      <span v-else-if="n.v.v===0" :style="`font-family:${n.v.ff} !important;color: red;`">涓嶅悎鏍�</span>
+                      <span v-else-if="n.v.v===3" :style="`font-family:${n.v.ff} !important;color: #3A7BFA;`">涓嶅垽瀹�</span>
+                      <span v-else :style="`font-family:${n.v.ff} !important;`">寰呭畾</span>
+                    </template>
+                  </template>
+                  <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='璁惧缂栫爜' && state==1">
+                    <span>{{ n.v.v }}</span>
+                  </template>
+                  <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='璁惧鍚嶇О'">
+                    <el-select v-model="n.v.v" :disabled="state>1"
+                               class="table_input" filterable
+                               multiple
+                               placeholder="璁惧" remote @change="(val)=>changeEquip(val, n)"
+                               @visible-change="e=>getEquipOptions(e,n.i)">
+                      <el-option v-for="item in equipOptions" :key="item.value"  :label="item.label" :value="item.value">
+                        {{item.label + '--' +item.value}}
+                      </el-option>
+                    </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;`">{{getTell(n.i)}}</span>
+                  </template>
+                  <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='璁$畻鍊�' && state==1"><span :style="`font-family:${n.v.ff} !important;`">{{ toFixed(n.v.v,n.v.ct) }}</span></template>
+                  <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='鏈�缁堝��' && state==1">
+                    <span :style="`font-family:${n.v.ff} !important;`">{{ toFixed(n.v.v,n.v.ct) }}</span>
+                  </template>
+                  <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='鏍峰搧缂栧彿'">
+                    <div :title="currentSample.sampleCode" style="display: flex;flex-wrap: nowrap;align-items: center;width: 100%">
+                      <i v-if="!currentFiberOpticTape&&!currentFiberOptic" 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 v-if="!currentFiberOpticTape&&!currentFiberOptic" class="el-icon-caret-right table_caret"
+                         style="width: 16px;" @click="caretSample(1)"></i>
+                    </div>
+                  </template>
+                  <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='鏍峰搧鍨嬪彿'">
+                    <div v-if="currentSample.model!==undefined&&currentSample.model!==null" :style="`font-family:${n.v.ff} !important;`">{{currentSample.model}}</div>
+                  </template>
+                  <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='濂楃'">
+                    <div style="display: flex;flex-wrap: nowrap;align-items: center;">
+                      <div :style="`font-family:${n.v.ff} !important;`">{{currentBushing?currentBushing.color:''}}</div>
+                    </div>
+                  </template>
+                  <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='鍏夌氦甯�'">
+                    <div style="display: flex;flex-wrap: nowrap;align-items: center;">
+                      <i v-if="currentFiberOpticTape" class="el-icon-caret-left table_caret" @click="caretTape(-1)
+                      "></i>
+                      <div :style="`font-family:${n.v.ff} !important;`">{{currentFiberOpticTape?currentFiberOpticTape.code:''}}</div>
+                      <i v-if="currentFiberOpticTape"
+                         class="el-icon-caret-right table_caret"
+                         @click="caretTape(1)"></i>
+                    </div>
+                  </template>
+                  <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='鍏夌氦'">
+                    <div style="display: flex;flex-wrap: nowrap;align-items: center;">
+                      <i v-if="currentFiberOptic" class="el-icon-caret-left table_caret"
+                         @click="caretOptic(-1)"></i>
+                      <div :style="`font-family:${n.v.ff} !important;`">{{currentFiberOptic?currentFiberOptic.color:''}}
+                      </div>
+                      <i
+                        v-if="currentFiberOptic" class="el-icon-caret-right table_caret" @click="caretOptic(1)"></i>
+                    </div>
+                  </template>
+                  <span v-else :style="`font-family:${n.v.ff} !important;`" v-html="getValue(n.v)" ></span>
+                </div>
+              </td>
+            </tr>
+            </tbody>
+          </table>
+        </div>
+      </div>
+      <el-dialog :visible.sync="reviewDia" title="妫�楠屽鏍�" width="500px">
+        <div v-if="reviewDia" class="body" style="display: flex;padding: 10px;">
+          <div class="search_label" style="width: 150px;"><span class="required-span">* </span>涓嶉�氳繃鐨勭悊鐢憋細</div>
+          <div class="search_input" style="width: 100%;">
+            <el-input v-model="noReason" :autosize="{ minRows: 4}" clearable size="small" type="textarea"></el-input>
+          </div>
+        </div>
+        <span slot="footer" class="dialog-footer">
+        <el-button @click="reviewDia = false">鍙� 娑�</el-button>
+        <el-button :loading="reviewLoading" type="primary" @click="handleReviewDia">纭� 瀹�</el-button>
+      </span>
+      </el-dialog>
+      <el-dialog :visible.sync="addVerifyDia" title="鎸囧畾澶嶆牳浜哄憳" width="400px">
+        <div class="body" style="display: flex;padding: 10px;align-items: center;">
+          <div class="search_label" style="width: 150px;"><span class="required-span">*</span>澶嶆牳浜�</div>
+          <div class="search_input" style="width: 100%;">
+            <el-select v-model="verifyUser" clearable filterable placeholder="璇烽�夋嫨" size="small" style="width: 100%;">
+              <el-option v-for="(item,i) in personList" :key="i" :label="item.label" :value="item.value">
+              </el-option>
+            </el-select>
+          </div>
+        </div>
+        <span slot="footer" class="dialog-footer">
+        <el-button @click="addVerifyDia = false">鍙� 娑�</el-button>
+        <el-button :loading="submitLoading" type="primary" @click="submit()">纭� 瀹�</el-button>
+      </span>
+      </el-dialog>
+      <el-dialog :close-on-click-modal="false" :close-on-press-escape="false" :show-close="false" :visible.sync="dataGetDia" custom-class="custom-dialog" title="鏁版嵁閲囬泦">
+        <div>
+          <table border="1" cellpadding="10" class="thermal-table">
+            <tr>
+              <td style="width: 120px;">妫�楠岄」</td>
+              <td style="width: 120px;">妫�楠屽瓙椤�</td>
+              <td>鏁伴噰鏁版嵁</td>
+            </tr>
+            <template v-for="(item,index) in getData">
+              <tr>
+                <td :rowspan="item.child.length">{{item.faName}}</td>
+                <td>{{ item.child[0].name }}</td>
+                <td style="text-align: left;">
+                  <el-checkbox-group
+                    v-model="getDataIndex" :max="item.child[0].maxNum">
+                    <el-checkbox v-for="(n,j) in item.child[0].arr" :key="j" :label="j">{{n}}</el-checkbox>
+                  </el-checkbox-group>
+                </td>
+              </tr>
+              <tr v-for="(m,i) in item.child" v-show="i>0" :key="i+'bbbbbbbbbbbbbb'">
+                <td>{{ m.name }}</td>
+                <td style="text-align: left;">
+                  <el-checkbox-group
+                    v-model="getDataIndex" :max="m.maxNum">
+                    <el-checkbox v-for="(n,j) in m.arr" :key="j" :label="j">{{n}}</el-checkbox>
+                  </el-checkbox-group>
+                </td>
+              </tr>
+            </template>
+          </table>
+        </div>
+        <span slot="footer" class="dialog-footer">
+        <el-button :loading="getDataIndexLoading" type="primary" @click="submitDataGet()">纭� 瀹�</el-button>
+      </span>
+      </el-dialog>
+      <UnPassDialog v-if="unPassDialog" ref="unPassDialog"
+                    :orderId="orderId"
+                    :unPassDialog="unPassDialog"
+                    @resetForm="resetForm"></UnPassDialog>
+      <el-dialog :close-on-click-modal="false" :visible.sync="addCheck"
+                 title="鎸囧畾鎶ュ憡瀹℃牳浜哄憳"
+                 width="400px"
+                 @close="closeAddVerifyDia">
+        <div class="body" style="display: flex;padding: 10px;align-items: center;">
+          <div class="search_label" style="width: 150px;"><span class="required-span">*</span>瀹℃牳浜猴細</div>
+          <div class="search_input" style="width: 100%;">
+            <el-select v-model="checkUser" clearable filterable placeholder="璇烽�夋嫨" size="small" style="width: 100%;">
+              <el-option v-for="(item,i) in personList" :key="i" :label="item.label" :value="item.value">
+              </el-option>
+            </el-select>
+          </div>
+        </div>
+        <span slot="footer" class="dialog-footer">
+        <el-button @click="closeAddVerifyDia">鍙� 娑�</el-button>
+        <el-button :loading="reviewLoading" type="primary" @click="upInsReview(1)">纭� 瀹�</el-button>
+      </span>
+      </el-dialog>
+    </div>
+  </el-dialog>
+</template>
+
+<script>
+// import ValueTable from '../../tool/value-table.vue'
+import file from '@/utils/file'
+import excelFunction from '@/utils/excelFountion'
+import UnPassDialog from "@/views/business/unpass/components/unPassDialog.vue";
+import AddUnPass from "@/views/business/unpass/components/addUnPass.vue";
+import {
+  checkSubmitPlan,
+  doInsOrder,
+  getInsProductUnqualifiedRetest,
+  search, selectUserCondition,
+  submitPlan,
+  verifyPlan
+} from "@/api/business/inspectionTask";
+import {getUserNow, saveUnqualifiedContext} from "@/api/business/rawMaterialOrder";
+export default {
+  props: ['sonLaboratory', 'orderId', 'state','inspectorList','typeSource', 'unPassCheck', 'rawMaterialTag'],
+  components: {
+    AddUnPass,
+    UnPassDialog
+  },
+  data() {
+    return {
+      isShow: this.unPassCheck,
+      sagData: [],
+      sagForm: {
+        sampleCode: null,
+        model: null,
+        inspection: null,
+        methodName: null,
+        tensileForce: null,
+        spanLength: null,
+        load: null
+      },
+      dataGetDia:false,
+      wareTableDataLoading:false,
+      fileAdd:false,
+      submitLoading: false,
+      searchForm: {
+        sampleName: null,
+        state: null
+      },
+      id: 0,
+      componentData0: {
+        entity: {
+          insOrderId:''
+        },
+        isIndex: true,
+        showSelect: false,
+        select: false,
+        sort: false,
+        init:false,
+        do: [
+          {
+            id: 'handleDown',
+            font: '涓嬭浇',
+            type: 'text',
+            method: 'handleDown'
+          },{
+            id: 'delete',
+            font: '鍒犻櫎',
+            type: 'text',
+            method: 'doDiy',
+            disabFun: (row, index) => {
+              return this.state!=1
+            }
+          }
+        ],
+        isPage: false,
+        linkEvent: {},
+        tagField: {
+          type:{
+            select:[
+              {
+                value: 1,
+                label: '鍥剧墖'
+              },
+              {
+                value: 2,
+                label: '鏂囦欢'
+              }
+            ]
+          }
+        },
+        currentId: '',
+        selectField: {},
+        requiredAdd: [],
+        requiredUp: []
+      },
+      changeType:null,
+      getReportModelLoading:false,
+      insOrder: {},
+      sampleProduct: [],
+      typeList: [],
+      urgentList: [],
+      currentSample: {}, //褰撳墠鏍峰搧淇℃伅
+      tableList: [],
+      loading: false,
+      ps: {},
+      param: {},
+      currentKey0: 1,
+      currentKey1: 1,
+      currentKey2: 1,
+      comparisonList: [],
+      excelMethodList: [],
+      equipOptions: [],
+      userId: 0,
+      reviewLoading: false,
+      reviewDia: false,
+      noReason: '',
+      tableWidth: 1000,
+      currentTable: null,
+      tableLists: [],
+      widthList: [],
+      addVerifyDia: false,
+      verifyUser: null,
+      personList: [],
+      enumList: [],
+      tableLoading:false,
+      upLoading:false,
+      temptList:null,
+      currentTab:null,
+      wareForm:{
+        inspectionItem:1,
+        inspectionItemSubclass:'20(甯告俯)',
+      },
+      wareForm0:{},
+      numOptions:[],
+      temperatureOptions:[],
+      wareTableData:[],
+      otherForm:{
+        humidity:null,
+        temperature:null,
+      },
+      equipForm:{
+        value0:null,
+        code0:null,
+        value1:null,
+        code1:null,
+      },
+      result: null,
+      worker: null,
+      worker0: null,
+      wareLength:[],
+      dataAcquisitionInfo:{},
+      dataAcquisitionInfoNew:{},
+      dataAcquisitionEidtAble:false,
+      isGet:false,
+      dataAcquisitionLoading:false,
+      collected:false,
+      // 鐑惊鐜�---寮�濮�
+      thermalCyclingInfo:{
+        max:0,
+        inspectionItem:1,
+        arr:[],
+        length:1,
+        inspectionItemClass:null,
+      },
+      thermalCyclingLoading:false,
+      temDataAcquisition:false,
+      getData:[
+        {
+          faName:'娉㈤暱闄勫姞琛板噺',
+          child:[
+            {
+              name:'1285nm~1330nm',
+              arr:[12,13,14,15],
+            },
+            {
+              name:'1525nm~1575nm',
+              arr:[12,13,14,15],
+            },
+          ]
+        },
+        {
+          faName:'鎴嚦娉㈤暱',
+          child:[
+            {
+              name:'鎴嚦娉㈤暱',
+              arr:[12,13,14,15],
+            }
+          ]
+        }
+      ],
+      getDataIndex:[],
+      getDataIndexLoading:false,
+      getDataTypeId:'',
+      getDataType:null,
+      unPassDialog: false, // 涓嶅悎鏍煎鐞嗗脊妗�
+      retestTag: '', // 澶嶆祴娆℃暟
+      addCheck: false, // 鎸囧畾瀹℃牳浜哄憳寮规
+      checkUser: '',
+      type: '',
+      unPassNumList: [
+        {retestTag: '1'},
+        {retestTag: '2'},
+      ],
+    }
+  },
+  // 鐢ㄤ簬涓婁紶鏂囦欢鐨勪俊鎭�
+  computed: {
+    headers() {
+      return {
+        'token': sessionStorage.getItem('token')
+      }
+    },
+    action() {
+      return this.javaApi + "/insOrderPlan/uploadFile";
+    }
+  },
+  created() {
+    this.id = this.orderId;
+    this.getUserInfo()
+  },
+  mounted() {
+    this.getTypeDicts() // 鑾峰彇绱ф�ョ▼搴︿笅鎷夋閫夐」
+    this.getInsStateDicts()
+    this.getComparisonList()
+    this.getAuthorizedPerson()
+    this.startWorker()
+  },
+  watch: {
+    // 鐩戝惉浠诲姟id锛岃幏鍙栦换鍔′俊鎭�
+    id(val) {
+      this.loading = true
+      doInsOrder({
+        id: val,
+        laboratory: this.sonLaboratory
+      }).then(async res => {
+        this.insOrder = res.data.insOrder;
+        this.componentData0.entity.insOrderId = val;
+        this.urgentList.forEach(m => {
+          if (m.value == this.insOrder.type) {
+            this.insOrder.typeName = m.label
+          }
+        })
+        if(!res.data.sampleProduct||res.data.sampleProduct.length==0){
+          return this.$message.error('璇ヤ换鍔℃病鏈夋牱鍝佷俊鎭�')
+        }
+        // 璧嬪�煎綋鍓嶆牱鍝佸垪琛�
+        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,
+        }
+        if (this.typeSource == '1') {
+          this.retestTag = '1'
+        }
+        this.getEquipOptions(1)
+        // 鑾峰彇褰撳墠鏍峰搧鐨勬楠岄」
+        let list = await this.getCurrentProduct(this.currentSample.id,0)
+        if (list === undefined) {
+          this.$message.warning('鏆傛棤涓嶅悎鏍煎娴嬫暟鎹�')
+          this.$emit('closeUnPassCheckDialog')
+          return
+        }
+        this.currentSample.insProduct = this.HaveJson(list)
+        // 鍒濆鍖栦紶閫掑埌鍚庣鐨勫弬鏁�
+        this.param = {}
+        this.changeType = 0;
+        this.currentSample.insProduct.forEach(a => {
+          // 鏄惁涓烘垚鍝佺數缂嗕笅鐨勬澗濂楃椤圭洰锛屼笉鏄垯鎵ц鍒濆鍖�
+          if(this.handleCasing(a.inspectionItem)){
+            this.param[a.id] = {
+              insValue: [],
+              comValue: [],
+              resValue: null,
+              equipValue: [],
+              equipName: [],
+              insResult: null
+            }
+          }
+        })
+        await this.determineWhetherToCollectData()//鏄惁闇�瑕佹暟閲�
+        if (this.currentSample.index == undefined) this.currentSample['index'] = 1
+        let bushing = this.currentSample.bushing
+        this.getTableLists();//澶勭悊妯℃澘鍒楄〃淇℃伅
+        this.loading = false
+
+      })
+    },
+    // 鐩戝惉褰撳墠妯℃澘鍙樺寲
+    currentTable(val1, val0) {
+      if (val0 != null && val1 != val0) {
+        if(this.changeType&&this.changeType>0){
+          // 濡傛灉鏄厜绾ゃ�佸厜绾ゅ甫锛屽垯涓嶆墽琛屼笅闈㈡搷浣�
+          return
+        }
+        this.tableLists.forEach(async (m, i) => {
+          if (m.templateId == val1) {
+            let list = await this.getCurrentProduct(this.currentSample.id,0)
+            this.currentSample.insProduct = this.HaveJson(list)//璧嬪�煎綋鍓嶆牱鍝佺殑妫�楠岄」
+            this.param = {}//鍒濆鍖栦紶鍒板悗绔殑鍙傛暟
+            this.currentSample.insProduct.forEach((a, j) => {
+              if(this.handleCasing(a.inspectionItem)){
+                this.param[a.id] = {
+                  insValue: [],
+                  comValue: [],
+                  resValue: null,
+                  equipValue: [],
+                  equipName: [],
+                  insResult: null
+                }
+              }
+            })
+            // 鍘婚噸妯℃澘锛岃繑鍥炴湁鍑犱釜妯℃澘
+            const mySet1 = new Set();
+            this.tableLists = this.currentSample.insProduct.filter(m => {
+              let num0 = mySet1.size;
+              if (m.templateId != null&&m.template != null) {
+                try {
+                  mySet1.add(JSON.stringify({
+                    template: m.template,
+                    templateId: m.templateId
+                  }))
+                } catch (error) {
+                  console.log(222,error);
+                }
+              }
+              let num1 = mySet1.size;
+              if (num1 > num0) {
+                return m
+              }
+            });
+            if (this.tableLists && this.tableLists.length > 0) {
+              this.tableList = null;
+              this.tableList = this.tableLists.filter(m => m.templateId == val1)
+              // 瀵规ā鏉胯繘琛屽鐞�
+              this.handleTableData()
+            }
+          }
+        })
+      }
+    },
+    // 鐗规畩妫�楠岄」--鐩戝惉璁惧淇℃伅鏀瑰彉
+    equipForm:{
+      deep:true,
+      handler(val){
+        if(this.tableLists.find(m=>m.templateId==this.currentTable)&&(this.tableLists.find(m=>m.templateId==this.currentTable).templateName=='娓╁害寰幆妫�楠屽師濮嬭褰�'||this.tableLists.find(m=>m.templateId==this.currentTable).templateName.includes('鐑惊鐜�')||this.tableLists.find(m=>m.templateId==this.currentTable).templateName.includes('娓╁崌璇曢獙'))&&this.equipOptions&&this.equipOptions.length>0){
+          // 鍒濆鍖栬澶囦俊鎭�
+          this.param[this.currentSample.insProduct[0].id].equipValue = []
+          this.param[this.currentSample.insProduct[0].id].equipName = []
+          if(this.equipForm.code0){
+            // 璧嬪�肩涓�涓澶囩殑淇℃伅
+            this.equipForm.value0 = this.equipOptions.find(m=>m.value==this.equipForm.code0).label
+            this.param[this.currentSample.insProduct[0].id].equipValue.push({
+              i:this.currentSample.insProduct[0].id,
+              v:{
+                v:this.equipForm.code0
+              }
+            })
+            this.param[this.currentSample.insProduct[0].id].equipName.push({
+              i:this.currentSample.insProduct[0].id,
+              v:{
+                v:this.equipForm.value0
+              }
+            })
+          }
+          if(this.equipForm.code1){
+            // 璧嬪�肩浜屼釜璁惧鐨勪俊鎭�
+            this.equipForm.value1 = this.equipOptions.find(m=>m.value==this.equipForm.code1).label
+            this.param[this.currentSample.insProduct[0].id].equipValue.push({
+              i:this.currentSample.insProduct[0].id,
+              v:{
+                v:this.equipForm.code1
+              }
+            })
+            this.param[this.currentSample.insProduct[0].id].equipName.push({
+              i:this.currentSample.insProduct[0].id,
+              v:{
+                v:this.equipForm.value1
+              }
+            })
+          }
+          // 淇濆瓨鏁版嵁
+          this.saveInsContext()
+        }
+      }
+    },
+  },
+  beforeDestroy() {
+    // 鍦ㄧ粍浠堕攢姣佸墠纭繚鍋滄 Worker锛岄伩鍏嶅唴瀛樻硠婕�
+    this.stopWorker();
+  },
+  methods: {
+    closeAddVerifyDia () {
+      this.addCheck = false
+      this.checkUser = ''
+    },
+    // 鍏抽棴涓嶅悎鏍煎鐞嗗脊妗�
+    resetForm () {
+      this.$refs.unPassDialog.$refs['unPassForm'].resetFields();
+      this.unPassDialog = false
+    },
+    handleDataAcquisition(data){
+      // 鏄惁鍙互缂栬緫鏁伴噰鏁版嵁
+      if(this.dataAcquisitionEidtAble){
+        this.getDataType = 1;
+      }else{
+        this.getDataType = 2;
+      }
+      this.dataAcquisitionInfo = {}
+      this.getData = []
+      for (let i in data){
+        let obj = {
+          faName:i,
+          child:[]
+        }
+        // 寰幆鏁伴噰鏁版嵁
+        for(let j in data[i]){
+          // 鎷兼帴瀛楃涓�  妫�楠岄」+妫�楠屽瓙椤�
+          let str0 = ''
+          if(i==j){
+            str0 = i+','
+          }else{
+            str0 = i+','+j
+          }
+          if(j!='frequency'&&data[i][j]&&(!data[i][j].result||typeof data[i][j].result == 'string')){
+            // 澶勭悊鏁伴噰淇℃伅鏍煎紡
+            this.dataAcquisitionInfo[str0] = {
+              value:data[i][j].result,
+              frequency:data[i].frequency
+            }
+            let list = this.tableList[0].arr
+            // 寰幆椤甸潰鍒楄〃淇℃伅锛屽垽鏂暟閲囨暟鎹搴旈〉闈㈠垪琛ㄤ俊鎭殑妫�楠岄」鏄摢涓紝骞剁粰褰撳墠妫�楠岄」缁戝畾璁惧淇℃伅
+            list.forEach((item,index)=>{
+              let num0 = 0;
+              let str = ''
+              item.forEach(m=>{
+                if(m.v.ps&&(m.v.ps.value=='妫�楠屽瓙椤�'||m.v.ps.value=='妫�楠岄」')){
+                  if(m.v.ps&&m.v.ps.value=='妫�楠岄」'){
+                    if(num0==0){
+                      str = m.v.v+','
+                      num0++
+                    }
+                  }
+                  if(m.v.ps&&m.v.ps.value=='妫�楠屽瓙椤�'){
+                    if(num0==1){
+                      str = str+m.v.v
+                    }
+                  }
+                }
+                // 缁戝畾璁惧淇℃伅
+                if(data[i][j].equipName&&data[i][j].equipValue&&m.v&&m.v.ps&&m.v.ps.value=='璁惧鍚嶇О'&&str0==str){
+                  if(!m.v.v){
+                    this.changeEquip(data[i][j].equipValue,m,data[i][j].equipName)
+                  }
+                }
+              })
+            })
+          }else if(j!='frequency'&&data[i][j]&&Array.isArray(data[i][j].result)){
+            // 濡傛灉杩斿洖鐨勬暟閲囨暟鎹槸鏁扮粍锛屽垯澶勭悊鏁扮粍
+            // 浠ヤ笅閫昏緫涓鸿幏鍙栨瘡涓楠岄」鍙緭鍏ョ殑妫�楠屽�肩殑鏈�澶т釜鏁�
+            let str0 = ''
+            if(i==j){
+              str0 = i+','
+            }else{
+              str0 = i+','+j
+            }
+            let list = this.tableList[0].arr
+            let maxNum = 0
+            list.forEach((item,index)=>{
+              let num0 = 0;
+              let str = ''
+              item.forEach(m=>{
+                if(m.v.ps&&(m.v.ps.value=='妫�楠屽瓙椤�'||m.v.ps.value=='妫�楠岄」')){
+                  if(m.v.ps&&m.v.ps.value=='妫�楠岄」'){
+                    if(num0==0){
+                      str = m.v.v+','
+                      num0++
+                    }
+                  }
+                  if(m.v.ps&&m.v.ps.value=='妫�楠屽瓙椤�'){
+                    if(num0==1){
+                      str = str+m.v.v
+                    }
+                  }
+                  let num = 0;
+                  list[index].forEach(n=>{
+                    if(n.v.ps&&n.v.ps.value&&typeof n.v.ps.value == 'string'&&n.v.ps.value.includes('妫�楠屽��')){
+                      num++
+                    }
+                  })
+                  if(str0==str){
+                    maxNum = num
+                  }
+                }
+                // 缁戝畾璁惧
+                if(data[i][j].equipName&&data[i][j].equipValue&&m.v&&m.v.ps&&m.v.ps.value=='璁惧鍚嶇О'&&str0==str){
+                  if(!m.v.v){
+                    this.changeEquip(data[i][j].equipValue,m,data[i][j].equipName)
+                  }
+                }
+              })
+            })
+            // 鑾峰彇鍒版渶澶ф楠屽�艰緭鍏ヤ釜鏁板悗閲嶇粍鏁版嵁
+            let obj0 = {
+              name:j,
+              arr:data[i][j].result,
+              maxNum:maxNum,
+              value:[]
+            }
+            // 濡傛灉鏁伴噰杩斿洖鐨勬暟缁勯暱搴﹀ぇ浜庢渶澶ц緭鍏ヤ釜鏁帮紝鍒欏皢鏁伴噰鏁版嵁鍦ㄥ脊妗嗕腑灞曠ず锛岀敤鎴烽�夋嫨闇�瑕佹墜鍔ㄩ�夋嫨鏁伴噰鐨勪俊鎭�
+            if(data[i][j].result&&Array.isArray(data[i][j].result)&&data[i][j].result.length>maxNum){
+              obj.child.push(obj0)
+            }else{
+              this.dataAcquisitionInfo[str0] = {
+                value:data[i][j].result
+              }
+            }
+          }
+        }
+        if(obj.child.length>0){
+          this.getData.push(obj)
+        }
+      }
+      // 濡傛灉瀛樺湪鏁伴噰杩斿洖鐨勬暟缁勯暱搴﹀ぇ浜庢渶澶ц緭鍏ヤ釜鏁帮紝鍒欏脊鍑哄脊妗嗛�夋嫨
+      if(this.getData.length>0){
+        this.dataGetDia = true
+        this.getDataIndex = []
+      }else{
+        // 濡傛灉閮戒笉瀛樺湪锛屽垯锛岃繘鍏ュ鐞嗘暟閲囩嚎绋嬮噷鍘诲鐞嗘暟鎹�
+        try {
+          // 鍚� Worker 鍙戦�佹秷鎭紝寮�濮嬪鐞嗛�昏緫
+          this.getDataIndexLoading = false
+          this.dataGetDia = false
+          this.getDataTypeId = ''
+          this.worker0.postMessage(JSON.stringify({
+            dataAcquisitionInfo: this.dataAcquisitionInfo,
+            list:this.tableList[0].arr
+          }));
+        } catch (error) {
+          console.log(1111,error);
+        }
+      }
+      // 鐩戝惉 Worker 杩斿洖鐨勭粨鏋�
+      this.worker0.onmessage = (event) => {
+        let result = JSON.parse(event.data);
+        if(result.method=='changeInput'){
+          // 閲囬泦鍚庣殑鏁版嵁锛岄渶瑕佽繘琛岃绠楃殑绾跨▼杩涜璁$畻
+          let {list,n} = result.value
+          this.$set(this.tableList[0],'arr',list)
+          this.changeInput('',`${this.currentSample.insProduct[0].templateId}-${n.r}-${n.c}-${n.i}`,n)
+        }else if(result.getDataTypeId){
+          // 鑾峰彇鍒版暟閲囨渶鍚庝竴椤癸紝妫�楠岄」鐨処D
+          this.getDataTypeId = result.getDataTypeId
+        }
+      };
+    },
+    // 濡傛灉瀛樺湪鏁伴噰杩斿洖鐨勬暟缁勯暱搴﹀ぇ浜庢渶澶ц緭鍏ヤ釜鏁帮紝鍒欏脊鍑哄脊妗嗛�夋嫨锛岃繖閲屾槸寮规鐨勬彁浜�
+    submitDataGet(){
+      if(this.getDataIndex.length==0){
+        this.$message.error('璇烽�夋嫨闇�瑕侀噰闆嗙殑鏁版嵁')
+        return
+      }
+      this.getDataIndex.sort((a, b) => a - b);
+      for (let i=0;i<this.getData.length;i++){
+        for(let j=0;j<this.getData[i].child.length;j++){
+          // 瀵圭敤鎴烽�夋嫨鐨勬暟閲囦俊鎭繘琛屽鐞嗭紝璧嬪��
+          let arr = []
+          for(let k=0;k<this.getDataIndex.length;k++){
+            arr.push( this.dataAcquisitionInfoNew[this.getData[i].faName][this.getData[i].child[j].name].result[this.getDataIndex[k]])
+          }
+          this.dataAcquisitionInfoNew[this.getData[i].faName][this.getData[i].child[j].name].result = arr
+        }
+      }
+      this.getDataIndexLoading = true
+      // 璧嬪�煎畬鎴愬悗闇�瑕佸啀娆¤繘鍏ュ鐞嗘暟閲囩嚎绋嬮噷鍘诲鐞嗘暟鎹�
+      this.handleDataAcquisition(this.dataAcquisitionInfoNew)
+    },
+    // 澶氱嚎绋�
+    startWorker() {
+      if (this.worker) {
+        this.stopWorker(); // 纭繚涔嬪墠鐨� Worker 宸插仠姝�
+      }
+      // 鍒涘缓 Worker 瀹炰緥
+      this.worker = new Worker('/static/js/worker.js');
+      if (this.worker0) {
+        this.stopWorker(); // 纭繚涔嬪墠鐨� Worker 宸插仠姝�
+      }
+      // 鍒涘缓 Worker 瀹炰緥
+      this.worker0 = new Worker('/static/js/worker0.js');
+    },
+    // 鍋滄澶氱嚎绋�
+    stopWorker() {
+      if (this.worker) {
+        this.worker.terminate();
+        this.worker = null;
+      }
+      if (this.worker0) {
+        this.worker0.terminate();
+        this.worker0 = null;
+      }
+    },
+    // 鏍规嵁绫诲瀷銆佷换鍔d銆佸疄楠屽鏉ヨ幏鍙栨牱鍝佺殑妫�楠岄」淇℃伅
+    async getCurrentProduct(id,type,cableTag){
+      this.tableLoading = true;
+      type = this.typeSource == '1' ? 5 : type
+      this.type = type
+      const params = {
+        id: id,
+        type: type,
+        laboratory: this.sonLaboratory,
+        retestTag: this.retestTag,
+        rawMaterialTag: this.rawMaterialTag,
+      }
+      let res = getInsProductUnqualifiedRetest(params)
+      if (res.code === 200 && res.data.length > 0) {
+        this.tableLoading = false;
+        this.scrollInit()
+        return res.data
+      }
+    },
+    // 鏉惧绠$殑鍒ゆ柇\濡傛灉changeType涓嶇瓑浜�3閭d箞椤甸潰涓嶅睍绀烘澗濂楃妫�楠岄」
+    handleCasing(inspectionItem){
+      if(this.changeType!=3){
+        if(inspectionItem.includes('鏉惧绠�')){
+          return false
+        }else{
+          return true
+        }
+      }else{
+        return true
+      }
+    },
+    async handleChangeCableTag(m,type, num, m2){
+      let cableTag = ''
+      if (num === 'cableTag') {
+        cableTag = m2
+      }
+      if (!m2) {
+        type = 0
+      }
+      this.changeType = type
+      if(m){
+        let list = await this.getCurrentProduct(m,type, cableTag)
+        if(list.length>0){
+          this.param = {}
+          list.forEach(a => {
+            this.param[a.id] = {
+              insValue: [],
+              comValue: [],
+              resValue: null,
+              equipValue: [],
+              equipName: [],
+              insResult: null
+            }
+          })
+          this.getTableLists0(list)
+          this.worker.postMessage(JSON.stringify({
+            type: 'saveData',
+            tableList:this.tableList,
+            param:this.param,
+            currentTable:this.currentTable,
+            bushing:m
+          }));
+        }else{
+          this.tableLists = []
+          this.tableList = []
+          this.$message.error('妫�楠岄」涓虹┖')
+        }
+      }
+    },
+    // 瀛楀吀鑾峰彇淇℃伅
+    getTypeDicts() {
+      this.getDicts("urgency_level").then((response) => {
+        this.urgentList = this.dictToValue(response.data);
+      });
+    },
+    // 瀛楀吀鑾峰彇淇℃伅
+    getInsStateDicts() {
+      this.getDicts("inspection_task_state").then((response) => {
+        this.typeList = this.dictToValue(response.data);
+      })
+    },
+    // 瀛楀吀鑾峰彇淇℃伅
+    getComparisonList() {
+      this.getDicts("coordinate_transformation").then((response) => {
+        this.comparisonList = this.dictToValue(response.data);
+      });
+    },
+    // 澶勭悊椤甸潰鍒楄〃鏁版嵁--鍘婚噸,鐢熸垚妫�楠屾ā鏉垮垏鎹㈠垪琛�
+    getTableLists() {
+      const mySet1 = new Set();
+      this.tableLists = this.currentSample.insProduct.filter(m => {
+        let num0 = mySet1.size;
+        if (m.templateId != null&&m.template != null) {
+          try {
+            mySet1.add(JSON.stringify({
+              template: m.template,
+              templateId: m.templateId
+            }))
+          } catch (error) {
+            console.log(222,error);
+          }
+        }
+        let num1 = mySet1.size;
+        if (num1 > num0) {
+          return m
+        }
+      });
+      if (this.tableLists && this.tableLists.length > 0) {
+        this.tableList = null;
+        this.tableList = [this.tableLists[0]]
+        this.currentTable = this.tableLists[0].templateId;
+        // 澶勭悊椤甸潰鍒楄〃鏁版嵁
+        this.handleTableData()
+      }
+    },
+    // 鍏夌氦閰嶇疆鐩稿叧妯℃澘table鍒楄〃
+    getTableLists0(list){
+      const mySet1 = new Set();
+      this.tableLists = list.filter(m => {
+        let num0 = mySet1.size;
+        if (m.templateId != null&&m.template != null) {
+          try {
+            mySet1.add(JSON.stringify({
+              template: m.template,
+              templateId: m.templateId
+            }))
+          } catch (error) {
+            console.log(333,error);
+          }
+        }
+        let num1 = mySet1.size;
+        if (num1 > num0) {
+          return m
+        }
+      });
+      if (this.tableLists && this.tableLists.length > 0) {
+        this.tableList = null;
+        this.tableList = [this.tableLists[0]]
+        this.currentTable = this.tableLists[0].templateId;
+        this.currentSample.insProduct = this.HaveJson(list)
+        // 澶勭悊椤甸潰鍒楄〃鏁版嵁
+        this.handleTableData()
+      }
+    },
+    // 澶勭悊椤甸潰鍒楄〃鏁版嵁
+    handleTableData() {
+      console.log("ttt-------->>>>",this.tableList);
+      this.excelMethodList = []//excel鍑芥暟鍒楄〃
+      this.widthList = this.tableList[0].style.columnlen;//椤甸潰瀹藉害--鏍规嵁妯℃澘鏉ョ殑
+      // 娓╁害寰幆妫�楠屽師濮嬭褰�--寮�濮�
+      if(this.tableLists.find(m=>m.templateId==this.currentTable)&&this.tableLists.find(m=>m.templateId==this.currentTable).templateName=='娓╁害寰幆妫�楠屽師濮嬭褰�'){
+        // 瀵硅姹傚�艰繘琛屾媶鍒嗗鐞�,杩涜�屽緱鍑洪〉闈㈠唴瀹�
+        let ask = this.currentSample.insProduct[0].ask
+        let askList = ask.split(';')
+        // 鑾峰彇寰幆娆℃暟
+        this.numOptions = []
+        for (let i = 1; i <= askList[askList.length-1]; i++) {
+          this.numOptions.push({
+            value:i,
+            label:i
+          })
+        }
+        let mySet1 = new Set();
+        askList.forEach((m,i) => {
+          if(i<askList.length-1){
+            mySet1.add(m.split(',')[0].replace('鈩�',''))
+          }
+        })
+        // 鑾峰彇娓╁害鐐瑰垪琛�
+        this.temperatureOptions = []
+        mySet1.forEach(m => {
+          this.temperatureOptions.push({
+            value:String(m),
+            label:m
+          })
+        })
+      }
+      // 娓╁害寰幆妫�楠屽師濮嬭褰�---缁撴潫
+      // 鐑惊鐜楠屽師濮嬭褰�---寮�濮�
+      if(this.tableLists.find(m=>m.templateId==this.currentTable)&&(this.tableLists.find(m=>m.templateId==this.currentTable).templateName.includes('鐑惊鐜�')||this.tableLists.find(m=>m.templateId==this.currentTable).templateName.includes('娓╁崌璇曢獙'))){
+        // 鏍规嵁瑕佹眰鍊兼媶鍒嗘暟鎹�,寰楀埌椤甸潰娓叉煋鐨勪俊鎭�
+        let ask = this.currentSample.insProduct[0].ask
+        let askList = ask.split(';')
+        this.thermalCyclingInfo.max = Number(askList[askList.length-1])
+        let arr = []
+        for (let i = 0; i < askList.length-1; i++) {
+          arr.push(askList[i].split(',')[0])
+        }
+        arr = arr.map(item=>{
+          let obj = {}
+          obj.name = item;
+          if(obj.insResult==null||obj.insResult==undefined){
+            obj.arr = [
+              {
+                value0:'',
+                value1:'',
+              }
+            ]
+            obj.insResult = null;
+          }
+          return obj
+        })
+        this.thermalCyclingInfo.arr = arr;
+      }
+      // 鐑惊鐜楠屽師濮嬭褰�---缁撴潫
+      // 鏈寰幆涓昏鍋氶〉闈㈡覆鏌撳眰闈㈢殑澶勭悊--鍗曞厓鏍煎悎骞堕澶勭悊
+      this.tableList.forEach(a => {
+        let mcList = []
+        a.template.forEach(b => {
+          if (b.v.mc != undefined && b.v.mc.cs != undefined && b.v.mc.rs != undefined) {
+            mcList.push(b)
+          }
+        })
+        let count = 0
+        mcList.forEach(b => {
+          for (var c in a.template) {
+            for (var i = 0; i < b.v.mc.cs; i++) {
+              for (var i2 = 0; i2 < b.v.mc.rs; i2++) {
+                if (a.template[c].c === b.c + i && a.template[c].r === b.r + i2) {
+                  let bb = this.HaveJson(b)
+                  a.template[c].v.v = bb.v.v
+                  a.template[c].v.ps = bb.v.ps
+                  a.template[c].v.fc = bb.v.fc
+                  a.template[c].v.fs = bb.v.fs
+                  a.template[c].v.ht = bb.v.ht
+                  a.template[c].mc = count
+                  break
+                }
+              }
+            }
+          }
+          count++
+        })
+      })
+      // 鏈寰幆涓昏鏄帶鍒跺悎骞�,浠ュ強鎺у埗妫�楠岄」淇℃伅鏄惁灞曠ず鍑烘潵,浠ヤ究鍚庣画妫�楠�
+      this.tableList.forEach(a => {
+        let dels = new Set()//闇�瑕佸垹闄ょ殑琛�
+        let ids = []//鎵�鏈夋楠岄」鐨刬d
+        let set3 = new Set()
+        a.template.forEach(b => {
+          let size1 = set3.size
+          let size2 = set3.add(b.r).size
+          if (size1 < size2) {
+            let str = ''
+            let str2 = ''
+            let unit2 = ''
+            let count4 = 0
+            let isThree = 0
+            a.template.forEach(c => {
+              // 鑾峰彇鍒� 妫�楠岄」鍒嗙被+妫�楠岄」+妫�楠屽瓙椤圭殑鎷兼帴,濡傛灉妯℃澘閲岀殑淇℃伅璺熸帴鍙h繑鍥炵殑妫�楠岄」淇℃伅鑳藉鍖归厤鍒欏睍绀哄嚭鏉�
+              if (b.r === c.r) {
+                if(c.v.ps != undefined && c.v.ps.value === '妫�楠岄」鍒嗙被'&&count4 === 0){
+                  // 涓夌骇鍒嗙被
+                  isThree = 1
+                }else if(c.v.ps != undefined && c.v.ps.value === '妫�楠岄」'&&count4 === 0){
+                  // 浜岀骇鍒嗙被
+                  isThree = 0
+                }
+                if(isThree==0){
+                  if (c.v.ps != undefined && c.v.ps.value === '妫�楠岄」') {
+                    if (count4 === 0) {
+                      str += c.v.v
+                      count4 += 1
+                    }
+                  } else if (c.v.ps != undefined && c.v.ps.value === '妫�楠屽瓙椤�') {
+                    if (count4 === 1) {
+                      str += c.v.v
+                      count4 += 1
+                    }
+                  }
+                }else if(isThree==1){
+                  if (c.v.ps != undefined && c.v.ps.value === '妫�楠岄」鍒嗙被') {
+                    if (count4 === 0) {
+                      str += c.v.v
+                      count4 += 1
+                    }
+                  }else if (c.v.ps != undefined && c.v.ps.value === '妫�楠岄」') {
+                    if (count4 === 1) {
+                      str += c.v.v
+                      count4 += 1
+                    }
+                  } else if (c.v.ps != undefined && c.v.ps.value === '妫�楠屽瓙椤�') {
+                    if (count4 === 2) {
+                      str += c.v.v
+                      count4 += 1
+                    }
+                  }
+                }
+                if (str === '鏈烘鎬ц兘骞叉�佹媺浼稿己搴�(绾靛悜)') {
+                  if (c.v.ps != undefined && c.v.ps.value === '鍗曚綅') {
+                    str2 = str + c.v.v
+                    unit2 = c.v.v
+
+                  }
+                }
+              }
+            })
+            if (str != '') {
+              let count2 = 0
+              for (let i in this.currentSample.insProduct) {
+                let inspectionItemClass = this.currentSample.insProduct[i].inspectionItemClass==null||this.currentSample.insProduct[i].inspectionItemClass==undefined?'':this.currentSample.insProduct[i].inspectionItemClass
+                let inspectionItem = this.currentSample.insProduct[i].inspectionItem==null||this.currentSample.insProduct[i].inspectionItem==undefined?'':this.currentSample.insProduct[i].inspectionItem
+                let inspectionItemSubclass = this.currentSample.insProduct[i].inspectionItemSubclass==null||this.currentSample.insProduct[i].inspectionItemSubclass==undefined?'':this.currentSample.insProduct[i].inspectionItemSubclass
+                if(inspectionItemSubclass === '骞叉�佹媺浼稿己搴�(绾靛悜)') {
+                  // 妫�楠屽瓙椤逛负'骞叉�佹媺浼稿己搴�(绾靛悜)'鏃讹紝妯$増閲屾槸涓や釜璁$畻鍊煎搴旂浉鍚岀殑妫�楠屽�煎苟涓旇绠楁柟寮忎笉鍚岋紝瑕佹牴鎹浉鍚岀殑'鍗曚綅'鍋氱壒娈婄殑娓叉煋
+                  const unit = this.currentSample.insProduct[i].unit
+                  if ((this.currentSample.insProduct[i].templateId === a.templateId && inspectionItemClass +inspectionItem+inspectionItemSubclass+unit === str2) || (this.currentSample.insProduct[i].templateId === a.templateId && !unit2.includes('/')&& inspectionItemClass +inspectionItem+inspectionItemSubclass === str)) {
+                    ids.push({
+                      r: b.r,
+                      id: this.currentSample.insProduct[i].id,
+                      product: this.currentSample.insProduct[i]
+                    })
+                    break
+                  }
+                } else {
+                  // 濡傛灉鐩哥瓑,閭d箞璇存槑鎵惧埌浜�,骞朵笖鎶奿d瀛樿捣鏉�,鍚庣画妫�楠岄」涔熶細鍦ㄩ〉闈腑鏄剧ず鍑烘潵
+                  if (this.currentSample.insProduct[i].templateId === a.templateId && inspectionItemClass +inspectionItem+inspectionItemSubclass === str) {
+                    ids.push({
+                      r: b.r,
+                      id: this.currentSample.insProduct[i].id,
+                      product: this.currentSample.insProduct[i]
+                    })
+                    break
+                  }
+                }
+                count2++
+              }
+              if (count2 == this.currentSample.insProduct.length) {
+                dels.add(b.r)
+              }
+            }
+          }
+        })
+        // 鎿嶄綔鍒犻櫎
+        dels.forEach(del => {
+          for (let b = 0; b < a.template.length; b++) {
+            if (a.template[b].r === del) {
+              a.template.splice(b, 1)
+              b -= 1
+            }
+          }
+        })
+        // 鎿嶄綔璧嬪��--涓昏璧嬪�煎崟浣�,璇曢獙鏂规硶绛変俊鎭�
+        ids.forEach(id => {
+          for (let b = 0; b < a.template.length; b++) {
+            if (a.template[b].r === id.r) {
+              a.template[b].i = id.id
+              if (a.template[b].v.ps != undefined && a.template[b].v.ps.value === '鍗曚綅') {
+                a.template[b].v.v = id.product.unit
+              }
+              if (a.template[b].v.ps != undefined && (a.template[b].v.ps.value === '璇曢獙鏂规硶' || a.template[b].v
+                .ps.value === '妫�娴嬫柟娉�')) {
+                a.template[b].v.v = id.product.methodS
+              }
+            }
+          }
+        })
+        let set2 = new Set()
+        // 鍚堝苟鐨勬暟鎹鐞�,cs  rs  浠h〃鍚堝苟鐨勬暟閲�
+        a.template.forEach(b => {
+          let size1 = set2.size
+          let size2 = set2.add(b.mc).size
+          if (b.mc != undefined && size1 < size2) {
+            b.v.mc.rs = 0
+            b.v.mc.cs = 0
+            a.template.forEach(c => {
+              if (b.mc === c.mc) {
+                if (b.r === c.r) {
+                  b.v.mc.cs += 1
+                }
+                if (b.c === c.c) {
+                  b.v.mc.rs += 1
+                }
+              }
+            })
+          }
+        })
+      })
+      // 鏈寰幆涓昏鏄鍚庣浼犲弬杩涜鍒濆鍖�,鏍峰紡閫昏緫淇敼
+      this.tableList.forEach(a => {
+        let arrs = []
+        let set = new Set()
+        let count1 = 0
+        let conclusionList = []; //缁撹鍒楄〃
+        let finalList = []; //鏈�缁堝�煎垪琛�
+        // 缁撹涓庢渶缁堝�煎湪杩欓噷涓�涓�瀵瑰簲,浠ヤ笅涓や釜鍒楄〃闀垮害鑲畾鏄竴鏍风殑,濡傛灉鏈変笉涓�鏍�,閭d箞澶氬崐鏄ā鏉块厤缃緱闂
+        conclusionList = a.template.filter(n => n.v.ps != undefined && n.v.ps.value === '缁撹')//缁撹鍒楄〃
+        finalList = a.template.filter(n => n.v.ps != undefined && n.v.ps.value === '鏈�缁堝��')//鏈�缁堝�煎垪琛�
+        a.template.forEach( b => {
+          if (b.v.ps != undefined && b.v.ps.value === '搴忓彿' && (b.v.mc == undefined || Object.keys(b.v.mc).length === 4)) {
+            // 瀵瑰簭鍙疯繘琛岃祴鍊�
+            count1++
+            b.v.v = count1
+          }
+          if (b.v.ps != undefined && b.v.ps.value === '瑕佹眰鍊�') {
+            // 瀵硅姹傚�艰繘琛岃祴鍊�
+            b.v.v = this.getAsk(b.i)
+          }
+          // 瀵归〉闈㈢殑鍜岀粰鍚庣浼犲弬鐨勬楠屽��,璁$畻鍊�,璁惧缂栫爜,璁惧鍚嶇О,鏈�缁堝��,缁撹杩涜鍒濆鍖�
+          if (b.v.ps != undefined && typeof b.v.ps.value ==='string'&&b.v.ps.value.includes('妫�楠屽��')) {
+            this.$set(b.v, 'v','' )
+            // b.v.v = ''
+            b.u = ''
+            b.i && this.param[b.i]&&this.param[b.i].insValue.push(b)
+          }
+          if (b.v.ps != undefined && b.v.ps.value === '璁$畻鍊�') {
+            this.$set(b.v, 'v','' )
+            // b.v.v = ''
+            b.i && this.param[b.i]&&this.param[b.i].comValue.push(b)
+          }
+          if (b.v.ps != undefined && b.v.ps.value === '璁惧缂栫爜') {
+            // b.v.v = ''
+            this.$set(b.v, 'v', '' )
+            b.i && this.param[b.i]&&this.param[b.i].equipValue.push(b)
+          }
+          if (b.v.ps != undefined && b.v.ps.value === '璁惧鍚嶇О') {
+            this.$set(b.v, 'v', '' )
+            // b.v.v = ''
+            b.i && this.param[b.i]&&this.param[b.i].equipName.push(b)
+          }
+          if (b.v.ps != undefined && b.v.ps.value === '鏈�缁堝��') {
+            // b.v.v = ''
+            this.$set(b.v, 'v', '' )
+            if (b.i !== undefined&&this.param[b.i]&&!this.param[b.i].resValue) {
+              this.param[b.i].resValue = b
+            }
+          }
+          if (b.v.ps != undefined && b.v.ps.value === '缁撹') {
+            if (b.i !== undefined&&this.param[b.i]&&!this.param[b.i].insResult) {
+              this.param[b.i].insResult = b
+              conclusionList.forEach((n, i) => {
+                if (n.r == b.r && n.c == b.c) {
+                  b.v.f =
+                    `(${this.comparisonList.find(j=>j.value==(finalList[i].c)).label}${finalList[i].r+1})`
+
+                }
+              })
+            }
+          }
+          set.add(b.r)
+          // 濡傛灉妯℃澘鍒楄〃鐨勫嚱鏁板瓨鍦�,閭d箞鍔犲叆鍒癳xcel鍑芥暟鍒楄〃閲岄潰
+          if (b.v.f) {
+            this.excelMethodList.push(b)
+          }
+        })
+        // 浠ヤ笅鏄牱寮忓鐞嗛�昏緫
+        set = Array.sort(set)
+        set.forEach(b => {
+          let arr = []
+          a.template.forEach(c => {
+            if (c.r === b) {
+              arr.push(c)
+            }
+          })
+          arrs.push(arr)
+        })
+        a.arr = arrs
+        this.tableWidth = 0
+        for (let i = 0; i < arrs[0].length; i++) {
+          this.tableWidth += (a.style.columnlen[i] === undefined ? 100 : a.style.columnlen[i])
+        }
+      })
+      // 鏈寰幆涓昏鏄椤甸潰鍙婂悗绔紶鍙傝繘琛屽垵濮嬪寲璧嬪��
+      this.currentSample.insProduct.forEach(async a => {
+        try {
+          // 璁$畻鍊艰祴鍊�
+          let comValue = JSON.parse(a.insProductResult.comValue)
+          for (var i = 0; i < comValue.length; i++) {
+            this.param[a.id].comValue[i].v.v = this.toFixed(comValue[i].v,this.param[a.id].comValue[i].v.ct)
+          }
+        } catch (e) {}
+        try {
+          // 妫�楠屽�艰祴鍊�
+          let insValue = JSON.parse(a.insProductResult.insValue)
+          for (let i = 0; i < insValue.length; i++) {
+            if(this.param[a.id].insValue.find(m=>m.c==insValue[i].c&&m.r==insValue[i].r)){
+              this.param[a.id].insValue.find(m=>m.c==insValue[i].c&&m.r==insValue[i].r).v.v = this.toFixed(insValue[i].v,this.param[a.id].insValue.find(m=>m.c==insValue[i].c&&m.r==insValue[i].r).v.ct)
+              this.param[a.id].insValue.find(m=>m.c==insValue[i].c&&m.r==insValue[i].r).u = insValue[i].u
+              // this.param[a.id].insValue[i].v.v = insValue[i].v
+              // this.param[a.id].insValue[i].u = insValue[i].u
+            }
+          }
+        } catch (e) {}
+        try {
+          // 璁惧缂栧彿璧嬪��
+          let equipValue = JSON.parse(a.insProductResult.equipValue)
+          if(this.tableLists.find(m=>m.templateId==this.currentTable)&&(this.tableLists.find(m=>m.templateId==this.currentTable).templateName=='娓╁害寰幆妫�楠屽師濮嬭褰�'||this.tableLists.find(m=>m.templateId==this.currentTable).templateName.includes('鐑惊鐜�')||this.tableLists.find(m=>m.templateId==this.currentTable).templateName.includes('娓╁崌璇曢獙'))){
+            // 鐗规畩椤圭洰鍒濆鍖�
+            this.param[a.id].equipValue = []
+            for (let i = 0; i < equipValue.length; i++) {
+              this.param[a.id].equipValue.push({
+                v:{
+                  v:''
+                }
+              })
+            }
+          }
+          for (let i = 0; i < equipValue.length; i++) {
+            if(this.tableLists.find(m=>m.templateId==this.currentTable)&&(this.tableLists.find(m=>m.templateId==this.currentTable).templateName=='娓╁害寰幆妫�楠屽師濮嬭褰�'||this.tableLists.find(m=>m.templateId==this.currentTable).templateName.includes('鐑惊鐜�')||this.tableLists.find(m=>m.templateId==this.currentTable).templateName.includes('娓╁崌璇曢獙'))){
+              // 娓╁害寰幆璁惧璧嬪��
+              this.$set(this.equipForm,`code`+i,equipValue[i].v)
+              this.param[a.id].equipValue[i].v.v = equipValue[i].v
+            }else{
+              // 鏅�氳澶囪祴鍊�
+              this.param[a.id].equipValue[i].v.v = equipValue[i].v
+            }
+          }
+        } catch (e) {}
+        try {
+          // 璁惧鍚嶇О璧嬪��
+          let equipName = JSON.parse(a.insProductResult.equipName)
+          for (let i = 0; i < equipName.length; i++) {
+            equipName[i].v !== '' && equipName[i].v.map(val => {
+              const index = this.equipOptions.findIndex(item => item.value === val)
+              if (index > -1) {
+                // 鏍规嵁璁惧缂栫爜杞崲涓虹浉搴旂殑璁惧鍚嶇О
+                val = this.equipOptions[index].deviceName
+              }
+            })
+          }
+          if(this.tableLists.find(m=>m.templateId==this.currentTable)&&(this.tableLists.find(m=>m.templateId==this.currentTable).templateName=='娓╁害寰幆妫�楠屽師濮嬭褰�'||this.tableLists.find(m=>m.templateId==this.currentTable).templateName.includes('鐑惊鐜�')||this.tableLists.find(m=>m.templateId==this.currentTable).templateName.includes('娓╁崌璇曢獙'))){
+            // 璁惧鍚嶇О鍒濆鍖�
+            this.param[a.id].equipName = []
+            for (let i = 0; i < equipName.length; i++) {
+              this.param[a.id].equipName.push({
+                v:{
+                  v:''
+                }
+              })
+            }
+          }
+          for (let i = 0; i < equipName.length; i++) {
+            if(this.tableLists.find(m=>m.templateId==this.currentTable)&&(this.tableLists.find(m=>m.templateId==this.currentTable).templateName=='娓╁害寰幆妫�楠屽師濮嬭褰�'||this.tableLists.find(m=>m.templateId==this.currentTable).templateName.includes('鐑惊鐜�')||this.tableLists.find(m=>m.templateId==this.currentTable).templateName.includes('娓╁崌璇曢獙'))){
+              // 娓╁害寰幆璧嬪��
+              this.$set(this.equipForm,`value`+i,equipName[i].v)
+              this.param[a.id].equipName[i].v.v = equipName[i].v
+            }else{
+              // 鏅�氳澶囧悕绉拌祴鍊�
+              this.param[a.id].equipName[i].v.v = equipName[i].v
+            }
+          }
+        } catch (e) {
+          console.log('璁惧鍚嶇О璧嬪��----', e)
+        }
+        try {
+          // 鏈�缁堝�艰祴鍊�
+          this.param[a.id].resValue.v.v = this.toFixed(a.lastValue,this.param[a.id].resValue.v.ct)
+          // 缁撹璧嬪��
+          this.param[a.id].insResult.v.v = a.insResult
+        } catch (e) {}
+      })
+      // 瀵筫xcel鍑芥暟杩涜澶勭悊
+      this.handleExcelMethod()
+    },
+    // 妫�楠屽�艰緭鍏ュ悗瑙﹀彂鐨勫嚱鏁�
+    changeInput(m, code, n,getDataType) {
+      // 涓烘暟閲囧畾涔変竴涓�昏緫鍙傛暟
+      if(getDataType=='getDataType'){
+        this.getDataType = 2;
+      }
+      let currentInsItemId = null//褰撳墠妫�楠岄」id
+      if (n) {
+        currentInsItemId = JSON.parse(JSON.stringify(n.i))
+        // 瀹氫箟涓�涓嚱鏁版潵楠岃瘉鍒嗘暟鏄惁鏈夋晥
+        if (typeof n.v.v == 'string') {
+          function isValidFraction(fraction) {
+            const [numerator, denominator] = fraction.split('/'); // 鍒嗗瓙鍜屽垎姣�
+            return !(!denominator || !numerator);
+          }
+          const isTrue = isValidFraction(n.v.v)
+          if (!isTrue) {
+            n.v.v = n.v.v.replace('/', '')
+          }
+        }
+      }
+      try {
+        // 鍚� Worker 鍙戦�佹秷鎭紝寮�濮嬪鐞嗛�昏緫
+        this.worker.postMessage(JSON.stringify({
+          code: code,
+          tableList:this.tableList,
+          excelMethodList:this.excelMethodList,
+          comparisonList:this.comparisonList,
+          currentSample:this.currentSample,
+          PROJECT:this.PROJECT,
+          param:this.param,
+          currentTable:this.currentTable,
+          getDataTypeId:this.getDataTypeId,
+          modelType: this.sampleProduct[0].model,
+          currentInsItem: n
+        }));
+      } catch (error) {
+        console.log(444,error);
+      }
+
+      // 鐩戝惉 Worker 杩斿洖鐨勭粨鏋�
+      this.worker.onmessage = (event) => {
+        this.result = JSON.parse(event.data);
+        switch (this.result.method){
+          case 'saveInsContext':
+            console.log(`output->`,11111111111111)
+            this.$nextTick(()=>{
+              // this.$delete(this.tableList[0],'arr')
+              this.$set(this.tableList[0],'arr',this.result.value.tableList[0].arr)
+              this.param = this.result.value.param
+              if(this.result.value.currentInsItem){
+                currentInsItemId = this.result.value.currentInsItem.i
+              }
+              // 鐗规畩澶勭悊涓�涓嬬粨璁�,浼氭湁杩欑鐗规畩鎯呭喌
+              for (var i in this.param){
+                if(this.param[i].insResult&&this.param[i].insResult.v&&this.param[i].insResult.v.v){
+                  if(this.param[i].insResult.v.v=='鍚堟牸'){
+                    this.$set(this.param[i].insResult.v,'v',1)
+                  }else if(this.param[i].insResult.v.v=='涓嶅悎鏍�'){
+                    this.$set(this.param[i].insResult.v,'v',0)
+                  }
+                }
+              }
+            })
+            break;
+          case 'tableList':
+            this.$nextTick(()=>{
+              // 鏇存柊鏁版嵁
+              this.$delete(this.tableList[0],'arr')
+              this.$set(this.tableList[0],'arr',this.result.value[0].arr)
+              // this.param = this.result.value.param
+              if(this.result.value.currentInsItem){
+                currentInsItemId = this.result.value.currentInsItem.i
+              }
+            })
+            break;
+          case 'getCurrentInsProduct':
+            // 鏇存柊椤甸潰鏁版嵁
+            this.getCurrentInsProduct(this.result.value)
+            break;
+        }
+      };
+      // 淇濆瓨鏁版嵁
+      setTimeout(()=>{
+        this.saveInsContext(currentInsItemId)
+      },200)
+    },
+    // 鏄惁闇�瑕佹暟閲�
+    async determineWhetherToCollectData(){
+      let res = determineWhetherToCollectData({managementNumber: ''})
+      this.isGet =  res.data
+    },
+    // 鏍规嵁鍚庣浼犲弬鏇存柊椤甸潰鏁版嵁   param => this.tableList[0].insProductResult
+    getCurrentInsProduct(pId) {
+      if (!this.tableList[0].insProductResult) {
+        this.tableList[0].insProductResult = {}
+      }
+      for (let m in this.param[pId]) {
+        let value = this.param[pId][m]
+        switch (m) {
+          case 'comValue':
+            // 璧嬪�艰绠楀��
+            if (value && value.length > 0) {
+              this.tableList[0].insProductResult[m] = [];
+              value.forEach((a, i) => {
+                let obj = {
+                  v: a.v.v,
+                }
+                this.tableList[0].insProductResult[m].push(obj);
+              })
+              try {
+                this.tableList[0].insProductResult[m] = JSON.stringify(this.tableList[0].insProductResult[m])
+              } catch (error) {
+                console.log(555,error);
+              }
+            }
+            break;
+          // 璧嬪�兼楠屽��
+          case 'insValue':
+            if (value && value.length > 0) {
+              this.tableList[0].insProductResult[m] = [];
+              value.forEach((a, i) => {
+                let obj = {
+                  v: a.v.v,
+                  u: a.u,
+                }
+                this.tableList[0].insProductResult[m].push(obj);
+              })
+              try {
+                this.tableList[0].insProductResult[m] = JSON.stringify(this.tableList[0].insProductResult[m])
+              } catch (error) {
+                console.log(666,error);
+              }
+            }
+            break;
+          // 璧嬪�艰澶囩紪鍙�
+          case 'equipValue':
+            if (value && value.length > 0) {
+              this.tableList[0].insProductResult[m] = [];
+              value.forEach((a, i) => {
+                let obj = {
+                  v: a.v.v,
+                }
+                this.tableList[0].insProductResult[m].push(obj);
+              })
+              try {
+                this.tableList[0].insProductResult[m] = JSON.stringify(this.tableList[0].insProductResult[m])
+              } catch (error) {
+                console.log(777,error);
+              }
+            }
+            break;
+          // 璧嬪�艰澶囧悕绉�
+          case 'equipName':
+            if (value && value.length > 0) {
+              this.tableList[0].insProductResult[m] = [];
+              value.forEach((a, i) => {
+                let obj = {
+                  v: a.v.v,
+                }
+                this.tableList[0].insProductResult[m].push(obj);
+              })
+              try {
+                this.tableList[0].insProductResult[m] = JSON.stringify(this.tableList[0].insProductResult[m])
+              } catch (error) {
+                console.log(888,error);
+              }
+            }
+            break;
+          // 璧嬪�兼渶缁堝��
+          case 'resValue':
+            this.tableList[0].lastValue = value?value.v.v:''
+            break;
+          // 璧嬪�肩粨璁�
+          case 'insResult':
+            this.tableList[0].insResult = value?value.v.v:''
+            break;
+        }
+      }
+    },
+    // 瀵笶XCEL鍑芥暟杩涜澶勭悊
+    handleExcelMethod() {
+      if (this.excelMethodList.length > 0) {
+        this.excelMethodList.map(item => {
+          // 寰楀埌姣忎釜鍑芥暟鐨勫弬鏁板垪琛�
+          item.valueList = excelFunction.changeParameter(item.v.f);
+          return item;
+        })
+      }
+    },
+    getValue(v){
+      // 瀵归〉闈㈠睍绀烘暟鎹繘琛屽鐞�,@,浠h〃鎹㈣
+      let str = v.v?v.v:(v.v===0?v.v:(v.ct&&v.ct.s?v.ct.s.length>0&&v.ct.s[0].v.replace(new RegExp('\n', 'g'), '<br/>').replace(new RegExp('@', 'g'), '<br/>'):''))
+      // 瀵规暟鎹繚鐣欏皬鏁扮偣杩涜澶勭悊
+      if(v.ct&&v.ct.fa&&v.ct.fa.includes('.')&&str){
+        let num = 0
+        let str0 = v.ct.fa.split('.')[1]
+        num = str0.length
+        str = Number(str).toFixed(num)
+      }
+      if(v.v&&typeof v.v == 'string'&&v.v.includes('@')){
+        str = v.v.replace(new RegExp('@', 'g'), '<br/>')
+      }
+      return str
+    },
+    // 鑾峰彇褰撳墠杈撳叆妗嗙被鍨�
+    getInspectionValueType(id) {
+      for (var a in this.currentSample.insProduct) {
+        if (this.currentSample.insProduct[a].id == id) {
+          return this.currentSample.insProduct[a].inspectionValueType
+        }
+      }
+    },
+    // 鑾峰彇瑕佹眰鎻忚堪
+    getTell(id) {
+      for (var a in this.currentSample.insProduct) {
+        if (this.currentSample.insProduct[a].id == id) {
+          return this.currentSample.insProduct[a].tell
+        }
+      }
+    },
+    // 鍔ㄦ�佽幏鍙栧崟鍏冩牸瀹藉害
+    handleWidth(n) {
+      let sum = 0;
+      if (n.v.mc && n.v.mc.cs && n.v.mc.c != undefined) {
+        for (let i = 0; i < n.v.mc.cs; i++) {
+          let num = this.widthList[i + n.v.mc.c] ? this.widthList[i + n.v.mc.c] : 100
+          sum += num;
+        }
+      } else {
+        sum = this.widthList[n.c] ? this.widthList[n.c] : 100
+      }
+      return sum
+    },
+    // 瀵硅緭鍏ュ�艰繘琛屾牸寮忔牎楠�
+    handleInput (n) {
+      try {
+        n.v.v = n.v.v.replace(/[^\d.^e>\-/+]/g, '');
+        n.v.v = n.v.v.replace(/\.{2,}/g,"."); //鍙繚鐣欑涓�涓�. 娓呴櫎澶氫綑鐨�
+        n.v.v = n.v.v.replace(".","$#$").replace(/\./g,"").replace("$#$",".");
+        n.v.v = n.v.v.replace(/\/{2,}/g,"/"); //鍙繚鐣欑涓�涓�/娓呴櫎澶氫綑鐨�
+        n.v.v = n.v.v.replace("/","$#$").replace(/\//g,"").replace("$#$","/");
+      } catch (error) {
+        console.log(error);
+      }
+
+    },
+    getInspectionItemType(id) {
+      for (var a in this.currentSample.insProduct) {
+        if (this.currentSample.insProduct[a].id == id) {
+          return this.currentSample.insProduct[a].inspectionItemType
+        }
+      }
+    },
+    // 鑾峰彇瑕佹眰鍊�
+    getAsk(id) {
+      for (var a in this.currentSample.insProduct) {
+        if (this.currentSample.insProduct[a].id == id) {
+          return this.currentSample.insProduct[a].ask
+        }
+      }
+    },
+    getSystemValue(n) {
+      let code = null
+      try {
+        this.param[n.i].equipValue.forEach(a=>{
+          if(a.r === n.r){
+            if (a.v.v == null || a.v.v == '') {
+              this.$message.error('璇峰厛閫夋嫨閲囬泦鐨勮澶�')
+              return
+            }else{
+              code = a.v.v
+            }
+          }
+        })
+      } catch (e) {
+        // console.log(e);
+        this.$message.error('鎵句笉鍒拌澶囧唴瀹�')
+      }
+      // console.log(n, code);
+      fetch('http://localhost:82/寰俊鍥剧墖_20240518100811.png').then(res=>res.blob()).then(blob=>{
+        // console.log(blob);
+        const url = URL.createObjectURL(blob)
+        // console.log(url);
+      })
+      /* this.$message.error('閲囬泦澶辫触銆愬凡寮�鏀炬墜鍔ㄦ柟寮忋��')
+        for (var a in this.currentSample.insProduct) {
+          if (this.currentSample.insProduct[a].id == n.i) {
+            this.currentSample.insProduct[a].inspectionItemType = 0
+          }
+        } */
+    },
+    // 鑾峰彇鎵�鏈夎澶�
+    getEquipOptions(e, id) {
+      if (e) {
+        this.equipOptions = []
+        search({ status: 0 }).then(res => {
+          if (res.code === 200 && res.data) {
+            this.equipOptions = res.data.map(m => {
+              m.value = m.managementNumber
+              m.label = m.deviceName
+              return m
+            })
+          }
+        }).catch(error => {
+          console.error(error)
+        })
+      }
+    },
+    getUserInfo() {
+      getUserNow().then(res => {
+        this.userId = res.data.id
+      })
+    },
+    // 澶嶆牳
+    upInsReview(e) {
+      if (e == 1) {
+        // 閫氳繃
+        this.reviewLoading = true;
+        verifyPlan({
+          orderId: this.orderId,
+          type: 1,
+          laboratory: this.sonLaboratory,
+          tell: null,
+          userId: this.checkUser
+        }).then(res => {
+          if (res.code === 200) {
+            this.$message.success("鎿嶄綔鎴愬姛")
+            this.$emit('goback')
+            this.addCheck = false
+          }
+          this.reviewLoading = false;
+        }).catch(error => {
+          console.error(error)
+          this.reviewLoading = false;
+        })
+      } else {
+        // 涓嶉�氳繃
+        this.reviewDia = true;
+      }
+    },
+    handleReviewDia() {
+      if (this.noReason) {
+        this.reviewLoading = true;
+        verifyPlan({
+          orderId: this.orderId,
+          type: 0,
+          laboratory: this.sonLaboratory,
+          tell: this.noReason
+        }).then(res => {
+          if (res.code === 200) {
+            this.$message.success("鎿嶄綔鎴愬姛")
+            this.$emit('goback')
+          }
+          this.reviewLoading = false;
+        }).catch(error => {
+          console.error(error)
+          this.reviewLoading = false;
+        })
+      } else {
+        this.$message.error('鏈緭鍏ヤ笉閫氳繃鍘熷洜')
+      }
+    },
+    submit() {
+      if (this.verifyUser === null || this.verifyUser === '') {
+        this.$message.error("璇锋寚瀹氬鏍镐汉鍛�")
+        return
+      }
+      if(!this.otherForm.humidity){
+        this.$message.error("璇疯緭鍏ユ箍搴�")
+        return
+      }
+      if(!this.otherForm.temperature){
+        this.$message.error("璇疯緭鍏ユ俯搴�")
+        return
+      }
+      this.submitLoading = true;
+      checkSubmitPlan({
+        orderId: this.orderId,
+        laboratory: this.sonLaboratory,
+      }).then(res => {
+        if (res.code === 200) {
+          if(!res.data||res.data.length==0){
+            this.submitLoading = true;
+            submitPlan({
+              orderId: this.orderId,
+              laboratory: this.sonLaboratory,
+              verifyUser: this.verifyUser,
+              entrustCode: this.insOrder.entrustCode
+            }).then(res => {
+              if (res.code === 200) {
+                this.$message.success("鎿嶄綔鎴愬姛")
+                this.$emit('goback')
+                this.submitLoading = false;
+                this.addVerifyDia = false
+              }
+            }).catch(error => {
+              console.error(error)
+              this.submitLoading = false;
+            })
+          }else{
+            let newData = []
+            const h = this.$createElement
+            for (let i in res.data) {
+              const lastChar = res.data[i].slice(-1);
+              if(lastChar=='-'){
+                res.data[i] = res.data[i].slice(0, -1);
+              }
+              newData.push(h('p', {style: 'font-size: 14px;color: red;'}, (Number(i)+1)+'銆�'+res.data[i]))
+            }
+            newData.push(h('p',  { style: 'font-size: 16px;color:#000;margin-top:12px;overflow-y: auto;max-height:80vh' },'浠ヤ笂椤圭洰涓嶅悎鏍硷紝纭畾鎻愪氦锛�'))
+            this.$confirm('鎻愮ず',{
+              title:'鎻愮ず',
+              message: h('div', null, newData),
+              confirmButtonText: "纭畾",
+              cancelButtonText: "鍙栨秷",
+              type: ""
+            }).then(() => {
+              this.submitLoading = true;
+              submitPlan({
+                orderId: this.orderId,
+                laboratory: this.sonLaboratory,
+                verifyUser: this.verifyUser
+              }).then(res => {
+                if (res.code === 200) {
+                  this.$message.success("鎿嶄綔鎴愬姛")
+                  this.addVerifyDia = false
+                  this.$emit('goback')
+                }
+                this.submitLoading = false;
+              }).catch(error => {
+                console.error(error)
+                this.submitLoading = false;
+              })
+            }).catch(() => {})
+          }
+        }
+      }).catch(error => {
+        console.error(error)
+        this.submitLoading = false;
+      })
+      return
+    },
+    // 缁熶竴鍦ㄨ繖閲屼繚瀛樻暟鎹�
+    saveInsContext(currentInsItemId) {
+      try {
+        if(this.param){
+          let param = null
+          if(currentInsItemId){
+            param = {[currentInsItemId] : this.param[currentInsItemId]}
+          }else{
+            param = this.param
+          }
+          saveUnqualifiedContext({
+            param: JSON.stringify(param),
+            currentTable:this.currentTable,
+            sampleId:this.currentSample.id
+          }).then(res => {
+            if (res.code == 201) {
+              this.$message.error('淇濆瓨澶辫触')
+              return
+            }
+            this.$message.success('宸蹭繚瀛�')
+          })
+          // 鍚� Worker 鍙戦�佹秷鎭紝寮�濮嬪鐞嗛�昏緫
+          this.worker.postMessage(JSON.stringify({
+            modelType: this.sampleProduct[0].model,
+            type: 'saveData',
+            tableList:this.tableList,
+            param:this.param,
+            currentTable:this.currentTable
+          }));
+        }
+      }catch (error) {
+        console.log(999,error);
+      }
+    },
+    // 璁惧鏀瑰彉
+    changeEquip(val, n, v) {
+      try {
+        // this.$set(n.v,'v',val)
+        this.tableList[0].arr.forEach((item,index)=>{
+          item.forEach((m,i)=>{
+            if(this.param[m.i]){
+              this.param[m.i].state = 1
+            }
+            // if(m.i==n.i&&m.v.ps&&m.v.ps.value=='璁惧鍚嶇О'&&v){
+            //   this.$set(m.v,'v',v)
+            // }
+          })
+        })
+        for (let i in this.param) {
+          if(this.param[i].state!=1){
+            delete this.param[i]
+          }
+        }
+        // if(val&&v){
+        //   for (let i1 in this.param[n.i].equipName) {
+        //     if (this.param[n.i].equipName[i1].i === n.i && this.param[n.i].equipName[i1].r === n.r) {
+        //       this.$delete(this.param[n.i].equipValue[i1].v,'v')
+        //       this.$set(this.param[n.i].equipValue[i1].v,'v',val)
+        //       this.$delete(this.param[n.i].equipName[i1].v,'v')
+        //       this.$set(this.param[n.i].equipName[i1].v,'v',v)
+        //     }
+        //   }
+        // }
+        // this.equipOptions涓鸿澶囧悕绉颁笅鎷夋閫夐」鏁版嵁
+        for (let i1 in this.param[n.i].equipName) {
+          if (this.param[n.i].equipName[i1].i === n.i && this.param[n.i].equipName[i1].r === n.r) {
+            this.$delete(this.param[n.i].equipValue[i1].v,'v')
+            // 灏嗘暟缁勮祴鍊肩粰璁惧缂栫爜
+            this.$set(this.param[n.i].equipValue[i1].v,'v',val.join('锛�'))
+            this.$delete(this.param[n.i].equipName[i1].v,'v')
+            // 灏嗘暟缁勮祴鍊肩粰璁惧缂栫爜
+            this.$set(this.param[n.i].equipName[i1].v,'v',val)
+            this.tableList[0].arr.forEach((item,index)=>{
+              item.forEach((m)=>{
+                if(m.i==n.i&&m.v.ps&&m.v.ps.value=='璁惧缂栫爜'){
+                  this.$set(m.v,'v',val.join('锛�'))
+                }
+                if(m.i==n.i&&m.v.ps&&m.v.ps.value=='璁惧鍚嶇О'){
+                  this.$set(m.v,'v',val)
+                }
+              })
+            })
+          }
+        }
+        // 淇濆瓨鏁版嵁
+        this.saveInsContext(n.i)
+      } catch (e) {
+        console.log('changeEquip----', e)
+      }
+    },
+    getAuthorizedPerson() {
+      selectUserCondition({ type: 0 }).then((res) => {
+        let data = [];
+        res.data.forEach((a) => {
+          data.push({
+            label: a.name,
+            value: a.id,
+          });
+        });
+        this.personList = data;
+      });
+    },
+    scrollInit() {
+      // 鑾峰彇瑕佺粦瀹氫簨浠剁殑鍏冪礌
+      const nav = document.getElementById("tableBox")
+      let flag; // 榧犳爣鎸変笅
+      let downX; // 榧犳爣鐐瑰嚮鐨剎涓嬫爣
+      let scrollLeft; // 褰撳墠鍏冪礌婊氬姩鏉$殑鍋忕Щ閲�
+      nav.addEventListener("mousedown", function(event) {
+        flag = true;
+        downX = event.clientX; // 鑾峰彇鍒扮偣鍑荤殑x涓嬫爣
+        scrollLeft = this.scrollLeft; // 鑾峰彇褰撳墠鍏冪礌婊氬姩鏉$殑鍋忕Щ閲�
+      });
+      nav.addEventListener("mousemove", function(event) {
+        if (flag) { // 鍒ゆ柇鏄惁鏄紶鏍囨寜涓嬫粴鍔ㄥ厓绱犲尯鍩�
+          let moveX = event.clientX; // 鑾峰彇绉诲姩鐨剎杞�
+          let scrollX = moveX - downX; // 褰撳墠绉诲姩鐨剎杞翠笅鏍囧噺鍘诲垰鐐瑰嚮涓嬪幓鐨剎杞翠笅鏍囧緱鍒伴紶鏍囨粦鍔ㄨ窛绂�
+          this.scrollLeft = scrollLeft - scrollX // 榧犳爣鎸変笅鐨勬粴鍔ㄦ潯鍋忕Щ閲忓噺鍘诲綋鍓嶉紶鏍囩殑婊戝姩璺濈
+        }
+      });
+      // 榧犳爣鎶捣鍋滄鎷栧姩
+      nav.addEventListener("mouseup", function() {
+        flag = false;
+      });
+      // 榧犳爣绂诲紑鍏冪礌鍋滄鎷栧姩
+      nav.addEventListener("mouseleave", function(event) {
+        flag = false;
+      });
+    },
+    async caretTape(num){
+      let index = this.currentKey1 + num
+      if(index < 1){
+        this.$message.error('褰撳墠鏄涓�涓厜绾ゅ甫')
+        return
+      } else if(index > this.fiberOpticTape.length){
+        this.$message.error('褰撳墠鏄渶鍚庝竴涓厜绾ゅ甫')
+        return
+      }
+      this.currentKey1 = index
+      this.currentFiberOpticTape = this.HaveJson(this.fiberOpticTape[index - 1])
+      this.param = {}
+      this.fiberOptic = []
+      this.currentFiberOptic = null;
+      this.currentFiberOpticTape.productList.forEach(a => {
+        this.param[a.id] = {
+          insValue: [],
+          comValue: [],
+          resValue: null,
+          equipValue: [],
+          equipName: [],
+          insResult: null
+        }
+      })
+      this.fiberOpticTapeVisible = false;
+      let list = await this.getCurrentProduct(this.currentFiberOpticTape.id,1)
+      this.getTableLists0(list)
+      if(this.currentFiberOpticTape.fiber&&this.currentFiberOpticTape.fiber.length>0){
+        // 閰嶇疆鍏夌氦
+        this.fiberOptic = this.currentFiberOpticTape.fiber;
+      }
+    },
+    async caretOptic(num){
+      let index = this.currentKey2 + num
+      if(index < 1){
+        this.$message.error('褰撳墠鏄涓�涓厜绾�')
+        return
+      } else if(index > this.fiberOptic.length){
+        this.$message.error('褰撳墠鏄渶鍚庝竴涓厜绾�')
+        return
+      }
+      this.currentKey2 = index
+      this.currentFiberOptic = this.HaveJson(this.fiberOptic[index - 1])
+      this.currentFiberOptic.productList.forEach(a => {
+        this.param[a.id] = {
+          insValue: [],
+          comValue: [],
+          resValue: null,
+          equipValue: [],
+          equipName: [],
+          insResult: null
+        }
+      })
+      let list = await this.getCurrentProduct(this.currentFiberOptic.id,2)
+      this.getTableLists0(list)
+    },
+    beforeUpload(file) {
+      if (file.size > 1024 * 1024 * 10) {
+        this.$message.error('涓婁紶鏂囦欢涓嶈秴杩�10M');
+        this.$refs.upload.clearFiles()
+        return false;
+      } else {
+        this.upLoading = true;
+        return true;
+      }
+    },
+    onError(err, file, fileList) {
+      this.$message.error('涓婁紶澶辫触')
+      this.$refs.upload.clearFiles()
+    },
+    handleDown(row){
+      downFile({
+        id: row.id,
+      }).then(res => {
+        if (res.code === 200) {
+          let url = '';
+          if(res.data.type==1){
+            url = this.javaApi+'/img/'+res.data.fileUrl
+            file.downloadIamge(url,row.fileName)
+          }else{
+            url = this.javaApi+'/word/'+res.data.fileUrl
+            const link = document.createElement('a');
+            link.href = url;
+            link.download = row.fileName;
+            link.click();
+          }
+        }
+      }).catch(error => {
+
+      })
+    },
+    /**
+     * 灏嗘暟鍊紇淇濈暀ct.fa涓�'##'鍚庣殑鎸囧畾灏忔暟浣嶆暟锛屽苟杩斿洖鏍煎紡鍖栧悗鐨勫瓧绗︿覆銆�
+     *
+     * @param v 瑕佹牸寮忓寲鐨勬暟鍊�
+     * @param ct 鍖呭惈鏍煎紡鍖栭厤缃殑瀵硅薄
+     * @param ct.fa 鏍煎紡鍖栭厤缃瓧绗︿覆锛岃嫢鍖呭惈'##'鍒欐寜鐓у叾鍚庣殑鍐呭纭畾灏忔暟浣嶆暟
+     * @returns 鏍煎紡鍖栧悗鐨勫瓧绗︿覆鎴栧師濮嬫暟鍊硷紙鑻ラ厤缃笉绗﹀悎瑕佹眰锛�
+     */
+    toFixed(v,ct){
+      if(v&&ct&&ct.fa){
+        if(ct.fa.includes('.')){
+          let num = ct.fa.slice(4).length
+          return Number(v).toFixed(num)
+        }else{
+          return v
+        }
+      }else{
+        return v
+      }
+    }
+  }
+}
+</script>
+<style scoped>
+.custom-table .el-table__header-wrapper th {
+  background-color: #87CEEB; /* 鍙甯︽湁my-custom-table绫荤殑琛ㄦ牸鐢熸晥 */
+  color: #fff;
+}
+.container {
+  overflow: auto; /* 纭繚瀹瑰櫒鑳藉寘瑁规诞鍔ㄥ厓绱� */
+  margin-bottom: 10px;
+}
+
+.right-button {
+  float: right;
+}
+.inspection {
+  height: 100%;
+  overflow-y: auto;
+}
+
+.inspection::-webkit-scrollbar {
+  width: 0;
+}
+
+.title {
+  height: 60px;
+  line-height: 60px;
+}
+
+.search {
+  width: 100%;
+  margin-bottom: 10px;
+  background-color: #fff;
+  border-radius: 3px;
+}
+
+.search .form-inline {
+  padding-top: 20px;
+  padding-left: 0px;
+  text-align: left;
+}
+
+.center {
+  width: calc(100% - 40px);
+  /* max-height: 580px; */
+  background-color: #fff;
+  border-radius: 3px;
+  padding: 20px;
+  overflow: auto;
+}
+
+.center-box {
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  flex-direction: column;
+  flex-wrap: wrap;
+  width: 100%;
+  overflow-x: auto;
+  /* overflow-x: scroll; */
+  cursor: grab;
+}
+
+.center-box:active{
+  cursor: grabbing;
+}
+
+.tables {
+  table-layout: fixed;
+  margin: 5px 5px 16px;
+}
+
+.tables td {
+  height: 40px;
+  width: 100px;
+  text-align: center;
+  font-size: 14px;
+  word-wrap: break-word;
+  white-space: normal;
+}
+.thermal-table{
+  min-width: calc(100% - 10px);
+  margin: 5px 5px 0;
+  table-layout: fixed;
+}
+.thermal-table td {
+  min-width: 70px;
+  text-align: center;
+  font-size: 14px;
+  word-wrap: break-word;
+  white-space: normal;
+  padding: 5px;
+}
+.table-container {
+  overflow-x: auto; /* 浣垮鍣ㄦ敮鎸佹í鍚戞粴鍔� */
+  max-width: 100%;  /* 闄愬埗瀹瑰櫒鐨勬渶澶у搴� */
+  margin-bottom: 16px;
+}
+
+.content {
+  display: flex;
+  height: 100%;
+  align-items: center;
+  justify-content: left;
+  padding: 5px;
+  box-sizing: border-box;
+  overflow: hidden;
+  user-select: none;
+}
+
+.content *{
+  user-select: none;
+}
+
+.content-h-0 {
+  justify-content: center;
+}
+
+.content-h-1 {
+  justify-content: start;
+}
+
+.content-h-2 {
+  justify-content: end;
+}
+
+.content-v-0 {
+  align-items: center;
+}
+
+.content-v-1 {
+  align-items: start;
+}
+
+.content-v-2 {
+  align-items: end;
+}
+
+.table_input {
+  width: 100%;
+  height: 100%;
+}
+.table_input >>>.el-input__inner{
+  border-color: rgba(0, 0, 0, 0.5) !important;
+}
+
+.collection {
+  width: 50px;
+  height: 100%;
+  margin-left: 5px;
+  border-color: transparent;
+  background-color: #409eff;
+  color: #fff;
+  border-radius: 4px;
+  font-size: 12px;
+}
+
+.collection:active {
+  opacity: .7;
+}
+.table_caret{
+  font-size: 16px;
+  margin: 0 5px;
+  color: rgba(0, 0, 0, 0.5);
+}
+.table_caret:hover{
+  color: #409eff;
+  cursor: pointer;
+}
+
+.table_caret:active{
+  opacity: .8;
+}
+>>>input::-webkit-inner-spin-button {
+  -webkit-appearance: none !important;  /* 闅愯棌寰皟鎸夐挳 */
+  margin: 0 !important;  /* 绉婚櫎寰皟鎸夐挳鐨勮竟璺� */
+}
+
+>>>input[type=number] {
+  -moz-appearance: textfield !important;  /* 閽堝 Firefox */
+}
+>>>.el-form-item__content{
+  display: inline-flex;
+  align-items: center;
+}
+</style>
+<style>
+.inspection .el-form-item__label {
+  color: #000;
+}
+
+.inspection .el-drawer__header::before {
+  content: "";
+  display: inline-block;
+  width: 4px;
+  height: 30.24px;
+  background: #3A7BFA;
+  border-radius: 10px;
+  margin-left: 32px;
+  margin-right: 8.5px;
+}
+
+.inspection .el-drawer__header {
+  color: #303133;
+  text-align: left;
+}
+
+.inspection .el-input-group__append {
+  padding: 0 14px;
+  color: #3A7BFA;
+  background-color: #fff;
+  height: 100%;
+  display: flex;
+  align-items: center;
+}
+
+.inspection .center-box .el-input__inner {
+  font-size: 12px;
+  padding: 0 6px;
+  text-align: center;
+}
+
+.inspection .el-textarea__inner {
+  padding: 2px;
+}
+
+.inspection .el-textarea__inner::-webkit-scrollbar {
+  width: 0;
+}
+
+.inspection .el-select {
+  display: flex;
+  align-items: center;
+}
+
+.inspection .el-textarea__inner {
+  min-height: 100% !important;
+}
+
+.inspection .tables .el-input{
+  display: flex;
+  align-items: center;
+}
+.thermal-table .el-input{
+  display: flex;
+  align-items: center;
+}
+.custom-dialog .el-dialog__body {
+  max-width: 1000px; /* 璁剧疆鏈�澶у搴� */
+}
+.unPassCheck .el-dialog__body {
+  overflow: auto;
+  max-height: 800px; /* 璁剧疆鏈�澶у搴� */
+}
+</style>
diff --git a/src/views/business/inspectionTask/inspection.vue b/src/views/business/inspectionTask/inspection.vue
index 3a77d1f..9b70b4e 100644
--- a/src/views/business/inspectionTask/inspection.vue
+++ b/src/views/business/inspectionTask/inspection.vue
@@ -94,8 +94,8 @@
           </el-radio-group>
         </div>
         <div style="display: flex; align-items: center">
-          <el-button v-if="state === 1" size="small" type="primary" @click="openAddUnpass">鏂板涓嶅悎鏍煎娴�</el-button>
-          <el-button v-if="state === 1" size="small" type="primary" @click="unpassCheck">涓嶅悎鏍煎娴�</el-button>
+          <el-button v-if="state == 1" size="small" type="primary" @click="openAddUnpass">鏂板涓嶅悎鏍煎娴�</el-button>
+          <el-button v-if="state == 1" size="small" type="primary" @click="unpassCheck">涓嶅悎鏍煎娴�</el-button>
           <el-button v-if="state > 1" size="small" type="primary" @click="viewUnpassCheck">鏌ョ湅涓嶅悎鏍煎娴�</el-button>
           <span v-if="cableTagList.length > 0">&nbsp;&nbsp;鐢电紗閰嶇疆锛�</span>
           <el-select v-if="cableTagList.length > 0" v-model="currentTab" clearable placeholder="璇烽�夋嫨" size="small"
@@ -508,9 +508,9 @@
       @resetAddUnPass="resetAddUnPass"></add-un-pass>
     <UnPassDialog v-if="unPassDialog" ref="unPassDialog" :orderId="orderId" :unPassDialog="unPassDialog"
       @resetForm="resetForm"></UnPassDialog>
-    <!-- <InspectionWord v-if="unPassCheck" :inspectorList="inspectorList" :orderId="orderId"
+    <InspectionWord v-if="unPassCheck" :inspectorList="inspectorList" :orderId="orderId"
       :rawMaterialTag="rawMaterialTag" :sonLaboratory="sonLaboratory" :state="state" :typeSource="typeSource"
-      :unPassCheck="unPassCheck" @closeUnPassCheckDialog="closeUnPassCheckDialog" @refreshView="refreshView" /> -->
+      :unPassCheck="unPassCheck" @closeUnPassCheckDialog="closeUnPassCheckDialog" @refreshView="refreshView" />
     <purchase-verification v-if="purchaseDialog" ref="purchaseDialog" :orderId="orderId"
       :purchaseDialog="purchaseDialog" @resetPurchaseDialog="resetPurchaseDialog"></purchase-verification>
   </div>
@@ -521,7 +521,7 @@
 import limsTable from "@/components/Table/lims-table.vue";
 import UnPassDialog from "../unpass/components/addUnPass.vue";
 import AddUnPass from "../unpass/components/addUnPass.vue";
-// import InspectionWord from "./components/InspectionWord.vue";
+import InspectionWord from "./components/InspectionWord.vue";
 import PurchaseVerification from "../unpass/components/PurchaseVerification.vue";
 import {
   doInsOrder,
@@ -554,7 +554,7 @@
     AddUnPass,
     limsTable,
     UnPassDialog,
-    // InspectionWord,
+    InspectionWord,
   },
   data() {
     return {
diff --git a/src/views/business/unpass/components/addUnPass.vue b/src/views/business/unpass/components/addUnPass.vue
index c1777e9..ed3c3cd 100644
--- a/src/views/business/unpass/components/addUnPass.vue
+++ b/src/views/business/unpass/components/addUnPass.vue
@@ -31,7 +31,7 @@
 </template>
 
 <script>
-import { getInsProductUnqualified } from '@/api/business/unpass.js'
+import {addUnqualifiedRetest, getInsProductUnqualified} from '@/api/business/unpass.js'
 export default {
   name: "addUnPass",
   // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�

--
Gitblit v1.9.3