licp
2024-07-25 25f23d0761c7949068176db038cea74c4401fc04
src/components/do/b1-inspect-order-plan/Inspection.vue
@@ -64,6 +64,7 @@
    white-space: normal;
  }
  .thermal-table{
    min-width: calc(100% - 10px);
    margin: 5px 5px 0;
    table-layout: fixed;
  }
@@ -308,16 +309,16 @@
          </el-select>
          <el-form :inline="true" :model="otherForm" class="form-inline" label-width="50px" style="padding-top: 0;padding-left: 10px;" v-if="PROJECT=='检测中心'">
            <el-form-item label="温度:" style="margin-bottom: 0;">
              <el-input v-model="otherForm.temperature" size="small" placeholder="" style="width: 90px;" @change="m=>subOtherForm(m,'temperature')"></el-input>
              <el-input v-model="otherForm.temperature" :disabled="state>1" size="small" placeholder="" style="width: 90px;" @change="m=>subOtherForm(m,'temperature')" ></el-input>
              <span style="margin-left: 4px;">℃</span>
            </el-form-item>
            <el-form-item label="湿度:" style="margin-bottom: 0;">
              <el-input v-model="otherForm.humidity" size="small" placeholder="" style="width: 90px;" @change="m=>subOtherForm(m,'humidity')"></el-input>
              <el-input v-model="otherForm.humidity" :disabled="state>1" size="small" placeholder="" style="width: 90px;" @change="m=>subOtherForm(m,'humidity')"></el-input>
              <span style="margin-left: 4px;">%</span>
            </el-form-item>
          </el-form>
          <el-button type="primary" size="small" v-if="dataAcquisitionEidt>0&&PROJECT=='检测中心'" @click="getDataAcquisitionDevice" :loading="dataAcquisitionLoading">数据采集</el-button>
          <el-button :type="dataAcquisitionEidtAble?'':'primary'" size="small" v-if="dataAcquisitionEidt>0&&PROJECT=='检测中心'&&collected" @click="dataAcquisitionEidtAble=!dataAcquisitionEidtAble">{{dataAcquisitionEidtAble?'关闭编辑':'编辑数采'}}</el-button>
          <el-button type="primary" size="small" v-if="dataAcquisitionEidt>0&&PROJECT=='检测中心'&&state==1" @click="getDataAcquisitionDevice" :loading="dataAcquisitionLoading">数据采集</el-button>
          <el-button :type="dataAcquisitionEidtAble?'':'primary'" size="small" v-if="dataAcquisitionEidt>0&&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!='热循环检验原始记录')">
@@ -468,7 +469,7 @@
            <el-input clearable v-model="equipForm.value0" disabled size="small" placeholder=""></el-input>
          </el-form-item>
          <el-form-item label="仪器编号:">
            <el-select v-model="equipForm.code0" placeholder="请选择" size="small">
            <el-select v-model="equipForm.code0" :disabled="state>1" placeholder="请选择" size="small">
              <el-option
                v-for="item in equipOptions"
                :key="item.value"
@@ -481,7 +482,7 @@
            <el-input clearable v-model="equipForm.value1" disabled size="small" placeholder=""></el-input>
          </el-form-item>
          <el-form-item label="仪器编号:">
            <el-select v-model="equipForm.code1" placeholder="请选择" size="small">
            <el-select v-model="equipForm.code1" :disabled="state>1" placeholder="请选择" size="small">
              <el-option
                v-for="item in equipOptions"
                :key="item.value"
@@ -496,7 +497,7 @@
          ref="wareTableData"
          border
          v-loading="wareTableDataLoading"
          style="width: 100%;margin-bottom: 30px;" align="center">
          style="width: 100%;margin-bottom: 30px;" align="center" v-show="wareForm.inspectionItemSubclass!='20(常温)'&&wareForm.inspectionItemSubclass!='20'||(wareForm.inspectionItemSubclass=='20(常温)'&&wareForm.inspectionItem==1)||(wareForm.inspectionItemSubclass=='20'&&wareForm.inspectionItem==numOptions.length)">
          <el-table-column
            label="序号"
            type="index"
@@ -532,7 +533,7 @@
                {{ '外端'+(index+1) }}
              </template>
              <template slot-scope="scope">
                <el-input size="small" v-model="scope.row.arr[index].value0" placeholder="" @change="m=>changeItem(scope.row.arr[index])"></el-input>
                <el-input size="small" v-model="scope.row.arr[index].value0" placeholder="" :disabled="state>1" @change="m=>changeItem(scope.row.arr[index])"></el-input>
              </template>
            </el-table-column>
            <el-table-column
@@ -544,7 +545,7 @@
                {{ '内端'+(index+1) }}
              </template>
              <template slot-scope="scope">
                <el-input size="small" v-model="scope.row.arr[index].value1" placeholder="" @change="m=>changeItem(scope.row.arr[index])"></el-input>
                <el-input size="small" :disabled="state>1" v-model="scope.row.arr[index].value1" placeholder="" @change="m=>changeItem(scope.row.arr[index])"></el-input>
              </template>
            </el-table-column>
            <el-table-column
