licp
2024-06-29 f743df9508776dd59e19c1d8bd946b49d83e07eb
src/components/do/b1-inspect-order-plan/Inspection.vue
@@ -204,15 +204,15 @@
<template>
  <div v-loading="loading" class="inspection">
    <el-row class="title">
      <el-col :span="12" style="padding-left: 20px;">检验单详情
        <span style="color: #3A7BFA;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;样品</span>
      <el-col :span="12" style="padding-left: 20px;text-align: left;">检验单详情
        <!-- <span style="color: #3A7BFA;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;样品</span>
        <span v-if="currentFiberOpticTape" style="color: #3A7BFA;"> - 光纤带</span>
        <span v-if="currentFiberOptic" style="color: #3A7BFA;"> - 光纤</span>
        <span v-if="currentFiberOptic" style="color: #3A7BFA;"> - 光纤</span> -->
      </el-col>
      <el-col :span="12" style="text-align: right;">
        <el-button size="small" type="primary" @click="fiberOpticVisible=true" v-if="fiberOptic.length>0">光纤切换</el-button>
        <!-- <el-button size="small" type="primary" @click="fiberOpticVisible=true" v-if="fiberOptic.length>0">光纤切换</el-button>
        <el-button size="small" type="primary" @click="fiberOpticTapeVisible=true" v-if="fiberOpticTape.length>0">光纤带切换</el-button>
        <el-button size="small" type="primary" @click="bushingVisible=true" v-if="bushing.length>0">套管切换</el-button>
        <el-button size="small" type="primary" @click="bushingVisible=true" v-if="bushing.length>0">套管切换</el-button> -->
        <el-button size="small" type="primary" @click="sampleVisible=true">样品切换</el-button>
        <el-button size="small" type="primary" @click="taskVisible=true">任务切换</el-button>
        <el-button size="small" type="primary" @click="addVerifyDia = true" v-show="state==1"
@@ -253,11 +253,26 @@
      </el-form>
    </div>
    <div class="center">
      <div class="search">
        <el-radio-group v-model="currentTable" size="small">
          <el-radio-button :label="item.templateId" v-for="(item,index) in tableLists" :key="index"
            size="small">{{ item.templateName }}</el-radio-button>
        </el-radio-group>
      <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 :label="item.templateId" v-for="(item,index) in tableLists" :key="index"
              size="small">{{ item.templateName }}</el-radio-button>
          </el-radio-group>
        </div>
        <div>
          <span v-if="fibers.length>0">&nbsp;&nbsp;光纤带:</span>
          <el-radio-group v-model="currentTab" size="small" v-if="fibers.length>0" @input="m=>handleChange(m,1)">
            <el-radio-button :label="item.id" v-for="(item,index) in fibers" :key="index"
              size="small">{{ item.code }}</el-radio-button>
          </el-radio-group>
          <span v-if="fiber.length>0">&nbsp;&nbsp;光纤:</span>
          <el-radio-group v-model="currentTab" size="small" v-if="fiber.length>0" @input="m=>handleChange(m,2)">
            <el-radio-button :label="item.id" v-for="(item,index) in fiber" :key="index"
              size="small">{{ item.color }}</el-radio-button>
          </el-radio-group>
        </div>
      </div>
      <div class="center-box" id="nav" v-loading="tableLoading">
        <table border="1" class="tables" cellpadding="10" v-for="(item,index) in tableList" :key="index">
@@ -266,13 +281,13 @@
              <td :id='item.templateId+"-"+n.i+"-"+n.r+"-"+n.c' v-for="(n,j) in m" :key="j"
                v-if="n.v.mc==undefined || Object.keys(n.v.mc).length === 4" :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};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':''};`">
                :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" :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;background:${n.v.bg};`">
                  :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 != '')"
                      @change="m=>changeInput(m,`${item.templateId}-${n.r}-${n.c}-${n.i}`)" type="number">
                      @change="m=>changeInput(m,`${item.templateId}-${n.r}-${n.c}-${n.i}`)" type="number" @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>
@@ -610,7 +625,11 @@
        currentFiberOptic:null,//当前光纤
        currentBushing:null,//当前套管
        tableLoading:false,
        upLoading:false
        upLoading:false,
        temptList:null,
        fiber:[],
        fibers:[],
        currentTab:null
      }
    },
    computed: {
@@ -627,7 +646,6 @@
      this.componentData.entity.sonLaboratory = this.sonLaboratory;
      this.id = this.orderId;
      this.getUserInfo()
      // excelFunction.compute('SUM(MAX(SUM(A1,B1,C1),2,3)*2-MIN(A1:D3),1,2)')
    },
    mounted() {
      this.getTypeDicts()
@@ -670,6 +688,7 @@
              insResult: null
            }
          })
          this.getReportModel(this.currentSample.id)
          if (this.currentSample.index == undefined) this.currentSample['index'] = 1
          let bushing = this.currentSample.bushing
          // this.handleTableData()
@@ -684,6 +703,7 @@
          this.currentFiberOptic = null;
          this.bushing = []
          this.currentBushing = null;
          this.currentTab = null;
          if(bushing&&bushing.length>0){
            this.bushing = bushing
          }
