gaoluyang
2025-03-12 1b0a3d7e887e31ae37dcfa9ba8e0ae77a9bfa5a6
src/views/business/inspectionOrder/index.vue
@@ -1,5 +1,5 @@
<template>
  <div>
  <div class="bg-1">
    <div style="margin: 5px 15px">
      <el-row class="title">
        <el-col :span="12" style="text-align: left">检验下单</el-col>
@@ -14,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%">
@@ -160,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
@@ -173,9 +177,12 @@
            </li>
          </ul>
          <lims-table
            highlightCurrentRow
            isSelection
            :tableData="tableData"
            :height="tableHeight + ''"
            @pagination="pagination"
            :handleSelectionChange="selectionChange"
            :column="column"
            :page="page"
            :tableLoading="tableLoading"
@@ -367,14 +374,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"
@@ -551,7 +557,6 @@
            ></el-table-column>
          </el-table>
        </el-dialog>
        <!-- 导出已检数据 -->
        <el-dialog
          title="选择日期"
@@ -576,14 +581,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"
@@ -615,7 +620,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>
@@ -820,6 +825,9 @@
import limsTable from "@/components/Table/lims-table.vue";
import {
  selectInsOrderParameter,
  labelPrinting,
  exportChecked,
  selectSampleAndProductByOrderId,
  hasSendUrgentOrder,
  delCustomById,
  upCustom,
@@ -828,11 +836,17 @@
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,
    LimsTable,
  },
  computed: {
    ...mapGetters(["permissions"]),
  },
  data() {
    return {
@@ -878,6 +892,11 @@
          prop: "sampleName",
          minWidth: "160px",
          width: "160px",
          dataType: "link",
          linkEvent: {
            method: "showDetails",
            vueComponent: this,
          },
        },
        {
          label: "样品编号",
@@ -979,43 +998,270 @@
          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) => {},
              disabled: (row, index) => {
                return row.state != 4 || row.isRatify != 1;
              },
            },
            {
              name: "审核",
              type: "text",
              clickFun: (row) => {},
              disabled: (row, index) => {
                return row.state != 0;
              },
            },
            {
              name: "撤销",
              type: "text",
              clickFun: (row) => {},
              disabled: (row, index) => {
                return row.state != 1 && row.state != 0;
              },
            },
            {
              name: "撤销审核",
              type: "text",
              clickFun: (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) => {},
              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: "",
@@ -1057,292 +1303,11 @@
      // 人员列表
      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: [],
          },
          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: [
@@ -1350,12 +1315,6 @@
          sampleCode: "",
        },
      ],
      qrData: [],
      multipleSelection: [],
      sonLaboratoryList: [],
      queryCount: 0,
      urgencyDictList: [],
      tableHeight: 0,
    };
  },
  created() {
@@ -1369,16 +1328,30 @@
  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 = 400; // 其余高度
      const tableH = 50; // 距离页面下方的高度
      const tableHeightDetil = window.innerHeight - tableH;
      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 - tableH - otherHeight;
        this.tableHeight = window.innerHeight - tableBottom - otherHeight;
      }
    },
    getDictList() {
@@ -1419,16 +1392,9 @@
        startTime: this.exportCheckedDate[0],
        endTime: this.exportCheckedDate[1],
      };
      console.log("data", data);
      this.exportCheckedLoading = true;
      this.dialogVisible1 = false;
      this.$axios
        .post(this.$api.insOrder.exportChecked, data, {
          headers: {
            "Content-Type": "application/json",
          },
          responseType: "blob",
        })
      exportChecked(data)
        .then((res) => {
          this.$message.success("导出成功");
          this.exportCheckedDate = [];
@@ -1440,6 +1406,9 @@
          link.download = "检验结果.xlsx";
          document.body.appendChild(link);
          link.click();
        })
        .catch((error) => {
          console.error(error);
        });
    },
    // 查看详情
