From 2b6e530143e59eae4d3a35eae0cf1620decfe698 Mon Sep 17 00:00:00 2001
From: lxp <1928192722@qq.com>
Date: 星期三, 12 三月 2025 15:32:47 +0800
Subject: [PATCH] 报告编制修改

---
 src/views/business/inspectionOrder/index.vue | 2079 ++++++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 1,477 insertions(+), 602 deletions(-)

diff --git a/src/views/business/inspectionOrder/index.vue b/src/views/business/inspectionOrder/index.vue
index 4fb5f8d..56b36ab 100644
--- a/src/views/business/inspectionOrder/index.vue
+++ b/src/views/business/inspectionOrder/index.vue
@@ -1,41 +1,26 @@
 <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"
-            type="primary"
-            @click="dialogVisible1 = true"
-            :loading="exportCheckedLoading"
-            >瀵煎嚭妫�楠岀粨鏋�</el-button
-          >
-          <el-button size="medium" type="primary" @click="print"
-            >鏍囩鎵撳嵃</el-button
-          >
+          <el-button size="medium" type="primary" @click="dialogVisible1 = true"
+            :loading="exportCheckedLoading">瀵煎嚭妫�楠岀粨鏋�</el-button>
+          <el-button size="medium" type="primary" @click="print">鏍囩鎵撳嵃</el-button>
           <el-button size="medium" type="primary" @click="playOrder(1)"
-            >涓嬪崟</el-button
-          >
+            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%">
               <div class="search_label">濮旀墭缂栧彿锛�</div>
               <div class="search_input">
-                <el-input
-                  size="small"
-                  placeholder="璇疯緭鍏�"
-                  clearable
-                  v-model="componentData.entity.entrustCode"
-                  @keyup.enter.native="refreshTable()"
-                ></el-input>
+                <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="queryParams.entrustCode"
+                  @keyup.enter.native="refreshTable()"></el-input>
               </div>
             </div>
             <div class="search_thing" style="width: 20%">
@@ -43,244 +28,130 @@
                 澶栭儴濮旀墭缂栧彿锛�
               </div>
               <div class="search_input">
-                <el-input
-                  size="small"
-                  placeholder="璇疯緭鍏�"
-                  clearable
-                  v-model="componentData.entity.outEntrustCode"
-                  @keyup.enter.native="refreshTable()"
-                ></el-input>
+                <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="queryParams.outEntrustCode"
+                  @keyup.enter.native="refreshTable()"></el-input>
               </div>
             </div>
             <div class="search_thing" style="width: 20%">
               <div class="search_label">鏍峰搧鍚嶇О锛�</div>
               <div class="search_input">
-                <el-input
-                  size="small"
-                  placeholder="璇疯緭鍏�"
-                  clearable
-                  v-model="componentData.entity.sampleName"
-                  @keyup.enter.native="refreshTable()"
-                ></el-input>
+                <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="queryParams.sampleName"
+                  @keyup.enter.native="refreshTable()"></el-input>
               </div>
             </div>
             <div class="search_thing" style="width: 20%">
               <div class="search_label">鏍峰搧鍨嬪彿锛�</div>
               <div class="search_input">
-                <el-input
-                  size="small"
-                  placeholder="璇疯緭鍏�"
-                  clearable
-                  v-model="componentData.entity.sampleModel"
-                  @keyup.enter.native="refreshTable()"
-                ></el-input>
+                <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="queryParams.sampleModel"
+                  @keyup.enter.native="refreshTable()"></el-input>
               </div>
             </div>
             <div class="search_thing" style="width: 20%">
               <div class="search_label">鏍峰搧缂栧彿锛�</div>
               <div class="search_input">
-                <el-input
-                  size="small"
-                  placeholder="璇疯緭鍏�"
-                  clearable
-                  v-model="componentData.entity.sampleCode"
-                  @keyup.enter.native="refreshTable()"
-                ></el-input>
+                <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="queryParams.sampleCode"
+                  @keyup.enter.native="refreshTable()"></el-input>
               </div>
             </div>
             <div class="search_thing" style="width: 40%" v-if="more">
               <div class="search_label">涓嬪崟鏃堕棿锛�</div>
               <div class="search_input">
-                <el-date-picker
-                  style="width: 100%"
-                  v-model="componentData.entity.startAndEndTime"
-                  type="daterange"
-                  size="small"
-                  range-separator="鑷�"
-                  start-placeholder="寮�濮嬫棩鏈�"
-                  end-placeholder="缁撴潫鏃ユ湡"
-                  value-format="yyyy-MM-dd"
-                  clearable
-                  placeholder="閫夋嫨鏃ユ湡"
-                >
+                <el-date-picker style="width: 100%" v-model="queryParams.startAndEndTime" type="daterange" size="small"
+                  range-separator="鑷�" start-placeholder="寮�濮嬫棩鏈�" end-placeholder="缁撴潫鏃ユ湡" value-format="yyyy-MM-dd"
+                  clearable placeholder="閫夋嫨鏃ユ湡">
                 </el-date-picker>
               </div>
             </div>
             <div class="search_thing" style="width: 20%" v-if="more">
               <div class="search_label">涓嬪崟浜猴細</div>
               <div class="search_input">
-                <el-input
-                  size="small"
-                  placeholder="璇疯緭鍏�"
-                  clearable
-                  v-model="componentData.entity.name"
-                  @keyup.enter.native="refreshTable()"
-                ></el-input>
+                <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="queryParams.name"
+                  @keyup.enter.native="refreshTable()"></el-input>
               </div>
             </div>
             <div class="search_thing" style="width: 20%" v-if="more">
               <div class="search_label">宸ョ▼鍚嶇О锛�</div>
               <div class="search_input">
-                <el-input
-                  size="small"
-                  placeholder="璇疯緭鍏�"
-                  clearable
-                  v-model="componentData.entity.engineering"
-                  @keyup.enter.native="refreshTable()"
-                ></el-input>
+                <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="queryParams.engineering"
+                  @keyup.enter.native="refreshTable()"></el-input>
               </div>
             </div>
             <div class="search_thing" style="width: 20%" v-if="more">
               <div class="search_label">鐢熶骇鍗曚綅锛�</div>
               <div class="search_input">
-                <el-input
-                  size="small"
-                  placeholder="璇疯緭鍏�"
-                  clearable
-                  v-model="componentData.entity.production"
-                  @keyup.enter.native="refreshTable()"
-                ></el-input>
+                <el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="queryParams.production"
+                  @keyup.enter.native="refreshTable()"></el-input>
               </div>
             </div>
           </el-col>
           <el-col :span="4">
             <div class="search_thing">
-              <el-button
-                type="text"
-                :icon="!more ? 'el-icon-arrow-down' : 'el-icon-arrow-up'"
-                style="color: #3a7bfa"
-                @click="more = !more"
-                >{{ !more ? "鏇村" : "鏀惰捣" }}</el-button
-              >
+              <el-button type="text" :icon="!more ? 'el-icon-arrow-down' : 'el-icon-arrow-up'" style="color: #3a7bfa"
+                @click="more = !more">{{ !more ? "鏇村" : "鏀惰捣" }}</el-button>
               <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>
           </el-col>
         </el-row>
       </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
-              v-for="(m, i) in tabList"
-              :key="i + 'afgh'"
-              :class="{ active: i == tabIndex }"
-              @click="handleTab(m, i)"
-            >
+            <li v-for="(m, i) in tabList" :key="i + 'afgh'" :class="{ active: i == tabIndex }" @click="handleTab(m, i)">
               {{ m.label }}
             </li>
           </ul>
