gaoluyang
2025-03-18 151fe973ecbfe95d2b8c6f4e2d305ba26173da75
src/views/business/inspectionTask/index.vue
@@ -1,92 +1,3 @@
<style scoped>
.search {
  background-color: #fff;
  height: 40px;
  display: flex;
  align-items: center;
  margin-top: 20px;
}
.search_thing {
  display: flex;
  align-items: center;
  height: 50px;
}
.search_label {
  width: 100px;
  font-size: 14px;
  text-align: right;
}
.search_input {
  width: calc(100% - 120px);
}
.ins-order-plan-main .search {
  width: 100%;
  height: 40px;
  background-color: #fff;
  border-radius: 3px;
}
.ins-order-plan-main .center {
  background-color: #fff;
  border-radius: 3px;
  padding: 20px;
  padding-top: 0px;
}
.tab {
  list-style-type: none;
  display: flex;
  padding-left: 6px;
}
.tab li {
  line-height: 24px;
  padding: 4px 10px;
  font-size: 14px;
  color: #333333;
  border: 1px solid #eeeeee;
  cursor: pointer;
}
.tab li:nth-child(1) {
  border-radius: 8px 0 0 8px;
}
.tab li:nth-last-child(1) {
  border-radius: 0 8px 8px 0;
}
.tab li.active {
  border-color: #3a7bfa;
  color: #3a7bfa;
}
.center .center-options .center-title {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: right;
}
.center .center-options .center-title span:last-child {
  color: #3a7bfa;
  font-size: 23px;
  font-weight: 400;
}
.view-self-checkbox {
  margin-left: 50px;
}
</style>
<style>
.ins-order-plan-main .el-form-item__label {
  color: #000;
}
</style>
<template>
  <div class="ins-order-plan-main">
    <div style="height: 100%">
@@ -180,7 +91,17 @@
      </span>
    </el-dialog>
    <el-dialog :visible.sync="dataDialogVisible" title="数据查看" width="80%">
      <div v-if="dataDialogVisible" style="height: 70vh; overflow-y: auto">
      <div v-if="dataDialogVisible" style="height: 74vh; overflow-y: auto">
        <div>
          <el-form :model="entity" :inline="true">
            <el-form-item label="检验项" prop="outputWorkTime">
              <el-input v-model="entity.inspectionItem" clearable size="small"></el-input>
            </el-form-item>
            <el-form-item>
              <el-button size="small" type="primary" @click="getLookList">查询</el-button>
            </el-form-item>
          </el-form>
        </div>
        <lims-table :tableData="lookTableData" :column="lookColumn" :page="lookPage" :tableLoading="lookTableLoading"
          :height="'60vh'" @pagination="lookPagination" key="tableData1"></lims-table>
      </div>
@@ -196,7 +117,8 @@
          新增
        </el-button>
      </div>
      <el-table :data="bindTableData" style="width: 100%" height="70vh" v-loading="bindTableDataLoading">
      <el-table :data="bindTableData" style="width: 100%" height="70vh" v-loading="bindTableDataLoading"
                :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border>
        <el-table-column prop="inspectionItemClass" label="检验项分类" width="150">
        </el-table-column>
        <el-table-column prop="inspectionItem" label="检验项" width="150">
@@ -212,6 +134,7 @@
    </el-dialog>
    <el-dialog :visible.sync="bindAddDialogVisible" title="选择绑定" width="600px">
      <el-table :data="bindAddTableData" style="width: 100%" height="60vh"
                :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border
        @selection-change="handleBindAddSelectionChange">
        <el-table-column type="selection" width="55"> </el-table-column>
        <el-table-column prop="inspectionItemClass" label="检验项分类" width="150">
@@ -232,7 +155,12 @@
      ref="showInfoDialog"
      :showInfoDialog="showInfoDialog"
    ></ShowInfo> -->
    <!--修改检验值弹框-->
    <edit-inspection-item ref="editInspectionItem"></edit-inspection-item>
    <!--查看工时弹框-->
    <viewManHourDia ref="viewManHourDia"></viewManHourDia>
    <!--不合格复测查看弹框-->
    <un-pass-retest-result v-if="retestVisible" :retestInfo="retestInfo" :retestVisible="retestVisible" @closeRetestLook="closeRetestLook"></un-pass-retest-result>
  </div>
