zouyu
2025-03-19 45792b3776cda2e1ada31755ffc226a663f90b48
src/views/business/inspectionOrder/index.vue
@@ -1,10 +1,8 @@
<template>
  <div>
    <div>
  <div class="bg-1">
    <div style="margin: 5px 15px">
      <el-row class="title">
        <el-col :span="12" style="padding-left: 20px; text-align: left"
          >检验下单</el-col
        >
        <el-col :span="12" style="text-align: left">检验下单</el-col>
        <el-col :span="12" style="text-align: right">
          <el-button
            size="medium"
@@ -16,14 +14,18 @@
          <el-button size="medium" type="primary" @click="print"
            >标签打印</el-button
          >
          <el-button size="medium" type="primary" @click="playOrder(1)"
          <el-button
            size="medium"
            type="primary"
            @click="playOrder(1)"
            v-hasPermi="['business:order:add']"
            >下单</el-button
          >
        </el-col>
      </el-row>
    </div>
    <basic-container>
      <div class="search" :style="`height: ${more ? 130 : 80}px;`">
      <div class="search" :style="`height: ${more ? 100 : 50}px;`">
        <el-row :gutter="10" style="width: 100%">
          <el-col :span="20" style="display: flex; flex-wrap: wrap">
            <div class="search_thing" style="width: 20%">
@@ -33,7 +35,7 @@
                  size="small"
                  placeholder="请输入"
                  clearable
                  v-model="componentData.entity.entrustCode"
                  v-model="queryParams.entrustCode"
                  @keyup.enter.native="refreshTable()"
                ></el-input>
              </div>
@@ -47,7 +49,7 @@
                  size="small"
                  placeholder="请输入"
                  clearable
                  v-model="componentData.entity.outEntrustCode"
                  v-model="queryParams.outEntrustCode"
                  @keyup.enter.native="refreshTable()"
                ></el-input>
              </div>
@@ -59,7 +61,7 @@
                  size="small"
                  placeholder="请输入"
                  clearable
                  v-model="componentData.entity.sampleName"
                  v-model="queryParams.sampleName"
                  @keyup.enter.native="refreshTable()"
                ></el-input>
              </div>
@@ -71,7 +73,7 @@
                  size="small"
                  placeholder="请输入"
                  clearable
                  v-model="componentData.entity.sampleModel"
                  v-model="queryParams.sampleModel"
                  @keyup.enter.native="refreshTable()"
                ></el-input>
              </div>
@@ -83,7 +85,7 @@
                  size="small"
                  placeholder="请输入"
                  clearable
                  v-model="componentData.entity.sampleCode"
                  v-model="queryParams.sampleCode"
                  @keyup.enter.native="refreshTable()"
                ></el-input>
              </div>
@@ -93,7 +95,7 @@
              <div class="search_input">
                <el-date-picker
                  style="width: 100%"
                  v-model="componentData.entity.startAndEndTime"
                  v-model="queryParams.startAndEndTime"
                  type="daterange"
                  size="small"
                  range-separator="至"
@@ -113,7 +115,7 @@
                  size="small"
                  placeholder="请输入"
                  clearable
                  v-model="componentData.entity.name"
                  v-model="queryParams.name"
                  @keyup.enter.native="refreshTable()"
                ></el-input>
              </div>
@@ -125,7 +127,7 @@
                  size="small"
                  placeholder="请输入"
                  clearable
                  v-model="componentData.entity.engineering"
                  v-model="queryParams.engineering"
                  @keyup.enter.native="refreshTable()"
                ></el-input>
              </div>
@@ -137,7 +139,7 @@
                  size="small"
                  placeholder="请输入"
                  clearable
                  v-model="componentData.entity.production"
                  v-model="queryParams.production"
                  @keyup.enter.native="refreshTable()"
                ></el-input>
              </div>
@@ -162,7 +164,7 @@
      </div>
    </basic-container>
    <basic-container>
      <div style="width: 100%; height: 100%" v-show="active == 0">
      <div v-show="active == 0">
        <div class="table">
          <ul class="tab">
            <li
@@ -174,17 +176,13 @@
              {{ m.label }}
            </li>
          </ul>
          <!-- <ValueTable
          :style="getStyle()"
          ref="ValueTable"
          :url="$api.insOrder.selectInsOrderParameter"
          :componentData="componentData"
          :upIndex="upIndex"
          @getTableData="getTableData"
        /> -->
          <lims-table
            highlightCurrentRow
            isSelection
            :tableData="tableData"
            :height="tableHeight + ''"
            @pagination="pagination"
            :handleSelectionChange="selectionChange"
            :column="column"
            :page="page"
            :tableLoading="tableLoading"
@@ -240,7 +238,7 @@
        >
          <p style="font-size: 16px; color: #333333" v-if="!isQuash">
            委托编号<span style="color: #34bd66">{{
              this.insOrderRow.entrustCode
              this.insOrderRow.outEntrustCode
            }}</span
            >的信息是否撤销
          </p>
@@ -260,14 +258,10 @@
            </el-form-item>
          </el-form>
          <span slot="footer" class="dialog-footer">
            <el-row v-if="!isQuash">
              <el-button @click="handleClose">取 消</el-button>
              <el-button type="primary" @click="submitForm" :loading="upLoad"
                >确 定</el-button
              >
            </el-row>
            <el-row v-else>
              <el-button @click="handleClose">返 回</el-button>
            <el-row>
              <el-button @click="handleClose">{{
                isQuash ? "返 回" : "取 消"
              }}</el-button>
              <el-button type="primary" @click="submitForm" :loading="upLoad"
                >确 定</el-button
              >
@@ -376,14 +370,13 @@
          width="100%"
          fullscreen
        >
          <div style="height: 80vh; overflow-y: auto" v-if="dataDialogVisible">
            <ValueTable
              ref="ValueTableDataLook"
              :rowKey="'insProductId'"
              :url="$api.insOrder.selectSampleAndProductByOrderId"
              :componentData="componentDataDataLook"
            />
          </div>
          <lims-table
            highlightCurrentRow
            :height="'80vh'"
            :tableData="dataLooktableData"
            :column="dataLookColumn"
            :tableLoading="dataLookTableLoading"
          ></lims-table>
        </el-dialog>
        <el-dialog
          top="5vh"
@@ -393,18 +386,6 @@
          width="80%"
        >
          <div class="table-container" v-if="deleteDialogVisible">
            <!-- <ValueTable
            ref="ValueTableDataDelete"
            :url="
              $api.insOrder.selectNoProducts +
              '?orderId=' +
              orderId +
              '&ids=' +
              this.revocationInsProductIds
            "
            :componentData="componentDataDelete"
            :isColumnWidth="true"
          /> -->
            <el-table
              height="500px"
              ref="revokeTable"
