From 037a7112a2bc9e38bb2f398ff5ca740ac01a8fb2 Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期四, 20 二月 2025 10:21:05 +0800
Subject: [PATCH] 检验任务搬迁30%

---
 src/views/business/inspectionTask/index.vue | 1008 +++++++++++++++++++++++-----------------------------------
 1 files changed, 406 insertions(+), 602 deletions(-)

diff --git a/src/views/business/inspectionTask/index.vue b/src/views/business/inspectionTask/index.vue
index 80b4a18..6dccaa2 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,133 +86,68 @@
 .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 v-show="activeFace == 0" style="height: 100%">
       <div class="search">
         <div class="search_thing">
           <div class="search_label">濮旀墭缂栧彿锛�</div>
           <div class="search_input">
-            <el-input
-              v-model="componentData.entity.entrustCode"
-              clearable
-              placeholder="璇疯緭鍏�"
-              size="small"
-              @keyup.enter.native="refreshTable()"
-            ></el-input>
+            <el-input v-model="queryParams.entrustCode" clearable placeholder="璇疯緭鍏�" size="small"
+              @keyup.enter.native="refreshTable()"></el-input>
           </div>
         </div>
         <div class="search_thing">
           <div class="search_label">妫�楠岀姸鎬侊細</div>
           <div class="search_input">
-            <el-select
-              v-model="componentData.entity.insState"
-              size="small"
-              style="width: 100%"
-              @change="refreshTable()"
-            >
-              <el-option
-                v-for="(a, i) in insStateList"
-                :key="i"
-                :label="a.label"
-                :value="a.value"
-              ></el-option>
+            <el-select v-model="queryParams.insState" size="small" style="width: 100%" @change="refreshTable()">
+              <el-option v-for="(a, i) in dict.type.inspection_task_state" :key="i" :label="a.label"
+                :value="a.value"></el-option>
             </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()"
-            >鏌� 璇�</el-button
-          >
+          <el-button size="small" type="primary" @click="refreshTable()">鏌� 璇�</el-button>
         </div>
       </div>
       <div class="center">
         <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"
-                    :key="i"
-                    :class="{ active: i == tabIndex }"
-                    @click="handleTab(m, i)"
-                  >
+                  <li v-for="(m, i) in tabList" :key="i" :class="{ active: i == tabIndex }" @click="handleTab(m, i)">
                     {{ m.label.replace("璇曢獙瀹�", "") }}
                   </li>
                 </ul>
                 <div>
-                  <el-checkbox
-                    v-model="alone"
-                    class="view-self-checkbox"
-                    @change="changeCheckBox"
-                    ><span>鎴戠殑浠诲姟</span></el-checkbox
-                  >
+                  <el-checkbox v-model="alone" class="view-self-checkbox"
+                    @change="changeCheckBox"><span>鎴戠殑浠诲姟</span></el-checkbox>
                 </div>
               </div>
             </el-col>
             <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
-          :key="upIndex"
-          ref="insOrderPlan"
-          :componentData="componentData"
-          :isColumnWidth="true"
-          :tableRowClassName="changeRowClass"
-          :upUrl="$api.user.updateUser"
-          :url="$api.insOrderPlan.selectInsOrderPlanList"
-          class="value-table"
-          @handleInspection="handleInspection"
-        />
+        <lims-table :tableData="tableData" :column="column" :page="page" :tableLoading="tableLoading"
+          :height="'calc(100vh - 300px)'" @pagination="pagination" key="tableData0"></lims-table>
       </div>
     </div>
     <el-dialog :visible.sync="claimVisible" title="鎻愮ず" width="400px">
       鏄惁璁ら濮旀墭缂栧彿<span style="color: #33c130">{{
         sampleUserForm.entrustCode
-      }}</span
-      >鐨勪换鍔�
+      }}</span>鐨勪换鍔�
       <span slot="footer" class="dialog-footer">
         <el-button @click="claimVisible = false">鍙� 娑�</el-button>
