licp
2024-06-19 20adcd9881c91be3ccbefe93c99a4c71b35ac942
src/components/do/b1-inspect-order-plan/Inspection.vue
@@ -155,9 +155,12 @@
  }
  .inspection .el-input-group__append {
    padding: 0 10px;
    padding: 0 14px;
    color: #3A7BFA;
    background-color: #fff;
    height: 100%;
    display: flex;
    align-items: center;
  }
  .inspection .center-box .el-input__inner {
@@ -308,10 +311,10 @@
                    <span :style="`font-family:${n.v.ff} !important;`">{{n.v.v}}</span>
                  </template>
                  <template v-else-if="n.v.ps!=undefined && n.v.ps.value==='样品编号'">
                    <div style="display: flex;flex-wrap: nowrap;align-items: center;">
                      <i class="el-icon-caret-left table_caret" @click="caretSample(-1)" v-if="!currentFiberOpticTape&&!currentFiberOptic"></i>
                      <div :style="`font-family:${n.v.ff} !important;`">{{currentSample.sampleCode}}</div>
                      <i class="el-icon-caret-right table_caret"
                    <div style="display: flex;flex-wrap: nowrap;align-items: center;width: 100%" :title="currentSample.sampleCode">
                      <i class="el-icon-caret-left table_caret" style="width: 16px;" @click="caretSample(-1)" v-if="!currentFiberOpticTape&&!currentFiberOptic"></i>
                      <div :style="`font-family:${n.v.ff} !important;overflow: hidden;white-space: nowrap;width: calc(100% - 32px);`">{{currentSample.sampleCode}}</div>
                      <i class="el-icon-caret-right table_caret" style="width: 16px;"
                      v-if="!currentFiberOpticTape&&!currentFiberOptic"@click="caretSample(1)"></i>
                    </div>
                  </template>
@@ -359,6 +362,7 @@
      v-show="state==1&&fileAdd"
      :on-success="handleSuccessUp" :show-file-list="false"
        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>
      <ValueTable class="value-table" ref="fileList" :url="$api.insOrderPlan.getFileList"
@@ -636,6 +640,10 @@
              this.insOrder.typeName = m.label
            }
          })
          this.loading = false
          if(!res.data.sampleProduct||res.data.sampleProduct.length==0){
            return this.$message.error('该任务没有样品信息')
          }
          this.sampleProduct = res.data.sampleProduct
          this.currentSample = this.HaveJson(this.sampleProduct[0])
          let list = await this.getCurrentProduct(this.currentSample.id,0)
@@ -652,7 +660,6 @@
          })
          if (this.currentSample.index == undefined) this.currentSample['index'] = 1
          let bushing = this.currentSample.bushing
          this.loading = false
          // this.handleTableData()
          this.getTableLists();
          this.componentData.currentId = val;