-          <!-- <ValueTable
-          :style="getStyle()"
-          ref="ValueTable"
-          :url="$api.insOrder.selectInsOrderParameter"
-          :componentData="componentData"
-          :upIndex="upIndex"
-          @getTableData="getTableData"
-        /> -->
-          <lims-table
-            :tableData="tableData"
-            @pagination="pagination"
-            :column="column"
-            :page="page"
-            :tableLoading="tableLoading"
-          ></lims-table>
+          <lims-table :tableData="tableData" :height="tableHeight + ''" @pagination="pagination" :column="column"
+            :page="page" :tableLoading="tableLoading"></lims-table>
         </div>
         <!-- 瀹℃牳 -->
-        <el-dialog
-          title="涓嬪崟瀹℃牳"
-          :visible.sync="verifyDialogVisible"
-          width="30%"
-          :before-close="handleClose"
-        >
+        <el-dialog title="涓嬪崟瀹℃牳" :visible.sync="verifyDialogVisible" width="30%" :before-close="handleClose">
           <p style="font-size: 16px; color: #333333" v-if="!isPass">
-            濮旀墭缂栧彿<span style="color: #34bd66">ZTMS2023071001</span
-            >鐨勪俊鎭槸鍚﹂�氳繃
+            濮旀墭缂栧彿<span style="color: #34bd66">ZTMS2023071001</span>鐨勪俊鎭槸鍚﹂�氳繃
           </p>
-          <el-form
-            :label-position="labelPosition"
-            :model="formData"
-            label-width="150px"
-            ref="ruleForm"
-            v-else
-          >
+          <el-form :label-position="labelPosition" :model="formData" label-width="150px" ref="ruleForm" v-else>
             <el-form-item label="璇疯緭鍏ユ牱鍝佸簱浣嶅彿锛�">
-              <el-input
-                v-model="formData.specificationModel"
-                size="small"
-                style="width: 60%"
-              ></el-input>
+              <el-input v-model="formData.specificationModel" size="small" style="width: 60%"></el-input>
             </el-form-item>
           </el-form>
           <span slot="footer" class="dialog-footer">
             <el-row v-if="!isPass">
               <el-button @click="handleClose">閫� 鍥�</el-button>
-              <el-button type="primary" @click="submitForm" :loading="upLoad"
-                >閫� 杩�</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-button type="primary" @click="submitForm" :loading="upLoad"
-                >纭� 瀹�</el-button
-              >
+              <el-button type="primary" @click="submitForm" :loading="upLoad">纭� 瀹�</el-button>
             </el-row>
           </span>
         </el-dialog>
         <!-- 鎾ら攢 -->
-        <el-dialog
-          title="涓嬪崟鎾ら攢"
-          :visible.sync="quashDialogVisible"
-          width="30%"
-          :before-close="handleClose"
-        >
+        <el-dialog title="涓嬪崟鎾ら攢" :visible.sync="quashDialogVisible" width="30%" :before-close="handleClose">
           <p style="font-size: 16px; color: #333333" v-if="!isQuash">
             濮旀墭缂栧彿<span style="color: #34bd66">{{
               this.insOrderRow.entrustCode
-            }}</span
-            >鐨勪俊鎭槸鍚︽挙閿�
+            }}</span>鐨勪俊鎭槸鍚︽挙閿�
           </p>
-          <el-form
-            :label-position="labelPosition"
-            :model="formData"
-            label-width="150px"
-            ref="ruleForm"
-            v-else
-          >
+          <el-form :label-position="labelPosition" :model="formData" label-width="150px" ref="ruleForm" v-else>
             <el-form-item label="璇疯緭鍏ユ挙閿�鍘熷洜锛�">
-              <el-input
-                v-model="formData.specificationModel"
-                size="small"
-                style="width: 60%"
-              ></el-input>
+              <el-input v-model="formData.specificationModel" size="small" style="width: 60%"></el-input>
             </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-button type="primary" @click="submitForm" :loading="upLoad">纭� 瀹�</el-button>
             </el-row>
             <el-row v-else>
               <el-button @click="handleClose">杩� 鍥�</el-button>
-              <el-button type="primary" @click="submitForm" :loading="upLoad"
-                >纭� 瀹�</el-button
-              >
+              <el-button type="primary" @click="submitForm" :loading="upLoad">纭� 瀹�</el-button>
             </el-row>
           </span>
         </el-dialog>
         <!-- 涓嬪彂 -->
-        <el-dialog
-          title="妫�楠屽垎閰�"
-          :visible.sync="issuedDialogVisible"
-          width="400px"
-          :before-close="handleClose"
-        >
+        <el-dialog title="妫�楠屽垎閰�" :visible.sync="issuedDialogVisible" width="400px" :before-close="handleClose">
           <div class="body" style="max-height: 60vh">
             <el-row>
               <el-col class="search_thing" style="width: 95%">
@@ -288,73 +159,34 @@
                   <span class="required-span">* </span>绾﹀畾鏃堕棿锛�
                 </div>
                 <div class="search_input">
-                  <el-date-picker
-                    size="small"
-                    v-model="distributeData.appointed"
-                    type="date"
-                    placeholder="閫夋嫨鏃ユ湡"
-                    value-format="yyyy-MM-dd"
-                    style="width: 100%"
-                    format="yyyy-MM-dd"
-                  >
+                  <el-date-picker size="small" v-model="distributeData.appointed" type="date" placeholder="閫夋嫨鏃ユ湡"
+                    value-format="yyyy-MM-dd" style="width: 100%" format="yyyy-MM-dd">
                   </el-date-picker>
                 </div>
               </el-col>
               <el-col class="search_thing" style="width: 95%">
                 <div class="search_label">
-                  <span class="required-span" v-show="distributeData.type == 2"
-                    >* </span
-                  >鎸囨淳浜哄憳锛�
+                  <span class="required-span" v-show="distributeData.type == 2">* </span>鎸囨淳浜哄憳锛�
                 </div>
                 <div class="search_input">
-                  <el-select
-                    v-model="distributeData.userId"
-                    placeholder="璇烽�夋嫨"
-                    size="small"
-                    style="width: 100%"
-                    clearable
-                    filterable
-                    @change="changeUser"
-                  >
-                    <el-option-group
-                      v-for="(item, index) in Object.keys(personList)"
-                      :key="index"
-                      :label="item"
-                    >
-                      <el-option
-                        v-for="op in personList[item]"
-                        :key="op.id"
-                        :label="op.name"
-                        :value="op.id"
-                      >
+                  <el-select v-model="distributeData.userId" placeholder="璇烽�夋嫨" size="small" style="width: 100%"
+                    clearable filterable @change="changeUser">
+                    <el-option-group v-for="(item, index) in Object.keys(personList)" :key="index" :label="item">
+                      <el-option v-for="op in personList[item]" :key="op.id" :label="op.name" :value="op.id">
                       </el-option>
                     </el-option-group>
                   </el-select>
                 </div>
               </el-col>
-              <el-col
-                class="search_thing"
-                style="width: 95%"
-                v-if="distributeData.userId"
-              >
+              <el-col class="search_thing" style="width: 95%" v-if="distributeData.userId">
                 <div class="search_label">
                   <span class="required-span">* </span>璇曢獙瀹わ細
                 </div>
                 <div class="search_input">
-                  <el-select
-                    v-model="distributeData.sonLaboratory"
-                    placeholder="璇烽�夋嫨11"
-                    size="small"
-                    style="width: 100%"
-                    clearable
-                    filterable
-                  >
-                    <el-option
-                      v-for="(item, i) in sonLaboratoryList"
-                      :key="i + 'oooo'"
-                      :label="item.label"
-                      :value="item.value"
-                    >
+                  <el-select v-model="distributeData.sonLaboratory" placeholder="璇烽�夋嫨11" size="small" style="width: 100%"
+                    clearable filterable>
+                    <el-option v-for="(item, i) in sonLaboratoryList" :key="i + 'oooo'" :label="item.label"
+                      :value="item.value">
                     </el-option>
                   </el-select>
                 </div>
