spring
2025-04-23 4e93a3fab91b42560336647ea1051a8f9ad554fd
src/views/business/inspectionTask/inspection.vue
@@ -91,9 +91,9 @@
          </el-radio-group>
        </div>
        <div style="display: flex; align-items: center">
          <el-button v-if="state == 1" size="small" type="primary" @click="openAddUnpass">新增不合格复测</el-button>
          <!-- <el-button v-if="state == 1" size="small" type="primary" @click="openAddUnpass">新增不合格复测</el-button>
          <el-button v-if="state == 1" size="small" type="primary" @click="unpassCheck">不合格复测</el-button>
          <el-button v-if="state > 1" size="small" type="primary" @click="viewUnpassCheck">查看不合格复测</el-button>
          <el-button v-if="state > 1" size="small" type="primary" @click="viewUnpassCheck">查看不合格复测</el-button> -->
          <span v-if="cableTagList.length > 0">&nbsp;&nbsp;电缆配置:</span>
          <el-select v-if="cableTagList.length > 0" v-model="currentTab" clearable placeholder="请选择" size="small"
            @change="(m) => handleChangeCableTag(currentSample.id, 0, 'cableTag', m)
@@ -138,6 +138,11 @@
                type="success">已检</el-tag>
            </el-option>
          </el-select>
          <!-- 网分仪数采国产/进口 -->
          <NetworkAnalyzerDataAcquisition :itemList="currentSample.insProduct" :param="param"
            :equipOptions="equipOptions"
            v-if="Array.isArray(currentSample.insProduct) && currentSample.insProduct.length > 0 && param"
            ref="NetworkAnalyzerDataAcquisition" />
          <el-button :loading="dataAcquisitionLoading" v-if="state == 1" size="small" type="primary"
            @click="getDataAcquisitionDevice">数据采集</el-button>
          <el-button :type="dataAcquisitionEidtAble ? '' : 'primary'" v-if="state == 1" size="small"
@@ -151,18 +156,18 @@
          <table v-for="(item, index) in tableList" :key="index + currentTable + currentSample.id" border="1"
            cellpadding="10" class="tables" id="myTable">
            <tbody>
              <tr style="white-space: nowrap">
                委托编号:{{
                  insOrder.entrustCode
                }}
              <tr>
                <th :colspan="50" style="text-align: left !important;">
                  委托编号:{{
                    insOrder.entrustCode
                  }}
                </th>
              </tr>
              <tr v-for="(m, i) in item.arr" :key="i">
                <td v-for="(n, j) in m" v-if="n.v.mc == undefined || Object.keys(n.v.mc).length === 4"
                  :id="item.templateId + '-' + n.i + '-' + n.r + '-' + n.c" :key="j"
                  :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 ? 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' : ''
                    };font-size:${n.v.fs}px;height:${item.style.rowlen[n.r]}px;font-wight:${n.v.bl ? 'bold' : ''
                    };`">
                  <div :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;`" class="content">
@@ -285,7 +290,7 @@
                      state == 1
                    "><span :style="`font-family:${n.v.ff} !important;`">{{
                      toFixed(n.v.v, n.v.ct)
                    }}</span></template>
                        }}</span></template>
                    <template v-else-if="
                      n.v.ps != undefined &&
                      n.v.ps.value === '最终值' &&
@@ -318,6 +323,20 @@
                      " :style="`font-family:${n.v.ff} !important;`">
                        {{ currentSample.model }}
                      </div>
                    </template>
                    <template v-else-if="n.v.ps != undefined && n.v.ps.value === '起始时间'
                    ">
                      <span v-if="state > 1 || (n.u != userId && n.u != undefined && n.u != '')">{{ n.v.v }}</span>
                      <el-date-picker v-else v-model="n.v.v" type="datetime" placeholder="" format="yyyy-MM-dd HH:mm:ss"
                        value-format="yyyy-MM-dd HH:mm:ss" @change="(val) => changeTestTime(val, n, 'testStartTime')">
                      </el-date-picker>
                    </template>
                    <template v-else-if="n.v.ps != undefined && n.v.ps.value === '终止时间'
                    ">
                      <span v-if="state > 1 || (n.u != userId && n.u != undefined && n.u != '')">{{ n.v.v }}</span>
                      <el-date-picker v-else v-model="n.v.v" type="datetime" placeholder="" format="yyyy-MM-dd HH:mm:ss"
                        value-format="yyyy-MM-dd HH:mm:ss" @change="(val) => changeTestTime(val, n, 'testEndTime')">
                      </el-date-picker>
                    </template>
                    <span v-else :style="`font-family:${n.v.ff} !important;`" v-html="getValue(n.v)"></span>
                  </div>