@@ -1479,26 +1448,27 @@
          }
        });
    },
    selectMethod(val) {
      this.multipleSelection = val;
    },
    getLabelPrinting(selection) {
      this.loadPint = true;
      this.$axios
        .post(this.$api.insOrder.labelPrinting, {
          ids: selection.map((m) => m.id).join(","),
        })
      labelPrinting({
        ids: selection.map((m) => m.id).join(","),
      })
        .then((res) => {
          let arr = res.data;
          arr.forEach((a) => {
            this.loadPint = false;
            let arr1 = [];
            a.insProduct.forEach((b) => {
              arr1.push(b.inspectionItem);
          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(",");
            });
            a.item = [...new Set(arr1)].join(",");
          });
          this.qrData = arr;
            this.qrData = arr;
          }
        })
        .catch((error) => {
          console.error(error);
        });
    },
    //开始标签打印
@@ -1601,31 +1571,6 @@
        this.beginPrint(this.qrData);
      });
      this.printDialogVisible = false;
      // PrintJS({
      //   printable: "printMOrder", //页面
      //   type: "html", //文档类型
      //   maxWidth: 360,
      //   style: `@page {
      //           margin:0;
      //           size: 400px 75px collapse;
      //           margin-top:3px;
      //           &:first-of-type{
      //             margin-top:0 !important;
      //           }
      //         }
      //         html{
      //           zoom:100%;
      //         }
      //         @media print{
      //           width: 400px;
      //           height: 75px;
      //           margin:0;
      //         }`,
      //   onPrintDialogClose: (this.erexcel = false),
      //   targetStyles: ["*"], // 使用dom的所有样式,很重要
      //   font_size: "0.15cm",
      // });
    },
    print() {
      if (this.multipleSelection.length == 0) {
@@ -1636,73 +1581,22 @@
      this.getLabelPrinting(selection);
      this.printDialogVisible = true;
    },
    // 选择检验分配人员
    getAuthorizedPerson() {
      this.$axios.get(this.$api.user.getLaboratoryPersonList).then((res) => {
        // let data = [];
        // res.data.forEach((a) => {
        //   data.push({
        //     label: a.name,
        //     value: a.id,
        //   });
        // });
        this.personList = res.data;
      });
    },
    refreshTable(e) {
      this.$refs["ValueTable"].selectList(e);
      this.queryCount = 0;
    },
    getTableData(newData) {
      if (newData && newData.length == 1) {
        const insState = newData[0].state;
        this.tabList.forEach((ele, index) => {
          if (ele.value == insState && this.queryCount == 0) {
            this.handleTab(ele, index);
            this.queryCount = 1;
          }
        });
      }
    refreshTable() {
      this.getList();
    },
    refresh() {
      this.componentData.entity = this.HaveJson(this.entityCopy);
      this.upIndex++;
      this.queryParams = {
        entrustCode: "",
        outEntrustCode: "",
        sampleName: "",
        sampleModel: "",
        sampleCode: "",
        startAndEndTime: [],
        name: "",
        engineering: "",
        production: "",
      };
      this.refreshTable();
    },
    // 权限分配
    getPower(radio) {
      let power = JSON.parse(sessionStorage.getItem("power"));
      let up = false;
      let del = false;
      let revoke = false;
      let check = false;
      let checkUpdate = false;
      for (var i = 0; i < power.length; i++) {
        if (power[i].menuMethod == "upInsOrder") {
          up = true;
        }
        if (power[i].menuMethod == "updateStatus") {
          revoke = true;
        }
        if (power[i].menuMethod == "upInsOrderOfState") {
          check = true;
        }
        if (power[i].menuMethod == "checkUpdate") {
          checkUpdate = true;
        }
      }
      if (!up) {
        this.componentData.do.splice(5, 1);
      }
      if (!checkUpdate) {
        this.componentData.do.splice(4, 1);
      }
      if (!revoke) {
        this.componentData.do.splice(3, 1);
      }
      if (!check) {
        this.componentData.do.splice(2, 1);
      }
    },
    handleClose() {
      this.verifyDialogVisible = false;
@@ -1725,21 +1619,29 @@
      this.exportCheckedDate = [];
      this.dialogVisible1 = false;
    },
    // 详情
    selectAllByOne(row) {
      this.active = 2;
      // console.log(row);
      // //打开弹框
      // this.dialogVisible = true;
      // //row = 点击对应行值
      // //复制给formData
      // this.formData = this.HaveJson(row);
      this.currentId = row.id;
      this.examine = 1;
    // 查看详情
    showDetails(row) {
      this.$router.push({
        name: "showDetails",
        query: {
          active: 2,
          currentId: row.id,
          examine: 1,
          isReview: true,
        },
      });
    },
    // 数据查看
    handleDataLook(row) {
      this.componentDataDataLook.entity.id = row.id;
      selectSampleAndProductByOrderId({ id: row.id })
        .then((res) => {
          if (res.code === 200) {
            this.dataLooktableData = res.data;
          }
        })
        .catch((error) => {
          console.error(error);
        });
      this.dataDialogVisible = true;
    },
    // 下载报告
@@ -2204,7 +2106,7 @@
              this.deleteDialogVisible = false;
              this.printLoading = false;
              this.revokeData = [];
              this.refreshTable("page");
              this.refreshTable();
              this.$message.success("撤销成功");
            }
          });
