zouyu
2024-08-08 c263fb316fc23d9db98ce711fda30d81c28d2d9c
src/components/do/b1-inspect-order-plan/Inspection.vue
@@ -22,7 +22,7 @@
  .search .form-inline {
    padding-top: 20px;
    padding-left: 50px;
    padding-left: 0px;
  }
  .center {
@@ -125,6 +125,9 @@
    width: 100%;
    height: 100%;
  }
  .table_input >>>.el-input__inner{
    border-color: rgba(0, 0, 0, 0.5) !important;
  }
  .collection {
    width: 50px;
@@ -143,7 +146,7 @@
  .table_caret{
    font-size: 16px;
    margin: 0 5px;
    color: rgba(0, 0, 0, 0.1);
    color: rgba(0, 0, 0, 0.5);
  }
  .table_caret:hover{
    color: #409eff;
@@ -226,6 +229,9 @@
    display: flex;
    align-items: center;
  }
  .custom-dialog .el-dialog__body {
    max-width: 1000px; /* 设置最大宽度 */
  }
</style>
<template>
  <div v-loading="loading" class="inspection">
@@ -248,18 +254,20 @@
      </el-col>
    </el-row>
    <div class="search">
      <el-form :inline="true" :model="searchForm" class="form-inline" label-width="100px">
      <el-form :inline="true" :model="searchForm" class="form-inline" label-width="100px" label-position="right">
        <el-form-item label="委托编号:">
          <el-input clearable v-model="insOrder.entrustCode" disabled size="small" placeholder="请输入"></el-input>
        </el-form-item>
        <el-form-item label="样品编号:">
          <el-input clearable v-model="currentSample.sampleCode" disabled size="small" placeholder="请输入"></el-input>
          <el-tooltip :disabled="!currentSample.sampleCode" :content="currentSample.sampleCode">
            <el-input clearable v-model="currentSample.sampleCode" disabled size="small" placeholder="请输入" ></el-input>
          </el-tooltip>
        </el-form-item>
        <el-form-item label="样品名称:">
          <el-input clearable v-model="currentSample.sample" disabled size="small" placeholder="请输入"></el-input>
        </el-form-item>
        <el-form-item label="样品数量:">
          <el-input clearable v-model="sampleProduct.length" disabled size="small" placeholder="请输入"></el-input>
          <el-input clearable v-model="sampleProduct.length" disabled size="small" placeholder="请输入" ></el-input>
        </el-form-item>
        <el-form-item label="下发时间:">
          <el-input clearable v-model="insOrder.sendTime" disabled size="small" placeholder="请输入"></el-input>
@@ -273,6 +281,10 @@
        <el-form-item label="当前样品位数:">
          <el-tag v-if="currentKey">{{ `NO.${currentKey}` }}</el-tag>
        </el-form-item>
        <el-form-item label="备注:">
          <span style="color:red">{{ insOrder.remark?insOrder.remark:'-' }}</span>
          <!-- <el-tag v-if="currentKey">{{ insOrder.remark }}</el-tag> -->
        </el-form-item>
      </el-form>
    </div>
    <div class="center">
@@ -285,8 +297,19 @@
          </el-radio-group>
        </div>
        <div style="display: flex;align-items: center;">
          <span v-if="casing.length>0&&tableLists.find(m=>m.templateId==currentTable)&&tableLists.find(m=>m.templateId==currentTable).templateName=='成品缆检验原始记录'">&nbsp;&nbsp;套管:</span>
          <el-select v-model="currentTab" placeholder="请选择" @change="m=>handleChange(m,3)" v-if="casing.length>0&&tableLists.find(m=>m.templateId==currentTable)&&tableLists.find(m=>m.templateId==currentTable).templateName=='成品缆检验原始记录'" size="small" :loading="getReportModelLoading" @focus="getReportModel(currentSample.id)">
            <el-option
              v-for="item in casing"
              :key="item.id"
              :label="item.color"
              :value="item.id">
              <span style="float: left">{{ item.color}}</span>
              <el-tag :type="item.state==1?'success':'danger'" style="float: right;margin-top: 5px;" size="small">{{ item.state==1?'已检':'未检' }}</el-tag>
            </el-option>
          </el-select>
          <span v-if="fibers.length>0&&tableLists.find(m=>m.templateId==currentTable)&&tableLists.find(m=>m.templateId==currentTable).templateName!='温度循环检验原始记录'">&nbsp;&nbsp;光纤带:</span>
          <el-select v-model="currentTab" placeholder="请选择" @change="m=>handleChange(m,1)" v-if="fibers.length>0&&tableLists.find(m=>m.templateId==currentTable)&&tableLists.find(m=>m.templateId==currentTable).templateName!='温度循环检验原始记录'" size="small">
          <el-select v-model="currentTab" placeholder="请选择" @change="m=>handleChange(m,1)" v-if="fibers.length>0&&tableLists.find(m=>m.templateId==currentTable)&&tableLists.find(m=>m.templateId==currentTable).templateName!='温度循环检验原始记录'" size="small" :loading="getReportModelLoading" @focus="getReportModel(currentSample.id)">
            <el-option
              v-for="item in fibers"
              :key="item.value"
@@ -297,7 +320,7 @@
            </el-option>
          </el-select>
          <span v-if="fiber.length>0&&tableLists.find(m=>m.templateId==currentTable)&&tableLists.find(m=>m.templateId==currentTable).templateName!='温度循环检验原始记录'">&nbsp;&nbsp;光纤:</span>
          <el-select v-model="currentTab" placeholder="请选择" @change="m=>handleChange(m,2)" v-if="fiber.length>0&&tableLists.find(m=>m.templateId==currentTable)&&tableLists.find(m=>m.templateId==currentTable).templateName!='温度循环检验原始记录'" size="small">
          <el-select v-model="currentTab" placeholder="请选择" @change="m=>handleChange(m,2)" v-if="fiber.length>0&&tableLists.find(m=>m.templateId==currentTable)&&tableLists.find(m=>m.templateId==currentTable).templateName!='温度循环检验原始记录'" size="small" :loading="getReportModelLoading" @focus="getReportModel(currentSample.id)">
            <el-option
              v-for="item in fiber"
              :label="item.bushColor+'-'+item.color"
@@ -317,8 +340,8 @@
              <span style="margin-left: 4px;">%</span>
            </el-form-item>
          </el-form>
          <el-button type="primary" size="small" v-if="(dataAcquisitionEidt>0||tableLists.find(m=>m.templateId==currentTable)&&tableLists.find(m=>m.templateId==currentTable).templateName=='温度循环检验原始记录'&&temDataAcquisition)&&PROJECT=='检测中心'&&state==1" @click="getDataAcquisitionDevice" :loading="dataAcquisitionLoading">数据采集</el-button>
          <el-button :type="dataAcquisitionEidtAble?'':'primary'" size="small" v-if="(dataAcquisitionEidt>0||(tableLists.find(m=>m.templateId==currentTable)&&tableLists.find(m=>m.templateId==currentTable).templateName=='温度循环检验原始记录'))&&PROJECT=='检测中心'&&collected&&state==1" @click="dataAcquisitionEidtAble=!dataAcquisitionEidtAble">{{dataAcquisitionEidtAble?'关闭编辑':'编辑数采'}}</el-button>
          <el-button type="primary" size="small" v-if="(isGet||tableLists.find(m=>m.templateId==currentTable)&&tableLists.find(m=>m.templateId==currentTable).templateName=='温度循环检验原始记录'&&temDataAcquisition)&&PROJECT=='检测中心'&&state==1" @click="getDataAcquisitionDevice" :loading="dataAcquisitionLoading">数据采集</el-button>
          <el-button :type="dataAcquisitionEidtAble?'':'primary'" size="small" v-if="(isGet||(tableLists.find(m=>m.templateId==currentTable)&&tableLists.find(m=>m.templateId==currentTable).templateName=='温度循环检验原始记录'))&&PROJECT=='检测中心'&&collected&&state==1" @click="dataAcquisitionEidtAble=!dataAcquisitionEidtAble">{{dataAcquisitionEidtAble?'关闭编辑':'编辑数采'}}</el-button>
        </div>
      </div>
      <div class="center-box" id="nav" v-loading="tableLoading" v-if="!tableLists.find(m=>m.templateId==currentTable)||(tableLists.find(m=>m.templateId==currentTable).templateName!='温度循环检验原始记录'&&!tableLists.find(m=>m.templateId==currentTable).templateName.includes('热循环')&&!tableLists.find(m=>m.templateId==currentTable).templateName.includes('温升试验'))">
@@ -335,7 +358,8 @@
                    <el-input v-if="getInspectionValueType(n.i) == 1" class="table_input" v-model="n.v.v"
                              :disabled="(getInspectionItemType(n.i) == 1 && !dataAcquisitionEidtAble )|| (n.u != userId && n.u != undefined && n.u != '')"
                              @input="handleInput(n)"
                              @change="m=>changeInput(m,`${item.templateId}-${n.r}-${n.c}-${n.i}`, n)" @mousewheel.native.prevent :key="'abc-'+'000'+index+'000'+i+'000'+j">
                              @change="m=>changeInput(m,`${item.templateId}-${n.r}-${n.c}-${n.i}`, n)" @mousewheel.native.prevent :key="'abc-'+'000'+index+'000'+i+'000'+j"
                              @keydown.enter="changeInput('',`${item.templateId}-${n.r}-${n.c}-${n.i}`, n)">
                      <!-- <el-button slot="append" type="primary" icon="el-icon-edit" size="mini"
                        v-if="getInspectionItemType(n.i) == 1" @click="getSystemValue(n)"></el-button> -->
                    </el-input>
@@ -344,7 +368,7 @@
                      :disabled="getInspectionItemType(n.i) == 1 || (n.u != userId && n.u != undefined && n.u != '')"
                      @change="m=>changeInput(m,`${item.templateId}-${n.r}-${n.c}-${n.i}`)" />
                    <el-select v-else-if="getInspectionValueType(n.i) == 5" class="table_input" v-model="n.v.v"
                      :disabled="state>1" @visible-change="e=>getDic(e,n.i)"
                      :disabled="state>1||getInspectionItemType(n.i) == 1 || (n.u != userId && n.u != undefined && n.u != '')" @visible-change="e=>getDic(e,n.i)"
                       @change="m=>changeInput(m,`${item.templateId}-${n.r}-${n.c}-${n.i}`)">
                      <el-option v-for="(e, i) in enumList" :key="i" :label="e.label" :value="e.value"></el-option>
                    </el-select>
@@ -364,7 +388,8 @@
                    </template>
                  </template>
                  <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='设备编码' && state==1">
                    <el-select v-model="n.v.v" placeholder="设备" @visible-change="e=>getEquipOptions(e,n.i)" remote
                    <el-select v-model="n.v.v" placeholder="设备"
                    class="table_input" @visible-change="e=>getEquipOptions(e,n.i)" remote
                      @change="(val)=>changeEquip(val, n)">
                      <el-option v-for="item in equipOptions" :key="item.value" :label="item.value" :value="item.value">
                      </el-option>
@@ -739,6 +764,7 @@
              size="medium" style="margin-right: 5px;">{{item.label}}</el-tag>
          </template>
        </el-table-column>
        <el-table-column prop="checkName" label="检验人" min-width="80px" show-overflow-tooltip></el-table-column>
        <el-table-column prop="isLeave" label="是否留样" width="95px" show-overflow-tooltip align="center">
          <template slot-scope="scope">
            <span>{{ scope.row.isLeave==0?'否':'是' }}</span>
@@ -784,7 +810,7 @@
        <el-button type="primary" @click="submit()">确 定</el-button>
      </span>
    </el-dialog>
    <el-dialog title="数据采集" :visible.sync="dataGetDia" min-width="400px" :close-on-click-modal="false" :close-on-press-escape="false" :before-close="beforeDataGetDia">
    <el-dialog title="数据采集" :visible.sync="dataGetDia" :close-on-click-modal="false" :close-on-press-escape="false" :show-close="false" custom-class="custom-dialog">
      <div>
        <table border="1" cellpadding="10" class="thermal-table">
          <tr>
@@ -796,23 +822,19 @@
            <tr>
              <td :rowspan="item.child.length">{{item.faName}}</td>
              <td>{{ item.child[0].name }}</td>
              <td>
              <td style="text-align: left;">
                <el-checkbox-group
                  v-model="item.child[0].value"
                  :min="0"
                  :max="item.child[0].maxNum">
                  <el-checkbox v-for="(n,j) in item.child[0].arr" :label="n" :key="j+'ppppppppp'">{{n}}</el-checkbox>
                  v-model="getDataIndex" :max="item.child[0].maxNum">
                  <el-checkbox v-for="(n,j) in item.child[0].arr" :label="j" :key="j+'ppppppppp'">{{n}}</el-checkbox>
                </el-checkbox-group>
              </td>
            </tr>
            <tr v-for="(m,i) in item.child" :key="i+'bbbbbbbbbbbbbb'" v-show="i>0">
              <td>{{ m.name }}</td>
              <td>
              <td style="text-align: left;">
                <el-checkbox-group
                  v-model="m.value"
                  :min="0"
                  :max="m.maxNum">
                  <el-checkbox v-for="(n,j) in m.arr" :label="n" :key="j+'bbbbbbbbbbbbbb'">{{n}}</el-checkbox>
                  v-model="getDataIndex" :max="m.maxNum">
                  <el-checkbox v-for="(n,j) in m.arr" :label="j" :key="j+'bbbbbbbbbbbbbb'">{{n}}</el-checkbox>
                </el-checkbox-group>
              </td>
            </tr>
@@ -820,8 +842,7 @@
        </table>
      </div>
      <span slot="footer" class="dialog-footer">
        <el-button @click="beforeDataGetDia()">取 消</el-button>
        <el-button type="primary" @click="submitDataGet()">确 定</el-button>
        <el-button type="primary" @click="submitDataGet()" :loading="getDataIndexLoading">确 定</el-button>
      </span>
    </el-dialog>
  </div>
@@ -922,6 +943,8 @@
          requiredUp: []
        },
        upIndex: 0,
        changeType:null,
        getReportModelLoading:false,
        insOrder: {},
        sampleProduct: [],
        typeList: [],