@@ -592,23 +593,23 @@
        <el-divider></el-divider>
        <h4 style="margin-bottom: 20px;font-size: 24px;font-weight: 400;text-align: center;">热循环检验原始记录</h4>
        <el-form :inline="true" :model="wareForm" class="form-inline" label-width="100px" style="justify-content: flex-start;display: flex;align-items: center;width: 100%;">
        <el-form-item label="型号:" style="margin-bottom: 0;">
          <el-input clearable v-model="thermalCyclingInfo.model" disabled size="small" placeholder=""></el-input>
        </el-form-item>
        <el-form-item label="试验方法:" style="margin-bottom: 0;">
          <el-input clearable v-model="thermalCyclingInfo.methodName" disabled size="small" placeholder=""></el-input>
        </el-form-item>
        <el-form-item label="循环次数:" style="margin-bottom: 0;" v-if="thermalCyclingInfo.inspectionItemClass=='直流电阻'">
          <el-input-number v-model="thermalCyclingInfo.inspectionItem" :min="1" :max="thermalCyclingInfo.max" label="" style="margin-top:4px" size="small" @change="thermalCyclingChange"></el-input-number>
        </el-form-item>
        <el-form-item label="仪器名称:" style="margin-bottom: 0;">
          <el-form-item label="仪器名称:" style="margin-bottom: 0;">
            <el-input clearable v-model="equipForm.value0" disabled size="small" placeholder=""></el-input>
          </el-form-item>
          <el-form-item label="仪器名称:" style="margin-bottom: 0;">
            <el-input clearable v-model="equipForm.value1" disabled size="small" placeholder=""></el-input>
          </el-form-item>
          <el-form-item label="型号:" style="margin-bottom: 0;">
            <el-input clearable v-model="thermalCyclingInfo.model" disabled size="small" placeholder=""></el-input>
          </el-form-item>
          <el-form-item label="试验方法:" style="margin-bottom: 0;">
            <el-input clearable v-model="thermalCyclingInfo.methodName" disabled size="small" placeholder=""></el-input>
          </el-form-item>
        </el-form>
        <el-divider></el-divider>
        <el-form :inline="true" :model="equipForm" label-width="100px" style="justify-content: flex-start;display: flex;align-items: center;width: 100%;">
          <el-form-item label="仪器编号:">
            <el-select v-model="equipForm.code0" placeholder="请选择" size="small">
            <el-select v-model="equipForm.code0" :disabled="state>1" placeholder="请选择" size="small">
              <el-option
                v-for="item in equipOptions"
                :key="item.value"
@@ -616,12 +617,9 @@
                :value="item.value">
              </el-option>
            </el-select>
          </el-form-item>
          <el-form-item label="仪器名称:" >
            <el-input clearable v-model="equipForm.value1" disabled size="small" placeholder=""></el-input>
          </el-form-item>
          <el-form-item label="仪器编号:">
            <el-select v-model="equipForm.code1" placeholder="请选择" size="small">
            <el-select v-model="equipForm.code1" :disabled="state>1" placeholder="请选择" size="small">
              <el-option
                v-for="item in equipOptions"
                :key="item.value"
@@ -630,8 +628,11 @@
              </el-option>
            </el-select>
          </el-form-item>
          <el-button type="primary" size="small" style="margin-bottom: 22px;margin-left: 10px;" @click="handleAddThermal">新增</el-button>
          <el-button size="small" style="margin-bottom: 22px;" @click="handleDeleteThermal">删除</el-button>
          <el-form-item label="循环次数:" v-if="thermalCyclingInfo.inspectionItemClass=='直流电阻'">
            <el-input-number v-model="thermalCyclingInfo.inspectionItem" :min="1" :max="thermalCyclingInfo.max" label="" style="margin-top:4px;width: 190px;" size="small" @change="thermalCyclingChange"></el-input-number>
          </el-form-item>
          <el-button type="primary" size="small" style="margin-bottom: 22px;margin-left: 30px;" @click="handleAddThermal" v-if="state==1">新增</el-button>
          <el-button size="small" style="margin-bottom: 22px;" @click="handleDeleteThermal" v-if="state==1">删除</el-button>
        </el-form>
        <div class="table-container" v-loading="thermalCyclingLoading">
          <table border="1" cellpadding="10" class="thermal-table">
