licp
2024-07-05 f8c9905e15777052c4628602b41cad70ac8c782b
src/components/do/b1-inspect-order-plan/Inspection.vue
@@ -276,7 +276,7 @@
            <el-radio-button :label="item.id" v-for="(item,index) in fiber" :key="index"
              size="small">{{ item.color }}</el-radio-button>
          </el-radio-group>
          <el-form :inline="true" :model="otherForm" class="form-inline" label-width="50px" style="padding-top: 0;padding-left: 10px;">
          <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 clearable v-model="otherForm.temperature" size="small" placeholder="" style="width: 50px;" @change="m=>subOtherForm(m,'temperature')"></el-input>
              <span style="margin-left: 4px;">℃</span>
@@ -300,9 +300,9 @@
                  :style="`width:${handleWidth(n)}px !important;min-height:${item.style.rowlen[n.r]}px;`">
                  <template v-if="n.v.ps!=undefined && n.v.ps.value==='检验值' && state==1">
                    <el-input v-if="getInspectionValueType(n.i) == 1" class="table_input" v-model="n.v.v"
                      :disabled="getInspectionItemType(n.i) == 1 || (n.u != userId && n.u != undefined && n.u != '')"
                              @input="handleInput(n)"
                      @change="m=>changeInput(m,`${item.templateId}-${n.r}-${n.c}-${n.i}`)" @mousewheel.native.prevent :key="'abc-'+'000'+index+'000'+i+'000'+j">
                              :disabled="getInspectionItemType(n.i) == 1 || (n.u != userId && n.u != undefined && n.u != '')"
                              @input="handleInput(n)" @blur="bigNum(n)"
                              @change="m=>changeInput(m,`${item.templateId}-${n.r}-${n.c}-${n.i}`)" @mousewheel.native.prevent :key="'abc-'+'000'+index+'000'+i+'000'+j">
                      <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>
@@ -319,12 +319,12 @@
                      v-else-if="getInspectionValueType(n.i) == 4">/</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"
                    <el-select v-if="(getInspectionValueType(n.i) == 2 || getInspectionValueType(n.i) == 5) && state==1&&PROJECT=='装备电缆'"
                      class="table_input" v-model="n.v.v" @change="saveInsContext()">
                      <el-option label="合格" :value="1"></el-option>
                      <el-option label="不合格" :value="0"></el-option>
                    </el-select> -->
                    <template>
                    </el-select>
                    <template v-if="PROJECT=='检测中心'||PROJECT=='装备电缆'&&getInspectionValueType(n.i) != 2 ">
                      <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 :style="`font-family:${n.v.ff} !important;`">待定</span>
@@ -397,7 +397,7 @@
      </div>
      <div class="center-box" v-loading="tableLoading" v-else>
        <el-divider></el-divider>
        <h4 style="margin-bottom: 20px;">温度循环检验原始记录</h4>
        <h4 style="margin-bottom: 20px;font-size: 24px;font-weight: 400;">温度循环检验原始记录</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="wareForm0.model" disabled size="small" placeholder=""></el-input>
@@ -445,7 +445,7 @@
              </el-option>
            </el-select>
          </el-form-item>
          <el-form-item label="仪器名称:" style="margin-left: 80px;">
          <el-form-item label="仪器名称:" >
            <el-input clearable v-model="equipForm.value1" disabled size="small" placeholder=""></el-input>
          </el-form-item>
          <el-form-item label="仪器编号:">
@@ -524,14 +524,14 @@
            prop="resValue"
            label="衰减差"
            align="center"
            v-if="wareForm.inspectionItemSubclass!=20"
            v-if="wareForm.inspectionItemSubclass!='20(常温)'"
            min-width="150">
          </el-table-column>
          <el-table-column
            prop="insResult"
            label="结论"
            align="center"
            min-width="150" v-if="wareForm.inspectionItemSubclass!=20">
            min-width="150" v-if="wareForm.inspectionItemSubclass!='20(常温)'">
            <template slot-scope="scope">
              <span v-if="scope.row.insResult===1" style="color: green;">合格</span>
              <span v-else-if="scope.row.insResult===0" style="color: red;">不合格</span>