@@ -964,6 +987,7 @@
        temptList:null,
        fiber:[],
        fibers:[],
        casing:[],
        currentTab:null,
        wareForm:{
          inspectionItem:1,
@@ -988,8 +1012,9 @@
        worker0: null,
        wareLength:[],
        dataAcquisitionInfo:{},
        dataAcquisitionEidt:0,
        dataAcquisitionInfoNew:{},
        dataAcquisitionEidtAble:false,
        isGet:false,
        dataAcquisitionLoading:false,
        collected:false,
        // 热循环---开始
@@ -1008,15 +1033,11 @@
            child:[
              {
                name:'1285nm~1330nm',
                arr:[12,13],
                maxNum:1,
                value:[]
                arr:[12,13,14,15],
              },
              {
                name:'1525nm~1575nm',
                arr:[12,13],
                maxNum:1,
                value:[]
                arr:[12,13,14,15],
              },
            ]
          },
@@ -1026,12 +1047,12 @@
              {
                name:'截至波长',
                arr:[12,13,14,15],
                maxNum:3,
                value:[]
              }
            ]
          }
        ]
        ],
        getDataIndex:[],
        getDataIndexLoading:false
      }
    },
    computed: {
@@ -1100,6 +1121,7 @@
              insResult: null
            }
          })
          this.determineWhetherToCollectData()
          this.getReportModel(this.currentSample.id)
          if (this.currentSample.index == undefined) this.currentSample['index'] = 1
          let bushing = this.currentSample.bushing
