From f0a9ef6693a1738c78680f6f6ac565d549e30bef Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期三, 19 二月 2025 14:33:19 +0800
Subject: [PATCH] 检验任务搬迁10%

---
 src/views/business/inspectionTask/index.vue |  484 +++++++++++++++++++++++++++++++----------------------
 1 files changed, 285 insertions(+), 199 deletions(-)

diff --git a/src/views/business/inspectionTask/index.vue b/src/views/business/inspectionTask/index.vue
index 80b4a18..127d5bb 100644
--- a/src/views/business/inspectionTask/index.vue
+++ b/src/views/business/inspectionTask/index.vue
@@ -1,14 +1,10 @@
 <style scoped>
-.ins-order-plan-main .title {
-  font-size: 20px;
-  color: #3a7bfa;
-}
-
 .search {
   background-color: #fff;
-  height: 80px;
+  height: 40px;
   display: flex;
   align-items: center;
+  margin-top: 20px;
 }
 
 .search_thing {
@@ -18,7 +14,7 @@
 }
 
 .search_label {
-  width: 120px;
+  width: 100px;
   font-size: 14px;
   text-align: right;
 }
@@ -29,39 +25,27 @@
 
 .ins-order-plan-main .search {
   width: 100%;
-  margin-bottom: 10px;
-  height: 80px;
+  height: 40px;
   background-color: #fff;
   border-radius: 3px;
-}
-
-.search .form-inline {
-  height: 50px;
-  padding-top: 20px;
-  padding-left: 50px;
 }
 
 .ins-order-plan-main .center {
-  width: calc(100% - 40px);
-  height: calc(100% - 60px - 80px - 40px);
   background-color: #fff;
   border-radius: 3px;
   padding: 20px;
-}
-
-.ins-order-plan-main .center .value-table {
-  width: 100%;
-  height: calc(100% - 68px);
+  padding-top: 0px;
 }
 
 .tab {
   list-style-type: none;
   display: flex;
+  padding-left: 6px;
 }
 
 .tab li {
   line-height: 24px;
-  padding: 6px 14px;
+  padding: 4px 10px;
   font-size: 14px;
   color: #333333;
   border: 1px solid #eeeeee;
@@ -102,32 +86,16 @@
 .ins-order-plan-main .el-form-item__label {
   color: #000;
 }
-
-.ins-order-plan-main .el-table th.el-table__cell > .cell {
-  height: 46px;
-  line-height: 30px;
-}
 </style>
 <template>
   <div class="ins-order-plan-main">
     <div v-show="activeFace == 0 && state == 0" style="height: 100%">
-      <p
-        style="
-          font-size: 16px;
-          padding-left: 20px;
-          text-align: left;
-          height: 60px;
-          line-height: 60px;
-        "
-      >
-        妫�楠屼换鍔�
-      </p>
       <div class="search">
         <div class="search_thing">
           <div class="search_label">濮旀墭缂栧彿锛�</div>
           <div class="search_input">
             <el-input
-              v-model="componentData.entity.entrustCode"
+              v-model="queryParams.entrustCode"
               clearable
               placeholder="璇疯緭鍏�"
               size="small"
@@ -139,13 +107,13 @@
           <div class="search_label">妫�楠岀姸鎬侊細</div>
           <div class="search_input">
             <el-select
-              v-model="componentData.entity.insState"
+              v-model="queryParams.insState"
               size="small"
               style="width: 100%"
               @change="refreshTable()"
             >
               <el-option
-                v-for="(a, i) in insStateList"
+                v-for="(a, i) in dict.type.inspection_task_state"
                 :key="i"
                 :label="a.label"
                 :value="a.value"
@@ -153,14 +121,6 @@
             </el-select>
           </div>
         </div>
-        <!--        <div class="search_thing">-->
-        <!--          <div class="search_label">涓嬪崟绫诲埆锛�</div>-->
-        <!--          <div class="search_input">-->
-        <!--            <el-select v-model="componentData.entity.typeSource" clearable size="small" style="width: 100%;" @change="refreshTable()">-->
-        <!--              <el-option v-for="(a, i) in typeSourceList" :key="i" :label="a.label" :value="a.value"></el-option>-->
-        <!--            </el-select>-->
-        <!--          </div>-->
-        <!--        </div>-->
         <div class="search_thing" style="padding-left: 30px">
           <el-button size="small" @click="refresh()">閲� 缃�</el-button>
           <el-button size="small" type="primary" @click="refreshTable()"
@@ -172,10 +132,8 @@
         <div class="center-options">
           <el-row>
             <el-col :span="21">
-              <div
-                style="display: flex; align-items: center; margin-bottom: 10px"
-              >
-                <span style="margin-right: 8px">璇曢獙瀹ょ绫�:</span>
+              <div style="display: flex; align-items: center">
+                <span style="font-size: 14px">璇曢獙瀹ょ绫�:</span>
                 <ul class="tab">
                   <li
                     v-for="(m, i) in tabList"
@@ -199,14 +157,12 @@
             <el-col :span="3">
               <div class="center-title">
                 <span>鎬昏浠诲姟鏁伴噺:</span>
-                <span v-if="$refs.insOrderPlan != undefined">{{
-                  $refs.insOrderPlan.total
-                }}</span>
+                <span>{{ page.total }}</span>
               </div>
             </el-col>
           </el-row>
         </div>
-        <ValueTable
+        <!-- <ValueTable
           :key="upIndex"
           ref="insOrderPlan"
           :componentData="componentData"
@@ -216,7 +172,15 @@
           :url="$api.insOrderPlan.selectInsOrderPlanList"
           class="value-table"
           @handleInspection="handleInspection"
-        />
+        /> -->
+        <lims-table
+          :tableData="tableData"
+          :column="column"
+          :page="page"
+          :tableLoading="tableLoading"
+          :height="'calc(100vh - 290px)'"
+          @pagination="pagination"
+        ></lims-table>
       </div>
     </div>
     <el-dialog :visible.sync="claimVisible" title="鎻愮ず" width="400px">
@@ -398,12 +362,12 @@
         >
       </span>
     </el-dialog>
-    <un-pass-retest-result
+    <!-- <un-pass-retest-result
       v-if="retestVisible"
       :retestInfo="retestInfo"
       :retestVisible="retestVisible"
       @closeRetestLook="closeRetestLook"
-    ></un-pass-retest-result>
+    ></un-pass-retest-result> -->
     <!--浜т笟閾句俊鎭煡鐪�-->
     <!-- <ShowInfo
       v-if="showInfoDialog"
@@ -422,16 +386,37 @@
 // import Add from "../do/b1-ins-order/add.vue";
 // import ShowInfo from "../do/b1-material-ins-order/showInfo.vue";
 // import CopperOrder from "../do/b1-material-ins-order/copper-order.vue";
+// import UnPassRetestResult from "../do/b1-material-ins-order/unPassRetestResult.vue";
 import EditInspectionItem from "./components/EditInspectionItem.vue";
+import limsTable from "@/components/Table/lims-table.vue";
+import {
+  getRetestResult,
+  claimInsOrderPlan,
+  upPlanUser2,
+  upPlanUser,
+  selectUserCondition,
+  getBindingProductByProductId,
+  getProductTreeByProductId,
+  bindingProductTreeByProductId,
+  delProductTreeByProductId,
+  selectInsOrderPlanList,
+} from "@/api/business/inspectionTask.js";
+import { mapGetters } from "vuex";
 export default {
   components: {
     EditInspectionItem,
     // CopperOrder,
     // ShowInfo,
     ValueTable,
+    limsTable,
     // Inspection,
     // Add,
     // CustomsInspection,
+    // UnPassRetestResult
+  },
+  dicts: ["urgency_level", "inspection_task_state"],
+  computed: {
+    ...mapGetters(["name", "userId"]),
   },
   data() {
     return {
@@ -742,30 +727,212 @@
       isCopper: null,
       bindCurrentInfo: {},
       lookInfo: {},
+      orderTypeList: [
+        {
+          value: "Customer-ordered test",
+          label: "濮旀墭璇曢獙",
+          type: "success",
+          effect: "plain",
+        },
+        {
+          value: "鎶芥",
+          label: "鎶芥",
+          type: "",
+          effect: "plain",
+        },
+        {
+          value: "杩涘巶妫�楠�",
+          label: "杩涘巶妫�楠�",
+          type: "info",
+          effect: "plain",
+        },
+        {
+          value: "Quarterly inspection",
+          label: "瀛e害妫�楠�",
+          type: "warning",
+          effect: "plain",
+        },
+      ],
+      urgencyLevel: [],
+      inspectionTaskState: [],
+      tableData: [],
+      column: [
+        {
+          label: "濮旀墭缂栧彿",
+          prop: "entrustCode",
+          width: "140px",
+          dataType: "link",
+          linkMethod: "selectAllByOne",
+        },
+        { label: "鏍峰搧鍚嶇О", prop: "sample", width: "140px" },
+        {
+          label: "涓嬪崟绫诲埆",
+          prop: "typeSource",
+          dataType: "tag",
+          formatData: (params) => {
+            if (params == 0) {
+              return "鎴愬搧涓嬪崟";
+            } else {
+              return "鍘熸潗鏂欎笅鍗�";
+            }
+          },
+        },
+        { label: "鏍峰搧鍨嬪彿", prop: "sampleModel", width: "120px" },
+        {
+          label: "绱ф�ョ▼搴�",
+          prop: "type",
+          dataType: "tag",
+          formatData: (params) => {
+            return this.urgencyLevel.find((m) => m.value == params).label;
+          },
+        },
+        {
+          label: "妫�楠岀被鍨�",
+          prop: "orderType",
+          dataType: "tag",
+          formatData: (params) => {
+            return this.orderTypeList.find((m) => m.value == params).label;
+          },
+          formatType: (params) => {
+            return this.orderTypeList.find((m) => m.value == params).type;
+          },
+        },
+        {
+          label: "鐘舵��",
+          prop: "insState",
+          dataType: "tag",
+          formatData: (params) => {
+            return this.inspectionTaskState.find((m) => m.value == params)
+              .label;
+          },
+          formatType: (params) => {
+            return this.inspectionTaskState.find((m) => m.value == params).type;
+          },
+        },
+        { label: "妫�楠屼汉", prop: "userName" },
+        { label: "澶嶆牳浜�", prop: "checkName" },
+        { label: "绾﹀畾鏃堕棿", prop: "appointed" },
+        { label: "涓嬪彂鏃堕棿", prop: "sendTime", width: "140px" },
+        { label: "妫�楠屽紑濮嬫椂闂�", prop: "insTime", width: "140px" },
+        { label: "鐞嗙敱", prop: "verifyTell", width: "140px" },
+        {
+          dataType: "action",
+          fixed: "right",
+          label: "鎿嶄綔",
+          width: "260px",
+          operation: [
+            {
+              name: "鏁版嵁鏌ョ湅",
+              type: "text",
+              clickFun: (row) => {
+                this.handleDataLook(row);
+              },
+            },
+            {
+              name: "淇敼妫�楠屽��",
+              type: "text",
+              clickFun: (row) => {
+                this.editInspection(row);
+              },
+              disabled: (row) => {
+                return (
+                  row.userName == null || row.insState == 3 || row.insState == 5
+                );
+              },
+            },
+            {
+              name: "妫�楠�",
+              type: "text",
+              clickFun: (row) => {
+                this.handleInspection(row);
+              },
+              disabled: (row) => {
+                return (
+                  row.userName == null ||
+                  row.insState == 3 ||
+                  row.insState == 5 ||
+                  (row.userName && !row.userName.includes(this.name))
+                );
+              },
+            },
+            {
+              name: "浜ゆ帴",
+              type: "text",
+              clickFun: (row) => {
+                this.handleConnect(row);
+              },
+              disabled: (row) => {
+                return (
+                  row.userName == null ||
+                  row.insState == 5 ||
+                  row.insState == 3 ||
+                  (row.userName && !row.userName.includes(this.name))
+                );
+              },
+            },
+            {
+              name: "鍘熷璁板綍",
+              type: "text",
+              clickFun: (row) => {
+                this.viewInspectInfo(row);
+              },
+            },
+          ],
+        },
+      ],
+      page: {
+        total: 0,
+        size: 10,
+        current: 0,
+      },
+      tableLoading: false,
+      queryParams: {},
     };
   },
   created() {
-    // this.getLaboratoryDicts()
-    this.getTypeDicts();
-    this.getInsStateDicts();
     this.getAuthorizedPerson();
     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);
+    });
   },
   mounted() {
-    this.entityCopy = this.HaveJson(this.componentData.entity);
-    let user = JSON.parse(localStorage.getItem("user"));
-    this.componentData.entity.userId = user.userId;
-    this.getPower();
+    this.queryParams.userId = this.userId;
+    // this.getPower();
     this.refreshTable();
   },
   methods: {
+    getList() {
+      this.tableLoading = true;
+      let param = { ...this.queryParams, ...this.page };
+      delete param.total;
+      selectInsOrderPlanList({ ...param })
+        .then((res) => {
+          this.tableLoading = false;
+          if (res.code === 200) {
+            this.tableData = res.data.records;
+            this.page.total = res.data.total;
+          }
+        })
+        .catch((err) => {
+          this.tableLoading = false;
+        });
+    },
+    pagination({ page, limit }) {
+      this.page.current = page;
+      this.page.size = limit;
+      this.getList();
+    },
     // 淇敼妫�楠屽��
     editInspection(row) {
       this.$refs.editInspectionItem.showDialog(row.id);
     },
     // 鍒锋柊椤甸潰
     refreshView() {
-      this.InspectionKey++;
+      this.getList();
     },
     // 鏁版嵁鏌ョ湅
     handleDataLook(row) {
@@ -775,17 +942,11 @@
     },
     // 鏌ョ湅涓嶅悎鏍煎娴嬬粨鏋�
     getRetestResult(row) {
-      this.$axios
-        .get(
-          this.$api.insOrder.getRetestResult +
-            "?insProductId=" +
-            row.insProductId
-        )
-        .then((res) => {
-          if (res.code == 201) return;
-          this.retestVisible = true;
-          this.retestInfo = res.data;
-        });
+      getRetestResult({ insProductId: row.insProductId }).then((res) => {
+        if (res.code == 201) return;
+        this.retestVisible = true;
+        this.retestInfo = res.data;
+      });
     },
     //
     closeRetestLook() {
@@ -826,15 +987,19 @@
       }
     },
     changeCheckBox(val) {
-      this.componentData.entity.userId = val ? 0 : null;
+      this.queryParams.userId = val ? 0 : null;
       this.refreshTable();
     },
     refresh() {
-      this.componentData.entity = this.HaveJson(this.entityCopy);
-      let user = JSON.parse(localStorage.getItem("user"));
-      this.componentData.entity.userId = user.userId;
+      this.queryParams = {};
+      this.queryParams.userId = this.userId;
       this.alone = true;
       this.refreshTable();
+    },
+    refreshTable(e) {
+      this.page.current = 1;
+      this.queryParams.typeSource = this.tabIndex;
+      this.getList();
     },
     // claimFun(row) {
     // 	if (row) {
