From bc44c8e3c9d85691ce3fa73ef1300a6fae46e365 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期二, 18 三月 2025 19:07:08 +0800
Subject: [PATCH] Merge branch 'dev' of http://114.132.189.42:9002/r/center-lims-before-ruoyi into dev

---
 src/views/business/inspectionOrder/index.vue | 1829 ++++++++++++++++++++++++++++++++++++++++++++++------------
 1 files changed, 1,433 insertions(+), 396 deletions(-)

diff --git a/src/views/business/inspectionOrder/index.vue b/src/views/business/inspectionOrder/index.vue
index 4fb5f8d..206fe23 100644
--- a/src/views/business/inspectionOrder/index.vue
+++ b/src/views/business/inspectionOrder/index.vue
@@ -1,10 +1,8 @@
 <template>
-  <div>
-    <div>
+  <div class="bg-1">
+    <div style="margin: 5px 15px">
       <el-row class="title">
-        <el-col :span="12" style="padding-left: 20px; text-align: left"
-          >妫�楠屼笅鍗�</el-col
-        >
+        <el-col :span="12" style="text-align: left">妫�楠屼笅鍗�</el-col>
         <el-col :span="12" style="text-align: right">
           <el-button
             size="medium"
@@ -16,14 +14,18 @@
           <el-button size="medium" type="primary" @click="print"
             >鏍囩鎵撳嵃</el-button
           >
-          <el-button size="medium" type="primary" @click="playOrder(1)"
+          <el-button
+            size="medium"
+            type="primary"
+            @click="playOrder(1)"
+            v-hasPermi="['business:order:add']"
             >涓嬪崟</el-button
           >
         </el-col>
       </el-row>
     </div>
     <basic-container>
-      <div class="search" :style="`height: ${more ? 130 : 80}px;`">
+      <div class="search" :style="`height: ${more ? 100 : 50}px;`">
         <el-row :gutter="10" style="width: 100%">
           <el-col :span="20" style="display: flex; flex-wrap: wrap">
             <div class="search_thing" style="width: 20%">
@@ -33,7 +35,7 @@
                   size="small"
                   placeholder="璇疯緭鍏�"
                   clearable
-                  v-model="componentData.entity.entrustCode"
+                  v-model="queryParams.entrustCode"
                   @keyup.enter.native="refreshTable()"
                 ></el-input>
               </div>
@@ -47,7 +49,7 @@
                   size="small"
                   placeholder="璇疯緭鍏�"
                   clearable
-                  v-model="componentData.entity.outEntrustCode"
+                  v-model="queryParams.outEntrustCode"
                   @keyup.enter.native="refreshTable()"
                 ></el-input>
               </div>
@@ -59,7 +61,7 @@
                   size="small"
                   placeholder="璇疯緭鍏�"
                   clearable
-                  v-model="componentData.entity.sampleName"
+                  v-model="queryParams.sampleName"
                   @keyup.enter.native="refreshTable()"
                 ></el-input>
               </div>
@@ -71,7 +73,7 @@
                   size="small"
                   placeholder="璇疯緭鍏�"
                   clearable
-                  v-model="componentData.entity.sampleModel"
+                  v-model="queryParams.sampleModel"
                   @keyup.enter.native="refreshTable()"
                 ></el-input>
               </div>
@@ -83,7 +85,7 @@
                   size="small"
                   placeholder="璇疯緭鍏�"
                   clearable
-                  v-model="componentData.entity.sampleCode"
+                  v-model="queryParams.sampleCode"
                   @keyup.enter.native="refreshTable()"
                 ></el-input>
               </div>
@@ -93,7 +95,7 @@
               <div class="search_input">
                 <el-date-picker
                   style="width: 100%"
-                  v-model="componentData.entity.startAndEndTime"
+                  v-model="queryParams.startAndEndTime"
                   type="daterange"
                   size="small"
                   range-separator="鑷�"
@@ -113,7 +115,7 @@
                   size="small"
                   placeholder="璇疯緭鍏�"
                   clearable
-                  v-model="componentData.entity.name"
+                  v-model="queryParams.name"
                   @keyup.enter.native="refreshTable()"
                 ></el-input>
               </div>
@@ -125,7 +127,7 @@
                   size="small"
                   placeholder="璇疯緭鍏�"
                   clearable
-                  v-model="componentData.entity.engineering"
+                  v-model="queryParams.engineering"
                   @keyup.enter.native="refreshTable()"
                 ></el-input>
               </div>
@@ -137,7 +139,7 @@
                   size="small"
                   placeholder="璇疯緭鍏�"
                   clearable
-                  v-model="componentData.entity.production"
+                  v-model="queryParams.production"
                   @keyup.enter.native="refreshTable()"
                 ></el-input>
               </div>
@@ -162,7 +164,7 @@
       </div>
     </basic-container>
     <basic-container>
-      <div style="width: 100%; height: 100%" v-show="active == 0">
+      <div v-show="active == 0">
         <div class="table">
           <ul class="tab">
             <li
@@ -174,17 +176,13 @@
               {{ m.label }}
             </li>
           </ul>
-          <!-- <ValueTable
-          :style="getStyle()"
-          ref="ValueTable"
-          :url="$api.insOrder.selectInsOrderParameter"
-          :componentData="componentData"
-          :upIndex="upIndex"
-          @getTableData="getTableData"
-        /> -->
           <lims-table
+            highlightCurrentRow
+            isSelection
             :tableData="tableData"
+            :height="tableHeight + ''"
             @pagination="pagination"
+            :handleSelectionChange="selectionChange"
             :column="column"
             :page="page"
             :tableLoading="tableLoading"
@@ -240,7 +238,7 @@
         >
           <p style="font-size: 16px; color: #333333" v-if="!isQuash">
             濮旀墭缂栧彿<span style="color: #34bd66">{{
-              this.insOrderRow.entrustCode
+              this.insOrderRow.outEntrustCode
             }}</span
             >鐨勪俊鎭槸鍚︽挙閿�
           </p>
@@ -260,14 +258,10 @@
             </el-form-item>
           </el-form>
           <span slot="footer" class="dialog-footer">
-            <el-row v-if="!isQuash">
-              <el-button @click="handleClose">鍙� 娑�</el-button>
-              <el-button type="primary" @click="submitForm" :loading="upLoad"
-                >纭� 瀹�</el-button
-              >
-            </el-row>
-            <el-row v-else>
-              <el-button @click="handleClose">杩� 鍥�</el-button>
+            <el-row>
+              <el-button @click="handleClose">{{
+                isQuash ? "杩� 鍥�" : "鍙� 娑�"
+              }}</el-button>
               <el-button type="primary" @click="submitForm" :loading="upLoad"
                 >纭� 瀹�</el-button
               >
@@ -376,14 +370,13 @@
           width="100%"
           fullscreen
         >
-          <div style="height: 80vh; overflow-y: auto" v-if="dataDialogVisible">
-            <ValueTable
-              ref="ValueTableDataLook"
-              :rowKey="'insProductId'"
-              :url="$api.insOrder.selectSampleAndProductByOrderId"
-              :componentData="componentDataDataLook"
-            />
-          </div>
+          <lims-table
+            highlightCurrentRow
+            :height="'80vh'"
+            :tableData="dataLooktableData"
+            :column="dataLookColumn"
+            :tableLoading="dataLookTableLoading"
+          ></lims-table>
         </el-dialog>
         <el-dialog
           top="5vh"