@@ -364,34 +196,18 @@
           <span slot="footer" class="dialog-footer">
             <el-row>
               <el-button @click="handleClose2">鍙� 娑�</el-button>
-              <el-button type="primary" @click="submitForm2" :loading="upLoad"
-                >纭� 瀹�</el-button
-              >
+              <el-button type="primary" @click="submitForm2" :loading="upLoad">纭� 瀹�</el-button>
             </el-row>
           </span>
         </el-dialog>
-        <el-dialog
-          title="鏁版嵁鏌ョ湅"
-          :visible.sync="dataDialogVisible"
-          width="100%"
-          fullscreen
-        >
+        <el-dialog title="鏁版嵁鏌ョ湅" :visible.sync="dataDialogVisible" width="100%" fullscreen>
           <div style="height: 80vh; overflow-y: auto" v-if="dataDialogVisible">
-            <ValueTable
-              ref="ValueTableDataLook"
-              :rowKey="'insProductId'"
-              :url="$api.insOrder.selectSampleAndProductByOrderId"
-              :componentData="componentDataDataLook"
-            />
+            <ValueTable ref="ValueTableDataLook" :rowKey="'insProductId'"
+              :url="$api.insOrder.selectSampleAndProductByOrderId" :componentData="componentDataDataLook" />
           </div>
         </el-dialog>
-        <el-dialog
-          top="5vh"
-          :title="deleteTilte"
-          :visible.sync="deleteDialogVisible"
-          :before-close="handleCloseDelete"
-          width="80%"
-        >
+        <el-dialog top="5vh" :title="deleteTilte" :visible.sync="deleteDialogVisible" :before-close="handleCloseDelete"
+          width="80%">
           <div class="table-container" v-if="deleteDialogVisible">
             <!-- <ValueTable
             ref="ValueTableDataDelete"
@@ -405,57 +221,23 @@
             :componentData="componentDataDelete"
             :isColumnWidth="true"
           /> -->
-            <el-table
-              height="500px"
-              ref="revokeTable"
-              @select="handleSelectionChange"
-              @select-all="handleSelectionAll"
-              :data="treeTableData"
-              style="width: 100%"
-              row-key="id"
-              border
-              lazy
-              :load="load"
-              :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
-            >
-              <el-table-column
-                v-if="deleteTilte == '鎾ら攢'"
-                type="selection"
-                width="55"
-              ></el-table-column>
-              <el-table-column
-                prop="sampleCode"
-                label="鏍峰搧缂栧彿"
-                show-overflow-tooltip
-              >
+            <el-table height="500px" ref="revokeTable" @select="handleSelectionChange" @select-all="handleSelectionAll"
+              :data="treeTableData" style="width: 100%" row-key="id" border lazy :load="load"
+              :tree-props="{ children: 'children', hasChildren: 'hasChildren' }">
+              <el-table-column v-if="deleteTilte == '鎾ら攢'" type="selection" width="55"></el-table-column>
+              <el-table-column prop="sampleCode" label="鏍峰搧缂栧彿" show-overflow-tooltip>
               </el-table-column>
-              <el-table-column
-                prop="inspectionItem"
-                label="妫�楠岄」"
-                show-overflow-tooltip
-              >
+              <el-table-column prop="inspectionItem" label="妫�楠岄」" show-overflow-tooltip>
               </el-table-column>
-              <el-table-column
-                prop="inspectionItemSubclass"
-                label="妫�楠屽瓙椤�"
-                show-overflow-tooltip
-              >
+              <el-table-column prop="inspectionItemSubclass" label="妫�楠屽瓙椤�" show-overflow-tooltip>
               </el-table-column>
-              <el-table-column
-                prop="sampleType"
-                label="鏍峰搧鍒嗙被"
-                show-overflow-tooltip
-              >
+              <el-table-column prop="sampleType" label="鏍峰搧鍒嗙被" show-overflow-tooltip>
               </el-table-column>
               <el-table-column prop="sample" label="鏍峰搧" show-overflow-tooltip>
               </el-table-column>
               <el-table-column prop="model" label="鍨嬪彿" show-overflow-tooltip>
               </el-table-column>
-              <el-table-column
-                prop="sonLaboratory"
-                label="璇曢獙瀹�"
-                show-overflow-tooltip
-              >
+              <el-table-column prop="sonLaboratory" label="璇曢獙瀹�" show-overflow-tooltip>
               </el-table-column>
               <el-table-column prop="tell" label="瑕佹眰鍊�" show-overflow-tooltip>
               </el-table-column>
@@ -466,118 +248,46 @@
               <el-button @click="handleNo">{{
                 deleteTilte == "鎾ら攢" ? "鍙� 娑�" : "涓嶉�氳繃"
               }}</el-button>
-              <el-button
-                type="primary"
-                @click="submitDelete"
-                :loading="printLoading"
-                >{{ deleteTilte == "鎾ら攢" ? "纭� 瀹�" : "閫� 杩�" }}</el-button
-              >
+              <el-button type="primary" @click="submitDelete" :loading="printLoading">{{ deleteTilte == "鎾ら攢" ? "纭� 瀹�" :
+                "閫� 杩�" }}</el-button>
             </el-row>
           </span>
         </el-dialog>
         <!-- 鏁版嵁鏌ョ湅璇︽儏 -->
-        <el-dialog
-          title="鏌ョ湅璇︽儏"
-          :visible.sync="dialogVisible"
-          width="70%"
-          :before-close="handleClose3"
-        >
-          <el-table
-            v-if="type == '鍗曟牴鍨傜洿鐕冪儳' || type == '鏉惧绠�'"
-            :data="viewDetailsList"
-            height="400px"
-            border
-            style="width: 100%"
-          >
-            <el-table-column
-              type="index"
-              label="搴忓彿"
-              width="80px"
-            ></el-table-column>
-            <el-table-column
-              prop="entrustCode"
-              label="濮旀墭鍗曞彿"
-            ></el-table-column>
-            <el-table-column
-              prop="sampleCode"
-              label="鏍峰搧缂栧彿"
-            ></el-table-column>
+        <el-dialog title="鏌ョ湅璇︽儏" :visible.sync="dialogVisible" width="70%" :before-close="handleClose3">
+          <el-table v-if="type == '鍗曟牴鍨傜洿鐕冪儳' || type == '鏉惧绠�'" :data="viewDetailsList" height="400px" border
+            style="width: 100%">
+            <el-table-column type="index" label="搴忓彿" width="80px"></el-table-column>
+            <el-table-column prop="entrustCode" label="濮旀墭鍗曞彿"></el-table-column>
+            <el-table-column prop="sampleCode" label="鏍峰搧缂栧彿"></el-table-column>
             <el-table-column prop="color" label="濂楃"></el-table-column>
             <!-- <el-table-column prop="inspectionItem" label="妫�楠岄」"></el-table-column> -->
             <el-table-column prop="insValue" label="妫�楠岀粨鏋�"></el-table-column>
           </el-table>
 
-          <el-table
-            v-if="type == '鎶楁媺寮哄害'"
-            :data="viewDetailsList"
-            height="400px"
-            border
-            style="width: 100%"
-          >
-            <el-table-column
-              type="index"
-              label="搴忓彿"
-              width="80px"
-            ></el-table-column>
-            <el-table-column
-              prop="inspectionItem"
-              label="妫�楠岄」"
-            ></el-table-column>
-            <el-table-column
-              prop="inspectionItemSubclass"
-              label="妫�楠屽瓙椤�"
-            ></el-table-column>
+          <el-table v-if="type == '鎶楁媺寮哄害'" :data="viewDetailsList" height="400px" border style="width: 100%">
+            <el-table-column type="index" label="搴忓彿" width="80px"></el-table-column>
+            <el-table-column prop="inspectionItem" label="妫�楠岄」"></el-table-column>
+            <el-table-column prop="inspectionItemSubclass" label="妫�楠屽瓙椤�"></el-table-column>
             <el-table-column prop="width" label="瀹藉害"></el-table-column>
             <el-table-column prop="thickness" label="鍘氬害"></el-table-column>
             <el-table-column prop="testValue" label="妫�楠屽��"></el-table-column>
           </el-table>
 