-        <el-button :loading="loading" type="primary" @click="confirmClaim"
-          >纭� 瀹�</el-button
-        >
+        <el-button :loading="loading" type="primary" @click="confirmClaim">纭� 瀹�</el-button>
       </span>
     </el-dialog>
     <el-dialog :visible.sync="connectVisible" title="妫�楠屼氦鎺�" width="400px">
@@ -237,18 +156,8 @@
           <span class="required-span">* </span>浜ゆ帴浜哄憳锛�
         </div>
         <div class="search_input">
-          <el-select
-            v-model="connect.connectPerson"
-            filterable
-            placeholder="璇烽�夋嫨"
-            style="width: 100%"
-          >
-            <el-option
-              v-for="item in personList"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value"
-            >
+          <el-select v-model="connect.connectPerson" filterable placeholder="璇烽�夋嫨" style="width: 100%">
+            <el-option v-for="item in personList" :key="item.value" :label="item.label" :value="item.value">
             </el-option>
           </el-select>
         </div>
@@ -258,39 +167,21 @@
           <span class="required-span">* </span>璇曢獙瀹わ細
         </div>
         <div class="search_input">
-          <el-select
-            v-model="connect.sonLaboratory"
-            filterable
-            placeholder="璇烽�夋嫨"
-            style="width: 100%"
-          >
-            <el-option
-              v-for="item in sonLaboratoryList"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value"
-            >
+          <el-select v-model="connect.sonLaboratory" filterable placeholder="璇烽�夋嫨" style="width: 100%">
+            <el-option v-for="item in sonLaboratoryList" :key="item.value" :label="item.label" :value="item.value">
             </el-option>
           </el-select>
         </div>
       </div>
       <span slot="footer" class="dialog-footer">
         <el-button @click="connectVisible = false">鍙� 娑�</el-button>
-        <el-button :loading="loading" type="primary" @click="confirmConnect"
-          >纭� 瀹�</el-button
-        >
+        <el-button :loading="loading" type="primary" @click="confirmConnect">纭� 瀹�</el-button>
       </span>
     </el-dialog>
-    <div
-      v-if="activeFace > 0 && isCopper == null"
-      style="width: 100%; height: 100%"
-    >
+    <div v-if="activeFace > 0 && isCopper == null" style="width: 100%; height: 100%">
       <!-- <Add :active="activeFace" :currentId="currentId" :examine="examine" /> -->
     </div>
-    <div
-      v-if="activeFace > 0 && isCopper == 0"
-      style="width: 100%; height: 100%"
-    >
+    <div v-if="activeFace > 0 && isCopper == 0" style="width: 100%; height: 100%">
       <!-- <CustomsInspection
         :active="activeFace"
         :currentId="currentId"
@@ -298,10 +189,7 @@
         :isReport="isReport"
       /> -->
     </div>
-    <div
-      v-if="activeFace > 0 && isCopper == 1"
-      style="width: 100%; height: 100%"
-    >
+    <div v-if="activeFace > 0 && isCopper == 1" style="width: 100%; height: 100%">
       <!-- <CopperOrder :active="activeFace" :currentId="currentId"></CopperOrder> -->
     </div>
     <!--<Inspection
@@ -317,43 +205,23 @@
     />-->
     <el-dialog :visible.sync="dataDialogVisible" title="鏁版嵁鏌ョ湅" width="80%">
       <div v-if="dataDialogVisible" style="height: 70vh; overflow-y: auto">
-        <ValueTable
-          ref="ValueTableDataLook"
-          :componentData="componentDataDataLook"
-          :rowKey="'insProductId'"
-          :url="$api.insOrder.selectSampleAndProductByOrderId"
-        />
+        <lims-table :tableData="lookTableData" :column="lookColumn" :page="lookPage" :tableLoading="lookTableLoading"
+          :height="'60vh'" @pagination="lookPagination" key="tableData1"></lims-table>
       </div>
     </el-dialog>
-    <el-dialog
-      :visible.sync="bindDialogVisible"
-      title="妫�楠岄」缁戝畾"
-      width="600px"
-    >
-      <div
-        slot="title"
-        style="
+    <el-dialog :visible.sync="bindDialogVisible" title="妫�楠岄」缁戝畾" width="600px">
+      <div slot="title" style="
           display: flex;
           align-items: center;
           justify-content: space-between;