@@ -393,18 +386,6 @@
           width="80%"
         >
           <div class="table-container" v-if="deleteDialogVisible">
-            <!-- <ValueTable
-            ref="ValueTableDataDelete"
-            :url="
-              $api.insOrder.selectNoProducts +
-              '?orderId=' +
-              orderId +
-              '&ids=' +
-              this.revocationInsProductIds
-            "
-            :componentData="componentDataDelete"
-            :isColumnWidth="true"
-          /> -->
             <el-table
               height="500px"
               ref="revokeTable"
@@ -560,7 +541,6 @@
             ></el-table-column>
           </el-table>
         </el-dialog>
-
         <!-- 瀵煎嚭宸叉鏁版嵁 -->
         <el-dialog
           title="閫夋嫨鏃ユ湡"
@@ -585,14 +565,14 @@
           </span>
         </el-dialog>
       </div>
-      <div style="width: 100%; height: 100%" v-if="active > 0">
+      <!-- <div style="width: 100%; height: 100%" v-if="active > 0">
         <Add
           :active="active"
           :currentId="currentId"
           v-if="active < 4"
           :examine="examine"
         />
-      </div>
+      </div> -->
       <el-dialog
         title="鏍囩鎵撳嵃"
         :visible.sync="printDialogVisible"
@@ -624,7 +604,7 @@
                 <el-checkbox
                   :label="i"
                   :key="i"
-                  style="position: relative; top: -20px; left: 5px"
+                  style="position: relative; top: -10px; left: 5px"
                   ><br
                 /></el-checkbox>
                 <div>
@@ -826,87 +806,467 @@
 </template>
 
 <script>
-import limsTable from "@/components/Table/lims-table.vue";
 import {
-  addCustom,
-  selectCustomPageList,
-  delCustomById,
-  upCustom,
+  selectInsOrderParameter,
+  labelPrinting,
+  exportChecked,
+  selectSampleAndProductByOrderId,
+  selectSampleByOrderId,
+  selectProductsBySampleId,
+  revoke,
+  viewDetails,
+  downReport,
+  selectTemperatureByProductId,
+  selectTemperatureNumberByProductId,
+  revokeReviewTemperatureByProductId,
+  revokeReviewConsistentByProductId,
+  revokeReviewProduct,
+  revokeReviewSample,
+  updateStatus,
+  updateInspected,
+  revocationPassed,
+  revocationCancel,
 } from "@/api/business/inspectionOrder";
+import { upPlanUser2 } from "@/api/business/inspectionTask";
+import { getDicts } from "@/api/system/dict/data";
 import vueQr from "vue-qr";
 import getLodop from "@/utils/lodop";
 import Add from "./add.vue";