-          <el-table
-            v-if="type == '鏂浼搁暱鐜�'"
-            :data="viewDetailsList"
-            height="400px"
-            border
-            style="width: 100%"
-          >
-            <el-table-column
-              type="index"
-              label="搴忓彿"
-              width="80px"
-            ></el-table-column>
-            <el-table-column
-              prop="inspectionItem"
-              label="妫�楠岄」"
-            ></el-table-column>
-            <el-table-column
-              prop="inspectionItemSubclass"
-              label="妫�楠屽瓙椤�"
-            ></el-table-column>
-            <el-table-column
-              v-for="(v, i) in tableHeader"
-              :key="i"
-              :prop="`testValue${i}`"
-              :label="`妫�楠屽��${i + 1}`"
-            ></el-table-column>
+          <el-table v-if="type == '鏂浼搁暱鐜�'" :data="viewDetailsList" height="400px" border style="width: 100%">
+            <el-table-column type="index" label="搴忓彿" width="80px"></el-table-column>
+            <el-table-column prop="inspectionItem" label="妫�楠岄」"></el-table-column>
+            <el-table-column prop="inspectionItemSubclass" label="妫�楠屽瓙椤�"></el-table-column>
+            <el-table-column v-for="(v, i) in tableHeader" :key="i" :prop="`testValue${i}`"
+              :label="`妫�楠屽��${i + 1}`"></el-table-column>
           </el-table>
         </el-dialog>
 
         <!-- 瀵煎嚭宸叉鏁版嵁 -->
-        <el-dialog
-          title="閫夋嫨鏃ユ湡"
-          :visible.sync="dialogVisible1"
-          width="30%"
-          :before-close="handleClose4"
-        >
+        <el-dialog title="閫夋嫨鏃ユ湡" :visible.sync="dialogVisible1" width="30%" :before-close="handleClose4">
           <span>涓嬪崟鏃ユ湡:&nbsp;</span>
-          <el-date-picker
-            v-model="exportCheckedDate"
-            type="daterange"
-            size="small"
-            value-format="yyyy-MM-dd"
-            range-separator="鑷�"
-            start-placeholder="寮�濮嬫棩鏈�"
-            end-placeholder="缁撴潫鏃ユ湡"
-          >
+          <el-date-picker v-model="exportCheckedDate" type="daterange" size="small" value-format="yyyy-MM-dd"
+            range-separator="鑷�" start-placeholder="寮�濮嬫棩鏈�" end-placeholder="缁撴潫鏃ユ湡">
           </el-date-picker>
           <span slot="footer" class="dialog-footer">
             <el-button @click="handleClose4">鍙� 娑�</el-button>
@@ -586,47 +296,17 @@
         </el-dialog>
       </div>
       <div style="width: 100%; height: 100%" v-if="active > 0">
-        <Add
-          :active="active"
-          :currentId="currentId"
-          v-if="active < 4"
-          :examine="examine"
-        />
+        <Add :active="active" :currentId="currentId" v-if="active < 4" :examine="examine" />
       </div>
-      <el-dialog
-        title="鏍囩鎵撳嵃"
-        :visible.sync="printDialogVisible"
-        width="40%"
-        top="5vh"
-      >
-        <div
-          style="width: 100%; height: 400px; overflow-y: auto"
-          v-loading="loadPint"
-        >
+      <el-dialog title="鏍囩鎵撳嵃" :visible.sync="printDialogVisible" width="40%" top="5vh">
+        <div style="width: 100%; height: 400px; overflow-y: auto" v-loading="loadPint">
           <div class="dia_body">
-            <el-checkbox
-              style="margin: 10px 5px"
-              :indeterminate="isIndeterminate"
-              v-model="checkAll"
-              @change="handleCheckAllChange"
-              >鍏ㄩ��</el-checkbox
-            >
-            <el-checkbox-group
-              @change="changePrintCode()"
-              v-model="checkIndexList"
-            >
-              <el-card
-                class="box-card"
-                v-for="(item, i) in qrData"
-                :key="i + 'wwwww'"
-                style="margin-bottom: 15px; font-size: 16px !important"
-              >
-                <el-checkbox
-                  :label="i"
-                  :key="i"
-                  style="position: relative; top: -20px; left: 5px"
-                  ><br
-                /></el-checkbox>
+            <el-checkbox style="margin: 10px 5px" :indeterminate="isIndeterminate" v-model="checkAll"
+              @change="handleCheckAllChange">鍏ㄩ��</el-checkbox>
+            <el-checkbox-group @change="changePrintCode()" v-model="checkIndexList">
+              <el-card class="box-card" v-for="(item, i) in qrData" :key="i + 'wwwww'"
+                style="margin-bottom: 15px; font-size: 16px !important">
+                <el-checkbox :label="i" :key="i" style="position: relative; top: -20px; left: 5px"><br /></el-checkbox>
                 <div>
                   <el-row style="font-size: 14px; padding-left: 20px">
                     <el-col style="font-weight: bold">{{ item.pName }}</el-col>
@@ -634,89 +314,48 @@
                   <div style="display: flex">
                     <div>
                       <el-col :span="8" :offset="4">
-                        <vueQr
-                          :text="
-                            'https://zttx-lims.ztt.cn:8021/lims/qr/qrScan?code=' +
-                            item.id +
-                            '&type=sample'
-                          "
-                          :size="140"
-                          :margin="2"
-                        ></vueQr>
+                        <vueQr :text="'https://zttx-lims.ztt.cn:8021/lims/qr/qrScan?code=' +
+                          item.id +
+                          '&type=sample'
+                          " :size="140" :margin="2"></vueQr>
                       </el-col>
                     </div>
                     <div style="margin-left: 50px; width: 100%">
                       <el-row>
-                        <el-col
-                          style="
+                        <el-col style="
                             font-weight: bold;
                             text-align: left;
                             font-size: 14px;
-                          "
-                          ><span>鏍峰搧缂栧彿:&nbsp; </span
-                          >{{ item.sampleCode }}</el-col
-                        >
+                          "><span>鏍峰搧缂栧彿:&nbsp; </span>{{ item.sampleCode }}</el-col>
                       </el-row>
                       <el-row style="margin-top: 1px; font-size: 14px">
-                        <el-col style="font-weight: bold; text-align: left"
-                          ><span>濮旀墭鍗曞彿:&nbsp; </span>{{ item.code }}</el-col
-                        >
+                        <el-col style="font-weight: bold; text-align: left"><span>濮旀墭鍗曞彿:&nbsp; </span>{{ item.code
+                          }}</el-col>
                       </el-row>
                       <el-row style="margin-top: 1px; font-size: 14px">
-                        <el-col style="font-weight: bold; text-align: left"
-                          ><span>瑙勬牸鍨嬪彿:&nbsp; </span>{{ item.model }}</el-col
-                        >
+                        <el-col style="font-weight: bold; text-align: left"><span>瑙勬牸鍨嬪彿:&nbsp; </span>{{ item.model
+                          }}</el-col>
                       </el-row>
                       <el-row style="margin-top: 1px; font-size: 14px">
-                        <el-col style="font-weight: bold; text-align: left"
-                          ><span>鏍峰搧鍚嶇О:&nbsp; </span
-                          >{{ item.sample }}</el-col
-                        >
+                        <el-col style="font-weight: bold; text-align: left"><span>鏍峰搧鍚嶇О:&nbsp; </span>{{ item.sample
+                          }}</el-col>
                       </el-row>