</template>
@@ -240,6 +168,8 @@
import { getYearAndMonthAndDays } from "@/utils/date";
import EditInspectionItem from "./components/EditInspectionItem.vue";
import limsTable from "@/components/Table/lims-table.vue";
import viewManHourDia from "./components/viewManHourDia.vue"
import UnPassRetestResult from "@/components/rawMaterialInspection/unPassRetestResult.vue"
import {
  claimInsOrderPlan,
  upPlanUser2,
@@ -253,11 +183,14 @@
  selectSampleAndProductByOrderId,
} from "@/api/business/inspectionTask.js";
import { mapGetters } from "vuex";
import {getRetestResult} from "@/api/business/rawMaterialOrder";
export default {
  name: 'InspectionTask',
  components: {
    EditInspectionItem,
    limsTable,
    viewManHourDia,
    UnPassRetestResult
  },
  dicts: ["urgency_level", "inspection_task_state"],
  computed: {
@@ -374,11 +307,23 @@
          prop: "type",
          dataType: "tag",
          formatData: (params) => {
            return this.urgencyLevel.find((m) => m.value == params).label;
            if (params == 0) {
              return '普通'
            } else if (params == 1) {
              return '优先'
            } else {
              return '紧急'
            }
          },
          formatType: (params) => {
            return this.urgencyLevel.find((m) => m.value == params).type;
          },
            if (params == 0) {
              return 'success'
            } else if (params == 1) {
              return 'warning'
            } else {
              return 'danger'
            }
          }
        },
        {
          label: "检验类型",
@@ -397,10 +342,18 @@
          prop: "insState",
          dataType: "tag",
          formatData: (params) => {
            return this.inspectionTaskState.find((m) => m.value == params).label;
            if (this.inspectionTaskState.find((m) => m.value == params)) {
              return this.inspectionTaskState.find((m) => m.value == params).label;
            } else {
              return null
            }
          },
          formatType: (params) => {
            return this.inspectionTaskState.find((m) => m.value == params).type;
            if (this.inspectionTaskState.find((m) => m.value == params)) {
              return this.inspectionTaskState.find((m) => m.value == params).type;
            } else {
              return null
            }
          },
        },
        { label: "检验人", prop: "userName" },
@@ -428,11 +381,19 @@
                this.editInspection(row);
              },
              disabled: (row) => {
                return (
                  row.userName == null || row.insState == 3 || row.insState == 5
                );
                return (row.userName == null || row.insState == 3 || row.insState == 5) && this.checkPermi(['update:product:onPlan'])
              },
            },
            // {
            //   name: "查看工时",
            //   type: "text",
            //   clickFun: (row) => {
            //     this.viewManHour(row);
            //   },
            //   showHide: (row) => {
            //     return this.checkPermi(['get:working:hours:byOrder'])
            //   },
            // },
            {
              name: "检验",
              type: "text",
@@ -475,7 +436,7 @@
      ],
      page: {
        total: 0,
        size: 10,
        size: 20,
        current: 0,
      },
      tableLoading: false,