@@ -793,7 +793,7 @@
        currentTab:null,
        wareForm:{
          inspectionItem:1,
          inspectionItemSubclass:20,
          inspectionItemSubclass:'20(常温)',
        },
        wareForm0:{},
        numOptions:[],
@@ -953,7 +953,7 @@
    methods: {
      changeItem(row){
        if(row.value0&&row.value1){
          this.$set(row,'comValue',((Number(row.value0)+Number(row.value1))/2).toFixed(5))
          this.$set(row,'comValue',((Number(row.value0)+Number(row.value1))/2).toFixed(3))
        }else{
          return
        }
@@ -977,11 +977,10 @@
              v:row.comValue
            }
          }]
        if(this.wareForm.inspectionItemSubclass!=20){
          row.resValue = row.comValue?Math.abs(row.comValue-20).toFixed(5):''
        if(this.wareForm.inspectionItemSubclass!='20(常温)'){
          row.resValue = row.comValue?Math.abs(row.comValue-20).toFixed(3):''
          this.param[row.id].resValue.v.v = row.resValue
          if(row.ask&&row.resValue){
            console.log(row.ask,row.resValue)
            if(row.ask.includes('<')){
              row.insResult = row.resValue<row.ask.split('<')[1]?1:0
            }else if(row.ask.includes('>')){
@@ -1002,11 +1001,18 @@
        this.saveInsContext()
      },
      wareFormChange(m,type){
        if(this.PROJECT!='检测中心'){
          return
        }
        if(m&&type){
          this.wareForm[type] = Number(m)
          this.wareForm[type] = m
        }
        let wareForm = {...this.wareForm}
        wareForm.inspectionItemSubclass = wareForm.inspectionItemSubclass+'℃'
        if(this.wareForm.inspectionItemSubclass=='20(常温)'){
          wareForm.inspectionItemSubclass ='20℃(常温)'
        }else{
          wareForm.inspectionItemSubclass = wareForm.inspectionItemSubclass+'℃'
        }
        this.wareTableDataLoading = true
        this.$axios.post(this.$api.insOrderPlan.temCycle,{
          sampleId:this.currentSample.id,
@@ -1231,6 +1237,9 @@
        this.currentTab = null;
      },
      getReportModel(id){
        if(this.PROJECT!='检测中心'){
          return
        }
        this.$axios.post(this.$api.insOrderPlan.getReportModel+'?sampleId='+id, {}).then(res => {
          this.fibers = res.data['光纤带']
          this.fiber = res.data['光纤']
@@ -1393,7 +1402,7 @@
          this.temperatureOptions = []
          mySet1.forEach(m => {
            this.temperatureOptions.push({
              value:m,
              value:String(m),
              label:m
            })
          })
@@ -1617,7 +1626,6 @@
          try {
            let equipValue = JSON.parse(a.insProductResult.equipValue)
            for (let i = 0; i < equipValue.length; i++) {
              console.log(444,this.equipForm)
              if(this.tableLists.find(m=>m.templateId==this.currentTable)&&this.tableLists.find(m=>m.templateId==this.currentTable).templateName=='温度循环检验原始记录'){
                // 温度循环赋值
                this.$set(this.equipForm,`code`+i,equipValue[i].v)
@@ -1672,10 +1680,8 @@
                          break
                        }
                      }
                      if(this.getInspectionValueType(item.i)==1){
                        if (!isNaN(parseFloat(c.v.v))) {
                          comValue[(tableCode + (c.r + 1))] = parseFloat(c.v.v)
                        }
                      if(this.getInspectionValueType(item.i)==1&&!isNaN(parseFloat(c.v.v))){
                        comValue[(tableCode + (c.r + 1))] = parseFloat(c.v.v)
                      }else{
                        comValue[(tableCode + (c.r + 1))] = c.v.v
                      }
@@ -1695,34 +1701,43 @@
                }else{
                  if(ask){
                    comp = ask.map((m, i) => {
                      if (m.includes('RTS')) {
                        m = m.replace('RTS*', '')
                      }
                      if (m.includes('=')) {
                        let str = m.split('=')[1]
                        let str = this.handleFraction(m.split('=')[1])
                        if(typeof res == 'string'&&typeof str == 'string'){
                          return  res.trim() == str.trim()
                        }else{
                          return  eval(res) == eval(str)
                        }
                      } else if (m.includes('≥')) {
                        return eval(res) >= eval(m.split('≥')[1])
                        let str = this.handleFraction(m.split('≥')[1])
                        return eval(res) >= eval(str)
                      }else if (m.includes('≤')) {
                        return eval(res) <= eval(m.split('≤')[1])
                        let str = this.handleFraction(m.split('≤')[1])
                        return eval(res) <= eval(str)
                      }else if (m.includes('<')) {
                        return  eval(res) < eval(m.split('<')[1])
                        let str = this.handleFraction(m.split('<')[1])
                        return  eval(res) < eval(str)
                      }else if (m.includes('>')) {
                        return  eval(res) > eval(m.split('>')[1])
                        let str = this.handleFraction(m.split('>')[1])
                        return  eval(res) > eval(str)
                      }else if (m.includes('~')) {
                        let k = m.split('~')
                        return  eval(res) >= eval(k[0]) && eval(res) <= eval(k[1])
                        return  eval(res) >= eval(this.handleFraction((k[0]))) && eval(res) <= eval(this.handleFraction(k[1]))
                      }else if(m.includes('-')){
                        let k = m.split('-')
                        return  eval(res) >= eval(k[0]) && eval(res) <= eval(k[1])
                        return  eval(res) >= eval(this.handleFraction(k[0])) && eval(res) <= eval(this.handleFraction(k[1]))
                      }else if(m.includes('±')){
                        let k = m.split('±')
                        return  eval(res) >= eval((k[0] - k[1])) && eval(res) <= eval((k[0] + k[1]))
                        return  eval(res) >= eval((this.handleFraction(k[0]) - this.handleFraction(k[1]))) && eval(res) <= eval((this.handleFraction(k[0]) + this.handleFraction(k[1])))
                      }else if(m.includes('>')){
                        return  eval(res) > eval(m.split('>')[1])
                        let str = this.handleFraction(m.split('>')[1])
                        return  eval(res) > eval(str)
                      }else if(m.includes('<')){
                        return  eval(res) < eval(m.split('<')[1])
                        let str = this.handleFraction(m.split('<')[1])
                        return  eval(res) < eval(str)
                      }
                    })
                  }
@@ -1742,10 +1757,17 @@
              let comResult = ''
              try {
                if(this.getInspectionValueType(item.i)==1){
                  let ask = this.currentSample.insProduct.find(m => m.id == item.i).ask?this.currentSample.insProduct.find(m => m.id == item.i).ask.split('&'):null;
                  comResult = excelFunction.compute(item.v.f.replace(/=/g, ' '),comValue)
                  // 装备项目检验值转化
                  if (this.PROJECT === '装备电缆' && ask[0].includes('RTS')) {
                    let num2 = new this.$Big(comResult)
                    comResult = num2.toExponential()
                  }
                }else{
                  let valueList = [];
                  item.valueList.forEach(a => {
                    console.log(a)
                    valueList.push({
                      name: `${this.comparisonList.find(e=>e.value==a.c).label}${a.r+1}`,
                      value: 0,
@@ -1762,88 +1784,11 @@
                  valueList.forEach(b => {
                    str = str.replace(b.name, b.value)
                  })
                  console.log(str)
                  comResult = str
                }
              } catch (error) {
              }
              // comResult = excelFunction.compute(item.v.f.replace(/=/g, ' '),comValue);
              // switch (item.methodName) {
              //   case 'AVERAGE':
              //     let num = 0
              //     for (var a in comValue) {
              //       num += comValue[a]
              //     }
              //     comResult = num / Object.keys(comValue).length
              //     break;
              //   case 'SUM':
              //     let sum = 0
              //     for (var a in comValue) {
              //       sum += comValue[a]
              //     }
              //     comResult = sum
              //     break;
              //   case 'MEDIAN':
              //     let arr = []
              //     for (var a in comValue) {
              //       arr.push(comValue[a])
              //     }
              //     comResult = this.median(arr)
              //     break;
              //   case 'APS':
              //     let arr0 = []
              //     for (var a in comValue) {
              //       arr0.push(comValue[a])
              //     }
              //     comResult = Math.abs(arr0[0])
              //     break;
              //   // case 'MAX':
              //   //   let arr1 = []
              //   //   for (var a in comValue) {
              //   //     arr1.push(eval(comValue[a]))
              //   //   }
              //   //   comResult = Math.max(...arr1)
              //   //   break;
              //   // case 'MIN':
              //   //   let arr2 = []
              //   //   for (var a in comValue) {
              //   //     arr2.push(eval(comValue[a]))
              //   //   }
              //   //   comResult = Math.median(...arr2)
              //   //   break;
              //   default:
              //     let valueList = [];
              //     item.valueList.forEach(a => {
              //       valueList.push({
              //         name: `${this.comparisonList.find(e=>e.value==a.c).label}${a.r+1}`,
              //         value: 0,
              //       })
              //     })
              //     for (var a in comValue) {
              //       valueList.forEach(b => {
              //         if (b.name == a) {
              //           b.value = comValue[a]
              //         }
              //       })
              //     }
              //     let str = item.v.f.replace(/=/g, ' ');
              //     valueList.forEach(b => {
              //       str = str.replace(b.name, b.value)
              //     })
              //     str = str.replaceAll('MAX', 'Math.max')
              //     str = str.replaceAll('MIN', 'Math.min')
              //     str = str.replaceAll(',', ',')
              //     try {
              //       if(this.getInspectionValueType(item.i)==1){
              //         comResult = eval(str)
              //       }else{
              //         comResult = str
              //       }
              //     } catch (error) {
              //     }
              //     break;
              // }
              try {
                list.forEach(a => {
                  if (a[0].r == item.r && comResult !== '') {
@@ -1871,6 +1816,20 @@
          this.getCurrentInsProduct(pId)
        } catch (error) {
        }
      },
      handleFraction(str){
        if(str&&typeof(str)=='string'&&str.includes('/')){
          return eval(str.split('/')[0]/str.split('/')[1])
        } else if (str && typeof(str) == 'string' && str.includes('*') && str.includes('^')) {
          const num1 = str.split('*')
          const num2 = num1[1].split('^')
          let num3 = new this.$Big(num2[0]);
          let num4 = new this.$Big(num2[1]);
          let num5 = Math.pow(num3, num4) // 计算次方
          return num1[0] * num5 // 最后计算乘法
        } else{
          return str
        }
      },
      getCurrentInsProduct(pId) {
@@ -1991,7 +1950,13 @@
        return sum
      },
      handleInput (n) {
        n.v.v = n.v.v.replace(/[^\d.^]/g, '');
        n.v.v = n.v.v.replace(/[^\d.^e\-/+]/g, '');
      },
      bigNum (n) {
        if (n.v.v > 10000 && this.PROJECT === '装备电缆') {
          let num2 = new this.$Big(n.v.v)
          n.v.v = num2.toExponential()
        }
      },
      getInspectionItemType(id) {
        for (var a in this.currentSample.insProduct) {
@@ -2190,7 +2155,6 @@
      },
      saveInsContext() {
        if(this.param){
          console.log(33333,this.param)
          this.$axios.post(this.$api.insOrderPlan.saveInsContext, {
            param: JSON.stringify(this.param)
          }).then(res => {