-                      <el-row
-                        style="margin-top: 1px; font-size: 14px"
-                        class="ellipsis-multiline"
-                      >
-                        <el-col style="font-weight: bold; text-align: left"
-                          ><span>妫�娴嬮」鐩�:&nbsp; </span>{{ item.item }}</el-col
-                        >
+                      <el-row style="margin-top: 1px; font-size: 14px" class="ellipsis-multiline">
+                        <el-col style="font-weight: bold; text-align: left"><span>妫�娴嬮」鐩�:&nbsp; </span>{{ item.item
+                          }}</el-col>
                       </el-row>
                       <el-row style="margin-top: 2px; font-size: 14px">
-                        <el-col
-                          style="
+                        <el-col style="
                             font-weight: bold;
                             display: flex;
                             align-items: center;
-                          "
-                          ><span>鏍峰搧鐘舵��:&nbsp; </span
-                          ><el-radio-group
-                            :value="item.insState"
-                            style="margin-top: 7px; margin-left: 4px"
-                            disabled
-                          >
-                            <el-radio
-                              :label="0"
-                              style="font-weight: bold; margin-right: 7px"
-                              >寰呮</el-radio
-                            >
-                            <el-radio
-                              :label="1"
-                              style="font-weight: bold; margin-right: 7px"
-                              >鍦ㄦ</el-radio
-                            >
-                            <el-radio
-                              :label="2"
-                              style="font-weight: bold; margin-right: 7px"
-                              >宸叉</el-radio
-                            > </el-radio-group
-                          ><el-radio
-                            :label="1"
-                            style="font-weight: bold; margin-top: 7px"
-                            v-model="item.isLeave"
-                            disabled
-                            >鐣欐牱</el-radio
-                          ></el-col
-                        >
+                          "><span>鏍峰搧鐘舵��:&nbsp; </span><el-radio-group :value="item.insState"
+                            style="margin-top: 7px; margin-left: 4px" disabled>
+                            <el-radio :label="0" style="font-weight: bold; margin-right: 7px">寰呮</el-radio>
+                            <el-radio :label="1" style="font-weight: bold; margin-right: 7px">鍦ㄦ</el-radio>
+                            <el-radio :label="2" style="font-weight: bold; margin-right: 7px">宸叉</el-radio>
+                          </el-radio-group><el-radio :label="1" style="font-weight: bold; margin-top: 7px"
+                            v-model="item.isLeave" disabled>鐣欐牱</el-radio></el-col>
                       </el-row>
                     </div>
                   </div>
@@ -728,61 +367,40 @@
         <span slot="footer" class="dialog-footer">
           <el-row>
             <el-button @click="printDialogVisible = false">鍙� 娑�</el-button>
-            <el-button
-              type="primary"
-              @click="submitPrint"
-              :loading="printLoading"
-              >鎵� 鍗�</el-button
-            >
+            <el-button type="primary" @click="submitPrint" :loading="printLoading">鎵� 鍗�</el-button>
           </el-row>
         </span>
       </el-dialog>
-      <div
-        class="el-dialog__body"
-        style="
+      <div class="el-dialog__body" style="
           overflow-y: auto;
           margin-top: 0;
           position: fixed;
           top: 999px;
           z-index: 99999;
           display: none;
-        "
-      >
+        ">
         <div id="printMOrder" class="printMOrder" ref="printMOrder">
-          <el-card
-            class="box-card"
-            v-for="(item, i) in checkDataList"
-            :key="i + 'uuuuu'"
-            style="
+          <el-card class="box-card" v-for="(item, i) in checkDataList" :key="i + 'uuuuu'" style="
               font-size: 0.2cm !important;
               page-break-after: always;
               color: #000;
               box-shadow: none;
               margin: 0 !important;
               padding: 0 !important;
-            "
-          >
+            ">
             <div style="display: flex">
               <div>
                 <el-col :span="10" :offset="2">
-                  <vueQr
-                    :text="
-                      'https://zttx-lims.ztt.cn:8021/lims/qr/qrScan?code=' +
-                      item.id +
-                      '&type=sample'
-                    "
-                    :size="60"
-                    :margin="2"
-                  ></vueQr>
+                  <vueQr :text="'https://zttx-lims.ztt.cn:8021/lims/qr/qrScan?code=' +
+                    item.id +
+                    '&type=sample'
+                    " :size="60" :margin="2"></vueQr>
                 </el-col>
               </div>
               <div style="margin-left: 0.32cm; line-height: 0.22cm">
                 <el-row>
-                  <el-col
-                    style="font-size: 0.2cm; width: 4cm"
-                    class="single-line-ellipsis"
-                    ><span>鏍峰搧缂栧彿:&nbsp; </span>{{ item.sampleCode }}</el-col
-                  >
+                  <el-col style="font-size: 0.2cm; width: 4cm" class="single-line-ellipsis"><span>鏍峰搧缂栧彿:&nbsp; </span>{{
+                    item.sampleCode }}</el-col>
                 </el-row>
                 <el-row style="font-size: 0.2cm">
                   <el-col><span>濮旀墭鍗曞彿:&nbsp; </span>{{ item.code }}</el-col>
@@ -791,29 +409,19 @@
                   <el-col><span>瑙勬牸鍨嬪彿:&nbsp; </span>{{ item.model }}</el-col>
                 </el-row>
                 <el-row style="font-size: 0.2cm">
-                  <el-col
-                    ><span>鏍峰搧鍚嶇О:&nbsp; </span>{{ item.sample }}</el-col
-                  >
+                  <el-col><span>鏍峰搧鍚嶇О:&nbsp; </span>{{ item.sample }}</el-col>
                 </el-row>
                 <el-row style="font-size: 0.2cm; width: 4cm">
-                  <el-col class="ellipsis-multiline"
-                    ><span>妫�娴嬮」鐩�:&nbsp; </span>{{ item.item }}</el-col
-                  >
+                  <el-col class="ellipsis-multiline"><span>妫�娴嬮」鐩�:&nbsp; </span>{{ item.item }}</el-col>
                 </el-row>
                 <el-row style="margin-top: 0.01cm; font-size: 0.2cm">
-                  <el-col style="display: flex; align-items: center"
-                    ><span>鏍峰搧鐘舵��:&nbsp; </span>
-                    <span style="white-space: nowrap"
-                      ><span v-if="item.insState == 0">鈭�</span
-                      ><span class="scor" v-if="item.insState != 0"></span>寰呮
-                      <span v-if="item.insState == 1">鈭�</span
-                      ><span class="scor" v-if="item.insState != 1"></span>鍦ㄦ
-                      <span v-if="item.insState == 2">鈭�</span
-                      ><span class="scor" v-if="item.insState != 2"></span>宸叉
-                      <span v-if="item.isLeave == 1">鈭�</span
-                      ><span class="scor" v-if="item.isLeave != 1"></span
-                      >鐣欐牱</span
-                    >
+                  <el-col style="display: flex; align-items: center"><span>鏍峰搧鐘舵��:&nbsp; </span>
+                    <span style="white-space: nowrap"><span v-if="item.insState == 0">鈭�</span><span class="scor"
+                        v-if="item.insState != 0"></span>寰呮
+                      <span v-if="item.insState == 1">鈭�</span><span class="scor" v-if="item.insState != 1"></span>鍦ㄦ
+                      <span v-if="item.insState == 2">鈭�</span><span class="scor" v-if="item.insState != 2"></span>宸叉
+                      <span v-if="item.isLeave == 1">鈭�</span><span class="scor"
+                        v-if="item.isLeave != 1"></span>鐣欐牱</span>
                   </el-col>
                 </el-row>
               </div>
@@ -828,47 +436,169 @@
 <script>
 import limsTable from "@/components/Table/lims-table.vue";
 import {
-  addCustom,
-  selectCustomPageList,
+  selectInsOrderParameter,
+  hasSendUrgentOrder,
   delCustomById,
   upCustom,
 } from "@/api/business/inspectionOrder";