-        "
-      >
+        ">
         <span>妫�楠岄」缁戝畾</span>
-        <el-button
-          style="float: right; margin-left: 360px"
-          size="small"
-          @click="openBindAdd"
-          type="primary"
-        >
+        <el-button style="float: right; margin-left: 360px" size="small" @click="openBindAdd" type="primary">
           鏂板
         </el-button>
       </div>
       <el-table :data="bindTableData" style="width: 100%" height="70vh">
-        <el-table-column
-          prop="inspectionItemClass"
-          label="妫�楠岄」鍒嗙被"
-          width="150"
-        >
+        <el-table-column prop="inspectionItemClass" label="妫�楠岄」鍒嗙被" width="150">
         </el-table-column>
         <el-table-column prop="inspectionItem" label="妫�楠岄」" width="150">
         </el-table-column>
@@ -361,30 +229,16 @@
         </el-table-column>
         <el-table-column label="鎿嶄綔">
           <template slot-scope="scope">
-            <el-button size="mini" type="text" @click="handleDelete(scope.row)"
-              >鍒犻櫎</el-button
-            >
+            <el-button size="mini" type="text" @click="handleDelete(scope.row)">鍒犻櫎</el-button>
           </template>
         </el-table-column>
       </el-table>
     </el-dialog>
-    <el-dialog
-      :visible.sync="bindAddDialogVisible"
-      title="閫夋嫨缁戝畾"
-      width="600px"
-    >
-      <el-table
-        :data="bindAddTableData"
-        style="width: 100%"
-        height="60vh"
-        @selection-change="handleBindAddSelectionChange"
-      >
+    <el-dialog :visible.sync="bindAddDialogVisible" title="閫夋嫨缁戝畾" width="600px">
+      <el-table :data="bindAddTableData" style="width: 100%" height="60vh"
+        @selection-change="handleBindAddSelectionChange">
         <el-table-column type="selection" width="55"> </el-table-column>
-        <el-table-column
-          prop="inspectionItemClass"
-          label="妫�楠岄」鍒嗙被"
-          width="150"
-        >
+        <el-table-column prop="inspectionItemClass" label="妫�楠岄」鍒嗙被" width="150">
         </el-table-column>
         <el-table-column prop="inspectionItem" label="妫�楠岄」" width="150">
         </el-table-column>
@@ -393,17 +247,9 @@
       </el-table>
       <span slot="footer" class="dialog-footer">
         <el-button @click="bindAddDialogVisible = false">鍙� 娑�</el-button>
-        <el-button :loading="loading" type="primary" @click="bindAdd"
-          >缁� 瀹�</el-button
-        >
+        <el-button :loading="loading" type="primary" @click="bindAdd">缁� 瀹�</el-button>
       </span>
     </el-dialog>
-    <un-pass-retest-result
-      v-if="retestVisible"
-      :retestInfo="retestInfo"
-      :retestVisible="retestVisible"
-      @closeRetestLook="closeRetestLook"
-    ></un-pass-retest-result>
     <!--浜т笟閾句俊鎭煡鐪�-->
     <!-- <ShowInfo
       v-if="showInfoDialog"
@@ -423,15 +269,34 @@
 // import ShowInfo from "../do/b1-material-ins-order/showInfo.vue";
 // import CopperOrder from "../do/b1-material-ins-order/copper-order.vue";
 import EditInspectionItem from "./components/EditInspectionItem.vue";