+import { mapGetters } from "vuex";
+import limsTable from "@/components/Table/lims-table.vue";
 export default {
   components: {
     limsTable,
     Add,
     vueQr,
   },
+  computed: {
+    ...mapGetters(["permissions"]),
+  },
   data() {
     return {
+      queryParams: {
+        entrustCode: "",
+        outEntrustCode: "",
+        sampleName: "",
+        sampleModel: "",
+        sampleCode: "",
+        startAndEndTime: [],
+        name: "",
+        engineering: "",
+        production: "",
+      },
       tableData: [],
       page: {
         total: 0,
-        size: 10,
-        current: 0,
+        size: 20,
+        current: 1,
       },
       tableLoading: false,
       column: [
-        { label: "濮旀墭缂栧彿", prop: "entrustCode" },
-        { label: "澶栭儴濮旀墭缂栧彿", prop: "outEntrustCode" },
-        { label: "濮旀墭鍗曚綅", prop: "company" },
-        { label: "鏍峰搧鍚嶇О", prop: "sampleName" },
-        { label: "鏍峰搧缂栧彿", prop: "sampleCode" },
-        { label: "鏍峰搧鍨嬪彿", prop: "sampleModel" },
-        { label: "鏍峰搧鏁伴噺", prop: "sampleNum" },
-        { label: "妫�楠岃繘搴�%", prop: "insProgress" },
-        { label: "绱ф�ョ▼搴�", prop: "type" },
-        { label: "澶囨敞", prop: "remark" },
-        { label: "鍒跺崟浜�", prop: "custom" },
-        { label: "绾﹀畾鏃堕棿", prop: "appointed" },
-        { label: "涓嬪崟鏃堕棿", prop: "createTime" },
-        { label: "涓嬪彂鏃堕棿", prop: "sendTime" },
-        { label: "閫�鍥炵悊鐢�", prop: "tell" },
-        { label: "濮旀墭浜�", prop: "prepareUser" },
-        { label: "鎾ら攢鏃ユ湡", prop: "revocationTime" },
         {
+          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",
+        },
+        {
+          label: "鎿嶄綔",
           dataType: "action",
           fixed: "right",
-          label: "鎿嶄綔",
           operation: [
             {
               name: "鏁版嵁鏌ョ湅",
               type: "text",
-              clickFun: (row) => {},
+              disabled: (row) => {
+                return row.state != 1 && row.state != 4;
+              },
+              clickFun: (row) => {
+                this.handleDataLook(row);
+              },
+              showHide: () => {
+                return true;
+              },
             },
             {
               name: "鎶ュ憡涓嬭浇",
               type: "text",
-              clickFun: (row) => {},
+              clickFun: (row) => {
+                this.download(row);
+              },
+              disabled: (row, index) => {
+                return row.state != 4 || row.isRatify != 1;
+              },
             },
             {
               name: "瀹℃牳",
               type: "text",
-              clickFun: (row) => {},
+              clickFun: (row) => {
+                this.handleVerify(row);
+              },
+              disabled: (row, index) => {
+                return row.state != 0;
+              },
             },
             {
               name: "鎾ら攢",
               type: "text",
-              clickFun: (row) => {},
+              clickFun: (row) => {
+                this.handlEquash(row);
+              },
+              disabled: (row, index) => {
+                return row.state != 1 && row.state != 0;
+              },
             },
             {
               name: "鎾ら攢瀹℃牳",
               type: "text",
-              clickFun: (row) => {},
+              clickFun: (row) => {
+                this.handlEquashCheck(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) => {
+                this.viewDetails(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: [],
+      multipleSelection: [],
+      sonLaboratoryList: [],
+      urgencyDictList: [],
+      tableHeight: 0,
+      tabList: [
+        {
+          label: "寰呭鏍�",
+          value: 0,
+        },
+        {
+          label: "寰呮楠�",
+          value: 1,
+        },
+        {
+          label: "宸叉楠�",
+          value: 4,
+        },
+        {
+          label: "閫�鍥�",
+          value: 2,
+        },
+        {
+          label: "鎾ら攢",
+          value: 3,
+        },
+      ],
+      insResultList: [
+        {
+          value: 1,
+          label: "鍚堟牸",
+          type: "success",
+        },
+        {
+          value: 0,
+          label: "涓嶅悎鏍�",
+          type: "danger",
+        },
+        {
+          value: 3,
+          label: "涓嶅垽瀹�",
+          type: "",
+        },
+      ],
+      tabIndex: 0,
+      active: 0, //1锛氫笅鍗曪紝2锛氭煡鐪嬶紝3锛氬鏍革紝4锛氬厜绾ら厤缃�,榛樿涓�0
+      currentId: null,
+      more: false,
+
       //old
       tableHeader: [],
       type: "",
@@ -948,326 +1308,982 @@
       // 浜哄憳鍒楄〃
       personList: [],
       currentTableData: [],
-      componentData: {
-        entity: {
-          entrustCode: null,
-          sample: null,
-          sampleName: null,
-          sampleModel: null,
-          sampleCode: null,
-          outEntrustCode: null,
-          state: 0,
-          name: null,
-          engineering: null,
-          production: null,
-          startAndEndTime: [],
-          // orderBy: {
-          // 	field: '',
-          // 	order: ''
-          // }
-        },
-        isIndex: true,
-        showSelect: true,
-        select: true,
-        selectMethod: "selectMethod",
-        do: [
-          {
-            id: "dataLook",
-            font: "鏁版嵁鏌ョ湅",
-            type: "text",
-            method: "handleDataLook",
-            disabFun: (row, index) => {
-              return row.state != 1 && row.state != 4;
-            },
-          },
-          {
-            id: "download",
-            font: "鎶ュ憡涓嬭浇",
-            type: "text",
-            method: "download",
-            disabFun: (row, index) => {
-              return row.state != 4 || row.isRatify != 1;
-            },
-          },
-          {
-            id: "verify",
-            font: "瀹℃牳",
-            type: "text",
-            method: "handleVerify",
-            disabFun: (row, index) => {
-              return row.state != 0;
-            },
-          },
-          {
-            id: "quash",
-            font: "鎾ら攢",
-            type: "text",
-            method: "handlEquash",
-            disabFun: (row, index) => {
-              return row.state != 1 && row.state != 0;
-            },
-          },
-          {
-            id: "quashCheck",
-            font: "鎾ら攢瀹℃牳",
-            type: "text",
-            method: "handlEquashCheck",
-            disabFun: (row, index) => {
-              return (
-                (row.state != 1 && row.state != 0) ||
-                this.tabIndex != 1 ||
-                row.isRevocation != 1
-              );
-            },
-          },
-          {
-            font: "鍒嗛厤",
-            type: "text",
-            method: "handleIssued",
-            disabFun: (row, index) => {
-              return (
-                row.state != 1 ||
-                (row.entrustCode != null &&
-                  Number(row.assign) > 0 &&
-                  row.inspectId != null)
-              );
-            },
-          },
-        ],
-        linkEvent: {
-          sampleName: {
-            method: "selectAllByOne",
-          },
-        },
-        tagField: {
-          type: {
-            select: [
-              {
-                value: 0,
-                type: "success",
-                label: "鏅��",
-              },
-              {
-                value: 1,
-                type: "warning",
-                label: "浼樺厛",
-              },
-              {
-                value: 2,
-                type: "danger",
-                label: "绱ф��",
-              },
-            ],
-          },
-          createUser: {
-            select: [],
-          },
-          orderType: {
-            select: [],
-          },
-          processing: {
-            select: [
-              {
-                value: 1,
-                label: "瀹為獙瀹ゅ鐞�",
-              },
-              {
-                value: 0,
-                label: "濮旀墭鍗曚綅鍙栧洖",
-              },
-            ],
-          },
-          isLeave: {
-            select: [
-              {
-                value: 1,
-                label: "鐣欐牱",
-              },
-              {
-                value: 0,
-                label: "涓嶇暀鏍�",
-              },
-            ],
-          },
-          send: {
-            select: [
-              {
-                value: 1,
-                label: "鑷彇",
-              },
-              {
-                value: 0,
-                label: "鍏朵粬",
-              },
-            ],
-          },
-        },
-        selectField: {},
-        requiredAdd: [],
-        requiredUp: [],
-        needSort: ["createTime", "sendTime", "type", "appointed"],
-      },
       orderId: "",
       revocationInsProductIds: "",
-      componentDataDataLook: {
-        isPage: false,
-        entity: {
-          id: 0,
-          orderBy: {
-            field: "sampleCode",
-            order: "asc",
-          },
-        },
-        isIndex: false,
-        showSelect: false,
-        select: false,
-        do: [
-          {
-            id: "",
-            font: "鏌ョ湅",
-            type: "text",
-            method: "viewDetails",
-            showFun: (row, index) => {
-              return (
-                row.inspectionItem == "鍗曟牴鍨傜洿鐕冪儳" ||
-                row.inspectionItem.includes("鏉惧绠�") ||
-                row.inspectionItemSubclass.includes("鏉惧绠�") ||
-                (row.inspectionItem == "鎶楁媺寮哄害" &&
-                  (row.inspectionItemSubclass == "鐑�佸寲澶勭悊鍓�" ||
-                    row.inspectionItemSubclass == "鐑�佸寲澶勭悊鍚�")) ||
-                (row.inspectionItem == "鏂浼搁暱鐜�" &&
-                  (row.inspectionItemSubclass == "鐑�佸寲澶勭悊鍓�" ||
-                    row.inspectionItemSubclass == "鐑�佸寲澶勭悊鍚�"))
-              );
-            },
-          },
-        ],
-        tagField: {
-          insState: {
-            select: [],
-          },
-          insResult: {
-            select: [
-              {
-                value: 1,
-                label: "鍚堟牸",
-                type: "success",
-              },
-              {
-                value: 0,
-                label: "涓嶅悎鏍�",
-                type: "danger",
-              },
-              {
-                value: 3,
-                label: "涓嶅垽瀹�",
-                type: "",
-              },
-            ],
-          },
-        },
-        selectField: {},
-        spanConfig: {
-          rows: [
-            // {
-            //   name: "entrustCode",
-            //   index: 0,
-            // },
-            // {
-            //   name: "sampleCode",
-            //   index: 1,
-            // },
-          ],
-        },
-        requiredAdd: [],
-        requiredUp: [],
-      },
-      componentDataDelete: {
-        entity: {
-          // orderId: '',
-          // orderBy: {
-          // 	field: 'sampleCode',
-          // 	order: 'asc'
-          // }
-        },
-        isPage: false,
-        isIndex: false,
-        showSelect: true,
-        select: true,
-        selectMethod: "selectDelete",
-        do: [],
-        tagField: {
-          insState: {
-            select: [],
-          },
-          insResult: {
-            select: [
-              {
-                value: 1,
-                label: "鍚堟牸",
-                type: "success",
-              },
-              {
-                value: 0,
-                label: "涓嶅悎鏍�",
-                type: "danger",
-              },
-            ],
-          },
-        },
-        selectField: {},
-        spanConfig: {},
-        requiredAdd: [],
-        requiredUp: [],
-      },
       deleteDialogVisible: false,
-      entityCopy: {},
-      upIndex: 0,
       upLoad: false,
-      tabList: [
-        {
-          label: "寰呭鏍�",
-          value: 0,
-        },
-        {
-          label: "寰呮楠�",
-          value: 1,
-        },
-        {
-          label: "宸叉楠�",
-          value: 4,
-        },
-        {
-          label: "閫�鍥�",
-          value: 2,
-        },
-        {
-          label: "鎾ら攢",
-          value: 3,
-        },
-      ],
-      tabIndex: 0,
-      active: 0, //1锛氫笅鍗曪紝2锛氭煡鐪嬶紝3锛氬鏍革紝4锛氬厜绾ら厤缃�,榛樿涓�0
-      currentId: null,
-      more: false,
+
       insOrderRow: {},
       checkIndexList: [],
       checkDataList: [
         {
-          sampleCode: "11111",
+          sampleCode: "",
         },
       ],
-      qrData: [],
-      multipleSelection: [],
-      sonLaboratoryList: [],
-      queryCount: 0,
     };
   },
+  created() {
+    this.getDictList();
+    this.getTableHeight();
+  },
+  mounted() {
+    this.getList();
+    window.addEventListener("resize", this.getTableHeight);
+  },
+  beforeDestroy() {
+    window.removeEventListener("resize", this.getTableHeight);
+  },
+  watch: {
+    more() {
+      this.getTableHeight();
+    },
+    printDialogVisible(newVal) {
+      if (!newVal) {
+        this.checkIndexList = [];
+      }
+    },
+  },
   methods: {
+    selectionChange(val) {
+      console.log(val);
+      this.multipleSelection = val;
+    },
+    //鑾峰彇琛ㄦ牸楂樺害
+    getTableHeight() {
+      const otherHeight = this.more ? 430 : 380; // 鍏朵綑楂樺害
+      const tableBottom = 50; // 璺濈椤甸潰涓嬫柟鐨勯珮搴�
+      const tableHeightDetil = window.innerHeight - tableBottom;
+      if (tableHeightDetil <= 300) {
+        this.tableHeight = 200;
+      } else {
+        this.tableHeight = window.innerHeight - tableBottom - otherHeight;
+      }
+    },
+    getDictList() {
+      getDicts("urgency_level")
+        .then((res) => {
+          if (res.code === 200) {
+            this.urgencyDictList = res.data;
+          }
+        })
+        .catch((error) => {
+          console.error(error);
+        });
+    },
     pagination({ page, limit }) {
       this.page.current = page;
       this.page.size = limit;
       this.getList();
+    },
+    //鑾峰彇鏁版嵁鍒楄〃
+    getList() {
+      this.tableLoading = true;
+      selectInsOrderParameter({ ...this.queryParams, ...this.page })
+        .then((res) => {
+          if (res.code === 200) {
+            this.tableData = res.data.records;
+            this.page.total = res.data.total;
+          }
+          this.tableLoading = false;
+        })
+        .catch((error) => {
+          console.error(error);
+          this.tableLoading = false;
+        });
+    },
+    // 瀵煎嚭宸叉
+    exportChecked() {
+      let data = {
+        startTime: this.exportCheckedDate[0],
+        endTime: this.exportCheckedDate[1],
+      };
+      this.exportCheckedLoading = true;
+      this.dialogVisible1 = false;
+      exportChecked(data)
+        .then((res) => {
+          this.$message.success("瀵煎嚭鎴愬姛");
+          this.exportCheckedDate = [];
+          this.exportCheckedLoading = false;
+          const blob = new Blob([res], { type: "application/octet-stream" });
+          const url = URL.createObjectURL(blob);
+          const link = document.createElement("a");
+          link.href = url;
+          link.download = "妫�楠岀粨鏋�.xlsx";
+          document.body.appendChild(link);
+          link.click();
+        })
+        .catch((error) => {
+          console.error(error);
+        });
+    },
+    // 鏌ョ湅璇︽儏
+    viewDetails(row) {
+      this.dialogVisible = true;
+      if (
+        row.inspectionItem.includes("鏉惧绠�") ||
+        row.inspectionItemSubclass.includes("鏉惧绠�")
+      ) {
+        this.type = "鏉惧绠�";
+      } else {
+        this.type = row.inspectionItem;
+      }
+      let data = {
+        inspectionItem: row.inspectionItem,
+        insProductId: row.insProductId,
+        insSampleId: row.insSampleId,
+        entrustCode: row.entrustCode,
+        sampleCode: row.sampleCode,
+        inspectionItemSubclass: row.inspectionItemSubclass,
+      };
+      viewDetails(data)
+        .then((res) => {
+          if (res.code === 200) {
+            this.viewDetailsList = res.data;
+            if (res.data[0].tableHeader) {
+              this.tableHeader = res.data[0].tableHeader;
+            } else {
+              this.tableHeader = [
+                {
+                  testValue0: "",
+                },
+              ];
+            }
+          }
+        })
+        .catch((error) => {
+          console.error(error);
+        });
+    },
+    getLabelPrinting(selection) {
+      this.loadPint = true;
+      labelPrinting({
+        ids: selection.map((m) => m.id).join(","),
+      })
+        .then((res) => {
+          if (res.code === 200) {
+            let arr = res.data;
+            arr.forEach((a) => {
+              this.loadPint = false;
+              let arr1 = [];
+              a.insProduct.forEach((b) => {
+                arr1.push(b.inspectionItem);
+              });
+              a.item = [...new Set(arr1)].join(",");
+            });
+            this.qrData = arr;
+          }
+        })
+        .catch((error) => {
+          console.error(error);
+        });
+    },
+    //寮�濮嬫爣绛炬墦鍗�
+    beginPrint(arr) {
+      if (arr.length === 0) {
+        return;
+      }
+      this.LODOP = getLodop();
+      this.LODOP.SET_LICENSES(
+        "鍗楅�氬競閼槼杞欢寮�鍙戞湁闄愬叕鍙�",
+        "60F8E5078AE17DEB340C94BC7E83CAFF",
+        "",
+        ""
+      );
+      this.LODOP.PRINT_INITA();
+      for (let i = 0; i < arr.length; i++) {
+        const qrData = arr[i];
+        let qrStr =
+          "https://zttx-lims.ztt.cn:8021/lims/qr/qrScan?code=" +
+          qrData.id +
+          "&type=sample";
+        this.LODOP.NEWPAGE();
+        // this.LODOP.SET_PRINT_PAGESIZE(0, 100, 360, '')
+        this.LODOP.SET_PRINT_MODE("PRINT_NOCOLLATE", 1);
+        this.LODOP.ADD_PRINT_BARCODE(2, 5, 80, 80, "QRCode", qrStr);
+        this.LODOP.ADD_PRINT_TEXT(5, 85, 60, 18, "鏍峰搧缂栧彿锛�");
+        this.LODOP.SET_PRINT_STYLEA(0, "FontSize", 5);
+        this.LODOP.ADD_PRINT_TEXT(5, 117, 280, 18, qrData.sampleCode);
+        this.LODOP.SET_PRINT_STYLEA(0, "FontSize", 5);
+        this.LODOP.ADD_PRINT_TEXT(15, 85, 60, 18, "濮旀墭鍗曞彿锛�");
+        this.LODOP.SET_PRINT_STYLEA(0, "FontSize", 5);
+        this.LODOP.ADD_PRINT_TEXT(15, 117, 280, 18, qrData.code);
+        this.LODOP.SET_PRINT_STYLEA(0, "FontSize", 5);
+        this.LODOP.ADD_PRINT_TEXT(25, 85, 60, 18, "瑙勬牸鍨嬪彿锛�");
+        this.LODOP.SET_PRINT_STYLEA(0, "FontSize", 5);
+        this.LODOP.ADD_PRINT_TEXT(25, 117, 280, 18, qrData.model);
+        this.LODOP.SET_PRINT_STYLEA(0, "FontSize", 5);
+        this.LODOP.ADD_PRINT_TEXT(35, 85, 60, 18, "鏍峰搧鍚嶇О锛�");
+        this.LODOP.SET_PRINT_STYLEA(0, "FontSize", 5);
+        this.LODOP.ADD_PRINT_TEXT(35, 117, 280, 18, qrData.sample);
+        this.LODOP.SET_PRINT_STYLEA(0, "FontSize", 5);
+        this.LODOP.ADD_PRINT_TEXT(45, 85, 60, 20, "妫�娴嬮」鐩細");
+        this.LODOP.SET_PRINT_STYLEA(0, "FontSize", 5);
+        this.LODOP.ADD_PRINT_TEXT(
+          45,
+          117,
+          150,
+          20,
+          qrData.item.length > 42
+            ? qrData.item.substring(0, 39) + "..."
+            : qrData.item
+        );
+        this.LODOP.SET_PRINT_STYLEA(0, "FontSize", 5);
+        this.LODOP.ADD_PRINT_TEXT(67, 85, 60, 18, "鏍峰搧鐘舵�侊細");
+        this.LODOP.SET_PRINT_STYLEA(0, "FontSize", 5);
+        let stateStr = "鈻㈠緟妫� 鈻㈠湪妫� 鈻㈠凡妫�";
+        let leaveStr =
+          qrData.isLeave && qrData.isLeave === 1 ? " 鈻g暀鏍�" : " 鈻㈢暀鏍�";
+        if (qrData.insState == 0) {
+          stateStr = "鈻e緟妫� 鈻㈠湪妫� 鈻㈠凡妫�";
+        } else if (qrData.insState == 1) {
+          stateStr = "鈻㈠緟妫� 鈻e湪妫� 鈻㈠凡妫�";
+        } else if (qrData.insState == 2) {
+          stateStr = "鈻㈠緟妫� 鈻㈠湪妫� 鈻e凡妫�";
+        }
+        this.LODOP.ADD_PRINT_TEXT(67, 117, 280, 18, stateStr + leaveStr);
+        this.LODOP.SET_PRINT_STYLEA(0, "FontSize", 5);
+      }
+      this.LODOP.PRINT();
+      // this.LODOP.PREVIEW()
+    },
+    //閫夋嫨瑕佹墦鍗扮殑浜岀淮鐮�
+    changePrintCode() {
+      let indexList = this.checkIndexList;
+      let arr = [];
+      indexList.forEach((i) => {
+        arr.push(this.qrData[i]);
+      });
+      this.checkDataList = arr;
+    },
+    //鍏ㄩ��
+    handleCheckAllChange(val) {
+      if (val) {
+        for (var i = 0; i < this.qrData.length; i++) {
+          this.checkIndexList.push(i);
+        }
+        this.checkDataList = this.qrData;
+      } else {
+        this.checkIndexList = [];
+        this.checkDataList = [];
+      }
+      this.isIndeterminate = false;
+    },
+    submitPrint() {
+      if (this.checkDataList.length < 1) {
+        this.$message.warning("璇烽�夋嫨瑕佹墦鍗扮殑浜岀淮鐮�");
+        return;
+      }
+      this.$nextTick(() => {
+        this.beginPrint(this.qrData);
+      });
+      this.printDialogVisible = false;
+    },
+    print() {
+      if (this.multipleSelection.length == 0) {
+        this.$message.warning("璇烽�夋嫨涓�鏉℃暟鎹�");
+        return;
+      }
+      let selection = this.multipleSelection;
+      this.getLabelPrinting(selection);
+      this.printDialogVisible = true;
+    },
+    refreshTable() {
+      this.getList();
+    },
+    refresh() {
+      this.queryParams = {
+        entrustCode: "",
+        outEntrustCode: "",
+        sampleName: "",
+        sampleModel: "",
+        sampleCode: "",
+        startAndEndTime: [],
+        name: "",
+        engineering: "",
+        production: "",
+      };
+      this.refreshTable();
+    },
+    handleClose() {
+      this.verifyDialogVisible = false;
+      this.quashDialogVisible = false;
+      this.issuedDialogVisible = false;
+      this.dataDialogVisible = false;
+      this.upLoad = false;
+    },
+    handleClose2() {
+      this.verifyDialogVisible = false;
+      this.quashDialogVisible = false;
+      this.issuedDialogVisible = false;
+      this.dataDialogVisible = false;
+      this.upLoad = false;
+    },
+    handleClose3() {
+      this.dialogVisible = false;
+    },
+    handleClose4() {
+      this.exportCheckedDate = [];
+      this.dialogVisible1 = false;
+    },
+    // 鏌ョ湅璇︽儏
+    showDetails(row) {
+      this.$router.push({
+        name: "showDetails",
+        query: {
+          active: 2,
+          currentId: row.id,
+          examine: 1,
+          isPlan: false,
+        },
+      });
+    },
+    // 鏁版嵁鏌ョ湅
+    handleDataLook(row) {
+      selectSampleAndProductByOrderId({ id: row.id })
+        .then((res) => {
+          if (res.code === 200) {
+            this.dataLooktableData = res.data;
+          }
+        })
+        .catch((error) => {
+          console.error(error);
+        });
+      this.dataDialogVisible = true;
+    },
+    // 涓嬭浇鎶ュ憡
+    download(row) {
+      downReport({ id: row.reportId })
+        .then((res) => {
+          let fileName = row.tempUrlPdf;
+          if (fileName.includes("_")) {
+            fileName = fileName.split("_")[1];
+          }
+          const blob = new Blob([res], { type: "application/octet-stream" });
+          const url = URL.createObjectURL(blob);
+          const link = document.createElement("a");
+          link.href = url;
+          link.download = fileName;
+          document.body.appendChild(link);
+          link.click();
+        })
+        .catch((error) => {
+          console.error(error);
+        });
+    },
+    // 瀹℃牳
+    handleVerify(row) {
+      this.$router.push({
+        name: "showDetails",
+        query: {
+          active: 3,
+          currentId: row.id,
+          examine: 1,
+        },
+      });
+    },
+    // 鍏ㄩ��
+    handleSelectionAll(val) {
+      if (val.length > 0 && val.length <= this.treeTableData.length) {
+        this.handleSelectionAllRecursion(this.treeTableData, true);
+        console.log("浼犺緭鐨勬暟鎹�", this.revokeData);
+      } else {
+        this.$refs.revokeTable.clearSelection();
+        this.revokeData = [];
+      }
+    },
+    handleSelectionAllRecursion(list, flag) {
+      for (let i = 0; i < list.length; i++) {
+        let item = list[i];
+        this.$refs.revokeTable.toggleRowSelection(item, flag);
+        if (flag) {
+          this.revokeData.push(item);
+          this.revokeData = this.revokeData.filter(
+            (a, index, self) => index === self.findIndex((t) => t.id === a.id)
+          );
+        }
+        if (item.children && item.children.length > 0) {
+          this.handleSelectionAllRecursion(item.children, flag);
+        }
+      }
+    },
+
+    // 閫夋嫨闇�瑕佹挙閿�鐨勬暟鎹�
+    handleSelectionChange(val, row) {
+      console.log("rwo", row);
+      this.revokeData = val;
+      // 杩涜涓�涓�掑綊鎿嶄綔
+      // 鍒ゆ柇鏄惁閫変腑 val鍖呭惈鏃㈡槸閫変腑  涓嶅寘鍚棦鏄彇娑堥�変腑
+      let flag = null;
+      if (val.includes(row)) {
+        flag = true;
+      } else {
+        flag = false;
+      }
+      if (row.children && row.children.length > 0) {
+        this.tableSelect(row, flag);
+      }
+      // 杩樿杩涜涓�涓垽鏂� 濡傛灉鍏ㄩ�変箣鍚庡張鍙栨秷浜嗛�夋嫨锛岄偅涔堢浉搴旂殑sampleId涔熻鍙栨秷
+      this.$nextTick(() => {
+        if (!flag) {
+          this.treeTableData.forEach((item) => {
+            if (item.id == row.sampleId) {
+              this.$refs.revokeTable.toggleRowSelection(item, false);
+            }
+          });
+          // 娓╁害鐐�
+          if (row.number) {
+            this.revokeData = this.revokeData.filter(
+              (a) =>
+                a.inspectionItemSubclass != row.inspectionItemSubclass &&
+                a.inspectionItem != "娓╁害寰幆" &&
+                a.inspectionItemTwo != row.number &&
+                a.id != row.sampleId
+            );
+            console.log("treeTableData", this.treeTableData);
+            this.treeTableData.forEach((item) => {
+              if (item.id == row.sampleId && item.children.length > 0) {
+                item.children.forEach((a) => {
+                  if (a.inspectionItem == "娓╁害寰幆") {
+                    this.$refs.revokeTable.toggleRowSelection(a, false);
+                    if (a.children.length > 0) {
+                      a.children.forEach((b) => {
+                        if (b.inspectionItemTwo == row.number) {
+                          this.$refs.revokeTable.toggleRowSelection(b, false);
+                        }
+                      });
+                    }
+                  }
+                });
+              }
+            });
+          } else if (row.temperatureNumber) {
+            // 寰幆娆℃暟
+            this.revokeData = this.revokeData.filter(
+              (a) =>
+                a.inspectionItem != "娓╁害寰幆" &&
+                a.id != row.sampleId &&
+                a.inspectionItemTwo != row.inspectionItemTwo &&
+                a.number != row.inspectionItemTwo
+            );
+            console.log("treeTableData", this.treeTableData);
+            this.treeTableData.forEach((item) => {
+              if (item.id == row.sampleId && item.children.length > 0) {
+                item.children.forEach((a) => {
+                  if (a.inspectionItem == "娓╁害寰幆") {
+                    this.$refs.revokeTable.toggleRowSelection(a, false);
+                  }
+                });
+              }
+            });
+          } else if (row.temperature) {
+            // 濡傛灉鏄俯搴﹀惊鐜�
+            this.revokeData = this.revokeData.filter(
+              (a) =>
+                a.id != row.sampleId &&
+                a.inspectionItem != "娓╁害寰幆" &&
+                a.parentId != row.id
+            );
+          } else {
+            this.revokeData = this.revokeData.filter(
+              (a) => a.id != row.sampleId
+            );
+          }
+        }
+        console.log("鏈�缁堢粨鏋�", this.revokeData);
+      });
+    },
+    // load鐨勯�掑綊璧嬪��
+    loadRecursion(list, treeId, data) {
+      for (let i = 0; i < list.length; i++) {
+        let item = list[i];
+        if (item.id == treeId) {
+          item.children = data;
+          return;
+        }
+        if (item.children && item.children.length > 0) {
+          this.loadRecursion(item.children, treeId, data);
+        }
+      }
+    },
+    // 閫変腑鐨勯�掑綊
+    selectedRecursion(list) {
+      if (list.children && list.children.length > 0) {
+        console.log("鏈夊瓙鑺傜偣", list);
+
+        for (let i = 0; i < list.children.length; i++) {
+          let item = list.children[i];
+          this.$refs.revokeTable.toggleRowSelection(item, true);
+          this.revokeData.push(item);
+          this.revokeData = this.revokeData.filter(
+            (m, index, self) => index === self.findIndex((t) => t.id === m.id)
+          );
+          if (item.children && item.children.length > 0) {
+            this.selectedRecursion(item.children);
+          }
+        }
+      } else {
+        console.log("娌℃湁瀛愯妭鐐�", list);
+        this.$refs.revokeTable.toggleRowSelection(list, true);
+        return;
+      }
+    },
+    // 閫掑綊treeTableData
+    recursionTreeTableData(list, data) {
+      console.log("list", list);
+      // list 閫変腑鐨勬暟鎹�  data浠h〃treetableData
+      for (let i = 0; i < list.length; i++) {
+        let item = list[i];
+        for (let j = 0; j < data.length; j++) {
+          let m = data[j];
+          if (item.id == m.id) {
+            console.log("m", m);
+            this.selectedRecursion(m);
+          }
+          if (m.children && m.children.length > 0) {
+            this.recursionTreeTableData(list, m.children);
+          }
+        }
+      }
+    },
+    watchRecursion(list, flag, id) {
+      console.log("999", list, flag, id);
+      for (let j = 0; j < this.treeTableData.length; j++) {
+        let m = this.treeTableData[j];
+        if (m.id == id) {
+          this.$refs.revokeTable.toggleRowSelection(m, flag);
+          if (flag) {
+            this.revokeData.push(m);
+            this.revokeData = this.revokeData.filter(
+              (a, index, self) => index === self.findIndex((t) => t.id === a.id)
+            );
+          } else {
+            this.revokeData = this.revokeData.filter((a) => a.id != id);
+          }
+
+          if (m.children && m.children.length > 0) {
+            m.children.forEach((a) => {
+              this.$refs.revokeTable.toggleRowSelection(a, flag);
+              if (a.children) {
+              }
+            });
+          }
+        }
+      }
+    },
+    tableSelect(list, flag) {
+      if (list.children && list.children.length > 0) {
+        for (let i = 0; i < list.children.length; i++) {
+          let item = list.children[i];
+          this.$refs.revokeTable.toggleRowSelection(item, flag);
+          if (flag) {
+            this.revokeData.push(item);
+            this.revokeData = this.revokeData.filter(
+              (a, index, self) => index === self.findIndex((t) => t.id === a.id)
+            );
+          } else {
+            this.revokeData = this.revokeData.filter((a) => a.id != item.id);
+          }
+          if (item.children && item.children.length > 0) {
+            this.tableSelect(item, flag);
+          }
+        }
+      }
+    },
+
+    // 鎳掑姞杞芥煡璇�
+    load(tree, treeNode, resolve) {
+      treeNode.loading = true;
+      if (this.deleteTilte == "鎾ら攢") {
+        // 鏄惁鏄俯搴﹀惊鐜�
+        if (tree.temperature) {
+          selectTemperatureByProductId({ productId: tree.id })
+            .then((res) => {
+              if (res.code === 200) {
+                this.loadRecursion(this.treeTableData, tree.id, res.data);
+                resolve(res.data);
+                this.recursionTreeTableData(
+                  this.revokeData,
+                  this.treeTableData
+                );
+                treeNode.loading = false;
+              }
+            })
+            .catch((error) => {
+              console.error(error);
+            });
+        }
+        // 鏄惁鏄楠屾鏁�
+        else if (tree.temperatureNumber) {
+          selectTemperatureNumberByProductId({
+            parentId: tree.parentId,
+            inspectionItem: tree.inspectionItemTwo,
+          })
+            .then((res) => {
+              if (res.code === 200) {
+                this.loadRecursion(this.treeTableData, tree.id, res.data);
+                resolve(res.data);
+                this.recursionTreeTableData(
+                  this.revokeData,
+                  this.treeTableData
+                );
+                treeNode.loading = false;
+              }
+            })
+            .catch((error) => {
+              console.error(error);
+            });
+        } else {
+          selectProductsBySampleId({
+            sampleId: tree.id,
+            orderId: this.orderId,
+          })
+            .then((res) => {
+              if (res.code === 200) {
+                this.treeTableData.forEach((m, index) => {
+                  if (m.sampleId == tree.id) {
+                    m.children = res.data;
+                  }
+                });
+                resolve(res.data);
+                this.recursionTreeTableData(
+                  this.revokeData,
+                  this.treeTableData
+                );
+                treeNode.loading = false;
+              }
+            })
+            .catch((error) => {
+              console.error(error);
+            });
+        }
+      } else if (this.deleteTilte == "鎾ら攢瀹℃牳") {
+        // 鏄惁鏄俯搴﹀惊鐜�
+        if (tree.temperature) {
+          revokeReviewTemperatureByProductId({ productId: tree.id })
+            .then((res) => {
+              if (res.code === 200) {
+                resolve(res.data);
+                treeNode.loading = false;
+              }
+            })
+            .catch((error) => {
+              console.error(error);
+            });
+        }
+        // 鏄惁鏄惊鐜鏁�
+        else if (tree.temperatureNumber) {
+          revokeReviewConsistentByProductId({
+            parentId: tree.parentId,
+            inspectionItem: tree.inspectionItemTwo,
+          })
+            .then((res) => {
+              if (res.code === 200) {
+                resolve(res.data);
+                treeNode.loading = false;
+              }
+            })
+            .catch((error) => {
+              console.error(error);
+            });
+        } else {
+          revokeReviewProduct({
+            sampleId: tree.id,
+            orderId: this.orderId,
+          })
+            .then((res) => {
+              if (res.code === 200) {
+                resolve(res.data);
+                treeNode.loading = false;
+              }
+            })
+            .catch((error) => {
+              console.error(error);
+            });
+        }
+      }
+    },
+    // 鎾ら攢
+    handlEquash(row) {
+      if (this.tabIndex != 1) {
+        this.quashDialogVisible = true;
+        this.insOrderRow = row;
+      } else {
+        this.orderId = row.id;
+        selectSampleByOrderId({
+          orderId: row.id,
+        })
+          .then((res) => {
+            if (res.code === 200) {
+              this.treeTableData = res.data;
+              this.treeTableData2 = JSON.parse(JSON.stringify(res.data));
+            }
+          })
+          .catch((error) => {
+            console.error(error);
+          });
+        this.revocationInsProductIds = "";
+        this.deleteTilte = "鎾ら攢";
+        this.deleteDialogVisible = true;
+      }
+    },
+    handleCloseDelete() {
+      this.revokeData = [];
+      this.treeTableData = [];
+      this.deleteDialogVisible = false;
+    },
+    selectDelete(arr) {
+      this.deleteList = arr;
+    },
+    submitDelete() {
+      if (this.deleteTilte == "鎾ら攢") {
+        if (this.revokeData.length == 0) {
+          this.$message.error("璇烽�夋嫨瑕佹挙閿�鐨勫叿浣撻」鐩�");
+          return;
+        }
+        //this.printLoading = true;
+        // 濡傛灉鍕鹃�変簡鏍峰搧
+        let productIds = [];
+        let sampleData = this.revokeData.filter(
+          (m) => m.hasChildren && !m.temperatureNumber && !m.temperature
+        );
+        let sampleIds = [];
+        if (sampleData.length > 0) {
+          console.log("閫夋嫨浜嗘牱鍝�", sampleData);
+          sampleIds = sampleData.map((m) => m.id);
+          let newDate = this.revokeData.filter((m) => {
+            return sampleIds.every((id) => m.sampleId != id);
+          });
+          if (newDate) {
+            productIds = newDate.map((m) => m.id);
+          }
+        } else {
+          console.log("閫夋嫨椤圭洰");
+          // 杩囨护鎺夊惊鐜鏁�
+          let data = this.revokeData.filter((item) => !item.ids);
+          // 濡傛灉鍕鹃�夊惊鐜鏁�
+          let data1 = this.revokeData.filter((item) => item.ids);
+          productIds = data.map((m) => m.id);
+          data1.forEach((item) => {
+            if (item.ids.length > 0) {
+              item.ids.forEach((a) => {
+                productIds.push(a);
+              });
+            }
+          });
+          productIds = [...new Set(productIds)];
+        }
+        let data = {
+          orderId: this.orderId,
+          sampleIds: sampleIds,
+          productIds: productIds,
+        };
+        revoke(data)
+          .then((res) => {
+            if (res.code === 200) {
+              this.deleteDialogVisible = false;
+              this.printLoading = false;
+              this.revokeData = [];
+              this.refreshTable();
+              this.$message.success("鎾ら攢鎴愬姛");
+            }
+          })
+          .catch((error) => {
+            console.error(error);
+          });
+      } else {
+        revocationPassed({
+          orderId: this.orderId,
+        })
+          .then((res) => {
+            if (res.code === 200) {
+              this.printLoading = false;
+              this.deleteDialogVisible = false;
+              this.refreshTable();
+              this.$message.success("鏇存柊鎴愬姛");
+            }
+          })
+          .catch((error) => {
+            console.error(error);
+          });
+      }
+    },
+    handlEquashCheck(row) {
+      this.orderId = row.id;
+      this.revocationInsProductIds = row.revocationInsProductIds;
+      this.deleteTilte = "鎾ら攢瀹℃牳";
+      revokeReviewSample({
+        orderId: row.id,
+      })
+        .then((res) => {
+          if (res.code === 200) {
+            this.treeTableData = res.data;
+          }
+        })
+        .catch((error) => {
+          console.error(error);
+        });
+      this.deleteDialogVisible = true;
+    },
+    handleNo() {
+      if (this.deleteTilte == "鎾ら攢") {
+        this.deleteDialogVisible = false;
+        this.revokeData = [];
+      } else {
+        revocationCancel({
+          orderId: this.orderId,
+        })
+          .then((res) => {
+            if (res.code === 200) {
+              this.printLoading = false;
+              this.deleteDialogVisible = false;
+              this.refreshTable();
+              this.$message.success("鏇存柊鎴愬姛");
+            }
+          })
+          .catch((error) => {
+            console.error(error);
+          });
+      }
+    },
+    // 涓嬪彂
+    handleIssued(row) {
+      this.issuedDialogVisible = true;
+      selectOrderManDay({
+        id: row.id,
+      })
+        .then((res) => {
+          if (res.code === 200) {
+            this.distributeData.orderId = row.id;
+            this.distributeData.sampleId = row.sampleId;
+            this.distributeData.appointed = res.data;
+            this.distributeData.type = row.type;
+          }
+        })
+        .catch((error) => {
+          console.error(error);
+        });
+      upPlanUser2({
+        orderId: row.id,
+      })
+        .then((res) => {
+          if (res.code === 200 && res.data.length > 0) {
+            this.sonLaboratoryList = [];
+            res.data.forEach((m) => {
+              this.sonLaboratoryList.push({
+                value: m,
+                label: m,
+              });
+            });
+          }
+        })
+        .catch((error) => {
+          console.error(error);
+        });
+    },
+    submitForm2() {
+      if (
+        this.distributeData.appointed == null ||
+        this.distributeData.appointed == ""
+      ) {
+        this.$message.error("绾﹀畾鏃堕棿鏈~鍐�");
+        return;
+      }
+      //
+      if (
+        this.distributeData.type == 2 &&
+        (this.distributeData.userId == null || this.distributeData.userId == "")
+      ) {
+        this.$message.error("鎸囨淳浜哄憳鏈~鍐�");
+        return;
+      }
+      if (
+        this.distributeData.userId &&
+        (this.distributeData.sonLaboratory == null ||
+          this.distributeData.sonLaboratory == "")
+      ) {
+        this.$message.error("璇曢獙瀹ゆ湭濉啓");
+        return;
+      }
+      this.upLoad = true;
+      upInsOrder({
+        orderId: this.distributeData.orderId,
+        sampleId: this.distributeData.sampleId,
+        appointed: this.distributeData.appointed,
+        userIdList: [this.distributeData.userId],
+        sonLaboratory: this.distributeData.sonLaboratory,
+      })
+        .then((res) => {
+          if (res.code === 201) {
+            this.upLoad = false;
+            return;
+          }
+          this.$message.success("淇敼鎴愬姛");
+          this.upLoad = false;
+          this.issuedDialogVisible = false;
+          this.refreshTable();
+        })
+        .catch((error) => {
+          console.error(error);
+          this.$message.error("淇敼澶辫触");
+          this.upLoad = false;
+        });
+    },
+    submitForm() {
+      this.upLoad = true;
+      if (this.tabIndex == 1) {
+        updateInspected({
+          id: this.insOrderRow.id,
+        })
+          .then((res) => {
+            if (res.code === 200) {
+              this.upLoad = false;
+              this.quashDialogVisible = false;
+              this.refreshTable();
+              this.$message.success("鏇存柊鎴愬姛");
+            }
+          })
+          .catch((error) => {
+            console.error(error);
+          });
+      } else {
+        updateStatus({
+          id: this.insOrderRow.id,
+        })
+          .then((res) => {
+            if (res.code === 200) {
+              this.upLoad = false;
+              this.quashDialogVisible = false;
+              this.refreshTable();
+              this.$message.success("鏇存柊鎴愬姛");
+            }
+          })
+          .catch((error) => {
+            console.error(error);
+          });
+      }
+    },
+    // 涓嬪崟
+    playOrder(num) {
+      // this.active = num;
+      // this.examine = 0;
+      this.$router.push({
+        name: "addOrder",
+        query: {
+          active: num,
+          examine: 0,
+          isPlan: false,
+        },
+      });
+    },
+    handleTab(m, i) {
+      this.tabIndex = i;
+      this.queryParams.state = m.value;
+      this.getList();
+    },
+    changeUser() {
+      if (this.sonLaboratoryList.length > 0) {
+        this.distributeData.sonLaboratory = this.sonLaboratoryList[0].value;
+      }
     },
   },
 };
@@ -1281,7 +2297,7 @@
 
 .search {
   background-color: #fff;
-  height: 80px;
+  height: 50px;
   display: flex;
   align-items: center;
   overflow: hidden;
@@ -1315,7 +2331,8 @@
 .tab {
   list-style-type: none;
   display: flex;
-  margin-bottom: 12px;
+  /* margin-bottom: 12px; */
+  padding-inline-start: 0px;
 }
 
 .tab li {
@@ -1343,9 +2360,11 @@
 .el-form-item {
   margin-bottom: 16px;
 }
+
 .box-card >>> .el-radio__inner {
   border-radius: 2px !important;
 }
+
 .box-card >>> .el-radio__input.is-checked .el-radio__inner::after {
   content: "";
   width: 8px;
@@ -1362,12 +2381,15 @@
   border-radius: 0px;
   background: none;
 }
+
 >>> .el-radio__label {
   color: #000 !important;
 }
+
 .el-dialog__body >>> .el-radio__label {
   font-size: 8px;
 }
+
 .el-dialog__body >>> .el-radio__input.is-checked .el-radio__inner::after {
   content: "";
   width: 4px;
@@ -1384,31 +2406,40 @@
   border-radius: 0px;
   background: none;
 }
+
 >>> .el-radio__input.is-disabled.is-checked .el-radio__inner {
   background: #3a7bfa;
 }
+
 .el-dialog__body >>> .el-radio__input.is-disabled.is-checked .el-radio__inner {
   background: transparent;
 }
+
 .el-dialog__body >>> .el-radio__inner {
   width: 8px !important;
   height: 8px !important;
 }
+
 .el-dialog__body >>> .el-radio__label {
   padding-left: 2px !important;
 }
+
 .el-dialog__body >>> .el-card__body {
   padding: 0 !important;
 }
+
 .el-dialog__body >>> .el-card {
   border: none;
 }
+
 .el-dialog__body >>> .el-radio__input.is-disabled .el-radio__inner {
   border-color: #000 !important;
 }
+
 .el-dialog__body >>> .el-radio__input.is-disabled.is-checked .el-radio__inner {
   border: none !important;
 }
+
 .scor {
   width: 0.01cm;
   height: 0.01cm;
@@ -1416,6 +2447,7 @@
   border: 1px solid #000;
   display: inline-block;
 }
+
 .ellipsis-multiline {
   display: -webkit-box;
   -webkit-line-clamp: 2;
@@ -1423,14 +2455,19 @@
   overflow: hidden;
   text-overflow: ellipsis;
   word-wrap: break-word;
-  max-height: 3em; /* 楂樺害涓哄瓧浣撳ぇ灏忕殑涓ゅ�� */
-  line-height: 1.5em; /* 琛岄珮 */
-  height: 3em; /* 楂樺害涓鸿楂樼殑涓ゅ�� */
+  max-height: 3em;
+  /* 楂樺害涓哄瓧浣撳ぇ灏忕殑涓ゅ�� */
+  line-height: 1.5em;
+  /* 琛岄珮 */
+  height: 3em;
+  /* 楂樺害涓鸿楂樼殑涓ゅ�� */
 }
+
 .table-container {
   height: 70vh;
   overflow-y: auto;
 }
+
 .table-container.el-table {
   overflow: hidden;
   text-overflow: ellipsis;

--
Gitblit v1.9.3