+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";
 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",
+        },
+        {
+          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",
+        },
         {
           dataType: "action",
           fixed: "right",
@@ -877,32 +607,32 @@
             {
               name: "鏁版嵁鏌ョ湅",
               type: "text",
-              clickFun: (row) => {},
+              clickFun: (row) => { },
             },
             {
               name: "鎶ュ憡涓嬭浇",
               type: "text",
-              clickFun: (row) => {},
+              clickFun: (row) => { },
             },
             {
               name: "瀹℃牳",
               type: "text",
-              clickFun: (row) => {},
+              clickFun: (row) => { },
             },
             {
               name: "鎾ら攢",
               type: "text",
-              clickFun: (row) => {},
+              clickFun: (row) => { },
             },
             {
               name: "鎾ら攢瀹℃牳",
               type: "text",
-              clickFun: (row) => {},
+              clickFun: (row) => { },
             },
             {
               name: "鍒嗛厤",
               type: "text",
-              clickFun: (row) => {},
+              clickFun: (row) => { },
             },
           ],
         },
@@ -1041,23 +771,7 @@
         },
         tagField: {
           type: {
-            select: [
-              {
-                value: 0,
-                type: "success",
-                label: "鏅��",
-              },
-              {
-                value: 1,
-                type: "warning",
-                label: "浼樺厛",
-              },
-              {
-                value: 2,
-                type: "danger",
-                label: "绱ф��",
-              },
-            ],
+            select: [],
           },
           createUser: {
             select: [],
@@ -1254,20 +968,1160 @@
       checkIndexList: [],
       checkDataList: [
         {
-          sampleCode: "11111",
+          sampleCode: "",
         },
       ],
       qrData: [],
       multipleSelection: [],
       sonLaboratoryList: [],
       queryCount: 0,
+      urgencyDictList: [],
+      tableHeight: 0,
     };
   },