@@ -645,12 +646,12 @@
              <td v-for="(m,i) in thermalCyclingInfo.length" style="min-width: 150px;">
                <div style="display: flex;align-items: center;margin-bottom: 5px;">
                  <label style="width: 100px;white-space: nowrap;font-size: 12px;">温度:</label>
                  <el-input clearable size="small" placeholder="" v-model="item.arr[i].value0" @change="m=>saveThermalCycling(m,item,'value0')"></el-input>
                  <el-input clearable size="small" placeholder="" v-model="item.arr[i].value0" :disabled="state>1" @change="m=>saveThermalCycling(m,item,'value0')"></el-input>
                  <span style="font-size: 12px;margin-left: 13px;margin-right: 13px;"> ℃</span>
                </div>
                <div style="display: flex;align-items: center;" v-if="item.name!='环境温度'||thermalCyclingInfo.inspectionItemClass!='直流电阻'">
                <div style="display: flex;align-items: center;" v-if="item.name!='环境温度'&&thermalCyclingInfo.inspectionItemClass=='直流电阻'">
                  <label style="width: 100px;white-space: nowrap;font-size: 12px;">直流电阻:</label>
                  <el-input clearable size="small" placeholder="" v-model="item.arr[i].value1" @change="saveThermalCycling"></el-input>
                  <el-input clearable size="small" :disabled="state>1" placeholder="" v-model="item.arr[i].value1" @change="saveThermalCycling"></el-input>
                  <span style="margin-left: 5px;font-size: 12px;"> Ω/km</span>
                </div>
              </td>
@@ -677,7 +678,7 @@
        accept='.jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar' :headers="headers" :on-change="beforeUpload"
        style="width: 80px !important;"
        :on-error="onError" ref='upload'>
        <el-button size="small" type="primary">附件上传</el-button></el-upload>
        <el-button size="small" type="primary" v-if="state==1">附件上传</el-button></el-upload>
      <ValueTable class="value-table" ref="fileList" :url="$api.insOrderPlan.getFileList"
        :componentData="componentData0"
        :delUrl="$api.insOrderPlan.delfile"
@@ -786,7 +787,6 @@
  import ValueTable from '../../tool/value-table.vue'
  import file from '../../../util/file'
  import excelFunction from '../../../util/excelFountion'
import { number } from 'echarts'
  export default {
    props: ['sonLaboratory', 'orderId', 'state'],
    components: {
@@ -1174,6 +1174,7 @@
          })
        })
      },
      // 多线程
      startWorker() {
      if (this.worker) {
        this.stopWorker(); // 确保之前的 Worker 已停止
@@ -1398,6 +1399,13 @@
          if (res.code == 201) return
          let {productVos,sampleVo} = res.data
          this.thermalCyclingInfo = {...this.thermalCyclingInfo,...sampleVo}
          if(this.thermalCyclingInfo.inspectionItem>1){
            for(let i in this.param){
              if(this.param[i].inspectionItemSubclass){
                delete this.param[i]
              }
            }
          }
          if(productVos.length>0){
            this.thermalCyclingInfo.inspectionItemClass = productVos[0].insProduct.inspectionItemClass
            productVos.forEach(item=>{
@@ -1430,6 +1438,7 @@
                    case 'insValue':
                      let insValue = JSON.parse(insProductResult[i])
                      if(insValue&&insValue.length>0){
                        this.thermalCyclingInfo.length = 0
                        this.thermalCyclingInfo.arr.forEach(a=>{
                          if(a.name==obj.inspectionItemSubclass){
                            a.arr = []
@@ -1438,6 +1447,7 @@
                                value0:insValue[i].v,
                                value1:insValue[i].w,
                              })
                              this.thermalCyclingInfo.length++
                            }
                            a.insResult = obj.insResult
                          }
@@ -1448,9 +1458,9 @@
                            i:obj.id,
                            r:0,
                            c:0,
                            w:m.w,
                            v:{
                              v:m.v,
                              w:m.w
                              v:m.v
                            }
                          })
                        })
@@ -1464,6 +1474,18 @@
                    v:obj.insResult
                  }
                }
              }else{
                this.thermalCyclingInfo.arr.forEach(a=>{
                  a.insResult = null
                  a.arr = []
                  a.arr.push(
                    {
                    value0:'',
                    value1:''
                  }
                  )
                })
                this.thermalCyclingInfo.length = 1
              }
            })
          }
@@ -1505,7 +1527,6 @@
                      num0 = c.arr[i].value0
                    }
                  })
                  if(!num0||!b.value0){
                    b.state = null
                  }else if(Number(num0)>Number(b.value0)){
@@ -1958,7 +1979,7 @@
                }
              ]
              obj.insResult = null;
            }else{}
            }
            return obj
          })
          this.thermalCyclingInfo.arr = arr;
@@ -2216,10 +2237,21 @@
          } 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=='热循环检验原始记录')){
              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=='热循环检验原始记录')){
                // 温度循环设备赋值
                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
                if(equipValue[i].v){
@@ -2244,10 +2276,21 @@
          } catch (e) {}
          try {
            let equipName = JSON.parse(a.insProductResult.equipName)
            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=='热循环检验原始记录')){
              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=='热循环检验原始记录')){
                // 温度循环赋值
                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
              }
@@ -2707,6 +2750,7 @@
            })
          }
        }
        console.log(this.param)
        this.saveInsContext()
      },
      getAuthorizedPerson() {