@@ -699,7 +719,7 @@
            }
          })
        }
      }
      },
    },
    methods: {
      getPower(){
@@ -805,13 +825,43 @@
            insResult: null
          }
        })
        this.getReportModel(row.id)
        let bushing = this.currentSample.bushing
        if(bushing&&bushing.length>0){
          this.bushing = bushing
        }
        // this.handleTableData()
        this.handleTableData()
        this.getTableLists();
        this.currentKey = row.index
        this.currentTab = null;
      },
      getReportModel(id){
        this.$axios.post(this.$api.insOrderPlan.getReportModel+'?sampleId='+id, {}).then(res => {
          this.fibers = res.data['光纤带']
          this.fiber = res.data['光纤']
        })
      },
      async handleChange(m,type){
        if(m){
          let list = await this.getCurrentProduct(m,type)
          if(list.length>0){
            list.forEach(a => {
              this.param[a.id] = {
                insValue: [],
                comValue: [],
                resValue: null,
                equipValue: [],
                equipName: [],
                insResult: null
              }
            })
            this.getTableLists0(list)
          }else{
            this.tableLists = []
            this.tableList = []
            this.$message.error('检验项为空')
          }
        }
      },
      handleChangeTask(row) {
        if (row.length > 0) this.id = row[0].id;
@@ -1156,6 +1206,7 @@
            this.param[a.id].insResult.v.v = a.insResult
          } catch (e) {}
        })
        console.log(this.tableList)
        this.handleExcelMethod()
      },
      changeInput(m, code) {
@@ -1165,6 +1216,7 @@
        let id = str[0]
        let pId = str[3]
        var list = []
        // console.log(id, 'r', r , 'c',c,this.tableList)
        for (let a in this.tableList) {
          if (this.tableList[a].templateId == id) {
            list = this.tableList[a].arr
@@ -1203,44 +1255,84 @@
                let ask = this.currentSample.insProduct.find(m => m.id == item.i).ask?this.currentSample.insProduct.find(m => m.id == item.i).ask.split('&'):null;
                let res = Object.values(comValue)[0]
                let comp = []
                if(ask){
                  comp = ask.map((m, i) => {
                  if (m.includes('=')) {
                    let str = m.split('=')[1]
                    if(typeof res == 'string'&&typeof str == 'string'){
                      return res.trim() == str.trim()
                    }else{
                      return res == str
                    }
                  } else if (m.includes('≥')) {
                    return res >= m.split('≥')[1]
                  }else if (m.includes('≤')) {
                    return res <= m.split('≤')[1]
                  }else if (m.includes('<')) {
                    return res < m.split('<')[1]
                  }else if (m.includes('>')) {
                    return res > m.split('>')[1]
                  }else if (m.includes('~')) {
                    let k = m.split('~')
                    return res >= k[0] && res <= k[1]
                  }else if(m.includes('-')){
                    let k = m.split('-')
                    return res >= k[0] && res <= k[1]
                  }else if(m.includes('±')){
                    let k = m.split('±')
                    return res >= (k[0] - k[1]) && res <= (k[0] + k[1])
                console.log(res, ask)
                if(res==''||res==null||res==undefined||res=='Infinity'){
                  item.v.v = ''
                }else{
                  if(ask){
                    comp = ask.map((m, i) => {
                      if (m.includes('=')) {
                        let str = 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('≥')) {
                        console.log(res, eval(res <= m.split('≥')[1]))
                        return eval(res) >= eval(m.split('≥')[1])
                      }else if (m.includes('≤')) {
                        console.log(res,m.split('≤')[1])
                        return eval(res) <= eval(m.split('≤')[1])
                      }else if (m.includes('<')) {
                        return  eval(res) < eval(m.split('<')[1])
                      }else if (m.includes('>')) {
                        return  eval(res) > eval(m.split('>')[1])
                      }else if (m.includes('~')) {
                        let k = m.split('~')
                        return  eval(res) >= eval(k[0]) && eval(res) <= eval(k[1])
                      }else if(m.includes('-')){
                        let k = m.split('-')
                        return  eval(res) >= eval(k[0]) && eval(res) <= eval(k[1])
                      }else if(m.includes('±')){
                        let k = m.split('±')
                        console.log(eval(res),eval((k[0] - k[1])),eval(res),eval((k[0] + k[1])))
                        return  eval(res) >= eval((k[0] - k[1])) && eval(res) <= eval((k[0] + k[1]))
                      }else if(m.includes('>')){
                        return  eval(res) > eval(m.split('>')[1])
                      }else if(m.includes('<')){
                        return  eval(res) < eval(m.split('<')[1])
                      }
                    })
                  }
                })
                }
                if (comp.every(m => m)) {
                  item.v.v = 1
                } else {
                  item.v.v = 0
                  if (comp.every(m => m)) {
                    item.v.v = 1
                  } else {
                    item.v.v = 0
                  }
                }
                this.saveInsContext()
              }
            } else {
              let comResult = excelFunction.compute(item.v.f.replace(/=/g, ' '),comValue);
              let comResult = ''
              try {
                if(this.getInspectionValueType(item.i)==1){
                  comResult = excelFunction.compute(item.v.f.replace(/=/g, ' '),comValue)
                }else{
                  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)
                  })
                  comResult = str
                }
              } catch (error) {
              }
              // comResult = excelFunction.compute(item.v.f.replace(/=/g, ' '),comValue);
              // switch (item.methodName) {
              //   case 'AVERAGE':
              //     let num = 0
@@ -1318,7 +1410,7 @@
              //     break;
              // }
              list.forEach(a => {
                if (a[0].r == item.r && comResult != '') {
                if (a[0].r == item.r && comResult !== '') {
                  for (var b in a) {
                    if (a[b].c == item.c) {
                      try{