+  created() {
+    this.getDictList();
+    this.getTableHeight();
+  },
+  mounted() {
+    this.getList();
+    window.addEventListener("resize", this.getTableHeight);
+  },
+  beforeDestroy() {
+    window.removeEventListener("resize", this.getTableHeight);
+  },
+  watch: {
+    more() {
+      this.getTableHeight();
+    },
+  },
   methods: {
+    //鑾峰彇琛ㄦ牸楂樺害
+    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],
+      };
+      console.log("data", data);
+      this.exportCheckedLoading = true;
+      this.dialogVisible1 = false;
+      this.$axios
+        .post(this.$api.insOrder.exportChecked, data, {
+          headers: {
+            "Content-Type": "application/json",
+          },
+          responseType: "blob",
+        })
+        .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();
+        });
+    },
+    // 鏌ョ湅璇︽儏
+    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,
+      };
+      this.$axios
+        .post(this.$api.insOrder.viewDetails, data, {
+          headers: {
+            "Content-Type": "application/json",
+          },
+        })
+        .then((res) => {
+          this.viewDetailsList = res.data;
+          if (res.data[0].tableHeader) {
+            this.tableHeader = res.data[0].tableHeader;
+          } else {
+            this.tableHeader = [
+              {
+                testValue0: "",
+              },
+            ];
+          }
+        });
+    },
+    selectMethod(val) {
+      this.multipleSelection = val;
+    },
+    getLabelPrinting(selection) {
+      this.loadPint = true;
+      this.$axios
+        .post(this.$api.insOrder.labelPrinting, {
+          ids: selection.map((m) => m.id).join(","),
+        })
+        .then((res) => {
+          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;
+        });
+    },
+    //寮�濮嬫爣绛炬墦鍗�
+    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;
+
+      // PrintJS({
+      //   printable: "printMOrder", //椤甸潰
+      //   type: "html", //鏂囨。绫诲瀷
+      //   maxWidth: 360,
+      //   style: `@page {
+      //           margin:0;
+      //           size: 400px 75px collapse;
+      //           margin-top:3px;
+      //           &:first-of-type{
+      //             margin-top:0 !important;
+      //           }
+      //         }
+      //         html{
+      //           zoom:100%;
+      //         }
+      //         @media print{
+      //           width: 400px;
+      //           height: 75px;
+      //           margin:0;
+      //         }`,
+      //   onPrintDialogClose: (this.erexcel = false),
+      //   targetStyles: ["*"], // 浣跨敤dom鐨勬墍鏈夋牱寮忥紝寰堥噸瑕�
+      //   font_size: "0.15cm",
+      // });
+    },
+    print() {
+      if (this.multipleSelection.length == 0) {
+        this.$message.warning("璇烽�夋嫨涓�鏉℃暟鎹�");
+        return;
+      }
+      let selection = this.multipleSelection;
+      this.getLabelPrinting(selection);
+      this.printDialogVisible = true;
+    },
+    // 閫夋嫨妫�楠屽垎閰嶄汉鍛�
+    getAuthorizedPerson() {
+      this.$axios.get(this.$api.user.getLaboratoryPersonList).then((res) => {
+        // let data = [];
+        // res.data.forEach((a) => {
+        //   data.push({
+        //     label: a.name,
+        //     value: a.id,
+        //   });
+        // });
+        this.personList = res.data;
+      });
+    },
+    refreshTable() {
+      this.getList();
+    },
+    getTableData(newData) {
+      if (newData && newData.length == 1) {
+        const insState = newData[0].state;
+        this.tabList.forEach((ele, index) => {
+          if (ele.value == insState && this.queryCount == 0) {
+            this.handleTab(ele, index);
+            this.queryCount = 1;
+          }
+        });
+      }
+    },
+    refresh() {
+      this.componentData.entity = this.HaveJson(this.entityCopy);
+      this.upIndex++;
+      this.refreshTable();
+    },
+    // 鏉冮檺鍒嗛厤
+    getPower(radio) {
+      let power = JSON.parse(sessionStorage.getItem("power"));
+      let up = false;
+      let del = false;
+      let revoke = false;
+      let check = false;
+      let checkUpdate = false;
+      for (var i = 0; i < power.length; i++) {
+        if (power[i].menuMethod == "upInsOrder") {
+          up = true;
+        }
+        if (power[i].menuMethod == "updateStatus") {
+          revoke = true;
+        }
+        if (power[i].menuMethod == "upInsOrderOfState") {
+          check = true;
+        }
+        if (power[i].menuMethod == "checkUpdate") {
+          checkUpdate = true;
+        }
+      }
+      if (!up) {
+        this.componentData.do.splice(5, 1);
+      }
+      if (!checkUpdate) {
+        this.componentData.do.splice(4, 1);
+      }
+      if (!revoke) {
+        this.componentData.do.splice(3, 1);
+      }
+      if (!check) {
+        this.componentData.do.splice(2, 1);
+      }
+    },
+    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;
+    },
+    // 璇︽儏
+    selectAllByOne(row) {
+      this.active = 2;
+      // console.log(row);
+      // //鎵撳紑寮规
+      // this.dialogVisible = true;
+      // //row = 鐐瑰嚮瀵瑰簲琛屽��
+      // //澶嶅埗缁檉ormData
+      // this.formData = this.HaveJson(row);
+      this.currentId = row.id;
+      this.examine = 1;
+    },
+    // 鏁版嵁鏌ョ湅
+    handleDataLook(row) {
+      this.componentDataDataLook.entity.id = row.id;
+      this.dataDialogVisible = true;
+    },
+    // 涓嬭浇鎶ュ憡
+    download(row) {
+      // let url = row.urlS ? row.urlS : row.url;
+      // if (url) {
+      //   url = url.split(".")[0] + ".pdf";
+      //   const link = document.createElement("a");
+      //   link.href = this.javaApi + url;
+      //   link.target = "_blank";
+      //   document.body.appendChild(link);
+      //   link.click();
+      // }
+
+      // if(row.tempUrlPdf) {
+      //   const link = document.createElement('a');
+      //   link.href = this.javaApi + row.tempUrlPdf;
+      //   link.target = '_blank';
+      //   document.body.appendChild(link);
+      //   link.click();
+      // }
+      this.$axios
+        .get(
+          this.$api.insReport.downReport + "?id=" + row.reportId + "&type=1",
+          {
+            headers: {
+              "Content-Type": "application/json",
+            },
+            responseType: "blob",
+          }
+        )
+        .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();
+        });
+    },
+    // 瀹℃牳
+    handleVerify(row) {
+      // this.verifyDialogVisible = true;
+      this.active = 3;
+      this.currentId = row.id;
+      this.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) {
+          this.$axios
+            .get(
+              this.$api.insOrder.selectTemperatureByProductId +
+              "?productId=" +
+              tree.id
+            )
+            .then((res) => {
+              this.loadRecursion(this.treeTableData, tree.id, res.data);
+              resolve(res.data);
+              this.recursionTreeTableData(this.revokeData, this.treeTableData);
+              treeNode.loading = false;
+            });
+        }
+        // 鏄惁鏄楠屾鏁�
+        else if (tree.temperatureNumber) {
+          this.$axios
+            .get(
+              this.$api.insOrder.selectTemperatureNumberByProductId +
+              "?parentId=" +
+              tree.parentId +
+              "&inspectionItem=" +
+              tree.inspectionItemTwo
+            )
+            .then((res) => {
+              this.loadRecursion(this.treeTableData, tree.id, res.data);
+              resolve(res.data);
+              this.recursionTreeTableData(this.revokeData, this.treeTableData);
+              treeNode.loading = false;
+            });
+        } else {
+          this.$axios
+            .get(
+              this.$api.insOrder.selectProductsBySampleId +
+              "?sampleId=" +
+              tree.id +
+              "&orderId=" +
+              this.orderId
+            )
+            .then((res) => {
+              this.treeTableData.forEach((m, index) => {
+                if (m.sampleId == tree.id) {
+                  m.children = res.data;
+                }
+              });
+              resolve(res.data);
+              this.recursionTreeTableData(this.revokeData, this.treeTableData);
+              // // 濡傛灉璇ユ牱鍝佸凡缁忚鍕鹃�� 閭d箞鎵�寰楀埌鐨勬楠岄」涔熻杩涜鍕鹃��
+              // let data = this.revokeData.map((item) => item.id);
+              // if (data.includes(tree.id)) {
+              //   this.treeTableData.forEach((m, index) => {
+              //     if (m.children) {
+              //       m.children.forEach((n, i) => {
+              //         if (tree.id == n.sampleId) {
+              //           this.$refs.revokeTable.toggleRowSelection(n, true);
+              //         }
+              //       });
+              //     }
+              //   });
+              // }
+              treeNode.loading = false;
+            });
+        }
+      } else if (this.deleteTilte == "鎾ら攢瀹℃牳") {
+        // 鏄惁鏄俯搴﹀惊鐜�
+        if (tree.temperature) {
+          this.$axios
+            .get(
+              this.$api.insOrder.revokeReviewTemperatureByProductId +
+              "?productId=" +
+              tree.id
+            )
+            .then((res) => {
+              resolve(res.data);
+              treeNode.loading = false;
+            });
+        }
+        // 鏄惁鏄惊鐜鏁�
+        else if (tree.temperatureNumber) {
+          this.$axios
+            .get(
+              this.$api.insOrder.revokeReviewConsistentByProductId +
+              "?parentId=" +
+              tree.parentId +
+              "&inspectionItem=" +
+              tree.inspectionItemTwo
+            )
+            .then((res) => {
+              resolve(res.data);
+              treeNode.loading = false;
+            });
+        } else {
+          this.$axios
+            .get(
+              this.$api.insOrder.revokeReviewProduct +
+              "?sampleId=" +
+              tree.id +
+              "&orderId=" +
+              this.orderId
+            )
+            .then((res) => {
+              resolve(res.data);
+              treeNode.loading = false;
+            });
+        }
+      }
+    },
+    // 鎾ら攢
+    handlEquash(row) {
+      if (this.tabIndex != 1) {
+        this.quashDialogVisible = true;
+        this.insOrderRow = row;
+      } else {
+        // this.componentDataDelete.entity.orderId = row.id
+        this.orderId = row.id;
+        this.$axios
+          .get(this.$api.insOrder.selectSampleByOrderId + "?orderId=" + row.id)
+          .then((res) => {
+            console.log("res", res);
+            this.treeTableData = res.data;
+            this.treeTableData2 = JSON.parse(JSON.stringify(res.data));
+          });
+        this.revocationInsProductIds = "";
+        this.componentDataDelete.showSelect = true;
+        this.componentDataDelete.select = true;
+        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)];
+          console.log("data", data);
+          console.log("data1", data1);
+        }
+        //
+
+        console.log("sampleId", sampleIds);
+        console.log("productIds", productIds);
+        let data = {
+          orderId: this.orderId,
+          sampleIds: sampleIds,
+          productIds: productIds,
+        };
+        this.$axios
+          .post(this.$api.insOrder.revoke, data, {
+            headers: {
+              "Content-Type": "application/json",
+            },
+            noQs: true,
+          })
+          .then((res) => {
+            if (res.code === 200) {
+              this.deleteDialogVisible = false;
+              this.printLoading = false;
+              this.revokeData = [];
+              this.refreshTable();
+              this.$message.success("鎾ら攢鎴愬姛");
+            }
+          });
+        console.log("revokeData", this.revokeData);
+        console.log("data", data);
+        // let ids = this.deleteList.map((m) => m.id).join(",");
+        // this.printLoading = true;
+        // this.axios
+        //   .put(
+        //     this.$api.insOrder.updateInspected +
+        //       "?ids=" +
+        //       ids +
+        //       "&orderId=" +
+        //       this.orderId
+        //   )
+        //   .then((res) => {
+        //     if (res.code === 200) {
+        //       this.printLoading = false;
+        //       this.deleteDialogVisible = false;
+        //       this.refreshTable("page");
+        //       this.$message.success("鏇存柊鎴愬姛");
+        //     }
+        //   });
+      } else {
+        // this.axios
+        //   .post(
+        //     this.$api.insOrder.checkUpdate +
+        //       "?orderId=" +
+        //       this.orderId +
+        //       "&state=" +
+        //       1
+        //   )
+        //   .then((res) => {
+        //     if (res.code === 200) {
+        //       this.printLoading = false;
+        //       this.deleteDialogVisible = false;
+        //       this.refreshTable("page");
+        //       this.$message.success("鏇存柊鎴愬姛");
+        //     }
+        //   });
+
+        this.axios
+          .get(this.$api.insOrder.revocationPassed + "?orderId=" + this.orderId)
+          .then((res) => {
+            if (res.code === 200) {
+              this.printLoading = false;
+              this.deleteDialogVisible = false;
+              this.refreshTable();
+              this.$message.success("鏇存柊鎴愬姛");
+            }
+          });
+      }
+    },
+    handlEquashCheck(row) {
+      // // this.componentDataDelete.entity.orderId = row.id
+      // this.orderId = row.id;
+      // this.revocationInsProductIds = row.revocationInsProductIds;
+      // this.componentDataDelete.showSelect = false;
+      // this.componentDataDelete.select = false;
+      // this.deleteTilte = "鎾ら攢瀹℃牳";
+      // this.deleteDialogVisible = true;
+
+      this.orderId = row.id;
+      this.revocationInsProductIds = row.revocationInsProductIds;
+      this.componentDataDelete.showSelect = false;
+      this.componentDataDelete.select = false;
+      this.deleteTilte = "鎾ら攢瀹℃牳";
+      this.$axios
+        .get(this.$api.insOrder.revokeReviewSample + "?orderId=" + row.id)
+        .then((res) => {
+          console.log("鎾ら攢瀹℃牳鏍峰搧鏌ヨ", res);
+          this.treeTableData = res.data;
+        });
+      this.deleteDialogVisible = true;
+    },
+    handleNo() {
+      if (this.deleteTilte == "鎾ら攢") {
+        this.deleteDialogVisible = false;
+        this.revokeData = [];
+      } else {
+        // this.axios
+        //   .post(
+        //     this.$api.insOrder.checkUpdate +
+        //       "?orderId=" +
+        //       this.orderId +
+        //       "&state=" +
+        //       0
+        //   )
+        //   .then((res) => {
+        //     if (res.code === 200) {
+        //       this.printLoading = false;
+        //       this.deleteDialogVisible = false;
+        //       this.refreshTable("page");
+        //       this.$message.success("鏇存柊鎴愬姛");
+        //     }
+        //   });
+        this.axios
+          .get(this.$api.insOrder.revocationCancel + "?orderId=" + this.orderId)
+          .then((res) => {
+            if (res.code === 200) {
+              this.printLoading = false;
+              this.deleteDialogVisible = false;
+              this.refreshTable();
+              this.$message.success("鏇存柊鎴愬姛");
+            }
+          });
+      }
+    },
+    // 涓嬪彂
+    handleIssued(row) {
+      this.issuedDialogVisible = true;
+      this.$axios
+        .post(this.$api.insOrder.selectOrderManDay, {
+          id: row.id,
+        })
+        .then((res) => {
+          this.distributeData.orderId = row.id;
+          this.distributeData.sampleId = row.sampleId;
+          this.distributeData.appointed = res.data;
+          this.distributeData.type = row.type;
+        });
+      this.$axios
+        .post(this.$api.insOrderPlan.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,
+              });
+            });
+          }
+        });
+    },
+    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;
+      this.$axios
+        .post(
+          this.$api.insOrder.upInsOrder,
+          {
+            orderId: this.distributeData.orderId,
+            sampleId: this.distributeData.sampleId,
+            appointed: this.distributeData.appointed,
+            userIdList: [this.distributeData.userId],
+            sonLaboratory: this.distributeData.sonLaboratory,
+          },
+          {
+            headers: {
+              "Content-Type": "application/json",
+            },
+          }
+        )
+        .then((res) => {
+          if (res.code === 201) {
+            this.upLoad = false;
+            return;
+          }
+          this.$message.success("淇敼鎴愬姛");
+          this.upLoad = false;
+          this.issuedDialogVisible = false;
+          this.refreshTable();
+        })
+        .catch((e) => {
+          this.$message.error("淇敼澶辫触");
+          this.upLoad = false;
+        });
+    },
+    submitForm() {
+      this.upLoad = true;
+      if (this.tabIndex == 1) {
+        this.axios
+          .put(
+            this.$api.insOrder.updateInspected + "?id=" + this.insOrderRow.id
+          )
+          .then((res) => {
+            if (res.code === 200) {
+              this.upLoad = false;
+              this.quashDialogVisible = false;
+              this.refreshTable();
+              this.$message.success("鏇存柊鎴愬姛");
+            }
+          });
+      } else {
+        this.axios
+          .put(this.$api.insOrder.updateStatus + "?id=" + this.insOrderRow.id)
+          .then((res) => {
+            if (res.code === 200) {
+              this.upLoad = false;
+              this.quashDialogVisible = false;
+              this.refreshTable();
+              this.$message.success("鏇存柊鎴愬姛");
+            }
+          });
+      }
+      let authorizedPerson =
+        this.formData.authorizedPerson.length > 0
+          ? this.formData.authorizedPerson.join(",")
+          : "";
+      delete this.formData.createTime;
+      delete this.formData.updateTime;
+      delete this.formData.createUser;
+      delete this.formData.updateUser;
+      this.formData.authorizedPerson = authorizedPerson;
+    },
+    // 涓嬪崟
+    playOrder(num) {
+      this.$router.push({
+        name: "addOrder",
+        params: {},
+      });
+      this.active = num;
+      this.examine = 0;
+      // this.refreshTable();
+    },
+    handleTab(m, i) {
+      this.tabIndex = i;
+      this.queryParams.state = m.value;
+      this.getList();
+    },
+    getUserMenu() {
+      this.$axios.get(this.$api.user.getUserMenu).then((res) => {
+        let data = [];
+        res.data.forEach((a) => {
+          data.push({
+            label: a.name,
+            value: a.id,
+          });
+        });
+        this.componentData.tagField.createUser.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.componentDataDataLook.tagField.insState.select = data;
+          this.componentDataDelete.tagField.insState.select = data;
+        });
+    },
+    selectEnumByCategoryForOrderType() {
+      this.$axios
+        .post(this.$api.enums.selectEnumByCategory, {
+          category: "妫�楠岀被鍒�",
+        })
+        .then((res) => {
+          this.componentData.tagField.orderType.select = res.data;
+        });
+    },
+    changeUser() {
+      if (this.sonLaboratoryList.length > 0) {
+        this.distributeData.sonLaboratory = this.sonLaboratoryList[0].value;
+      }
     },
   },
 };
