licp
2024-07-03 a0b1fdec2bc5ddad11e981936b80d0fdf1e4bc69
src/components/do/b1-inspect-order-plan/Inspection.vue
@@ -143,6 +143,10 @@
  >>>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 {
@@ -272,9 +276,19 @@
            <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">
            <el-form-item label="温度:" style="margin-bottom: 0;">
              <el-input clearable v-model="otherForm.temperature" size="small" placeholder="" style="width: 70px;" @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 clearable v-model="otherForm.humidity" size="small" placeholder="" style="width: 70px;" @change="m=>subOtherForm(m,'humidity')"></el-input>
              <span style="margin-left: 4px;">%</span>
            </el-form-item>
          </el-form>
        </div>
      </div>
      <div class="center-box" id="nav" v-loading="tableLoading">
      <div class="center-box" id="nav" v-loading="tableLoading" v-if="!tableLists.find(m=>m.templateId==currentTable)||tableLists.find(m=>m.templateId==currentTable).templateName!='温度循环检验原始记录'">
        <table border="1" class="tables" cellpadding="10" v-for="(item,index) in tableList" :key="index">
          <tbody>
            <tr v-for="(m,i) in item.arr" :key="i">
@@ -379,6 +393,142 @@
            </tr>
          </tbody>
        </table>
      </div>
      <div class="center-box" v-loading="tableLoading" v-else>
        <!-- <el-divider></el-divider> -->
        <h4 style="margin-bottom: 20px;">温度循环检验原始记录</h4>
        <el-form :inline="true" :model="wareForm" class="form-inline" label-width="100px">
        <el-form-item label="型号:" style="margin-bottom: 0;">
          <el-input clearable v-model="wareForm.entrustCode" disabled size="small" placeholder=""></el-input>
        </el-form-item>
        <el-form-item label="试验方法:" style="margin-bottom: 0;">
          <el-input clearable v-model="wareForm.sampleCode" disabled size="small" placeholder=""></el-input>
        </el-form-item>
        <el-form-item label="检测依据:" style="margin-bottom: 0;">
          <el-input clearable v-model="wareForm.sample" disabled size="small" placeholder=""></el-input>
        </el-form-item>
        <el-form-item label="循环次数:" style="margin-bottom: 0;">
          <el-select v-model="wareForm.value" placeholder="请选择" size="small">
            <el-option
              v-for="item in numOptions"
              :key="item.value"
              :label="item.label"
              :value="item.value">
            </el-option>
          </el-select>
        </el-form-item>
        <el-form-item label="温度:" style="margin-bottom: 0;">
          <el-select v-model="wareForm.value" placeholder="请选择" size="small">
            <el-option
              v-for="item in temperatureOptions"
              :key="item.value"
              :label="item.label"
              :value="item.value">
            </el-option>
          </el-select>
          <span style="margin-left: 4px;">℃</span>
        </el-form-item>
        </el-form>
        <el-divider></el-divider>
        <el-form :inline="true" :model="wareForm" label-width="100px" style="justify-content: flex-start;display: flex;align-items: center;width: 100%;">
          <el-form-item label="仪器名称:">
            <el-select v-model="wareForm.value" placeholder="请选择" size="small">
              <el-option
                v-for="item in temperatureOptions"
                :key="item.value"
                :label="item.label"
                :value="item.value">
              </el-option>
            </el-select>
          </el-form-item>
          <el-form-item label="仪器编号:">
            <el-select v-model="wareForm.value" placeholder="请选择" size="small">
              <el-option
                v-for="item in temperatureOptions"
                :key="item.value"
                :label="item.label"
                :value="item.value">
              </el-option>
            </el-select>
          </el-form-item>
          <el-form-item label="仪器名称:" style="margin-left: 80px;">
            <el-select v-model="wareForm.value" placeholder="请选择" size="small">
              <el-option
                v-for="item in temperatureOptions"
                :key="item.value"
                :label="item.label"
                :value="item.value">
              </el-option>
            </el-select>
          </el-form-item>
          <el-form-item label="仪器编号:">
            <el-select v-model="wareForm.value" placeholder="请选择" size="small">
              <el-option
                v-for="item in temperatureOptions"
                :key="item.value"
                :label="item.label"
                :value="item.value">
              </el-option>
            </el-select>
          </el-form-item>
        </el-form>
        <el-table
          :data="wareTableData"
          border
          style="width: 100%;margin-bottom: 30px;" align="center">
          <el-table-column
            label="序号"
            type="index"
            width="65"
            >
          </el-table-column>
          <el-table-column
            prop="date"
            label="管色标"
            width="150">
          </el-table-column>
          <el-table-column
            prop="name"
            label="光纤带编号"
            width="180">
          </el-table-column>
          <el-table-column
            prop="province"
            label="光纤色标"
            width="150">
          </el-table-column>
          <el-table-column
            prop="city"
            label="外端"
            width="150">
            <template slot-scope="scope">
              <el-input size="small" v-model="scope.row.input" placeholder="请输入内容"></el-input>
            </template>
          </el-table-column>
          <el-table-column
            prop="address"
            label="内端"
            width="150">
            <template slot-scope="scope">
              <el-input size="small" v-model="scope.row.input" placeholder="请输入内容"></el-input>
            </template>
          </el-table-column>
          <el-table-column
            prop="zip"
            label="平均值"
            min-width="150">
          </el-table-column>
          <el-table-column
            prop="zip"
            label="衰减差"
            min-width="150">
          </el-table-column>
          <el-table-column
            prop="zip"
            label="检测人"
            min-width="150">
          </el-table-column>
        </el-table>
      </div>
      <el-upload :action="action"
      :data="{
@@ -629,7 +779,17 @@
        temptList:null,
        fiber:[],
        fibers:[],
        currentTab:null
        currentTab:null,
        wareForm:{},
        numOptions:[],
        temperatureOptions:[],
        wareTableData:[
          {}
        ],
        otherForm:{
          humidity:null,
          temperature:null,
        }
      }
    },
    computed: {
@@ -676,8 +836,17 @@
          }
          this.sampleProduct = res.data.sampleProduct
          this.currentSample = this.HaveJson(this.sampleProduct[0])
          let insProduct = this.HaveJson(this.currentSample.insProduct)
          if(insProduct&&insProduct.length>0){
            let {temperature,humidity} = insProduct[0];
            this.otherForm = {
              temperature:temperature?temperature:null,
              humidity:humidity?humidity:null,
            }
          }
          let list = await this.getCurrentProduct(this.currentSample.id,0)
          this.currentSample.insProduct = this.HaveJson(list)
          console.log(this.currentSample)
          this.currentSample.insProduct.forEach(a => {
            this.param[a.id] = {
              insValue: [],
@@ -691,7 +860,6 @@
          this.getReportModel(this.currentSample.id)
          if (this.currentSample.index == undefined) this.currentSample['index'] = 1
          let bushing = this.currentSample.bushing
          // this.handleTableData()
          this.getTableLists();
          this.componentData.currentId = val;
          this.currentKey = 1;
@@ -722,6 +890,24 @@
      },
    },
    methods: {
      subOtherForm(m,type){
        let ids = []
        for (let i in this.param) {
          ids.push(i)
        }
        this.$axios.post(this.$api.insOrderPlan.write,{
          [type]:Number(m),
          ids
        }, {
          headers: {
            'Content-Type': 'application/json'
          },
          noQs:true
        }).then(res => {
          if (res.code == 201) return
          this.$message.success('保存成功')
        })
      },
      getPower(){
        let power = JSON.parse(sessionStorage.getItem('power'))
        let fileDel = false
@@ -830,7 +1016,7 @@
        if(bushing&&bushing.length>0){
          this.bushing = bushing
        }
        this.handleTableData()
        // this.handleTableData()
        this.getTableLists();
        this.currentKey = row.index
        this.currentTab = null;
@@ -1006,6 +1192,7 @@
            count++
          })
        })
        // 问题开始
        this.tableList.forEach(a => {
          let dels = new Set()
          let ids = []
@@ -1062,6 +1249,8 @@
              }
            }
          })
          console.log(5555,a.template)
          return
          ids.forEach(id => {
            for (let b = 0; b < a.template.length; b++) {
              if (a.template[b].r === id.r) {
@@ -1096,6 +1285,7 @@
            }
          })
        })
        // 问题结束
        this.tableList.forEach(a => {
          let arrs = []
          let set = new Set()
@@ -1206,7 +1396,6 @@
            this.param[a.id].insResult.v.v = a.insResult
          } catch (e) {}
        })
        console.log(this.tableList)
        this.handleExcelMethod()
      },
      changeInput(m, code) {
@@ -1251,11 +1440,11 @@
              })
            })
            if (item.v.ps != undefined && item.v.ps.value == '结论') {
              if (this.currentSample.insProduct.find(m => m.id == item.i)) {
              try {
                if (this.currentSample.insProduct.find(m => m.id == item.i)) {
                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 = []
                console.log(res, ask)
                if(res==''||res==null||res==undefined||res=='Infinity'){
                  item.v.v = ''
                }else{
@@ -1269,10 +1458,8 @@
                          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])
@@ -1286,7 +1473,6 @@
                        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])
@@ -1303,6 +1489,10 @@
                }
                this.saveInsContext()
              }
              } catch (error) {
              }
            } else {
              let comResult = ''
              try {
@@ -1409,26 +1599,34 @@
              //     }
              //     break;
              // }
              list.forEach(a => {
                if (a[0].r == item.r && comResult !== '') {
                  for (var b in a) {
                    if (a[b].c == item.c) {
                      try{
                        let val = parseFloat(comResult.toFixed(3))
                        a[b].v.v = isNaN(val) ? '' : val
                      }catch(e){
                        a[b].v.v = comResult
              try {
                list.forEach(a => {
                  if (a[0].r == item.r && comResult !== '') {
                    for (var b in a) {
                      if (a[b].c == item.c) {
                        try{
                          let val = parseFloat(comResult.toFixed(3))
                          a[b].v.v = isNaN(val) ? '' : val
                        }catch(e){
                          a[b].v.v = comResult
                        }
                        break
                      }
                      break
                    }
                  }
                }
              })
              this.changeInput(comResult, `${id}-${item.r}-${item.c}-${pId}`) //改变最终值
                })
                this.changeInput(comResult, `${id}-${item.r}-${item.c}-${pId}`) //改变最终值
              } catch (error) {
              }
            }
          }
        })
        this.getCurrentInsProduct(pId)
        try {
          this.getCurrentInsProduct(pId)
        } catch (error) {
        }
      },
      getCurrentInsProduct(pId) {
        if (!this.tableList[0].insProductResult) {
@@ -1743,15 +1941,17 @@
        return
      },
      saveInsContext() {
        this.$axios.post(this.$api.insOrderPlan.saveInsContext, {
          param: JSON.stringify(this.param)
        }).then(res => {
          if (res.code == 201) {
            this.$message.error('保存失败')
            return
          }
          this.$message.success('已保存')
        })
        if(this.param){
          this.$axios.post(this.$api.insOrderPlan.saveInsContext, {
            param: JSON.stringify(this.param)
          }).then(res => {
            if (res.code == 201) {
              this.$message.error('保存失败')
              return
            }
            this.$message.success('已保存')
          })
        }
      },
      changeEquip(val, n) {
        for (let i in this.equipOptions) {