@@ -2252,7 +2154,7 @@
            if (res.code === 200) {
              this.printLoading = false;
              this.deleteDialogVisible = false;
              this.refreshTable("page");
              this.refreshTable();
              this.$message.success("更新成功");
            }
          });
@@ -2307,7 +2209,7 @@
            if (res.code === 200) {
              this.printLoading = false;
              this.deleteDialogVisible = false;
              this.refreshTable("page");
              this.refreshTable();
              this.$message.success("更新成功");
            }
          });
@@ -2391,7 +2293,7 @@
          this.$message.success("修改成功");
          this.upLoad = false;
          this.issuedDialogVisible = false;
          this.refreshTable("page");
          this.refreshTable();
        })
        .catch((e) => {
          this.$message.error("修改失败");
@@ -2409,7 +2311,7 @@
            if (res.code === 200) {
              this.upLoad = false;
              this.quashDialogVisible = false;
              this.refreshTable("page");
              this.refreshTable();
              this.$message.success("更新成功");
            }
          });
@@ -2420,7 +2322,7 @@
            if (res.code === 200) {
              this.upLoad = false;
              this.quashDialogVisible = false;
              this.refreshTable("page");
              this.refreshTable();
              this.$message.success("更新成功");
            }
          });
@@ -2437,9 +2339,15 @@
    },
    // 下单
    playOrder(num) {
      this.active = num;
      this.examine = 0;
      this.refreshTable("page");
      // this.active = num;
      // this.examine = 0;
      this.$router.push({
        name: "addOrder",
        query: {
          active: num,
          examine: 0,
        },
      });
    },
    handleTab(m, i) {
      this.tabIndex = i;
@@ -2489,9 +2397,6 @@
          this.componentData.tagField.orderType.select = res.data;
        });
    },
    getStyle() {
      return "height: calc(100% - " + (this.more ? "94" : "44") + "px)";
    },
    changeUser() {
      if (this.sonLaboratoryList.length > 0) {
        this.distributeData.sonLaboratory = this.sonLaboratoryList[0].value;
@@ -2509,7 +2414,7 @@
.search {
  background-color: #fff;
  height: 80px;
  height: 50px;
  display: flex;
  align-items: center;
  overflow: hidden;
@@ -2543,7 +2448,7 @@
.tab {
  list-style-type: none;
  display: flex;
  margin-bottom: 12px;
  /* margin-bottom: 12px; */
  padding-inline-start: 0px;
}
@@ -2572,9 +2477,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;
@@ -2591,12 +2498,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;
@@ -2613,31 +2523,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;
@@ -2645,6 +2564,7 @@
  border: 1px solid #000;
  display: inline-block;
}
.ellipsis-multiline {
  display: -webkit-box;
  -webkit-line-clamp: 2;
@@ -2652,14 +2572,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;