+import limsTable from "@/components/Table/lims-table.vue";
+import {
+  claimInsOrderPlan,
+  upPlanUser2,
+  upPlanUser,
+  selectUserCondition,
+  getBindingProductByProductId,
+  getProductTreeByProductId,
+  bindingProductTreeByProductId,
+  delProductTreeByProductId,
+  selectInsOrderPlanList,
+  selectSampleAndProductByOrderId,
+} from "@/api/business/inspectionTask.js";
+import { mapGetters } from "vuex";
 export default {
   components: {
     EditInspectionItem,
     // CopperOrder,
     // ShowInfo,
     ValueTable,
+    limsTable,
     // Inspection,
     // Add,
     // CustomsInspection,
+  },
+  dicts: ["urgency_level", "inspection_task_state"],
+  computed: {
+    ...mapGetters(["nickName", "userId"]),
   },
   data() {
     return {
@@ -456,262 +321,7 @@
       ],
       active: 1,
       tabIndex: 0,
-      componentDataDataLook: {
-        entity: {
-          id: 0,
-          orderBy: {
-            field: "sampleCode",
-            order: "asc",
-          },
-        },
-        isIndex: false,
-        showSelect: false,
-        select: false,
-        do: [
-          {
-            id: "parent",
-            font: "涓嶅悎鏍煎娴嬫煡鐪�",
-            type: "text",
-            method: "getRetestResult",
-            disabFun: (row, index) => {
-              return row.insResult != 0;
-            },
-          },
-          {
-            id: "parent",
-            font: "妫�楠岄」缁戝畾",
-            type: "text",
-            method: "getBinding",
-            disabFun: (row, index) => {
-              return (
-                this.lookInfo.userName == null ||
-                this.lookInfo.insState == 3 ||
-                this.lookInfo.insState == 5
-              );
-            },
-          },
-        ],
-        tagField: {
-          insState: {
-            select: [],
-          },
-          insResult: {
-            select: [
-              {
-                value: 1,
-                label: "鍚堟牸",
-                type: "success",
-              },
-              {
-                value: 0,
-                label: "涓嶅悎鏍�",
-                type: "danger",
-              },
-              {
-                value: 3,
-                label: "涓嶅垽瀹�",
-                type: "",
-              },
-            ],
-          },
-        },
-        selectField: {},
-        spanConfig: {
-          rows: [
-            {
-              name: "sampleCode",
-              index: 0,
-            },
-            {
-              name: "sample",
-              index: 1,
-            },
-            {
-              name: "model",
-              index: 6,
-            },
-          ],
-        },
-        requiredAdd: [],
-        requiredUp: [],
-      },
       dataDialogVisible: false,
-      componentData: {
-        entity: {
-          orderBy: {
-            field: "entrustCode",
-            order: "asc",
-          },
-          sonLaboratory: null,
-          insState: null,
-          userId: null,
-          typeSource: null,
-        },
-        isIndex: true,
-        showSelect: false,
-        select: false,
-        init: false,
-        needSort: ["createTime", "sendTime", "type", "appointed", "insState"],
-        do: [
-          {
-            id: "",
-            font: "鏁版嵁鏌ョ湅",
-            type: "text",
-            method: "handleDataLook",
-          },
-          {
-            id: "",
-            font: "淇敼妫�楠屽��",
-            type: "text",
-            method: "editInspection",
-            disabFun: (row, index) => {
-              return (
-                row.userName == null || row.insState == 3 || row.insState == 5
-              );
-            },
-          },
-          {
-            id: "",
-            font: "妫�楠�",
-            type: "text",
-            method: "handleInspection",
-            disabFun: (row, index) => {
-              return (
-                row.userName == null ||
-                row.insState == 3 ||
-                row.insState == 5 ||
-                (row.userName &&
-                  !row.userName.includes(
-                    JSON.parse(localStorage.getItem("user")).name
-                  ))
-              );
-            },
-          },
-          {
-            id: "",
-            font: "浜ゆ帴",
-            type: "text",
-            method: "handleConnect",
-            disabFun: (row, index) => {
-              return (
-                row.userName == null ||
-                row.insState == 5 ||
-                row.insState == 3 ||
-                (row.userName &&
-                  !row.userName.includes(
-                    JSON.parse(localStorage.getItem("user")).name
-                  ))
-              );
-            },
-          },
-          // {
-          //   font: '浜т笟閾�',
-          //   type: 'text',
-          //   method: 'openInfoDialog',
-          //   disabFun: (row, index) => {
-          //     return row.typeSource !== 1
-          //   }
-          // },
-          // {
-          // 	id: '',
-          // 	font: '璁ら',
-          // 	type: 'text',
-          // 	method: 'claimFun',
-          // 	disabFun: (row, index) => {
-          // 		return row.userName != null || row.checkName!=null
-          // 	}
-          // },
-          {
-            id: "",
-            font: "鍘熷璁板綍",
-            type: "text",
-            method: "viewInspectInfo",
-          },
-        ],
-        linkEvent: {
-          entrustCode: {
-            method: "selectAllByOne",
-          },
-        },
-        tagField: {
-          type: {
-            select: [],
-          },
-          insState: {
-            select: [],
-          },
-          insResult: {
-            select: [
-              {
-                value: 0,
-                label: "涓嶅悎鏍�",
-                type: "danger",
-              },
-              {
-                value: 1,
-                label: "鍚堟牸",
-                type: "success",
-              },
-              {
-                value: "",
-                label: "鏈嚭缁撴灉",
-                type: "info",
-              },
-            ],
-          },
-          typeSource: {
-            select: [
-              {
-                value: 0,
-                label: "鎴愬搧涓嬪崟",
-                type: "info",
-              },
-              {
-                value: 1,
-                label: "鍘熸潗鏂欎笅鍗�",
-                type: "info",
-              },
-              {
-                value: 2,
-                label: "鍘熸潗鏂欎笅鍗�",
-                type: "info",
-              },
-            ],
-          },
-          orderType: {
-            select: [
-              {
-                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",
-              },
-            ],
-          },
-        },
-        selectField: {},
-        requiredAdd: [],
-        requiredUp: [],
-      },
-      upIndex: 0,
       planTotal: 0,
       insStateList: [],
       state: 0, // 0:鍙拌处椤碉紝1锛氭楠岄〉闈�,2妫�楠岄〉闈�(澶嶆牳)锛岄粯璁や负0,3鏁版嵁鏌ョ湅
@@ -737,59 +347,318 @@
       customsInspection: {},
       showInfoDialog: false, // 浜т笟閾句俊鎭煡鐪�
       isReport: 0,
-      retestVisible: false,
       retestInfo: [],
       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: "鎿嶄綔",
+          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.nickName))
+                );
+              },
+            },
+            {
+              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.nickName))
+                );
+              },
+            },
+            {
+              name: "鍘熷璁板綍",
+              type: "text",
+              clickFun: (row) => {
+                this.viewInspectInfo(row);
+              },
+            },
+          ],
+        },
+      ],
+      page: {
+        total: 0,
+        size: 10,
+        current: 0,
+      },
+      tableLoading: false,
+      queryParams: {},
+      insResultList: [
+        {
+          value: 1,
+          label: "鍚堟牸",
+          type: "success",
+        },
+        {
+          value: 0,
+          label: "涓嶅悎鏍�",
+          type: "danger",
+        },
+        {
+          value: 3,
+          label: "涓嶅垽瀹�",
+          type: "",
+        },
+      ],
+      // 鏁版嵁鏌ョ湅鐩稿叧瀛楁---寮�濮�
+      lookTableData: [],
+      lookColumn: [
+        {
+          label: "鏍峰搧缂栧彿",
+          prop: "sampleCode",
+          width: "140px",
+          mergeCol: true, //鍚堝苟鍒�
+        },
+        { label: "鏍峰搧鍚嶇О", prop: "sample", width: "140px", mergeCol: true },
+        { label: "妫�楠岄」鍒嗙被", prop: "inspectionItemClass" },
+        { label: "妫�楠岄」", prop: "inspectionItem", width: "140px" },
+        { label: "妫�楠屽瓙椤�", prop: "inspectionItemSubclass" },
+        { label: "鍗曚綅", prop: "unit" },
+        { label: "鏍峰搧鍨嬪彿", prop: "model", mergeCol: true },
+        { label: "鏉′欢", prop: "radius" },
+        { label: "鐢电紗鏍囪瘑", prop: "cableTag" },
+        { label: "璇曢獙瑕佹眰", prop: "tell" },
+        { label: "妫�楠岀粨鏋�", prop: "lastValue" },
+        {
+          label: "缁撴灉鍒ゅ畾",
+          prop: "insResult",
+          dataType: "tag",
+          formatData: (params) => {
+            return this.insResultList.find((m) => m.value == params).label;
+          },
+          formatType: (params) => {
+            return this.insResultList.find((m) => m.value == params).type;
+          },
+        },
+        {
+          dataType: "action",
+          fixed: "right",
+          label: "鎿嶄綔",
+          operation: [
+            {
+              name: "妫�楠岄」缁戝畾",
+              type: "text",
+              clickFun: (row) => {
+                this.getBinding(row);
+              },
+              disabled: (row) => {
+                return (
+                  this.lookInfo.userName == null ||
+                  this.lookInfo.insState == 3 ||
+                  this.lookInfo.insState == 5
+                );
+              },
+            },
+          ],
+        },
+      ],
+      lookPage: {
+        total: 0,
+        size: 10,
+        current: 0,
+      },
+      lookTableLoading: false,
+      // 鏁版嵁鏌ョ湅鐩稿叧瀛楁---缁撴潫
     };
   },
   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();