@@ -515,6 +534,7 @@
import UnPassDialog from "../unpass/components/unPassDialog.vue";
import AddUnPass from "../unpass/components/addUnPass.vue";
import InspectionWord from "./components/InspectionWord.vue";
import NetworkAnalyzerDataAcquisition from "./components/NetworkAnalyzerDataAcquisition.vue";
import PurchaseVerification from "../unpass/components/PurchaseVerification.vue";
import {
  doInsOrder,
@@ -549,6 +569,7 @@
    limsTable,
    UnPassDialog,
    InspectionWord,
    NetworkAnalyzerDataAcquisition,
  },
  data() {
    return {
@@ -823,6 +844,8 @@
                equipValue: [],
                equipName: [],
                insResult: null,
                testEndTime: [],
                testStartTime: [],
              };
            });
            // 去重模板,返回有几个模板
@@ -950,7 +973,7 @@
        // 赋值当前样品列表
        this.sampleProduct = res.data.sampleProduct;
        this.currentSample = this.HaveJson(this.sampleProduct[0]);
        let insProduct = this.HaveJson(this.currentSample.insProduct);
        // let insProduct = this.HaveJson(this.currentSample.insProduct);
        // 温度、湿度赋值
        this.otherForm = {
          temperature: this.insOrder.temperature
@@ -977,6 +1000,8 @@
            equipValue: [],
            equipName: [],
            insResult: null,
            testEndTime: [],
            testStartTime: [],
          };
        });
        if (this.currentSample.index == undefined)
@@ -1447,6 +1472,7 @@
    },
    // 多线程
    startWorker() {
      console.log(`Worker 线程开始运行...`, this.worker, this.worker0)
      if (this.worker) {
        this.stopWorker(); // 确保之前的 Worker 已停止
      }
@@ -1519,7 +1545,7 @@
        repetitionTag: this.repetitionTag
      });
      this.tableLoading = false;
      if (res.data.length > 0) {
      if (res.data) {
        return res.data;
      }
    },
@@ -1544,6 +1570,8 @@
          equipValue: [],
          equipName: [],
          insResult: null,
          testEndTime: [],
          testStartTime: [],
        };
      });
      // 处理页面列表数据
@@ -1589,6 +1617,8 @@
              equipValue: [],
              equipName: [],
              insResult: null,
              testEndTime: [],
              testStartTime: [],
            };
          });
          this.getTableLists0(list);
@@ -1949,6 +1979,12 @@
              ) {
                a.template[b].v.v = id.product.methodS;
              }
              if (
                a.template[b].v.ps != undefined &&
                a.template[b].v.ps.value === "试验条件"
              ) {
                a.template[b].v.v = id.product.radius;
              }
            }
          }
        });