@@ -1281,7 +2135,7 @@
 
 .search {
   background-color: #fff;
-  height: 80px;
+  height: 50px;
   display: flex;
   align-items: center;
   overflow: hidden;
@@ -1315,7 +2169,8 @@
 .tab {
   list-style-type: none;
   display: flex;
-  margin-bottom: 12px;
+  /* margin-bottom: 12px; */
+  padding-inline-start: 0px;
 }
 
 .tab li {
@@ -1343,10 +2198,12 @@
 .el-form-item {
   margin-bottom: 16px;
 }
-.box-card >>> .el-radio__inner {
+
+.box-card>>>.el-radio__inner {
   border-radius: 2px !important;
 }
-.box-card >>> .el-radio__input.is-checked .el-radio__inner::after {
+
+.box-card>>>.el-radio__input.is-checked .el-radio__inner::after {
   content: "";
   width: 8px;
   height: 3px;
@@ -1362,13 +2219,16 @@
   border-radius: 0px;
   background: none;
 }
->>> .el-radio__label {
+
+>>>.el-radio__label {
   color: #000 !important;
 }
-.el-dialog__body >>> .el-radio__label {
+
+.el-dialog__body>>>.el-radio__label {
   font-size: 8px;
 }
-.el-dialog__body >>> .el-radio__input.is-checked .el-radio__inner::after {
+
+.el-dialog__body>>>.el-radio__input.is-checked .el-radio__inner::after {
   content: "";
   width: 4px;
   height: 3px;
@@ -1384,31 +2244,40 @@
   border-radius: 0px;
   background: none;
 }
->>> .el-radio__input.is-disabled.is-checked .el-radio__inner {
+
+>>>.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 {
+
+.el-dialog__body>>>.el-radio__input.is-disabled.is-checked .el-radio__inner {
   background: transparent;
 }
-.el-dialog__body >>> .el-radio__inner {
+
+.el-dialog__body>>>.el-radio__inner {
   width: 8px !important;
   height: 8px !important;
 }
-.el-dialog__body >>> .el-radio__label {
+
+.el-dialog__body>>>.el-radio__label {
   padding-left: 2px !important;
 }
-.el-dialog__body >>> .el-card__body {
+
+.el-dialog__body>>>.el-card__body {
   padding: 0 !important;
 }
-.el-dialog__body >>> .el-card {
+
+.el-dialog__body>>>.el-card {
   border: none;
 }
-.el-dialog__body >>> .el-radio__input.is-disabled .el-radio__inner {
+
+.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 {
+
+.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 +2285,7 @@
   border: 1px solid #000;
   display: inline-block;
 }
+
 .ellipsis-multiline {
   display: -webkit-box;
   -webkit-line-clamp: 2;
@@ -1423,14 +2293,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