+    },
+    getLookList() {
+      this.lookTableLoading = true;
+      let param = { id: this.lookInfo.id, ...this.lookPage };
+      delete param.total;
+      selectSampleAndProductByOrderId({ ...param })
+        .then((res) => {
+          this.lookTableLoading = false;
+          if (res.code === 200) {
+            this.lookTableData = res.data.records;
+            this.lookPage.total = res.data.total;
+            this.dataDialogVisible = true;
+          }
+        })
+        .catch((err) => {
+          this.lookTableLoading = false;
+        });
+    },
+    lookPagination({ page, limit }) {
+      this.lookPage.current = page;
+      this.lookPage.size = limit;
+      this.getLookList();
+    },
     // 淇敼妫�楠屽��
     editInspection(row) {
       this.$refs.editInspectionItem.showDialog(row.id);
     },
     // 鍒锋柊椤甸潰
     refreshView() {
-      this.InspectionKey++;
+      this.getList();
     },
     // 鏁版嵁鏌ョ湅
     handleDataLook(row) {
       this.lookInfo = row;
-      this.componentDataDataLook.entity.id = row.id;
-      this.dataDialogVisible = true;
-    },
-    // 鏌ョ湅涓嶅悎鏍煎娴嬬粨鏋�
-    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;
-        });
-    },
-    //
-    closeRetestLook() {
-      this.retestVisible = false;
+      this.getLookList();
     },
     // 鏉冮檺鍒嗛厤
     getPower(radio) {
@@ -826,15 +695,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 +728,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 +741,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 +755,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,15 +809,24 @@
       if (row.userName) {
         inspectorList = row.userName.split(",");
       }
-      let user = JSON.parse(localStorage.getItem("user"));
-      if (user) {
-        inspectorList.push(user.name);
+      if (this.nickName) {
+        inspectorList.push(this.nickName);
       }
       this.inspectorList = inspectorList;
       this.sonLaboratory = row.sonLaboratory;
       this.state = 1;
       this.typeSource = row.typeSource;
       this.orderId = row.id;
+      this.$router.push({
+        path: "/inspectionTask/inspection",
+        query: {
+          inspectorList: this.inspectorList,
+          sonLaboratory: this.sonLaboratory,
+          state: this.state,
+          typeSource: this.typeSource,
+          orderId: this.orderId,
+        },
+      });
     },
     // 鏌ョ湅妫�楠屾暟鎹�
     viewInspectInfo(row) {
@@ -1002,9 +835,8 @@
       if (row.userName) {
         inspectorList = row.userName.split(",");
       }
-      let user = JSON.parse(localStorage.getItem("user"));
-      if (user) {
-        inspectorList.push(user.name);
+      if (this.nickName) {
+        inspectorList.push(this.nickName);
       }
       this.inspectorList = inspectorList;
       this.sonLaboratory = row.sonLaboratory;
@@ -1016,22 +848,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 +879,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 +902,7 @@
       this.orderId = row.id;
     },
     getAuthorizedPerson() {
-      this.$axios.get(this.$api.user.getUserMenu).then((res) => {
+      selectUserCondition({ type: 1 }).then((res) => {
         let data = [];
         res.data.forEach((a) => {
           data.push({
@@ -1089,12 +916,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 +931,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 +959,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 +983,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