@@ -1988,6 +2024,7 @@
          (n) => n.v.ps != undefined && n.v.ps.value === "最终值"
        ); //最终值列表
        a.template.forEach((b) => {
          // console.log(444444, b)
          if (
            b.v.ps != undefined &&
            b.v.ps.value === "序号" &&
@@ -2035,6 +2072,24 @@
            }
            // b.v.v = ''
            b.i && this.param[b.i] && this.param[b.i].equipName.push(b);
          }
          if (b.v.ps != undefined && b.v.ps.value === "起始时间") {
            this.$set(b.v, "v", '');
            let obj = this.currentSample.insProduct.find(m => m.id == b.i)
            if (obj) {
              this.$set(b, "u", obj.checkUserId);
            }
            // this.param[b.i].testStartTime = []
            b.i && this.param[b.i] && this.param[b.i].testStartTime.push(b);
          }
          if (b.v.ps != undefined && b.v.ps.value === "终止时间") {
            this.$set(b.v, "v", "");
            let obj = this.currentSample.insProduct.find(m => m.id == b.i)
            if (obj) {
              this.$set(b, "u", obj.checkUserId);
            }
            // this.param[b.i].testEndTime = []
            b.i && this.param[b.i] && this.param[b.i].testEndTime.push(b);
          }
          if (b.v.ps != undefined && b.v.ps.value === "最终值") {
            // b.v.v = ''
@@ -2176,6 +2231,24 @@
          console.log("设备名称赋值----", e);
        }
        try {
          // 起始时间赋值
          let testStartTime = a.insProductResult.testStartTime ? JSON.parse(a.insProductResult.testStartTime) : []
          for (let i = 0; i < testStartTime.length; i++) {
            // 普通设备名称赋值
            this.param[a.id].testStartTime[i].v.v = testStartTime[i].v;
          }
        } catch (e) {
        }
        try {
          // 终止时间赋值
          let testEndTime = a.insProductResult.testEndTime ? JSON.parse(a.insProductResult.testEndTime) : []
          for (let i = 0; i < testEndTime.length; i++) {
            // 普通设备名称赋值
            this.param[a.id].testEndTime[i].v.v = testEndTime[i].v;
          }
        } catch (e) { }
        try {
          // 最终值赋值
          this.param[a.id].resValue.v.v = this.toFixed(
            a.lastValue,
@@ -2187,6 +2260,10 @@
      });
      // 对excel函数进行处理
      this.handleExcelMethod();
      this.$nextTick(() => {
        // 是否展示网分仪按钮
        this.$refs.NetworkAnalyzerDataAcquisition.init()
      })
    },
    // 检验值输入后触发的函数
    changeInput(m, code, n, getDataType, changeSelect) {
@@ -2200,6 +2277,9 @@
        // 定义一个函数来验证分数是否有效
        if (typeof n.v.v == "string") {
          function isValidFraction(fraction) {
            if (typeof fraction == 'number') {
              return true
            }
            const [numerator, denominator] = fraction.split("/"); // 分子和分母
            return !(!denominator || !numerator);
          }
@@ -2371,6 +2451,46 @@
                console.log(888, error);
              }
            }
            break;
          // 赋值起始时间
          case "testEndTime":
            if (value && value.length > 0) {
              this.tableList[0].insProductResult[m] = [];
              value.forEach((a, i) => {
                let obj = {
                  v: a.v.v,
                };
                this.tableList[0].insProductResult[m].push(obj);
              });
              try {
                this.tableList[0].insProductResult[m] = JSON.stringify(
                  this.tableList[0].insProductResult[m]
                );
              } catch (error) {
                console.log(888, error);
              }
            }
            // this.tableList[0].insProductResult[m] = value ? value.v.v : "";
            break;
          // 赋值终止时间
          case "testStartTime":
            if (value && value.length > 0) {
              this.tableList[0].insProductResult[m] = [];
              value.forEach((a, i) => {
                let obj = {
                  v: a.v.v,
                };
                this.tableList[0].insProductResult[m].push(obj);
              });
              try {
                this.tableList[0].insProductResult[m] = JSON.stringify(
                  this.tableList[0].insProductResult[m]
                );
              } catch (error) {
                console.log(888, error);
              }
            }
            // this.tableList[0].insProductResult[m] = value ? value.v.v : "";
            break;
          // 赋值最终值
          case "resValue":
@@ -2750,9 +2870,16 @@
        }
        // 保存数据
        this.saveInsContext(n.i);
        // 是否展示网分仪按钮
        this.$refs.NetworkAnalyzerDataAcquisition.init()
      } catch (e) {
        console.log("changeEquip----", e);
      }
    },
    // 起始时间/终止时间保存
    changeTestTime(val, n, type) {
      this.$set(this.param[n.i][type][0].v, 'v', val)
      this.saveInsContext(n.i);
    },
    getAuthorizedPerson() {
      selectUserCondition({ type: 1 }).then((res) => {
@@ -2820,6 +2947,8 @@
          equipValue: [],
          equipName: [],
          insResult: null,
          testEndTime: [],
          testStartTime: [],
        };
      });
      // 页面数据处理