zouyu
2025-03-12 76d921a3fe7488dae2c522a77259f2c2c1ce2859
src/views/business/inspectionOrder/index.vue
@@ -183,7 +183,7 @@
            :height="tableHeight + ''"
            @pagination="pagination"
            :handleSelectionChange="selectionChange"
            :table="table"
            :column="column"
            :page="page"
            :tableLoading="tableLoading"
          ></lims-table>
@@ -378,7 +378,7 @@
            highlightCurrentRow
            :height="'80vh'"
            :tableData="dataLooktableData"
            :table="dataLookTable"
            :column="dataLookColumn"
            :tableLoading="dataLookTableLoading"
          ></lims-table>
        </el-dialog>
@@ -868,357 +868,349 @@
        current: 1,
      },
      tableLoading: false,
      table: {
        // 标题
        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,
            },
          },
          {
            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: "操作",
          minWidth: 100,
      column: [
        {
          label: "委托编号",
          prop: "entrustCode",
          minWidth: "160px",
          width: "160px",
        },
        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,
        {
          label: "外部委托编号",
          prop: "outEntrustCode",
          minWidth: "160px",
          width: "160px",
        },
        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 == "热老化处理后"))
              );
            },
        {
          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",
          operation: [
            {
              name: "数据查看",
              type: "text",
              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: [],