@@ -560,7 +541,6 @@
            ></el-table-column>
          </el-table>
        </el-dialog>
        <!-- 导出已检数据 -->
        <el-dialog
          title="选择日期"
@@ -585,14 +565,14 @@
          </span>
        </el-dialog>
      </div>
      <div style="width: 100%; height: 100%" v-if="active > 0">
      <!-- <div style="width: 100%; height: 100%" v-if="active > 0">
        <Add
          :active="active"
          :currentId="currentId"
          v-if="active < 4"
          :examine="examine"
        />
      </div>
      </div> -->
      <el-dialog
        title="标签打印"
        :visible.sync="printDialogVisible"
@@ -624,7 +604,7 @@
                <el-checkbox
                  :label="i"
                  :key="i"
                  style="position: relative; top: -20px; left: 5px"
                  style="position: relative; top: -10px; left: 5px"
                  ><br
                /></el-checkbox>
                <div>
@@ -826,87 +806,467 @@
</template>
<script>
import limsTable from "@/components/Table/lims-table.vue";
import {
  addCustom,
  selectCustomPageList,
  delCustomById,
  upCustom,
  selectInsOrderParameter,
  labelPrinting,
  exportChecked,
  selectSampleAndProductByOrderId,
  selectSampleByOrderId,
  selectProductsBySampleId,
  revoke,
  viewDetails,
  downReport,
  selectTemperatureByProductId,
  selectTemperatureNumberByProductId,
  revokeReviewTemperatureByProductId,
  revokeReviewConsistentByProductId,
  revokeReviewProduct,
  revokeReviewSample,
  updateStatus,
  updateInspected,
  revocationPassed,
  revocationCancel,
} from "@/api/business/inspectionOrder";
import { upPlanUser2 } from "@/api/business/inspectionTask";
import { getDicts } from "@/api/system/dict/data";
import vueQr from "vue-qr";
import getLodop from "@/utils/lodop";
import Add from "./add.vue";
import { mapGetters } from "vuex";
import limsTable from "@/components/Table/lims-table.vue";
export default {
  components: {
    limsTable,
    Add,
    vueQr,
  },
  computed: {
    ...mapGetters(["permissions"]),
  },
  data() {
    return {
      queryParams: {
        entrustCode: "",
        outEntrustCode: "",
        sampleName: "",
        sampleModel: "",
        sampleCode: "",
        startAndEndTime: [],
        name: "",
        engineering: "",
        production: "",
      },
      tableData: [],
      page: {
        total: 0,
        size: 10,
        current: 0,
        size: 20,
        current: 1,
      },
      tableLoading: false,
      column: [
        { label: "委托编号", prop: "entrustCode" },
        { label: "外部委托编号", prop: "outEntrustCode" },
        { label: "委托单位", prop: "company" },
        { label: "样品名称", prop: "sampleName" },
        { label: "样品编号", prop: "sampleCode" },
        { label: "样品型号", prop: "sampleModel" },
        { label: "样品数量", prop: "sampleNum" },
        { label: "检验进度%", prop: "insProgress" },
        { label: "紧急程度", prop: "type" },
        { label: "备注", prop: "remark" },
        { label: "制单人", prop: "custom" },
        { label: "约定时间", prop: "appointed" },
        { label: "下单时间", prop: "createTime" },
        { label: "下发时间", prop: "sendTime" },
        { label: "退回理由", prop: "tell" },
        { label: "委托人", prop: "prepareUser" },
        { label: "撤销日期", prop: "revocationTime" },
        {
          label: "委托编号",
          prop: "entrustCode",
          minWidth: "160px",
          width: "160px",
        },
        {
          label: "外部委托编号",
          prop: "outEntrustCode",
          minWidth: "160px",
          width: "160px",
        },
        {
          label: "委托单位",
          prop: "company",
          minWidth: "160px",
          width: "160px",
        },
        {
          label: "样品名称",
          prop: "sampleName",
          minWidth: "160px",
          width: "160px",
          dataType: "link",
          linkEvent: {
            method: "showDetails",
            vueComponent: this,
          },
        },
        {
          label: "样品编号",
          prop: "sampleCode",
          minWidth: "160px",
          width: "160px",
        },
        {
          label: "样品型号",
          prop: "sampleModel",
          minWidth: "160px",
          width: "160px",
        },
        {
          label: "样品数量",
          prop: "sampleNum",
          minWidth: "120px",
          width: "120px",
        },
        {
          label: "检验进度%",
          prop: "insProgress",
          minWidth: "120px",
          width: "120px",
        },
        {
          label: "紧急程度",
          prop: "type",
          minWidth: "100px",
          width: "100px",
          dataType: "tag",
          formatData: (params) => {
            let index = this.urgencyDictList.findIndex(
              (item) => item.dictValue == params
            );
            if (index > -1) {
              return this.urgencyDictList[index].dictLabel;
            } else {
              return null;
            }
          },
          formatType: (params) => {
            let index = this.urgencyDictList.findIndex(
              (item) => item.dictValue == params
            );
            if (index > -1) {
              return this.urgencyDictList[index].listClass;
            } else {
              return null;
            }
          },
        },
        {
          label: "备注",
          prop: "remark",
          minWidth: "120px",
          width: "120px",
        },
        {
          label: "制单人",
          prop: "custom",
          minWidth: "120px",
          width: "120px",
        },
        {
          label: "约定时间",
          prop: "appointed",
          minWidth: "120px",
          width: "120px",
        },
        {
          label: "下单时间",
          prop: "createTime",
          minWidth: "120px",
          width: "120px",
        },
        {
          label: "下发时间",
          prop: "sendTime",
          minWidth: "120px",
          width: "120px",
        },
        {
          label: "退回理由",
          prop: "tell",
          minWidth: "120px",
          width: "120px",
        },
        {
          label: "委托人",
          prop: "prepareUser",
          minWidth: "120px",
          width: "120px",
        },
        {
          label: "撤销日期",
          prop: "revocationTime",
          minWidth: "120px",
          width: "120px",
        },
        {
          label: "操作",
          dataType: "action",
          fixed: "right",
          label: "操作",
          operation: [
            {
              name: "数据查看",
              type: "text",
              clickFun: (row) => {},
              disabled: (row) => {
                return row.state != 1 && row.state != 4;
              },
              clickFun: (row) => {
                this.handleDataLook(row);
              },
              showHide: () => {
                return true;
              },
            },
            {
              name: "报告下载",
              type: "text",
              clickFun: (row) => {},
              clickFun: (row) => {
                this.download(row);
              },
              disabled: (row, index) => {
                return row.state != 4 || row.isRatify != 1;
              },
            },
            {
              name: "审核",
              type: "text",
              clickFun: (row) => {},
              clickFun: (row) => {
                this.handleVerify(row);
              },
              disabled: (row, index) => {
                return row.state != 0;
              },
            },
            {
              name: "撤销",
              type: "text",
              clickFun: (row) => {},
              clickFun: (row) => {
                this.handlEquash(row);
              },
              disabled: (row, index) => {
                return row.state != 1 && row.state != 0;
              },
            },
            {
              name: "撤销审核",
              type: "text",
              clickFun: (row) => {},
              clickFun: (row) => {
                this.handlEquashCheck(row);
              },
              disabled: (row, index) => {
                return (
                  (row.state != 1 && row.state != 0) ||
                  this.tabIndex != 1 ||
                  row.isRevocation != 1
                );
              },
            },
            {
              name: "分配",
              type: "text",
              clickFun: (row) => {},
              disabled: (row, index) => {
                return (
                  row.state != 1 ||
                  (row.entrustCode != null &&
                    Number(row.assign) > 0 &&
                    row.inspectId != null)
                );
              },
            },
          ],
        },
      ],
      dataLookColumn: [
        {
          label: "委托编号",
          prop: "entrustCode",
          minWidth: "160px",
          width: "160px",
        },
        {
          label: "样品编号",
          prop: "sampleCode",
          minWidth: "160px",
          width: "160px",
        },
        {
          label: "管套色标",
          prop: "bushColor",
          minWidth: "100px",
          width: "100px",
        },
        {
          label: "光纤带编号",
          prop: "code",
          minWidth: "120px",
          width: "120px",
        },
        {
          label: "光纤色标",
          prop: "color",
          minWidth: "100px",
          width: "100px",
        },
        {
          label: "检验项",
          prop: "inspectionItem",
          minWidth: "120px",
          width: "120px",
        },
        {
          label: "检验子项",
          prop: "inspectionItemSubclass",
          minWidth: "120px",
          width: "120px",
        },
        {
          label: "检验结果",
          prop: "lastValue",
          minWidth: "120px",
          width: "120px",
        },
        {
          label: "结果判定",
          prop: "insResult",
          minWidth: "100px",
          width: "100px",
          dataType: "tag",
          formatData: (params) => {
            let index = this.insResultList.findIndex(
              (item) => item.value == params
            );
            if (index > -1) {
              return this.insResultList[index].label;
            } else {
              return null;
            }
          },
          formatType: (params) => {
            let index = this.insResultList.findIndex(
              (item) => item.value == params
            );
            if (index > -1) {
              return this.insResultList[index].type;
            } else {
              return null;
            }
          },
        },
        {
          label: "单位",
          prop: "unit",
          minWidth: "120px",
          width: "120px",
        },
        {
          label: "试验要求",
          prop: "tell",
          minWidth: "120px",
          width: "120px",
        },
        {
          label: "检验人",
          prop: "checkName",
          minWidth: "120px",
          width: "120px",
        },
        {
          label: "检验日期",
          prop: "checkTime",
          minWidth: "140px",
          width: "140px",
        },
        {
          label: "样品名称",
          prop: "sample",
          minWidth: "160px",
          width: "160px",
        },
        {
          label: "样品型号",
          prop: "model",
          minWidth: "160px",
          width: "160px",
        },
        {
          label: "试验室",
          prop: "sonLaboratory",
          minWidth: "120px",
          width: "120px",
        },
        {
          dataType: "action",
          label: "操作",
          fixed: "right",
          operation: [
            {
              name: "查看",
              type: "text",
              clickFun: (row) => {
                this.viewDetails(row);
              },
              showHide: (row) => {
                return (
                  row.inspectionItem == "单根垂直燃烧" ||
                  row.inspectionItem.includes("松套管") ||
                  row.inspectionItemSubclass.includes("松套管") ||
                  (row.inspectionItem == "抗拉强度" &&
                    (row.inspectionItemSubclass == "热老化处理前" ||
                      row.inspectionItemSubclass == "热老化处理后")) ||
                  (row.inspectionItem == "断裂伸长率" &&
                    (row.inspectionItemSubclass == "热老化处理前" ||
                      row.inspectionItemSubclass == "热老化处理后"))
                );
              },
            },
          ],
        },
      ],
      dataLookTableLoading: false,
      dataLooktableData: [],
      qrData: [],
      multipleSelection: [],
      sonLaboratoryList: [],
      urgencyDictList: [],
      tableHeight: 0,
      tabList: [
        {
          label: "待审核",
          value: 0,
        },
        {
          label: "待检验",
          value: 1,
        },
        {
          label: "已检验",
          value: 4,
        },
        {
          label: "退回",
          value: 2,
        },
        {
          label: "撤销",
          value: 3,
        },
      ],
      insResultList: [
        {
          value: 1,
          label: "合格",
          type: "success",
        },
        {
          value: 0,
          label: "不合格",
          type: "danger",
        },
        {
          value: 3,
          label: "不判定",
          type: "",
        },
      ],
      tabIndex: 0,
      active: 0, //1:下单,2:查看,3:审核,4:光纤配置,默认为0
      currentId: null,
      more: false,
      //old
      tableHeader: [],
      type: "",
@@ -948,326 +1308,982 @@
      // 人员列表
      personList: [],
      currentTableData: [],
      componentData: {
        entity: {
          entrustCode: null,
          sample: null,
          sampleName: null,
          sampleModel: null,
          sampleCode: null,
          outEntrustCode: null,
          state: 0,
          name: null,
          engineering: null,
          production: null,
          startAndEndTime: [],
          // orderBy: {
          //    field: '',
          //    order: ''
          // }
        },
        isIndex: true,
        showSelect: true,
        select: true,
        selectMethod: "selectMethod",
        do: [
          {
            id: "dataLook",
            font: "数据查看",
            type: "text",
            method: "handleDataLook",
            disabFun: (row, index) => {
              return row.state != 1 && row.state != 4;
            },
          },
          {
            id: "download",
            font: "报告下载",
            type: "text",
            method: "download",
            disabFun: (row, index) => {
              return row.state != 4 || row.isRatify != 1;
            },
          },
          {
            id: "verify",
            font: "审核",
            type: "text",
            method: "handleVerify",
            disabFun: (row, index) => {
              return row.state != 0;
            },
          },
          {
            id: "quash",
            font: "撤销",
            type: "text",
            method: "handlEquash",
            disabFun: (row, index) => {
              return row.state != 1 && row.state != 0;
            },
          },
          {
            id: "quashCheck",
            font: "撤销审核",
            type: "text",
            method: "handlEquashCheck",
            disabFun: (row, index) => {
              return (
                (row.state != 1 && row.state != 0) ||
                this.tabIndex != 1 ||
                row.isRevocation != 1
              );
            },
          },
          {
            font: "分配",
            type: "text",
            method: "handleIssued",
            disabFun: (row, index) => {
              return (
                row.state != 1 ||
                (row.entrustCode != null &&
                  Number(row.assign) > 0 &&
                  row.inspectId != null)
              );
            },
          },
        ],
        linkEvent: {
          sampleName: {
            method: "selectAllByOne",
          },
        },
        tagField: {
          type: {
            select: [
              {
                value: 0,
                type: "success",
                label: "普通",
              },
              {
                value: 1,
                type: "warning",
                label: "优先",
              },
              {
                value: 2,
                type: "danger",
                label: "紧急",
              },
            ],
          },
          createUser: {
            select: [],
          },
          orderType: {
            select: [],
          },
          processing: {
            select: [
              {
                value: 1,
                label: "实验室处理",
              },
              {
                value: 0,
                label: "委托单位取回",
              },
            ],
          },
          isLeave: {
            select: [
              {
                value: 1,
                label: "留样",
              },
              {
                value: 0,
                label: "不留样",
              },
            ],
          },
          send: {
            select: [
              {
                value: 1,
                label: "自取",
              },
              {
                value: 0,
                label: "其他",
              },
            ],
          },
        },
        selectField: {},
        requiredAdd: [],
        requiredUp: [],
        needSort: ["createTime", "sendTime", "type", "appointed"],
      },
      orderId: "",
      revocationInsProductIds: "",
      componentDataDataLook: {
        isPage: false,
        entity: {
          id: 0,
          orderBy: {
            field: "sampleCode",
            order: "asc",
          },
        },
        isIndex: false,
        showSelect: false,
        select: false,
        do: [
          {
            id: "",
            font: "查看",
            type: "text",
            method: "viewDetails",
            showFun: (row, index) => {
              return (
                row.inspectionItem == "单根垂直燃烧" ||
                row.inspectionItem.includes("松套管") ||
                row.inspectionItemSubclass.includes("松套管") ||
                (row.inspectionItem == "抗拉强度" &&
                  (row.inspectionItemSubclass == "热老化处理前" ||
                    row.inspectionItemSubclass == "热老化处理后")) ||
                (row.inspectionItem == "断裂伸长率" &&
                  (row.inspectionItemSubclass == "热老化处理前" ||
                    row.inspectionItemSubclass == "热老化处理后"))
              );
            },
          },
        ],
        tagField: {
          insState: {
            select: [],
          },
          insResult: {
            select: [
              {
                value: 1,
                label: "合格",
                type: "success",
              },
              {
                value: 0,
                label: "不合格",
                type: "danger",
              },
              {
                value: 3,
                label: "不判定",
                type: "",
              },
            ],
          },
        },
        selectField: {},
        spanConfig: {
          rows: [
            // {
            //   name: "entrustCode",
            //   index: 0,
            // },
            // {
            //   name: "sampleCode",
            //   index: 1,
            // },
          ],
        },
        requiredAdd: [],
        requiredUp: [],
      },
      componentDataDelete: {
        entity: {
          // orderId: '',
          // orderBy: {
          //    field: 'sampleCode',
          //    order: 'asc'
          // }
        },
        isPage: false,
        isIndex: false,
        showSelect: true,
        select: true,
        selectMethod: "selectDelete",
        do: [],
        tagField: {
          insState: {
            select: [],
          },
          insResult: {
            select: [
              {
                value: 1,
                label: "合格",
                type: "success",
              },
              {
                value: 0,
                label: "不合格",
                type: "danger",
              },
            ],
          },
        },
        selectField: {},
        spanConfig: {},
        requiredAdd: [],
        requiredUp: [],
      },
      deleteDialogVisible: false,
      entityCopy: {},
      upIndex: 0,
      upLoad: false,
      tabList: [
        {
          label: "待审核",
          value: 0,
        },
        {
          label: "待检验",
          value: 1,
        },
        {
          label: "已检验",
          value: 4,
        },
        {
          label: "退回",
          value: 2,
        },
        {
          label: "撤销",
          value: 3,
        },
      ],
      tabIndex: 0,
      active: 0, //1:下单,2:查看,3:审核,4:光纤配置,默认为0
      currentId: null,
      more: false,
      insOrderRow: {},
      checkIndexList: [],
      checkDataList: [
        {
          sampleCode: "11111",
          sampleCode: "",
        },
      ],
      qrData: [],
      multipleSelection: [],
      sonLaboratoryList: [],
      queryCount: 0,
    };
  },
  created() {
    this.getDictList();
    this.getTableHeight();
  },
  mounted() {
    this.getList();
    window.addEventListener("resize", this.getTableHeight);
  },
  beforeDestroy() {
    window.removeEventListener("resize", this.getTableHeight);
  },
  watch: {
    more() {
      this.getTableHeight();
    },
    printDialogVisible(newVal) {
      if (!newVal) {
        this.checkIndexList = [];
      }
    },
  },
  methods: {
    selectionChange(val) {
      console.log(val);
      this.multipleSelection = val;
    },
    //获取表格高度
    getTableHeight() {
      const otherHeight = this.more ? 430 : 380; // 其余高度
      const tableBottom = 50; // 距离页面下方的高度
      const tableHeightDetil = window.innerHeight - tableBottom;
      if (tableHeightDetil <= 300) {
        this.tableHeight = 200;
      } else {
        this.tableHeight = window.innerHeight - tableBottom - otherHeight;
      }
    },
    getDictList() {
      getDicts("urgency_level")
        .then((res) => {
          if (res.code === 200) {
            this.urgencyDictList = res.data;
          }
        })
        .catch((error) => {
          console.error(error);
        });
    },
    pagination({ page, limit }) {
      this.page.current = page;
      this.page.size = limit;
      this.getList();
    },
    //获取数据列表
    getList() {
      this.tableLoading = true;
      selectInsOrderParameter({ ...this.queryParams, ...this.page })
        .then((res) => {
          if (res.code === 200) {
            this.tableData = res.data.records;
            this.page.total = res.data.total;
          }
          this.tableLoading = false;
        })
        .catch((error) => {
          console.error(error);
          this.tableLoading = false;
        });
    },
    // 导出已检
    exportChecked() {
      let data = {
        startTime: this.exportCheckedDate[0],
        endTime: this.exportCheckedDate[1],
      };
      this.exportCheckedLoading = true;
      this.dialogVisible1 = false;
      exportChecked(data)
        .then((res) => {
          this.$message.success("导出成功");
          this.exportCheckedDate = [];
          this.exportCheckedLoading = false;
          const blob = new Blob([res], { type: "application/octet-stream" });
          const url = URL.createObjectURL(blob);
          const link = document.createElement("a");
          link.href = url;
          link.download = "检验结果.xlsx";
          document.body.appendChild(link);
          link.click();
        })
        .catch((error) => {
          console.error(error);
        });
    },
    // 查看详情
    viewDetails(row) {
      this.dialogVisible = true;
      if (
        row.inspectionItem.includes("松套管") ||
        row.inspectionItemSubclass.includes("松套管")
      ) {
        this.type = "松套管";
      } else {
        this.type = row.inspectionItem;
      }
      let data = {
        inspectionItem: row.inspectionItem,
        insProductId: row.insProductId,
        insSampleId: row.insSampleId,
        entrustCode: row.entrustCode,
        sampleCode: row.sampleCode,
        inspectionItemSubclass: row.inspectionItemSubclass,
      };
      viewDetails(data)
        .then((res) => {
          if (res.code === 200) {
            this.viewDetailsList = res.data;
            if (res.data[0].tableHeader) {
              this.tableHeader = res.data[0].tableHeader;
            } else {
              this.tableHeader = [
                {
                  testValue0: "",
                },
              ];
            }
          }
        })
        .catch((error) => {
          console.error(error);
        });
    },
    getLabelPrinting(selection) {
      this.loadPint = true;
      labelPrinting({
        ids: selection.map((m) => m.id).join(","),
      })
        .then((res) => {
          if (res.code === 200) {
            let arr = res.data;
            arr.forEach((a) => {
              this.loadPint = false;
              let arr1 = [];
              a.insProduct.forEach((b) => {
                arr1.push(b.inspectionItem);
              });
              a.item = [...new Set(arr1)].join(",");
            });
            this.qrData = arr;
          }
        })
        .catch((error) => {
          console.error(error);
        });
    },
    //开始标签打印
    beginPrint(arr) {
      if (arr.length === 0) {
        return;
      }
      this.LODOP = getLodop();
      this.LODOP.SET_LICENSES(
        "南通市鑫阳软件开发有限公司",
        "60F8E5078AE17DEB340C94BC7E83CAFF",
        "",
        ""
      );
      this.LODOP.PRINT_INITA();
      for (let i = 0; i < arr.length; i++) {
        const qrData = arr[i];
        let qrStr =
          "https://zttx-lims.ztt.cn:8021/lims/qr/qrScan?code=" +
          qrData.id +
          "&type=sample";
        this.LODOP.NEWPAGE();
        // this.LODOP.SET_PRINT_PAGESIZE(0, 100, 360, '')
        this.LODOP.SET_PRINT_MODE("PRINT_NOCOLLATE", 1);
        this.LODOP.ADD_PRINT_BARCODE(2, 5, 80, 80, "QRCode", qrStr);
        this.LODOP.ADD_PRINT_TEXT(5, 85, 60, 18, "样品编号:");
        this.LODOP.SET_PRINT_STYLEA(0, "FontSize", 5);
        this.LODOP.ADD_PRINT_TEXT(5, 117, 280, 18, qrData.sampleCode);
        this.LODOP.SET_PRINT_STYLEA(0, "FontSize", 5);
        this.LODOP.ADD_PRINT_TEXT(15, 85, 60, 18, "委托单号:");
        this.LODOP.SET_PRINT_STYLEA(0, "FontSize", 5);
        this.LODOP.ADD_PRINT_TEXT(15, 117, 280, 18, qrData.code);
        this.LODOP.SET_PRINT_STYLEA(0, "FontSize", 5);
        this.LODOP.ADD_PRINT_TEXT(25, 85, 60, 18, "规格型号:");
        this.LODOP.SET_PRINT_STYLEA(0, "FontSize", 5);
        this.LODOP.ADD_PRINT_TEXT(25, 117, 280, 18, qrData.model);
        this.LODOP.SET_PRINT_STYLEA(0, "FontSize", 5);
        this.LODOP.ADD_PRINT_TEXT(35, 85, 60, 18, "样品名称:");
        this.LODOP.SET_PRINT_STYLEA(0, "FontSize", 5);
        this.LODOP.ADD_PRINT_TEXT(35, 117, 280, 18, qrData.sample);
        this.LODOP.SET_PRINT_STYLEA(0, "FontSize", 5);
        this.LODOP.ADD_PRINT_TEXT(45, 85, 60, 20, "检测项目:");
        this.LODOP.SET_PRINT_STYLEA(0, "FontSize", 5);
        this.LODOP.ADD_PRINT_TEXT(
          45,
          117,
          150,
          20,
          qrData.item.length > 42
            ? qrData.item.substring(0, 39) + "..."
            : qrData.item
        );
        this.LODOP.SET_PRINT_STYLEA(0, "FontSize", 5);
        this.LODOP.ADD_PRINT_TEXT(67, 85, 60, 18, "样品状态:");
        this.LODOP.SET_PRINT_STYLEA(0, "FontSize", 5);
        let stateStr = "▢待检 ▢在检 ▢已检";
        let leaveStr =
          qrData.isLeave && qrData.isLeave === 1 ? " ▣留样" : " ▢留样";
        if (qrData.insState == 0) {
          stateStr = "▣待检 ▢在检 ▢已检";
        } else if (qrData.insState == 1) {
          stateStr = "▢待检 ▣在检 ▢已检";
        } else if (qrData.insState == 2) {
          stateStr = "▢待检 ▢在检 ▣已检";
        }
        this.LODOP.ADD_PRINT_TEXT(67, 117, 280, 18, stateStr + leaveStr);
        this.LODOP.SET_PRINT_STYLEA(0, "FontSize", 5);
      }
      this.LODOP.PRINT();
      // this.LODOP.PREVIEW()
    },
    //选择要打印的二维码
    changePrintCode() {
      let indexList = this.checkIndexList;
      let arr = [];
      indexList.forEach((i) => {
        arr.push(this.qrData[i]);
      });
      this.checkDataList = arr;
    },
    //全选
    handleCheckAllChange(val) {
      if (val) {
        for (var i = 0; i < this.qrData.length; i++) {
          this.checkIndexList.push(i);
        }
        this.checkDataList = this.qrData;
      } else {
        this.checkIndexList = [];
        this.checkDataList = [];
      }
      this.isIndeterminate = false;
    },
    submitPrint() {
      if (this.checkDataList.length < 1) {
        this.$message.warning("请选择要打印的二维码");
        return;
      }
      this.$nextTick(() => {
        this.beginPrint(this.qrData);
      });
      this.printDialogVisible = false;
    },
    print() {
      if (this.multipleSelection.length == 0) {
        this.$message.warning("请选择一条数据");
        return;
      }
      let selection = this.multipleSelection;
      this.getLabelPrinting(selection);
      this.printDialogVisible = true;
    },
    refreshTable() {
      this.getList();
    },
    refresh() {
      this.queryParams = {
        entrustCode: "",
        outEntrustCode: "",
        sampleName: "",
        sampleModel: "",
        sampleCode: "",
        startAndEndTime: [],
        name: "",
        engineering: "",
        production: "",
      };
      this.refreshTable();
    },
    handleClose() {
      this.verifyDialogVisible = false;
      this.quashDialogVisible = false;
      this.issuedDialogVisible = false;
      this.dataDialogVisible = false;
      this.upLoad = false;
    },
    handleClose2() {
      this.verifyDialogVisible = false;
      this.quashDialogVisible = false;
      this.issuedDialogVisible = false;
      this.dataDialogVisible = false;
      this.upLoad = false;
    },
    handleClose3() {
      this.dialogVisible = false;
    },
    handleClose4() {
      this.exportCheckedDate = [];
      this.dialogVisible1 = false;
    },
    // 查看详情
    showDetails(row) {
      this.$router.push({
        name: "showDetails",
        query: {
          active: 2,
          currentId: row.id,
          examine: 1,
          isPlan: false,
        },
      });
    },
    // 数据查看
    handleDataLook(row) {
      selectSampleAndProductByOrderId({ id: row.id })
        .then((res) => {
          if (res.code === 200) {
            this.dataLooktableData = res.data;
          }
        })
        .catch((error) => {
          console.error(error);
        });
      this.dataDialogVisible = true;
    },
    // 下载报告
    download(row) {
      downReport({ id: row.reportId })
        .then((res) => {
          let fileName = row.tempUrlPdf;
          if (fileName.includes("_")) {
            fileName = fileName.split("_")[1];
          }
          const blob = new Blob([res], { type: "application/octet-stream" });
          const url = URL.createObjectURL(blob);
          const link = document.createElement("a");
          link.href = url;
          link.download = fileName;
          document.body.appendChild(link);
          link.click();
        })
        .catch((error) => {
          console.error(error);
        });
    },
    // 审核
    handleVerify(row) {
      this.$router.push({
        name: "showDetails",
        query: {
          active: 3,
          currentId: row.id,
          examine: 1,
        },
      });
    },
    // 全选
    handleSelectionAll(val) {
      if (val.length > 0 && val.length <= this.treeTableData.length) {
        this.handleSelectionAllRecursion(this.treeTableData, true);
        console.log("传输的数据", this.revokeData);
      } else {
        this.$refs.revokeTable.clearSelection();
        this.revokeData = [];
      }
    },
    handleSelectionAllRecursion(list, flag) {
      for (let i = 0; i < list.length; i++) {
        let item = list[i];
        this.$refs.revokeTable.toggleRowSelection(item, flag);
        if (flag) {
          this.revokeData.push(item);
          this.revokeData = this.revokeData.filter(
            (a, index, self) => index === self.findIndex((t) => t.id === a.id)
          );
        }
        if (item.children && item.children.length > 0) {
          this.handleSelectionAllRecursion(item.children, flag);
        }
      }
    },
    // 选择需要撤销的数据
    handleSelectionChange(val, row) {
      console.log("rwo", row);
      this.revokeData = val;
      // 进行一个递归操作
      // 判断是否选中 val包含既是选中  不包含既是取消选中
      let flag = null;
      if (val.includes(row)) {
        flag = true;
      } else {
        flag = false;
      }
      if (row.children && row.children.length > 0) {
        this.tableSelect(row, flag);
      }
      // 还要进行一个判断 如果全选之后又取消了选择,那么相应的sampleId也要取消
      this.$nextTick(() => {
        if (!flag) {
          this.treeTableData.forEach((item) => {
            if (item.id == row.sampleId) {
              this.$refs.revokeTable.toggleRowSelection(item, false);
            }
          });
          // 温度点
          if (row.number) {
            this.revokeData = this.revokeData.filter(
              (a) =>
                a.inspectionItemSubclass != row.inspectionItemSubclass &&
                a.inspectionItem != "温度循环" &&
                a.inspectionItemTwo != row.number &&
                a.id != row.sampleId
            );
            console.log("treeTableData", this.treeTableData);
            this.treeTableData.forEach((item) => {
              if (item.id == row.sampleId && item.children.length > 0) {
                item.children.forEach((a) => {
                  if (a.inspectionItem == "温度循环") {
                    this.$refs.revokeTable.toggleRowSelection(a, false);
                    if (a.children.length > 0) {
                      a.children.forEach((b) => {
                        if (b.inspectionItemTwo == row.number) {
                          this.$refs.revokeTable.toggleRowSelection(b, false);
                        }
                      });
                    }
                  }
                });
              }
            });
          } else if (row.temperatureNumber) {
            // 循环次数
            this.revokeData = this.revokeData.filter(
              (a) =>
                a.inspectionItem != "温度循环" &&
                a.id != row.sampleId &&
                a.inspectionItemTwo != row.inspectionItemTwo &&
                a.number != row.inspectionItemTwo
            );
            console.log("treeTableData", this.treeTableData);
            this.treeTableData.forEach((item) => {
              if (item.id == row.sampleId && item.children.length > 0) {
                item.children.forEach((a) => {
                  if (a.inspectionItem == "温度循环") {
                    this.$refs.revokeTable.toggleRowSelection(a, false);
                  }
                });
              }
            });
          } else if (row.temperature) {
            // 如果是温度循环
            this.revokeData = this.revokeData.filter(
              (a) =>
                a.id != row.sampleId &&
                a.inspectionItem != "温度循环" &&
                a.parentId != row.id
            );
          } else {
            this.revokeData = this.revokeData.filter(
              (a) => a.id != row.sampleId
            );
          }
        }
        console.log("最终结果", this.revokeData);
      });
    },
    // load的递归赋值
    loadRecursion(list, treeId, data) {
      for (let i = 0; i < list.length; i++) {
        let item = list[i];
        if (item.id == treeId) {
          item.children = data;
          return;
        }
        if (item.children && item.children.length > 0) {
          this.loadRecursion(item.children, treeId, data);
        }
      }
    },
    // 选中的递归
    selectedRecursion(list) {
      if (list.children && list.children.length > 0) {
        console.log("有子节点", list);
        for (let i = 0; i < list.children.length; i++) {
          let item = list.children[i];
          this.$refs.revokeTable.toggleRowSelection(item, true);
          this.revokeData.push(item);
          this.revokeData = this.revokeData.filter(
            (m, index, self) => index === self.findIndex((t) => t.id === m.id)
          );
          if (item.children && item.children.length > 0) {
            this.selectedRecursion(item.children);
          }
        }
      } else {
        console.log("没有子节点", list);
        this.$refs.revokeTable.toggleRowSelection(list, true);
        return;
      }
    },
    // 递归treeTableData
    recursionTreeTableData(list, data) {
      console.log("list", list);
      // list 选中的数据  data代表treetableData
      for (let i = 0; i < list.length; i++) {
        let item = list[i];
        for (let j = 0; j < data.length; j++) {
          let m = data[j];
          if (item.id == m.id) {
            console.log("m", m);
            this.selectedRecursion(m);
          }
          if (m.children && m.children.length > 0) {
            this.recursionTreeTableData(list, m.children);
          }
        }
      }
    },
    watchRecursion(list, flag, id) {
      console.log("999", list, flag, id);
      for (let j = 0; j < this.treeTableData.length; j++) {
        let m = this.treeTableData[j];
        if (m.id == id) {
          this.$refs.revokeTable.toggleRowSelection(m, flag);
          if (flag) {
            this.revokeData.push(m);
            this.revokeData = this.revokeData.filter(
              (a, index, self) => index === self.findIndex((t) => t.id === a.id)
            );
          } else {
            this.revokeData = this.revokeData.filter((a) => a.id != id);
          }
          if (m.children && m.children.length > 0) {
            m.children.forEach((a) => {
              this.$refs.revokeTable.toggleRowSelection(a, flag);
              if (a.children) {
              }
            });
          }
        }
      }
    },
    tableSelect(list, flag) {
      if (list.children && list.children.length > 0) {
        for (let i = 0; i < list.children.length; i++) {
          let item = list.children[i];
          this.$refs.revokeTable.toggleRowSelection(item, flag);
          if (flag) {
            this.revokeData.push(item);
            this.revokeData = this.revokeData.filter(
              (a, index, self) => index === self.findIndex((t) => t.id === a.id)
            );
          } else {
            this.revokeData = this.revokeData.filter((a) => a.id != item.id);
          }
          if (item.children && item.children.length > 0) {
            this.tableSelect(item, flag);
          }
        }
      }
    },
    // 懒加载查询
    load(tree, treeNode, resolve) {
      treeNode.loading = true;
      if (this.deleteTilte == "撤销") {
        // 是否是温度循环
        if (tree.temperature) {
          selectTemperatureByProductId({ productId: tree.id })
            .then((res) => {
              if (res.code === 200) {
                this.loadRecursion(this.treeTableData, tree.id, res.data);
                resolve(res.data);
                this.recursionTreeTableData(
                  this.revokeData,
                  this.treeTableData
                );
                treeNode.loading = false;
              }
            })
            .catch((error) => {
              console.error(error);
            });
        }
        // 是否是检验次数
        else if (tree.temperatureNumber) {
          selectTemperatureNumberByProductId({
            parentId: tree.parentId,
            inspectionItem: tree.inspectionItemTwo,
          })
            .then((res) => {
              if (res.code === 200) {
                this.loadRecursion(this.treeTableData, tree.id, res.data);
                resolve(res.data);
                this.recursionTreeTableData(
                  this.revokeData,
                  this.treeTableData
                );
                treeNode.loading = false;
              }
            })
            .catch((error) => {
              console.error(error);
            });
        } else {
          selectProductsBySampleId({
            sampleId: tree.id,
            orderId: this.orderId,
          })
            .then((res) => {
              if (res.code === 200) {
                this.treeTableData.forEach((m, index) => {
                  if (m.sampleId == tree.id) {
                    m.children = res.data;
                  }
                });
                resolve(res.data);
                this.recursionTreeTableData(
                  this.revokeData,
                  this.treeTableData
                );
                treeNode.loading = false;
              }
            })
            .catch((error) => {
              console.error(error);
            });
        }
      } else if (this.deleteTilte == "撤销审核") {
        // 是否是温度循环
        if (tree.temperature) {
          revokeReviewTemperatureByProductId({ productId: tree.id })
            .then((res) => {
              if (res.code === 200) {
                resolve(res.data);
                treeNode.loading = false;
              }
            })
            .catch((error) => {
              console.error(error);
            });
        }
        // 是否是循环次数
        else if (tree.temperatureNumber) {
          revokeReviewConsistentByProductId({
            parentId: tree.parentId,
            inspectionItem: tree.inspectionItemTwo,
          })
            .then((res) => {
              if (res.code === 200) {
                resolve(res.data);
                treeNode.loading = false;
              }
            })
            .catch((error) => {
              console.error(error);
            });
        } else {
          revokeReviewProduct({
            sampleId: tree.id,
            orderId: this.orderId,
          })
            .then((res) => {
              if (res.code === 200) {
                resolve(res.data);
                treeNode.loading = false;
              }
            })
            .catch((error) => {
              console.error(error);
            });
        }
      }
    },
    // 撤销
    handlEquash(row) {
      if (this.tabIndex != 1) {
        this.quashDialogVisible = true;
        this.insOrderRow = row;
      } else {
        this.orderId = row.id;
        selectSampleByOrderId({
          orderId: row.id,
        })
          .then((res) => {
            if (res.code === 200) {
              this.treeTableData = res.data;
              this.treeTableData2 = JSON.parse(JSON.stringify(res.data));
            }
          })
          .catch((error) => {
            console.error(error);
          });
        this.revocationInsProductIds = "";
        this.deleteTilte = "撤销";
        this.deleteDialogVisible = true;
      }
    },
    handleCloseDelete() {
      this.revokeData = [];
      this.treeTableData = [];
      this.deleteDialogVisible = false;
    },
    selectDelete(arr) {
      this.deleteList = arr;
    },
    submitDelete() {
      if (this.deleteTilte == "撤销") {
        if (this.revokeData.length == 0) {
          this.$message.error("请选择要撤销的具体项目");
          return;
        }
        //this.printLoading = true;
        // 如果勾选了样品
        let productIds = [];
        let sampleData = this.revokeData.filter(
          (m) => m.hasChildren && !m.temperatureNumber && !m.temperature
        );
        let sampleIds = [];
        if (sampleData.length > 0) {
          console.log("选择了样品", sampleData);
          sampleIds = sampleData.map((m) => m.id);
          let newDate = this.revokeData.filter((m) => {
            return sampleIds.every((id) => m.sampleId != id);
          });
          if (newDate) {
            productIds = newDate.map((m) => m.id);
          }
        } else {
          console.log("选择项目");
          // 过滤掉循环次数
          let data = this.revokeData.filter((item) => !item.ids);
          // 如果勾选循环次数
          let data1 = this.revokeData.filter((item) => item.ids);
          productIds = data.map((m) => m.id);
          data1.forEach((item) => {
            if (item.ids.length > 0) {
              item.ids.forEach((a) => {
                productIds.push(a);
              });
            }
          });
          productIds = [...new Set(productIds)];
        }
        let data = {
          orderId: this.orderId,
          sampleIds: sampleIds,
          productIds: productIds,
        };
        revoke(data)
          .then((res) => {
            if (res.code === 200) {
              this.deleteDialogVisible = false;
              this.printLoading = false;
              this.revokeData = [];
              this.refreshTable();
              this.$message.success("撤销成功");
            }
          })
          .catch((error) => {
            console.error(error);
          });
      } else {
        revocationPassed({
          orderId: this.orderId,
        })
          .then((res) => {
            if (res.code === 200) {
              this.printLoading = false;
              this.deleteDialogVisible = false;
              this.refreshTable();
              this.$message.success("更新成功");
            }
          })
          .catch((error) => {
            console.error(error);
          });
      }
    },
    handlEquashCheck(row) {
      this.orderId = row.id;
      this.revocationInsProductIds = row.revocationInsProductIds;
      this.deleteTilte = "撤销审核";
      revokeReviewSample({
        orderId: row.id,
      })
        .then((res) => {
          if (res.code === 200) {
            this.treeTableData = res.data;
          }
        })
        .catch((error) => {
          console.error(error);
        });
      this.deleteDialogVisible = true;
    },
    handleNo() {
      if (this.deleteTilte == "撤销") {
        this.deleteDialogVisible = false;
        this.revokeData = [];
      } else {
        revocationCancel({
          orderId: this.orderId,
        })
          .then((res) => {
            if (res.code === 200) {
              this.printLoading = false;
              this.deleteDialogVisible = false;
              this.refreshTable();
              this.$message.success("更新成功");
            }
          })
          .catch((error) => {
            console.error(error);
          });
      }
    },
    // 下发
    handleIssued(row) {
      this.issuedDialogVisible = true;
      selectOrderManDay({
        id: row.id,
      })
        .then((res) => {
          if (res.code === 200) {
            this.distributeData.orderId = row.id;
            this.distributeData.sampleId = row.sampleId;
            this.distributeData.appointed = res.data;
            this.distributeData.type = row.type;
          }
        })
        .catch((error) => {
          console.error(error);
        });
      upPlanUser2({
        orderId: row.id,
      })
        .then((res) => {
          if (res.code === 200 && res.data.length > 0) {
            this.sonLaboratoryList = [];
            res.data.forEach((m) => {
              this.sonLaboratoryList.push({
                value: m,
                label: m,
              });
            });
          }
        })
        .catch((error) => {
          console.error(error);
        });
    },
    submitForm2() {
      if (
        this.distributeData.appointed == null ||
        this.distributeData.appointed == ""
      ) {
        this.$message.error("约定时间未填写");
        return;
      }
      //
      if (
        this.distributeData.type == 2 &&
        (this.distributeData.userId == null || this.distributeData.userId == "")
      ) {
        this.$message.error("指派人员未填写");
        return;
      }
      if (
        this.distributeData.userId &&
        (this.distributeData.sonLaboratory == null ||
          this.distributeData.sonLaboratory == "")
      ) {
        this.$message.error("试验室未填写");
        return;
      }
      this.upLoad = true;
      upInsOrder({
        orderId: this.distributeData.orderId,
        sampleId: this.distributeData.sampleId,
        appointed: this.distributeData.appointed,
        userIdList: [this.distributeData.userId],
        sonLaboratory: this.distributeData.sonLaboratory,
      })
        .then((res) => {
          if (res.code === 201) {
            this.upLoad = false;
            return;
          }
          this.$message.success("修改成功");
          this.upLoad = false;
          this.issuedDialogVisible = false;
          this.refreshTable();
        })
        .catch((error) => {
          console.error(error);
          this.$message.error("修改失败");
          this.upLoad = false;
        });
    },
    submitForm() {
      this.upLoad = true;
      if (this.tabIndex == 1) {
        updateInspected({
          id: this.insOrderRow.id,
        })
          .then((res) => {
            if (res.code === 200) {
              this.upLoad = false;
              this.quashDialogVisible = false;
              this.refreshTable();
              this.$message.success("更新成功");
            }
          })
          .catch((error) => {
            console.error(error);
          });
      } else {
        updateStatus({
          id: this.insOrderRow.id,
        })
          .then((res) => {
            if (res.code === 200) {
              this.upLoad = false;
              this.quashDialogVisible = false;
              this.refreshTable();
              this.$message.success("更新成功");
            }
          })
          .catch((error) => {
            console.error(error);
          });
      }
    },
    // 下单
    playOrder(num) {
      // this.active = num;
      // this.examine = 0;
      this.$router.push({
        name: "addOrder",
        query: {
          active: num,
          examine: 0,
          isPlan: false,
        },
      });
    },
    handleTab(m, i) {
      this.tabIndex = i;
      this.queryParams.state = m.value;
      this.getList();
    },
    changeUser() {
      if (this.sonLaboratoryList.length > 0) {
        this.distributeData.sonLaboratory = this.sonLaboratoryList[0].value;
      }
    },
  },
};
@@ -1281,7 +2297,7 @@
.search {
  background-color: #fff;
  height: 80px;
  height: 50px;
  display: flex;
  align-items: center;
  overflow: hidden;
@@ -1315,7 +2331,8 @@
.tab {
  list-style-type: none;
  display: flex;
  margin-bottom: 12px;
  /* margin-bottom: 12px; */
  padding-inline-start: 0px;
}
.tab li {
@@ -1343,9 +2360,11 @@
.el-form-item {
  margin-bottom: 16px;
}
.box-card >>> .el-radio__inner {
  border-radius: 2px !important;
}
.box-card >>> .el-radio__input.is-checked .el-radio__inner::after {
  content: "";
  width: 8px;
@@ -1362,12 +2381,15 @@
  border-radius: 0px;
  background: none;
}
>>> .el-radio__label {
  color: #000 !important;
}
.el-dialog__body >>> .el-radio__label {
  font-size: 8px;
}
.el-dialog__body >>> .el-radio__input.is-checked .el-radio__inner::after {
  content: "";
  width: 4px;
@@ -1384,31 +2406,40 @@
  border-radius: 0px;
  background: none;
}
>>> .el-radio__input.is-disabled.is-checked .el-radio__inner {
  background: #3a7bfa;
}
.el-dialog__body >>> .el-radio__input.is-disabled.is-checked .el-radio__inner {
  background: transparent;
}
.el-dialog__body >>> .el-radio__inner {
  width: 8px !important;
  height: 8px !important;
}
.el-dialog__body >>> .el-radio__label {
  padding-left: 2px !important;
}
.el-dialog__body >>> .el-card__body {
  padding: 0 !important;
}
.el-dialog__body >>> .el-card {
  border: none;
}
.el-dialog__body >>> .el-radio__input.is-disabled .el-radio__inner {
  border-color: #000 !important;
}
.el-dialog__body >>> .el-radio__input.is-disabled.is-checked .el-radio__inner {
  border: none !important;
}
.scor {
  width: 0.01cm;
  height: 0.01cm;
@@ -1416,6 +2447,7 @@
  border: 1px solid #000;
  display: inline-block;
}
.ellipsis-multiline {
  display: -webkit-box;
  -webkit-line-clamp: 2;
@@ -1423,14 +2455,19 @@
  overflow: hidden;
  text-overflow: ellipsis;
  word-wrap: break-word;
  max-height: 3em; /* 高度为字体大小的两倍 */
  line-height: 1.5em; /* 行高 */
  height: 3em; /* 高度为行高的两倍 */
  max-height: 3em;
  /* 高度为字体大小的两倍 */
  line-height: 1.5em;
  /* 行高 */
  height: 3em;
  /* 高度为行高的两倍 */
}
.table-container {
  height: 70vh;
  overflow-y: auto;
}
.table-container.el-table {
  overflow: hidden;
  text-overflow: ellipsis;