@@ -1121,7 +1143,16 @@
        })
      },
      currentTable(val1, val0) {
        if (val0 != null && val1 != val0) {
        if(val0 !=null && val1 != val0){
        if(this.tableLists.find(m=>m.templateId==val1)&&(this.tableLists.find(m=>m.templateId==val1).templateName=='成品缆检验原始记录')){
          if(this.casing.length>0){
            this.handleChange(this.casing[0].id,3)
          }
          return
        }
        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)
@@ -1161,11 +1192,9 @@
                this.tableList = this.tableLists.filter(m => m.templateId == val1)
                this.handleTableData()
              }
              // this.$delete(this.tableList,0)
              // this.$set(this.tableList, 0, m)
              // this.handleTableData()
            }
          })
          this.handleCasing()
        }
      },
      equipForm:{
@@ -1208,21 +1237,6 @@
          }
        }
      },
      param:{
        deep:true,
        handler(val){
          this.dataAcquisitionEidt = 0
          if(val){
            for (let key in val) {
              val[key].equipValue.forEach(m=>{
                if(m.isItADataAcquisitionDevice){
                  this.dataAcquisitionEidt++
                }
              })
            }
          }
        }
      }
    },
    beforeDestroy() {
      // 在组件销毁前确保停止 Worker,避免内存泄漏
@@ -1267,51 +1281,159 @@
            if(res.code!=200){
              return
            }
            this.dataAcquisitionInfo = res.data
            try {
              // 向 Worker 发送消息,开始处理逻辑
              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)
              }
            };
            this.dataAcquisitionInfoNew = this.HaveJson(res.data)
            this.handleDataAcquisition(res.data)
          })
        }
      },
      beforeDataGetDia(done){
        this.$confirm('是否取消数据采集?', "提示", {
          confirmButtonText: "确定",
          cancelButtonText: "取消",
          type: "warning"
        }).then(() => {
          if(done){
            done()
          }else{
            this.dataGetDia = false
      handleDataAcquisition(data){
        this.dataAcquisitionInfo = {}
        this.getData = []
        for (let i in data){
          let obj = {
            faName:i,
            child:[]
          }
        }).catch(() => {})
          for(let j in data[i]){
            if(j!='frequency'&&data[i][j]&&typeof data[i][j].result == 'string'){
              this.dataAcquisitionInfo[i+','+j] = {
                value:data[i][j].result,
                frequency:data[i].frequency
              }
              let list = this.tableList[0].arr
              list.forEach((item,index)=>{
                let num0 = 0;
                let str = ''
                let str0 = i+','+j
                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 = 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[i+','+j] = {
                  value:data[i][j].result
                }
              }
            }
          }
          if(obj.child.length>0){
            this.getData.push(obj)
          }
        }
        if(this.getData.length>0){
          this.dataGetDia = true
        }else{
          try {
            // 向 Worker 发送消息,开始处理逻辑
            this.getDataIndexLoading = false
            this.dataGetDia = false
            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)
          }
        };
      },
      submitDataGet(){},
      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 已停止
          this.stopWorker(); // 确保之前的 Worker 已停止
        }
        // 创建 Worker 实例
        this.worker = new Worker('/static/js/worker.js');
        if (this.worker0) {
        this.stopWorker(); // 确保之前的 Worker 已停止
          this.stopWorker(); // 确保之前的 Worker 已停止
        }
        // 创建 Worker 实例
        this.worker0 = new Worker('/static/js/worker0.js');
@@ -1445,6 +1567,23 @@
                      ]
                      obj.value0 = insValue[0].v
                      obj.value1 = insValue[1].v
                    }else if(insValue&&insValue.length==1){
                      this.param[obj.id].insValue = [
                        {
                          i:obj.id,
                          v:{
                            v:insValue[0].v
                          }
                        },
                        {
                          i:obj.id,
                          v:{
                            v:''
                          }
                        }
                      ]
                      obj.value0 = insValue[0].v
                      obj.value1 = ''
                    }
                    break;
                  case 'comValue':
