gaoluyang
2025-03-13 cbbd61172fc3701f44cf934c87d7ac0ee32c2a6e
src/views/business/inspectionTask/index.vue
@@ -181,6 +181,16 @@
    </el-dialog>
    <el-dialog :visible.sync="dataDialogVisible" title="数据查看" width="80%">
      <div v-if="dataDialogVisible" style="height: 70vh; 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 +206,7 @@
          新增
        </el-button>
      </div>
      <el-table :data="bindTableData" style="width: 100%" height="70vh">
      <el-table :data="bindTableData" style="width: 100%" height="70vh" v-loading="bindTableDataLoading">
        <el-table-column prop="inspectionItemClass" label="检验项分类" width="150">
        </el-table-column>
        <el-table-column prop="inspectionItem" label="检验项" width="150">
@@ -232,7 +242,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 +255,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,10 +270,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: {
@@ -267,6 +288,7 @@
      InspectionKey: 1,
      bindDialogVisible: false,
      bindAddDialogVisible: false,
      bindTableDataLoading: false,
      bindTableData: [],
      bindAddTableData: [],
      chooseBindAddList: [],
@@ -374,6 +396,9 @@
          formatData: (params) => {
            return this.urgencyLevel.find((m) => m.value == params).label;
          },
          formatType: (params) => {
            return this.urgencyLevel.find((m) => m.value == params).type;
          },
        },
        {
          label: "检验类型",
@@ -392,8 +417,7 @@
          prop: "insState",
          dataType: "tag",
          formatData: (params) => {
            return this.inspectionTaskState.find((m) => m.value == params)
              .label;
            return this.inspectionTaskState.find((m) => m.value == params).label;
          },
          formatType: (params) => {
            return this.inspectionTaskState.find((m) => m.value == params).type;
@@ -424,9 +448,17 @@
                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'])
              },
            },
            {
@@ -494,6 +526,9 @@
        },
      ],
      // 数据查看相关字段---开始
      entity: {
        inspectionItem: "",
      },
      lookTableData: [],
      lookColumn: [
        {
@@ -517,10 +552,20 @@
          prop: "insResult",
          dataType: "tag",
          formatData: (params) => {
            return this.insResultList.find((m) => m.value == params).label;
            let obj = this.insResultList.find((m) => m.value == params)
            if (obj) {
              return this.insResultList.find((m) => m.value == params).label;
            } else {
              return null
            }
          },
          formatType: (params) => {
            return this.insResultList.find((m) => m.value == params).type;
            let obj = this.insResultList.find((m) => m.value == params)
            if (obj) {
              return this.insResultList.find((m) => m.value == params).type;
            } else {
              return null
            }
          },
        },
        {
@@ -528,6 +573,16 @@
          fixed: "right",
          label: "操作",
          operation: [
            {
              name: "不合格复测查看",
              type: "text",
              clickFun: (row) => {
                this.getRetestResultInfo(row);
              },
              disabled: (row) => {
                return row.insResult!=0
              },
            },
            {
              name: "检验项绑定",
              type: "text",
@@ -552,9 +607,10 @@
      },
      lookTableLoading: false,
      // 数据查看相关字段---结束
      retestVisible: false,
    };
  },
  created() {
  mounted() {
    this.getAuthorizedPerson();
    this.currentTime = getYearAndMonthAndDays();
    this.getDicts("urgency_level").then((response) => {
@@ -563,10 +619,10 @@
    this.getDicts("inspection_task_state").then((response) => {
      this.inspectionTaskState = this.dictToValue(response.data);
    });
  },
  mounted() {
    this.refreshTable();
    this.queryParams.userId = this.userId;
    // this.getPower();
  },
  activated() {
    this.refreshTable();
  },
  methods: {
@@ -593,7 +649,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) => {
@@ -617,48 +673,14 @@
    editInspection(row) {
      this.$refs.editInspectionItem.showDialog(row.id);
    },
    // 刷新页面
    refreshView() {
      this.getList();
    // 查看工时
    viewManHour(row) {
      this.$refs.viewManHourDia.showDialog(row.id, row.insState);
    },
    // 数据查看
    handleDataLook(row) {
      this.lookInfo = row;
      this.getLookList();
    },
    // 权限分配
    getPower(radio) {
      let power = JSON.parse(sessionStorage.getItem("power"));
      let inspection = false;
      let connect = false;
      let review = false;
      let claim = false;
      for (var i = 0; i < power.length; i++) {
        if (power[i].menuMethod == "doInsOrder") {
          inspection = true;
        }
        if (power[i].menuMethod == "upPlanUser") {
          connect = true;
        }
        if (power[i].menuMethod == "verifyPlan") {
          review = true;
        }
        if (power[i].menuMethod == "claimInsOrderPlan") {
          claim = true;
        }
      }
      if (!claim) {
        this.componentData.do.splice(3, 1);
      }
      if (!review) {
        this.componentData.do.splice(2, 1);
      }
      if (!connect) {
        this.componentData.do.splice(1, 1);
      }
      if (!inspection) {
        this.componentData.do.splice(0, 1);
      }
    },
    changeCheckBox(val) {
      this.queryParams.userId = val ? 0 : null;
@@ -922,15 +944,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;
@@ -944,10 +972,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;
@@ -974,10 +998,6 @@
      })
        .then((res) => {
          this.loading = false;
          if (res.code == 201) {
            this.$message.error("绑定失败");
            return;
          }
          this.$message.success("绑定成功");
          this.bindAddDialogVisible = false;
          this.getBinding(this.bindCurrentInfo);
@@ -992,17 +1012,14 @@
        cancelButtonText: "取消",
        type: "warning",
      }).then(async () => {
        delProductTreeByProductId({ productId: row.id })
          .then((res) => {
            if (res.coe == 201) {
              // this.$message.error('未绑定检验项')
              return;
            }
            this.getBinding(this.bindCurrentInfo);
          })
          .catch((error) => {
            console.error(error);
          });
        this.bindTableDataLoading = true
        delProductTreeByProductId({ productId: row.id }).then((res) => {
          this.bindTableDataLoading = false
          this.getBinding(this.bindCurrentInfo);
        }).catch((error) => {
          this.bindTableDataLoading = false
          console.error(error);
        });
      });
    },
  },