@@ -855,12 +1020,7 @@
     },
     confirmClaim() {
       this.loading = true;
-      this.$axios
-        .post(this.$api.insOrderPlan.claimInsOrderPlan, this.sampleUserForm, {
-          headers: {
-            "Content-Type": "application/json",
-          },
-        })
+      claimInsOrderPlan(this.sampleUserForm)
         .then((res) => {
           if (res.code === 200 && res.data) {
             this.loading = false;
@@ -873,10 +1033,6 @@
           console.error(error);
           this.loading = false;
         });
-    },
-    refreshTable(e) {
-      this.componentData.entity.typeSource = this.tabIndex;
-      this.$refs.insOrderPlan.selectList(e);
     },
     changeRowClass({ row, rowIndex }) {
       if (this.currentTime == row.appointed) {
@@ -891,61 +1047,21 @@
         sampleName: null,
         state: null,
       };
-      this.componentData.entity.insState = null;
-      this.componentData.entity.sampleName = null;
+      this.queryParams.insState = null;
+      this.queryParams.sampleName = null;
       this.refreshTable();
     },
     onSubmit() {
-      this.componentData.entity.insState = this.searchForm.state;
-      this.componentData.entity.sampleName = this.searchForm.sampleName;
+      this.queryParams.insState = this.searchForm.state;
+      this.queryParams.sampleName = this.searchForm.sampleName;
       this.$nextTick(() => {
         this.refreshTable();
       });
     },
     handleTab(m, i) {
       this.tabIndex = i;
-      this.componentData.entity.sonLaboratory = "";
+      this.queryParams.sonLaboratory = "";
       this.refreshTable();
-    },
-    getTypeDicts() {
-      this.$axios
-        .post(this.$api.enums.selectEnumByCategory, {
-          category: "绱ф�ョ▼搴�",
-        })
-        .then((res) => {
-          let data = res.data;
-          data.forEach((ele) => {
-            if (ele.value === "0") {
-              ele.type = "success";
-            } else if (ele.value === "1") {
-              ele.type = "warning";
-            } else if (ele.value === "2") {
-              ele.type = "danger";
-            }
-          });
-          this.componentData.tagField.type.select = data;
-        });
-    },
-    getInsStateDicts() {
-      this.$axios
-        .post(this.$api.enums.selectEnumByCategory, {
-          category: "妫�楠屼换鍔$姸鎬�",
-        })
-        .then((res) => {
-          let data = res.data;
-          this.insStateList = data;
-          data.forEach((ele) => {
-            //0:寰呮楠� 1:妫�楠屼腑 2:宸叉楠� 3:寰呭鏍� 4:澶嶆牳鏈�氳繃 5:澶嶆牳閫氳繃
-            if (["2", "5"].includes(ele.value)) {
-              ele.type = "success";
-            } else if (["1", "3"].includes(ele.value)) {
-              ele.type = "warning";
-            } else if (["0", "4"].includes(ele.value)) {
-              ele.type = "danger";
-            }
-          });
-          this.componentData.tagField.insState.select = data;
-        });
     },
     // getLaboratoryDicts() {
     // 	this.$axios.post(this.$api.enums.selectEnumByCategory, {
@@ -985,9 +1101,8 @@
       if (row.userName) {
         inspectorList = row.userName.split(",");
       }
-      let user = JSON.parse(localStorage.getItem("user"));
-      if (user) {
-        inspectorList.push(user.name);
+      if (this.name) {
+        inspectorList.push(this.name);
       }
       this.inspectorList = inspectorList;
       this.sonLaboratory = row.sonLaboratory;
@@ -1002,9 +1117,8 @@
       if (row.userName) {
         inspectorList = row.userName.split(",");
       }
-      let user = JSON.parse(localStorage.getItem("user"));
-      if (user) {
-        inspectorList.push(user.name);
+      if (this.name) {
+        inspectorList.push(this.name);
       }
       this.inspectorList = inspectorList;
       this.sonLaboratory = row.sonLaboratory;
@@ -1016,22 +1130,18 @@
       this.orderId = row.id;
       this.connect = {};
       this.connectVisible = true;
-      this.$axios
-        .post(this.$api.insOrderPlan.upPlanUser2, {
-          orderId: this.orderId,
-        })
-        .then((res) => {
-          if (res.code === 200 && res.data.length > 0) {
-            this.sonLaboratoryList = [];
-            res.data.forEach((m) => {
-              this.sonLaboratoryList.push({
-                value: m,
-                label: m,
-              });
+      upPlanUser2({ orderId: this.orderId }).then((res) => {
+        if (res.code === 200 && res.data.length > 0) {
+          this.sonLaboratoryList = [];
+          res.data.forEach((m) => {
+            this.sonLaboratoryList.push({
+              value: m,
+              label: m,
             });
-            this.connect.sonLaboratory = this.sonLaboratoryList[0].value;
-          }
-        });
+          });
+          this.connect.sonLaboratory = this.sonLaboratoryList[0].value;
+        }
+      });
     },
     confirmConnect() {
       if (
@@ -1051,12 +1161,11 @@
         return;
       }
       this.loading = true;
-      this.$axios
-        .post(this.$api.insOrderPlan.upPlanUser, {
-          orderId: this.orderId,
-          userId: this.connect.connectPerson,
-          sonLaboratory: this.connect.sonLaboratory,
-        })
+      upPlanUser({
+        orderId: this.orderId,
+        userId: this.connect.connectPerson,
+        sonLaboratory: this.connect.sonLaboratory,
+      })
         .then((res) => {
           if (res.code === 200) {
             this.loading = false;
@@ -1075,7 +1184,7 @@
       this.orderId = row.id;
     },
     getAuthorizedPerson() {
-      this.$axios.get(this.$api.user.getUserMenu).then((res) => {
+      selectUserCondition().then((res) => {
         let data = [];
         res.data.forEach((a) => {
           data.push({
@@ -1089,12 +1198,7 @@
     // 缁戝畾妫�楠岄」缁戝畾
     getBinding(row) {
       this.bindCurrentInfo = row;
-      this.$axios
-        .get(
-          this.$api.insOrderPlan.getBindingProductByProductId +
-            "?productId=" +
-            row.insProductId
-        )
+      getBindingProductByProductId({ productId: row.insProductId })
         .then((res) => {
           if (res.coe == 201) {
             // this.$message.error('鏈粦瀹氭楠岄」')
@@ -1109,12 +1213,9 @@
         });
     },
     openBindAdd() {
-      this.$axios
-        .get(
-          this.$api.insOrderPlan.getProductTreeByProductId +
-            "?productId=" +
-            this.bindCurrentInfo.insProductId
-        )
+      getProductTreeByProductId({
+        productId: this.bindCurrentInfo.insProductId,
+      })
         .then((res) => {
           if (res.coe == 201) {
             // this.$message.error('鏈粦瀹氭楠岄」')
@@ -1140,20 +1241,10 @@
         delete item.template;
       });
       this.loading = true;
-      this.$axios
-        .post(
-          this.$api.insOrderPlan.bindingProductTreeByProductId,
-          {
-            insProductId: this.bindCurrentInfo.insProductId,
-            insProductBindingList: this.chooseBindAddList,
-          },
-          {
-            headers: {
-              "Content-Type": "application/json",
-            },
-            noQs: true,
-          }
-        )
+      bindingProductTreeByProductId({
+        insProductId: this.bindCurrentInfo.insProductId,
+        insProductBindingList: this.chooseBindAddList,
+      })
         .then((res) => {
           this.loading = false;
           if (res.code == 201) {
@@ -1174,12 +1265,7 @@
         cancelButtonText: "鍙栨秷",
         type: "warning",
       }).then(async () => {
-        this.$axios
-          .get(
-            this.$api.insOrderPlan.delProductTreeByProductId +
-              "?productId=" +
-              row.id
-          )
+        delProductTreeByProductId({ productId: row.id })
           .then((res) => {
             if (res.coe == 201) {
               // this.$message.error('鏈粦瀹氭楠岄」')

--
Gitblit v1.9.3