@@ -1914,6 +2053,7 @@
        this.currentSample = this.HaveJson(row)
        let list = await this.getCurrentProduct(row.id,0)
        this.currentSample.insProduct = this.HaveJson(list)
        this.handleCasing()
        this.currentSample.insProduct.forEach(a => {
          this.param[a.id] = {
            insValue: [],
@@ -1933,17 +2073,32 @@
        this.getTableLists();
        this.currentKey = row.index
        this.currentTab = null;
        this.worker.postMessage(JSON.stringify({
          type: 'saveData',
          tableList:this.tableList,
          param:this.param,
          currentTable:this.currentTable
        }));
      },
      handleCasing(){
        if(this.tableLists.find(m=>m.templateId==this.currentTable)&&(this.tableLists.find(m=>m.templateId==this.currentTable).templateName!='成品缆检验原始记录')){
          this.currentSample.insProduct = this.currentSample.insProduct.filter(m=>!m.inspectionItem.includes('松套管'))
        }
      },
      getReportModel(id){
        if(this.PROJECT!='检测中心'){
          return
        }
        this.getReportModelLoading = true
        this.$axios.post(this.$api.insOrderPlan.getReportModel+'?sampleId='+id, {}).then(res => {
          this.getReportModelLoading = false
          this.fibers = res.data['光纤带']
          this.fiber = res.data['光纤']
          this.casing = res.data['套管']
        })
      },
      async handleChange(m,type){
        this.changeType = type;
        if(m){
          let list = await this.getCurrentProduct(m,type)
          if(list.length>0){
@@ -1959,6 +2114,13 @@
            })
            this.getTableLists0(list)
            this.getReportModel(this.currentSample.id)
            this.worker.postMessage(JSON.stringify({
              type: 'saveData',
              tableList:this.tableList,
              param:this.param,
              currentTable:this.currentTable,
              bushing:m
            }));
          }else{
            this.tableLists = []
            this.tableList = []
@@ -2337,15 +2499,18 @@
              b.i && this.param[b.i].comValue.push(b)
            }
            if (b.v.ps != undefined && b.v.ps.value === '设备编码') {
              b.v.v = ''
              // b.v.v = ''
              this.$set(b.v, 'v', '' )
              b.i && this.param[b.i].equipValue.push(b)
            }
            if (b.v.ps != undefined && b.v.ps.value === '设备名称') {
              b.v.v = ''
              this.$set(b.v, 'v', '' )
              // b.v.v = ''
              b.i && this.param[b.i].equipName.push(b)
            }
            if (b.v.ps != undefined && b.v.ps.value === '最终值') {
              b.v.v = ''
              // b.v.v = ''
              this.$set(b.v, 'v', '' )
              /* if (b.i === undefined) {
                for (var c in this.param) {
                  this.param[c].resValue = b
@@ -2393,14 +2558,14 @@
          try {
            let comValue = JSON.parse(a.insProductResult.comValue)
            for (var i = 0; i < comValue.length; i++) {
              this.param[a.id].comValue[i].v.v = comValue[i].v
              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 = insValue[i].v
                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
@@ -2426,23 +2591,6 @@
                this.param[a.id].equipValue[i].v.v = equipValue[i].v
              }else{
                this.param[a.id].equipValue[i].v.v = equipValue[i].v
                if(equipValue[i].v){
                  let isItADataAcquisitionDevice = await this.determineWhetherToCollectData(equipValue[i].v)
                  this.param[a.id].equipValue[i].isItADataAcquisitionDevice = isItADataAcquisitionDevice
                }else{
                  this.param[a.id].equipValue[i].isItADataAcquisitionDevice = false
                }
                this.dataAcquisitionEidt = 0
                if(this.param){
                  for (let key in this.param) {
                    this.param[key].equipValue.forEach(m=>{
                      if(m.isItADataAcquisitionDevice){
                        this.dataAcquisitionEidt++
                      }
                    })
                  }
                }
              }
            }
          } catch (e) {}
@@ -2469,13 +2617,40 @@
            }
          } catch (e) {}
          try {
            this.param[a.id].resValue.v.v = a.lastValue
            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) {}
        })
        this.handleExcelMethod()
      },
      changeInput(m, code, n) {
        // let str = code.split('-')
        // let pId = str[3]
        // if(!this.param[pId].equipValue||this.param[pId].equipValue.length==0||!this.param[pId].equipValue[0].v.v){
        //   let inspectionItem = ''
        //   let idS = []
        //   let child = 0
        //   for (let i in this.currentSample.insProduct) {
        //     if(this.currentSample.insProduct[i].id==pId){
        //       inspectionItem = this.currentSample.insProduct[i].inspectionItem
        //     }
        //   }
        //   for (let i in this.currentSample.insProduct) {
        //     if(this.currentSample.insProduct[i].inspectionItem==inspectionItem&&this.currentSample.insProduct[i].id!=pId){
        //       idS.push(this.currentSample.insProduct[i].id)
        //     }
        //   }
        //   for (let i = 0;i<idS.length;i++) {
        //     if(this.param[idS[i]].equipValue&&this.param[idS[i]].equipValue.length>0&&this.param[idS[i]].equipValue[0].v.v){
        //       child++
        //     }
        //   }
        //   if(child==0){
        //     n.v.v = null
        //     this.$message.error('请先填写设备信息')
        //     return
        //   }
        // }
        if (n) {
          // if (this.PROJECT === '装备电缆') {
          //   let num2 = new this.$Big(n.v.v)
@@ -2525,18 +2700,6 @@
                    }
                  }
                }
                // let obj = this.param[code.split('-')[3]]
                // this.tableList[0].arr.forEach(item=>{
                //   item.forEach(m=>{
                //     if(obj&&obj.insResult&&m.c==obj.insResult.c&&m.r==obj.insResult.r){
                //       m.v.v = obj.insResult.v.v
                //     }
                //     if(obj&&obj.resValue&&m.c==obj.resValue.c&&m.r==obj.resValue.r){
                //       m.v.v = obj.resValue.v.v
                //     }
                //   })
                // })
                // console.log(this.tableList,this.param)
                this.saveInsContext()
              })
              break;
@@ -2552,9 +2715,9 @@
          }
        };
      },
      async determineWhetherToCollectData(managementNumber){
        let res = await this.$axios.get(this.$api.deviceScope.determineWhetherToCollectData+'?managementNumber='+managementNumber)
        return res.data
      async determineWhetherToCollectData(){
        let res = await this.$axios.get(this.$api.deviceScope.determineWhetherToCollectData+"?managementNumber=''")
        this.isGet =  res.data
      },
      handleFraction(str){
        if(str&&typeof(str)=='string'&&str.includes('/')){
@@ -2675,6 +2838,15 @@
      },
      getValue(v){
        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) {
@@ -2794,7 +2966,7 @@
        this.$axios.get(this.$api.user.getUserInfo).then(res => {
          this.userId = res.data.id
          this.componentData.entity.userId = res.data.id
          console.log(1111,this.userId)
          // console.log(1111,this.userId)
        })
      },
      // 复核
@@ -2946,11 +3118,15 @@
          console.log(999,error);
        }
      },
      changeEquip(val, n) {
      changeEquip(val, n,v) {
        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)
            }
          })
        })
@@ -2959,30 +3135,35 @@
            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)
            }
          }
        }
        for (let i in this.equipOptions) {
          if (this.equipOptions[i].value === val) {
          if (this.equipOptions[i].value == val) {
            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',this.equipOptions[i].label)
                this.param[n.i].equipValue[i1].isItADataAcquisitionDevice = this.equipOptions[i].isItADataAcquisitionDevice
                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',this.equipOptions[i].label)
                    }
                  })
                })
              }
            }
          }
        }
        this.dataAcquisitionEidt = 0
        if(this.param){
          for (let key in this.param) {
            this.param[key].equipValue.forEach(m=>{
              if(m.isItADataAcquisitionDevice){
                this.dataAcquisitionEidt++
              }
            })
          }
        }
        // console.log(this.param)
        this.saveInsContext()
      },
      getAuthorizedPerson() {
@@ -3040,6 +3221,7 @@
        this.currentSample = this.HaveJson(this.sampleProduct[index - 1])
        let list = await this.getCurrentProduct(this.currentSample.id,0)
        this.currentSample.insProduct = this.HaveJson(list)
        this.handleCasing()
        this.param = {}
        this.currentSample.insProduct.forEach(a => {
          this.param[a.id] = {
@@ -3052,6 +3234,12 @@
          }
        })
        this.getTableLists()
        this.worker.postMessage(JSON.stringify({
          type: 'saveData',
          tableList:this.tableList,
          param:this.param,
          currentTable:this.currentTable
        }));
      },
      caretBushing(num){
        let index = this.currentKey0 + num
@@ -3183,12 +3371,12 @@
       * @returns 格式化后的字符串或原始数值(若配置不符合要求)
       */
      toFixed(v,ct){
        if(v&&ct&&ct.fa&&ct.fa.includes('##')){
        if(v&&ct&&ct.fa){
          if(ct.fa.includes('.')){
            let num = ct.fa.slice(4).length
            return Number(v).toFixed(num)
          }else{
            return Number(v).toFixed(0)
            return v
          }
        }else{
          return v