@@ -498,6 +459,9 @@
        },
      ],
      // 数据查看相关字段---开始
      entity: {
        inspectionItem: "",
      },
      lookTableData: [],
      lookColumn: [
        {
@@ -543,6 +507,16 @@
          label: "操作",
          operation: [
            {
              name: "不合格复测查看",
              type: "text",
              clickFun: (row) => {
                this.getRetestResultInfo(row);
              },
              disabled: (row) => {
                return row.insResult!=0
              },
            },
            {
              name: "检验项绑定",
              type: "text",
              clickFun: (row) => {
@@ -561,15 +535,17 @@
      ],
      lookPage: {
        total: 0,
        size: 10,
        size: 20,
        current: 0,
      },
      lookTableLoading: false,
      // 数据查看相关字段---结束
      retestVisible: false,
    };
  },
  mounted() {
    this.getAuthorizedPerson();
    this.queryParams.userId = this.userId;
    this.currentTime = getYearAndMonthAndDays();
    this.getDicts("urgency_level").then((response) => {
      this.urgencyLevel = this.dictToValue(response.data);
@@ -578,9 +554,17 @@
      this.inspectionTaskState = this.dictToValue(response.data);
    });
    this.refreshTable();
    this.queryParams.userId = this.userId;
  },
  activated() {
    this.getAuthorizedPerson();
    this.queryParams.userId = this.userId;
    this.currentTime = getYearAndMonthAndDays();
    this.getDicts("urgency_level").then((response) => {
      this.urgencyLevel = this.dictToValue(response.data);
    });
    this.getDicts("inspection_task_state").then((response) => {
      this.inspectionTaskState = this.dictToValue(response.data);
    });
    this.refreshTable();
  },
  methods: {
@@ -607,7 +591,7 @@
    },
    getLookList() {
      this.lookTableLoading = true;
      let param = { id: this.lookInfo.id, ...this.lookPage };
      let param = { id: this.lookInfo.id, ...this.lookPage, inspectionItem: this.entity.inspectionItem };
      delete param.total;
      selectSampleAndProductByOrderId({ ...param })
        .then((res) => {
@@ -631,9 +615,9 @@
    editInspection(row) {
      this.$refs.editInspectionItem.showDialog(row.id);
    },
    // 刷新页面
    refreshView() {
      this.getList();
    // 查看工时
    viewManHour(row) {
      this.$refs.viewManHourDia.showDialog(row.id, row.insState);
    },
    // 数据查看
    handleDataLook(row) {
@@ -655,16 +639,6 @@
      this.queryParams.typeSource = this.tabIndex;
      this.getList();
    },
    // claimFun(row) {
    //    if (row) {
    //       this.sampleUserForm = {
    //          entrustCode: row.entrustCode,
    //          insSampleId: row.id,
    //       sonLaboratory: row.sonLaboratory,
    //       }
    //       this.claimVisible = true
    //    }
    // },
    // 查看产业链信息
    openInfoDialog(row) {
      this.showInfoDialog = true;
@@ -696,43 +670,11 @@
      }
      return "";
    },
    onReset() {
      this.searchForm = {
        sampleName: null,
        state: null,
      };
      this.queryParams.insState = null;
      this.queryParams.sampleName = null;
      this.refreshTable();
    },
    onSubmit() {
      this.queryParams.insState = this.searchForm.state;
      this.queryParams.sampleName = this.searchForm.sampleName;
      this.$nextTick(() => {
        this.refreshTable();
      });
    },
    handleTab(m, i) {
      this.tabIndex = i;
      this.queryParams.sonLaboratory = "";
      this.refreshTable();
    },
    // getLaboratoryDicts() {
    //    this.$axios.post(this.$api.enums.selectEnumByCategory, {
    //       category: "子实验室"
    //    }).then(res => {
    //       this.tabList = res.data.map(ele => {
    //          return {
    //             label: ele.label,
    //             value: ele.value
    //          }
    //       })
    //       if(this.tabList.length>0){
    //          this.componentData.entity.sonLaboratory = this.tabList[0].value
    //       }
    //       this.refreshTable()
    //    })
    // },
    selectAllByOne(row) {
      this.isCopper = row.isCopper;
      this.customsInspection = row;
@@ -773,9 +715,6 @@
          break;
      }
    },
    playOrder(num) {
      this.activeFace = num;
    },
    goback() {
      this.state = 0;
@@ -886,10 +825,6 @@
          this.loading = false;
        });
    },
    handleReview(row) {
      this.state = 2;
      this.orderId = row.id;
    },
    getAuthorizedPerson() {
      selectUserCondition({ type: 1 }).then((res) => {
        let data = [];
@@ -902,16 +837,21 @@
        this.personList = data;
      });
    },
    // 查看不合格复测结果
    getRetestResultInfo (row) {
      getRetestResult({insProductId: row.insProductId}).then(res => {
        this.retestVisible = true
        this.retestInfo = res.data
      })
    },
    closeRetestLook () {
      this.retestVisible = false
    },
    // 绑定检验项绑定
    getBinding(row) {
      this.bindCurrentInfo = row;
      getBindingProductByProductId({ productId: row.insProductId })
        .then((res) => {
          if (res.coe == 201) {
            // this.$message.error('未绑定检验项')
            return;
          }
          // console.log(res)
          this.bindTableData = res.data;
          this.bindDialogVisible = true;
        })
@@ -924,11 +864,6 @@
        productId: this.bindCurrentInfo.insProductId,
      })
        .then((res) => {
          if (res.coe == 201) {
            // this.$message.error('未绑定检验项')
            return;
          }
          // console.log(res)
          this.bindAddTableData = res.data;
          this.bindAddDialogVisible = true;
        })
@@ -981,3 +916,92 @@
  },
};
</script>
<style scoped>
.search {
  background-color: #fff;
  height: 40px;
  display: flex;
  align-items: center;
  margin-top: 20px;
}
.search_thing {
  display: flex;
  align-items: center;
  height: 50px;
}
.search_label {
  width: 100px;
  font-size: 14px;
  text-align: right;
}
.search_input {
  width: calc(100% - 120px);
}
.ins-order-plan-main .search {
  width: 100%;
  height: 40px;
  background-color: #fff;
  border-radius: 3px;
}
.ins-order-plan-main .center {
  background-color: #fff;
  border-radius: 3px;
  padding: 20px;
  padding-top: 0px;
}
.tab {
  list-style-type: none;
  display: flex;
  padding-left: 6px;
}
.tab li {
  line-height: 24px;
  padding: 4px 10px;
  font-size: 14px;
  color: #333333;
  border: 1px solid #eeeeee;
  cursor: pointer;
}
.tab li:nth-child(1) {
  border-radius: 8px 0 0 8px;
}
.tab li:nth-last-child(1) {
  border-radius: 0 8px 8px 0;
}
.tab li.active {
  border-color: #3a7bfa;
  color: #3a7bfa;
}
.center .center-options .center-title {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: right;
}
.center .center-options .center-title span:last-child {
  color: #3a7bfa;
  font-size: 23px;
  font-weight: 400;
}
.view-self-checkbox {
  margin-left: 50px;
}
</style>
<style>
.ins-order-plan-main .el-form-item__label {
  color: #000;
}
</style>