spring
2025-03-12 60322c503d201e4d1000e62d8ecf17db4f628e4c
src/views/business/inspectionOrder/index.vue
@@ -183,7 +183,7 @@
            :height="tableHeight + ''"
            @pagination="pagination"
            :handleSelectionChange="selectionChange"
            :column="column"
            :table="table"
            :page="page"
            :tableLoading="tableLoading"
          ></lims-table>
@@ -376,9 +376,9 @@
        >
          <lims-table
            highlightCurrentRow
            :heigt="'80vh'"
            :height="'80vh'"
            :tableData="dataLooktableData"
            :column="dataLookcolumn"
            :table="dataLookTable"
            :tableLoading="dataLookTableLoading"
          ></lims-table>
        </el-dialog>
@@ -868,351 +868,407 @@
        current: 1,
      },
      tableLoading: false,
      column: [
        {
          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,
      table: {
        // 标题
        column: [
          {
            label: "委托编号",
            prop: "entrustCode",
            minWidth: "160px",
            width: "160px",
          },
        },
        {
          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;
            }
          {
            label: "外部委托编号",
            prop: "outEntrustCode",
            minWidth: "160px",
            width: "160px",
          },
          formatType: (params) => {
            let index = this.urgencyDictList.findIndex(
              (item) => item.dictValue == params
            );
            if (index > -1) {
              return this.urgencyDictList[index].listClass;
            } else {
              return null;
            }
          {
            label: "委托单位",
            prop: "company",
            minWidth: "160px",
            width: "160px",
          },
        },
        {
          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",
        },
        {
          dataType: "action",
          {
            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",
          },
        ],
        operatorConfig: {
          fixed: "right",
          label: "操作",
          operation: [
            {
              name: "数据查看",
              type: "text",
              clickFun: (row) => {},
              disabled: (row) => {
                return row.state != 1 && row.state != 4;
              },
              clickFun: (row) => {
                this.handleDataLook(row);
              },
            },
            {
              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)
                );
              },
            },
          ],
          minWidth: 100,
        },
      ],
        operator: [
          {
            name: "数据查看",
            type: "text",
            disabled: (row) => {
              return row.state != 1 && row.state != 4;
            },
            clickFun: (row) => {
              this.handleDataLook(row);
            },
            showFun: () => {
              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)
              );
            },
          },
        ],
      },
      dataLookTable: {
        column: [
          {
            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",
          },
        ],
        operatorConfig: {
          fixed: "right",
          label: "操作",
          width: 80,
          minWidth: 100,
        },
        operator: [
          {
            name: "查看",
            type: "text",
            clickFun: (row) => {},
            showFun: (row) => {
              console.log(row);
              console.log(row.inspectionItem);
              return (
                row.inspectionItem == "单根垂直燃烧" ||
                row.inspectionItem.includes("松套管") ||
                row.inspectionItemSubclass.includes("松套管") ||
                (row.inspectionItem == "抗拉强度" &&
                  (row.inspectionItemSubclass == "热老化处理前" ||
                    row.inspectionItemSubclass == "热老化处理后")) ||
                (row.inspectionItem == "断裂伸长率" &&
                  (row.inspectionItemSubclass == "热老化处理前" ||
                    row.inspectionItemSubclass == "热老化处理后"))
              );
            },
          },
        ],
      },
      dataLookTableLoading: false,
      dataLookcolumn: [
      dataLooktableData: [],
      qrData: [],
      multipleSelection: [],
      sonLaboratoryList: [],
      urgencyDictList: [],
      tableHeight: 0,
      tabList: [
        {
          label: "委托编号",
          prop: "entrustCode",
          minWidth: "160px",
          width: "160px",
          label: "待审核",
          value: 0,
        },
        {
          label: "样品编号",
          prop: "sampleCode",
          minWidth: "160px",
          width: "160px",
          label: "待检验",
          value: 1,
        },
        {
          label: "管套色标",
          prop: "bushColor",
          minWidth: "160px",
          width: "160px",
          label: "已检验",
          value: 4,
        },
        {
          label: "光纤带编号",
          prop: "code",
          minWidth: "160px",
          width: "160px",
          label: "退回",
          value: 2,
        },
        {
          label: "光纤色标",
          prop: "color",
          minWidth: "160px",
          width: "160px",
        },
        {
          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.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: "unit",
          minWidth: "120px",
          width: "120px",
        },
        {
          label: "试验要求",
          prop: "tell",
          minWidth: "120px",
          width: "120px",
        },
        {
          label: "检验人",
          prop: "checkName",
          minWidth: "120px",
          width: "120px",
        },
        {
          label: "检验日期",
          prop: "checkTime",
          minWidth: "120px",
          width: "120px",
        },
        {
          label: "样品名称",
          prop: "sample",
          minWidth: "160px",
          width: "160px",
        },
        {
          label: "样品型号",
          prop: "model",
          minWidth: "160px",
          width: "160px",
        },
        {
          label: "试验室",
          prop: "sonLaboratory",
          minWidth: "120px",
          width: "120px",
        },
        {
          dataType: "action",
          fixed: "right",
          label: "操作",
          operation: [
            {
              name: "查看",
              type: "text",
              clickFun: (row) => {},
              showHide: (row) => {
                console.log(row);
                console.log(row.inspectionItem);
                return (
                  row.inspectionItem == "单根垂直燃烧" ||
                  row.inspectionItem.includes("松套管") ||
                  row.inspectionItemSubclass.includes("松套管") ||
                  (row.inspectionItem == "抗拉强度" &&
                    (row.inspectionItemSubclass == "热老化处理前" ||
                      row.inspectionItemSubclass == "热老化处理后")) ||
                  (row.inspectionItem == "断裂伸长率" &&
                    (row.inspectionItemSubclass == "热老化处理前" ||
                      row.inspectionItemSubclass == "热老化处理后"))
                );
              },
            },
          ],
          label: "撤销",
          value: 3,
        },
      ],
      dataLooktableData: [],
      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: [],
@@ -1255,292 +1311,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: [
@@ -1548,12 +1323,6 @@
          sampleCode: "",
        },
      ],
      qrData: [],
      multipleSelection: [],
      sonLaboratoryList: [],
      queryCount: 0,
      urgencyDictList: [],
      tableHeight: 0,
    };
  },
  created() {
@@ -1820,32 +1589,8 @@
      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() {
      this.getList();
    },
    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;
          }
        });
      }
    },
    refresh() {
      this.queryParams = {