@@ -1154,6 +1161,7 @@
        }
        this.excelMethodList.forEach(item => {
          if (item.valueList.find(m => m.r == r && m.c == c)) {
            console.log(item)
            var comValue = {}
            item.valueList.forEach(a => {
              list.forEach(b => {
@@ -1181,9 +1189,11 @@
            })
            if (item.methodName == '自定义方法' && item.v.ps != undefined && item.v.ps.value == '结论') {
              if (this.currentSample.insProduct.find(m => m.id == item.i)) {
                let ask = this.currentSample.insProduct.find(m => m.id == item.i).ask.split('&');
                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 = ask.map((m, i) => {
                let comp = []
                if(ask){
                  comp = ask.map((m, i) => {
                  if (m.includes('=')) {
                    return res == m.split('=')[1]
                  } else if (m.includes('≥')) {
@@ -1205,6 +1215,7 @@
                    return res >= (k[0] - k[1]) && res <= (k[0] + k[1])
                  }
                })
                }
                if(this.getInspectionValueType(item.i)==1){
                  if (comp.every(m => m)) {
                    item.v.v = 1
@@ -1231,11 +1242,25 @@
                  }
                  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(arr[0])
                  break;
                default:
                  let valueList = [];
                  item.valueList.forEach(a => {
                    valueList.push({
                      name: `${this.comparisonList[a.c].label}${a.r+1}`,
                      name: `${this.comparisonList.find(e=>e.value==a.c).label}${a.r+1}`,
                      value: 0,
                    })
                  })
@@ -1250,21 +1275,18 @@
                  valueList.forEach(b => {
                    str = str.replace(b.name, b.value)
                  })
                  if (item.v.f.includes('/')) {
                    if (Object.getOwnPropertyNames(comValue).length == valueList.length) {
                      comResult = eval(str)
                    } else {
                      comResult = ''
                    }
                  } else {
                  try {
                    if(this.getInspectionValueType(item.i)==1){
                      comResult = eval(str)
                    }else{
                      comResult = str
                    }
                  } catch (error) {
                  }
                  break;
              }
              console.log(comResult)
              list.forEach(a => {
                if (a[0].r == item.r && comResult != '') {
                  for (var b in a) {
@@ -1343,10 +1365,10 @@
              this.tableList[0].insProductResult[m] = JSON.stringify(this.tableList[0].insProductResult[m])
              break;
            case 'resValue':
              this.tableList[0].lastValue = value.v.v
              this.tableList[0].lastValue = value?value.v.v:''
              break;
            case 'insResult':
              this.tableList[0].insResult = value.v.v
              this.tableList[0].insResult = value?value.v.v:''
              break;
          }
        }
@@ -1380,7 +1402,7 @@
              }
            } else {
              valueList = []
              let regex = /[=\+\-\*\%\(\)\/\s]/g
              let regex = /[=\+\-\*\%\(\)\/\^\s]/g
              let mode = item.v.f.replace(regex, ' ').split(' ');
              mode.filter(m => m && !Number(m)).forEach(m => {
                let r = m.replace(/[a-zA-Z]/g, "") - 1
@@ -1395,6 +1417,20 @@
            return item;
          })
        }
      },
      median(arr) {
          // 对数组进行排序
          const sortedArr = arr.sort((a, b) => a - b);
          // 计算数组长度的一半
          const half = Math.floor(sortedArr.length / 2);
          // 如果数组长度为奇数,返回中间的元素;如果为偶数,返回中间两个元素的平均值
          if (sortedArr.length % 2) {
              // 奇数位置的元素
              return sortedArr[half];
          } else {
              // 偶数位置的平均值
              return (sortedArr[half - 1] + sortedArr[half]) / 2;
          }
      },
      getInspectionValueType(id) {
        for (var a in this.currentSample.insProduct) {
@@ -1437,20 +1473,34 @@
        }
      },
      getSystemValue(n) {
        let code = null
        try {
          if (this.param[n.i].equipValue.v.v == null || this.param[n.i].equipValue.v.v == '') {
            this.$message.error('请先选择采集的设备')
            return
          }
          this.param[n.i].equipValue.forEach(a=>{
            if(a.r === n.r){
              if (a.v.v == null || a.v.v == '') {
                this.$message.error('请先选择采集的设备')
                return
              }else{
                code = a.v.v
              }
            }
          })
        } catch (e) {
          console.log(e);
          this.$message.error('找不到设备内容')
        }
        this.$message.error('采集失败【已开放手动方式】')
        console.log(n, code);
        fetch('http://localhost:82/微信图片_20240518100811.png').then(res=>res.blob()).then(blob=>{
          console.log(blob);
          const url = URL.createObjectURL(blob)
          console.log(url);
        })
        /* this.$message.error('采集失败【已开放手动方式】')
        for (var a in this.currentSample.insProduct) {
          if (this.currentSample.insProduct[a].id == n.i) {
            this.currentSample.insProduct[a].inspectionItemType = 0
          }
        }
        } */
      },
      getEquipOptions(e, id) {
        if (e) {
@@ -1547,7 +1597,6 @@
          laboratory: this.sonLaboratory,
        }).then(res => {
          if (res.code === 200) {
            console.log(res.data)
            if(!res.data||res.data.length==0){
              this.$axios.post(this.$api.insOrderPlan.submitPlan, {
                orderId: this.orderId,
@@ -1571,7 +1620,7 @@
                if(lastChar=='-'){
                  res.data[i] = res.data[i].slice(0, -1);
                }
                newData.push(h('p', {style: 'font-size: 12px;'}, (Number(i)+1)+'、'+res.data[i]))
                newData.push(h('p', {style: 'font-size: 14px;color: red;'}, (Number(i)+1)+'、'+res.data[i]))
              }
              newData.push(h('p',  { style: 'font-size: 16px;color:#000;margin-top:12px' },'以上项目不合格,确定提交?'))
              this.$confirm('提示',{