From f03cf23f3acbd5582a16c263aa6bf83b260ec906 Mon Sep 17 00:00:00 2001
From: liding <756868258@qq.com>
Date: 星期一, 28 九月 2026 09:53:19 +0800
Subject: [PATCH] feat(inspection): 接口

---
 src/views/business/inspectionTask/index.vue |  596 +++++++++++++++++++++++++++-------------------------------
 1 files changed, 277 insertions(+), 319 deletions(-)

diff --git a/src/views/business/inspectionTask/index.vue b/src/views/business/inspectionTask/index.vue
index b4cd338..68b91cf 100644
--- a/src/views/business/inspectionTask/index.vue
+++ b/src/views/business/inspectionTask/index.vue
@@ -1,56 +1,100 @@
 <template>
-  <div class="ins-order-plan-main">
+  <div class="app-container">
     <div style="height: 100%">
       <div class="search">
-        <div class="search_thing">
-          <div class="search_label">濮旀墭缂栧彿锛�</div>
-          <div class="search_input">
+        <el-form :model="queryParams" ref="queryParams" size="small" :inline="true">
+          <el-form-item label="濮旀墭缂栧彿" prop="entrustCode">
             <el-input v-model="queryParams.entrustCode" clearable placeholder="璇疯緭鍏�" size="small"
-              @keyup.enter.native="refreshTable()"></el-input>
-          </div>
-        </div>
-        <div class="search_thing">
-          <div class="search_label">妫�楠岀姸鎬侊細</div>
-          <div class="search_input">
+                      @keyup.enter.native="refreshTable()"></el-input>
+          </el-form-item>
+          <el-form-item label="妫�楠岀姸鎬�" prop="insState">
             <el-select v-model="queryParams.insState" size="small" style="width: 100%" @change="refreshTable()">
               <el-option v-for="(a, i) in dict.type.inspection_task_state" :key="i" :label="a.label"
-                :value="a.value"></el-option>
+                         :value="a.value"></el-option>
             </el-select>
+          </el-form-item>
+<!--          <el-form-item label="鐗╂枡灞炴��" prop="materialProp">-->
+<!--            <el-select clearable size="small" v-model="queryParams.materialProp" style="width: 100%">-->
+<!--              <el-option v-for="dict in dict.type.material_prop_type" :key="dict.value" :label="dict.label"-->
+<!--                         :value="dict.value">-->
+<!--              </el-option>-->
+<!--            </el-select>-->
+<!--          </el-form-item>-->
+          <el-form-item>
+            <el-button size="mini" type="primary" @click="refreshTable()">鏌ヨ</el-button>
+            <el-button size="mini" @click="refresh()">閲嶇疆</el-button>
+          </el-form-item>
+        </el-form>
+      </div>
+      <div class="center" v-loading="tableLoading">
+        <div class="center-options">
+          <div style="display: flex; align-items: center">
+            <span style="font-size: 14px">璇曢獙瀹�:</span>
+            <ul class="tab">
+              <li v-for="(m, i) in tabList" :key="i" :class="{ active: i == tabIndex }" @click="handleTab(m, i)">
+                {{ m.label.replace("璇曢獙瀹�", "") }}
+              </li>
+            </ul>
+            <div>
+              <el-checkbox v-model="alone" class="view-self-checkbox"
+                           @change="changeCheckBox"><span>鎴戠殑浠诲姟</span></el-checkbox>
+            </div>
+          </div>
+          <div class="center-title">
+            <span>鎬昏浠诲姟鏁伴噺:</span>
+            <span>{{ page.total }}</span>
           </div>
         </div>
-        <div class="search_thing" style="padding-left: 30px">
-          <el-button size="small" @click="refresh()">閲� 缃�</el-button>
-          <el-button size="small" type="primary" @click="refreshTable()">鏌� 璇�</el-button>
-        </div>
-      </div>
-      <div class="center">
-        <div class="center-options">
-          <el-row>
-            <el-col :span="21">
-              <div style="display: flex; align-items: center">
-                <span style="font-size: 14px">璇曢獙瀹ょ绫�:</span>
-                <ul class="tab">
-                  <li v-for="(m, i) in tabList" :key="i" :class="{ active: i == tabIndex }" @click="handleTab(m, i)">
-                    {{ m.label.replace("璇曢獙瀹�", "") }}
-                  </li>
-                </ul>
-                <div>
-                  <el-checkbox v-model="alone" class="view-self-checkbox"
-                    @change="changeCheckBox"><span>鎴戠殑浠诲姟</span></el-checkbox>
-                </div>
-              </div>
-            </el-col>
-            <el-col :span="3">
-              <div class="center-title">
-                <span>鎬昏浠诲姟鏁伴噺:</span>
-                <span>{{ page.total }}</span>
-              </div>
-            </el-col>
-          </el-row>
-        </div>
-        <lims-table :tableData="tableData" :column="column" :page="page" :tableLoading="tableLoading"
+        <lims-table :tableData="tableData" :column="column" :page="page"
           :rowClassName="rowClassName" :height="'calc(100vh - 300px)'" @pagination="pagination"
-          key="tableData0"></lims-table>
+          key="tableData0">
+          <div slot="action" slot-scope="scope">
+            <el-button type="text" size="small"
+                       :disabled="(scope.row.userName == null || scope.row.insState == 3 || scope.row.insState == 5) && checkPermi(['update:product:onPlan'])"
+                       @click="editInspection(scope.row)">淇敼妫�楠屽��</el-button>
+            <el-button type="text" size="small" :disabled="(
+                  scope.row.userName == null ||
+                  scope.row.insState == 3 ||
+                  scope.row.insState == 5 ||
+                  (scope.row.userName && !scope.row.userName.includes(nickName))
+                )"
+                       @click="handleInspection(scope.row)">妫�楠�</el-button>
+            <el-button type="text" size="small" :disabled="(
+                  scope.row.userName == null ||
+                  scope.row.insState == 5 ||
+                  scope.row.insState == 3 ||
+                  (scope.row.userName && !scope.row.userName.includes(nickName))
+                )"
+                       @click="handleConnect(scope.row)">浜ゆ帴</el-button>
+            <el-button type="text" size="small" @click="viewInspectInfo(scope.row)">鍘熷璁板綍</el-button>
+            <el-popover placement="bottom" trigger="hover" style="margin-left: 6px" :disabled="(scope.row.insState != 3 || scope.row.userName == null ||(scope.row.userName && !scope.row.userName.includes(nickName)))">
+              <template #reference>
+                <el-button link type="text" size="small" :disabled="(scope.row.insState != 3 || scope.row.userName == null ||
+                  (scope.row.userName && !scope.row.userName.includes(nickName)))">鏇村</el-button>
+              </template>
+              <div>
+                <el-button :disabled="(scope.row.insState != 3 || scope.row.userName == null ||
+                  (scope.row.userName && !scope.row.userName.includes(nickName)))" style="margin-left: 10px" type="text" size="small" @click="download(scope.row)">涓嬭浇鎶ュ憡</el-button>
+                <el-upload ref='upload'
+                           :action="javaApi + '/insReport/inReport'"
+                           :before-upload="beforeUpload"
+                           :data="{id: scope.row.insReportId}"
+                           :headers="uploadHeader" :on-error="onError"
+                           :on-success="handleSuccessUp"
+                           :show-file-list="false"
+                           style="display: inline;margin: 0 6px"
+                           accept='.jpg,.jpeg,.png,.gif,.doc,.docx,.xls,.xlsx,.ppt,.pptx,.pdf,.zip,.rar'>
+                  <el-button :disabled="(scope.row.insState != 3 || scope.row.userName == null ||
+                  (scope.row.userName && !scope.row.userName.includes(nickName)))" size="small" type="text">涓婁紶</el-button>
+                </el-upload>
+                <el-button :disabled="(scope.row.insState != 3 || scope.row.userName == null ||
+                  (scope.row.userName && !scope.row.userName.includes(nickName)))" type="text" size="small" @click="handleRestore(scope.row)">杩樺師</el-button>
+                <el-button :disabled="(scope.row.insState != 3 || scope.row.userName == null ||
+                  (scope.row.userName && !scope.row.userName.includes(nickName)))" type="text" size="small" @click="handleIssued(scope.row)">鏌ョ湅鎶ュ憡</el-button>
+              </div>
+            </el-popover>
+          </div>
+        </lims-table>
       </div>
     </div>
     <el-dialog :visible.sync="claimVisible" title="鎻愮ず" width="400px">
@@ -89,22 +133,6 @@
         <el-button @click="connectVisible = false">鍙� 娑�</el-button>
         <el-button :loading="loading" type="primary" @click="confirmConnect">纭� 瀹�</el-button>
       </span>
-    </el-dialog>
-    <el-dialog :visible.sync="dataDialogVisible" title="鏁版嵁鏌ョ湅" width="80%">
-      <div v-if="dataDialogVisible" style="height: 74vh; overflow-y: auto">
-        <div>
-          <el-form :model="entity" :inline="true">
-            <el-form-item label="妫�楠岄」" prop="outputWorkTime">
-              <el-input v-model="entity.inspectionItem" clearable size="small"></el-input>
-            </el-form-item>
-            <el-form-item>
-              <el-button size="small" type="primary" @click="getLookList">鏌ヨ</el-button>
-            </el-form-item>
-          </el-form>
-        </div>
-        <lims-table :tableData="lookTableData" :column="lookColumn" :page="lookPage" :tableLoading="lookTableLoading"
-          :height="'60vh'" @pagination="lookPagination" key="tableData1"></lims-table>
-      </div>
     </el-dialog>
     <el-dialog :visible.sync="bindDialogVisible" title="妫�楠岄」缁戝畾" width="600px">
       <div slot="title" style="
@@ -161,18 +189,34 @@
     <viewManHourDia ref="viewManHourDia"></viewManHourDia>
     <!--涓嶅悎鏍煎娴嬫煡鐪嬪脊妗�-->
     <un-pass-retest-result v-if="retestVisible" :retestInfo="retestInfo" :retestVisible="retestVisible" @closeRetestLook="closeRetestLook"></un-pass-retest-result>
+    <!--鎶ュ憡鏌ョ湅-->
+    <el-dialog title="鎶ュ憡鏌ョ湅" :visible.sync="issuedVisible" width="80vw" :modal-append-to-body="false"
+               :fullscreen="fullscreen">
+      <div class="full-screen">
+        <i class="el-icon-full-screen" style="cursor: pointer;font-size: 18px" @click="fullscreen = true;"
+           v-if="!fullscreen"></i>
+        <img src="@/assets/images/no-full.svg" alt="" v-else style="cursor: pointer;" @click="fullscreen = false;">
+      </div>
+      <div style="height: 80vh;" v-if="issuedVisible">
+        <onlyoffice ref="onlyoffice" :options="option" style="width: 100%;height: 100%;" />
+      </div>
+    </el-dialog>
+    <el-dialog title="鏌ョ湅闄勪欢" :visible.sync="lookDialogVisible" width="800px" top="5vh" fullscreen>
+      <filePreview v-if="lookDialogVisible" :fileUrl="javaApi + '/word/' + currentInfo.tempUrlPdf" :currentFile="{}"
+                   style="max-height: 90vh;overflow-y: auto;" />
+    </el-dialog>
   </div>
 </template>
 
 <script>
 import { getYearAndMonthAndDays } from "@/utils/date";
+
 import EditInspectionItem from "./components/EditInspectionItem.vue";
 import limsTable from "@/components/Table/lims-table.vue";
 import viewManHourDia from "./components/viewManHourDia.vue"
 import UnPassRetestResult from "@/components/rawMaterialInspection/unPassRetestResult.vue"
 import {
   claimInsOrderPlan,
-  upPlanUser2,
   upPlanUser,
   selectUserCondition,
   getBindingProductByProductId,
@@ -180,24 +224,32 @@
   bindingProductTreeByProductId,
   delProductTreeByProductId,
   selectInsOrderPlanList,
-  selectSampleAndProductByOrderId,
 } from "@/api/business/inspectionTask.js";
+import { treeDevice } from "@/api/cnas/resourceDemand/device.js";
 import { mapGetters } from "vuex";
 import {getRetestResult} from "@/api/business/rawMaterialOrder";
+import {upReportUrl} from "@/api/business/insReport";
+import onlyoffice from "@/components/Onlyoffice/onlyoffice.vue";
+import filePreview from "@/components/Preview/filePreview.vue";
 export default {
   name: 'InspectionTask',
   components: {
+    filePreview, onlyoffice,
     EditInspectionItem,
     limsTable,
     viewManHourDia,
     UnPassRetestResult
   },
-  dicts: ["urgency_level", "inspection_task_state"],
+  dicts: ["urgency_level", "inspection_task_state","material_prop_type"],
   computed: {
     ...mapGetters(["nickName", "userId"]),
   },
   data() {
     return {
+      issuedVisible: false,
+      fullscreen: false,
+      lookDialogVisible: false,
+      option: null,
       InspectionKey: 1,
       bindDialogVisible: false,
       bindAddDialogVisible: false,
@@ -215,16 +267,16 @@
       },
       claimVisible: false,
       tabList: [
-        { label: "濮旀墭", value: 0 },
-        { label: "鍘熸潗鏂�", value: 1 },
+        { label: "濮旀墭", value: -1 },
+        // { label: "鍘熸潗鏂�", value: 1 },
+        // { label: "澶栬喘", value: 0 },
       ],
       active: 1,
       tabIndex: 0,
-      dataDialogVisible: false,
       planTotal: 0,
       insStateList: [],
       state: 0, // 0:鍙拌处椤碉紝1锛氭楠岄〉闈�,2妫�楠岄〉闈�(澶嶆牳)锛岄粯璁や负0,3鏁版嵁鏌ョ湅
-      typeSource: null, // 0:鎴愬搧涓嬪崟锛�1锛氬師鏉愭枡涓嬪崟
+      typeSource: -1, // 0:澶栬喘鎴愬搧涓嬪崟锛�1锛氬師鏉愭枡涓嬪崟
       sonLaboratory: null, // 0:濮旀墭锛�1锛氬師鏉愭枡
       activeFace: 0, // 1锛氫笅鍗曪紝2锛氭煡鐪嬶紝3锛氬鏍革紝榛樿涓�0
       currentId: null,
@@ -249,12 +301,29 @@
       retestInfo: [],
       isCopper: null,
       bindCurrentInfo: {},
-      lookInfo: {},
       orderTypeList: [
         {
           value: "Customer-ordered test",
-          label: "濮旀墭璇曢獙",
+          label: "濮旀墭妫�楠�",
           type: "success",
+          effect: "plain",
+        },
+        {
+          value: "Commissioned testing",
+          label: "濮旀墭妫�娴�",
+          type: "success",
+          effect: "plain",
+        },
+        {
+          value: "Inter-laboratory comparison",
+          label: "瀹為獙瀹ら棿姣斿",
+          type: "warning",
+          effect: "plain",
+        },
+        {
+          value: "Proficiency testing",
+          label: "鑳藉姏楠岃瘉",
+          type: "primary",
           effect: "plain",
         },
         {
@@ -295,36 +364,37 @@
           dataType: "tag",
           formatData: (params) => {
             if (params == 0) {
-              return "鎴愬搧涓嬪崟";
-            } else {
+              return "澶栬喘涓嬪崟";
+            } else if(params==1) {
               return "鍘熸潗鏂欎笅鍗�";
+            }else{
+              return "濮旀墭涓嬪崟";
             }
           },
         },
-        { label: "鏍峰搧鍨嬪彿", prop: "sampleModel", width: "120px" },
-        {
-          label: "绱ф�ョ▼搴�",
-          prop: "type",
-          dataType: "tag",
-          formatData: (params) => {
-            if (params == 0) {
-              return '鏅��'
-            } else if (params == 1) {
-              return '浼樺厛'
-            } else {
-              return '绱ф��'
-            }
-          },
-          formatType: (params) => {
-            if (params == 0) {
-              return 'success'
-            } else if (params == 1) {
-              return 'warning'
-            } else {
-              return 'danger'
-            }
-          }
-        },
+        // {
+        //   label: "绱ф�ョ▼搴�",
+        //   prop: "type",
+        //   dataType: "tag",
+        //   formatData: (params) => {
+        //     if (params == 0) {
+        //       return '鏅��'
+        //     } else if (params == 1) {
+        //       return '浼樺厛'
+        //     } else {
+        //       return '绱ф��'
+        //     }
+        //   },
+        //   formatType: (params) => {
+        //     if (params == 0) {
+        //       return 'success'
+        //     } else if (params == 1) {
+        //       return 'warning'
+        //     } else {
+        //       return 'danger'
+        //     }
+        //   }
+        // },
         {
           label: "妫�楠岀被鍨�",
           prop: "orderType",
@@ -363,76 +433,12 @@
         { label: "妫�楠屽紑濮嬫椂闂�", prop: "insTime", width: "140px" },
         { label: "鐞嗙敱", prop: "verifyTell", width: "140px" },
         {
-          dataType: "action",
           fixed: "right",
-          label: "鎿嶄綔",
-          operation: [
-            {
-              name: "鏁版嵁鏌ョ湅",
-              type: "text",
-              clickFun: (row) => {
-                this.handleDataLook(row);
-              },
-            },
-            {
-              name: "淇敼妫�楠屽��",
-              type: "text",
-              clickFun: (row) => {
-                this.editInspection(row);
-              },
-              disabled: (row) => {
-                return (row.userName == null || row.insState == 3 || row.insState == 5) && this.checkPermi(['update:product:onPlan'])
-              },
-            },
-            // {
-            //   name: "鏌ョ湅宸ユ椂",
-            //   type: "text",
-            //   clickFun: (row) => {
-            //     this.viewManHour(row);
-            //   },
-            //   showHide: (row) => {
-            //     return this.checkPermi(['get:working:hours:byOrder'])
-            //   },
-            // },
-            {
-              name: "妫�楠�",
-              type: "text",
-              clickFun: (row) => {
-                this.handleInspection(row);
-              },
-              disabled: (row) => {
-                return (
-                  row.userName == null ||
-                  row.insState == 3 ||
-                  row.insState == 5 ||
-                  (row.userName && !row.userName.includes(this.nickName))
-                );
-              },
-            },
-            {
-              name: "浜ゆ帴",
-              type: "text",
-              clickFun: (row) => {
-                this.handleConnect(row);
-              },
-              disabled: (row) => {
-                return (
-                  row.userName == null ||
-                  row.insState == 5 ||
-                  row.insState == 3 ||
-                  (row.userName && !row.userName.includes(this.nickName))
-                );
-              },
-            },
-            {
-              name: "鍘熷璁板綍",
-              type: "text",
-              clickFun: (row) => {
-                this.viewInspectInfo(row);
-              },
-            },
-          ],
-        },
+          dataType: "slot",
+          slot: "action",
+          width: '340px',
+          label: "鎿嶄綔"
+        }
       ],
       page: {
         total: 0,
@@ -458,94 +464,15 @@
           type: "",
         },
       ],
-      // 鏁版嵁鏌ョ湅鐩稿叧瀛楁---寮�濮�
-      entity: {
-        inspectionItem: "",
-      },
-      lookTableData: [],
-      lookColumn: [
-        {
-          label: "鏍峰搧缂栧彿",
-          prop: "sampleCode",
-          width: "140px",
-          mergeCol: true, //鍚堝苟鍒�
-        },
-        { label: "鏍峰搧鍚嶇О", prop: "sample", width: "140px", mergeCol: true },
-        { label: "妫�楠岄」鍒嗙被", prop: "inspectionItemClass" },
-        { label: "妫�楠岄」", prop: "inspectionItem", width: "140px" },
-        { label: "妫�楠屽瓙椤�", prop: "inspectionItemSubclass" },
-        { label: "鍗曚綅", prop: "unit" },
-        { label: "鏍峰搧鍨嬪彿", prop: "model", mergeCol: true },
-        { label: "鏉′欢", prop: "radius" },
-        { label: "鐢电紗鏍囪瘑", prop: "cableTag" },
-        { label: "璇曢獙瑕佹眰", prop: "tell" },
-        { label: "妫�楠岀粨鏋�", prop: "lastValue" },
-        {
-          label: "缁撴灉鍒ゅ畾",
-          prop: "insResult",
-          dataType: "tag",
-          formatData: (params) => {
-            let obj = this.insResultList.find((m) => m.value == params)
-            if (obj) {
-              return this.insResultList.find((m) => m.value == params).label;
-            } else {
-              return null
-            }
-          },
-          formatType: (params) => {
-            let obj = this.insResultList.find((m) => m.value == params)
-            if (obj) {
-              return this.insResultList.find((m) => m.value == params).type;
-            } else {
-              return null
-            }
-          },
-        },
-        {
-          dataType: "action",
-          fixed: "right",
-          label: "鎿嶄綔",
-          operation: [
-            {
-              name: "涓嶅悎鏍煎娴嬫煡鐪�",
-              type: "text",
-              clickFun: (row) => {
-                this.getRetestResultInfo(row);
-              },
-              disabled: (row) => {
-                return row.insResult!=0
-              },
-            },
-            {
-              name: "妫�楠岄」缁戝畾",
-              type: "text",
-              clickFun: (row) => {
-                this.getBinding(row);
-              },
-              disabled: (row) => {
-                return (
-                  this.lookInfo.userName == null ||
-                  this.lookInfo.insState == 3 ||
-                  this.lookInfo.insState == 5
-                );
-              },
-            },
-          ],
-        },
-      ],
-      lookPage: {
-        total: 0,
-        size: 20,
-        current: 0,
-      },
-      lookTableLoading: false,
-      // 鏁版嵁鏌ョ湅鐩稿叧瀛楁---缁撴潫
       retestVisible: false,
+      upIndex: 0,
+      tabLabel: ''
     };
   },
   mounted() {
     this.getAuthorizedPerson();
     this.queryParams.userId = this.userId;
+    this.queryParams.typeSource = this.typeSource
     this.currentTime = getYearAndMonthAndDays();
     this.getDicts("urgency_level").then((response) => {
       this.urgencyLevel = this.dictToValue(response.data);
@@ -557,7 +484,6 @@
   },
   activated() {
     this.getAuthorizedPerson();
-    this.queryParams.userId = this.userId;
     this.currentTime = getYearAndMonthAndDays();
     this.getDicts("urgency_level").then((response) => {
       this.urgencyLevel = this.dictToValue(response.data);
@@ -565,6 +491,7 @@
     this.getDicts("inspection_task_state").then((response) => {
       this.inspectionTaskState = this.dictToValue(response.data);
     });
+    this.queryParams.typeSource = this.typeSource
     this.refreshTable();
   },
   methods: {
@@ -589,28 +516,6 @@
       this.page.size = limit;
       this.getList();
     },
-    getLookList() {
-      this.lookTableLoading = true;
-      let param = { id: this.lookInfo.id, ...this.lookPage, inspectionItem: this.entity.inspectionItem };
-      delete param.total;
-      selectSampleAndProductByOrderId({ ...param })
-        .then((res) => {
-          this.lookTableLoading = false;
-          if (res.code === 200) {
-            this.lookTableData = res.data.records;
-            this.lookPage.total = res.data.total;
-            this.dataDialogVisible = true;
-          }
-        })
-        .catch((err) => {
-          this.lookTableLoading = false;
-        });
-    },
-    lookPagination({ page, limit }) {
-      this.lookPage.current = page;
-      this.lookPage.size = limit;
-      this.getLookList();
-    },
     // 淇敼妫�楠屽��
     editInspection(row) {
       this.$refs.editInspectionItem.showDialog(row.id);
@@ -618,11 +523,6 @@
     // 鏌ョ湅宸ユ椂
     viewManHour(row) {
       this.$refs.viewManHourDia.showDialog(row.id, row.insState);
-    },
-    // 鏁版嵁鏌ョ湅
-    handleDataLook(row) {
-      this.lookInfo = row;
-      this.getLookList();
     },
     changeCheckBox(val) {
       this.queryParams.userId = val ? 0 : null;
@@ -636,8 +536,60 @@
     },
     refreshTable(e) {
       this.page.current = 1;
-      this.queryParams.typeSource = this.tabIndex;
+      this.queryParams.tabLabel = this.tabLabel;
+      this.queryParams.typeSource = this.typeSource;
       this.getList();
+    },
+    // 涓嬭浇鎶ュ憡
+    download(row) {
+      let url = (row.urlS===null||row.urlS==='')?row.url:row.urlS
+      const link = document.createElement('a');
+      link.href = this.javaApi + url;
+      link.target = '_blank';
+      document.body.appendChild(link);
+      link.click();
+    },
+    // 杩樺師鎿嶄綔
+    handleRestore(row) {
+      this.$confirm('鏄惁杩樺師褰撳墠鎶ュ憡?', "璀﹀憡", {
+        confirmButtonText: "纭畾",
+        cancelButtonText: "鍙栨秷",
+        type: "warning"
+      }).then(() => {
+        upReportUrl({ id: row.insReportId }).then(res => {
+          if (res.code === 200) {
+            this.$message.success('杩樺師鎴愬姛')
+            this.refreshTable()
+          }
+        })
+      }).catch(() => { })
+
+    },
+    // 鏌ョ湅鎶ュ憡
+    handleIssued(row) {
+      console.log('================')
+      // todo: 鏌ョ湅鎶ュ憡缁勪欢
+      this.currentInfo = row;
+      let fileName = row.url
+      let fileType = "docx"
+      if (row.tempUrlPdf != null || row.tempUrlPdf === '') {
+        fileName = row.tempUrlPdf
+        fileType = "pdf"
+      }
+      fileName = fileName.replace('/word/','')
+      const userName = this.nickName
+      this.option = {
+        url: this.javaApi + "/word/" + fileName,
+        isEdit: false,
+        fileType: fileType,
+        title: fileName,
+        lang: 'zh-CN',
+        isPrint: false,
+        user_id: 1,
+        user_name: userName,
+        editUrl: this.javaApi + "/insReport/onlyOffice/save?fileName=" + fileName
+      }
+      this.issuedVisible = true;
     },
     // 鏌ョ湅浜т笟閾句俊鎭�
     openInfoDialog(row) {
@@ -672,6 +624,7 @@
     },
     handleTab(m, i) {
       this.tabIndex = i;
+      this.typeSource =m.value;
       this.queryParams.sonLaboratory = "";
       this.refreshTable();
     },
@@ -686,7 +639,7 @@
         case 0:
           // 鍘熸潗鏂�
           this.$router.push({
-            path: "/materialOrder/customsInspection", query: {
+            path: "/materialOrder/customsInspectionView", query: {
               customsInspection: row,
               active: this.activeFace,
               currentId: this.currentId,
@@ -697,7 +650,7 @@
         case null:
           // 鎴愬搧
           this.$router.push({
-            path: "/productOrder/add", query: {
+            path: "/productOrder/addView", query: {
               examine: this.examine,
               active: this.activeFace,
               currentId: this.currentId
@@ -707,7 +660,7 @@
         case 1:
           // 閾滄潗
           this.$router.push({
-            path: "/materialOrder/copperOrder", query: {
+            path: "/materialOrder/CopperView", query: {
               active: this.activeFace,
               currentId: this.currentId
             }
@@ -742,7 +695,7 @@
           sonLaboratory: this.sonLaboratory,
           state: this.state,
           typeSource: this.typeSource,
-          orderId: this.orderId,
+          orderId: this.orderId
         },
       });
     },
@@ -774,19 +727,29 @@
     },
     handleConnect(row) {
       this.orderId = row.id;
-      this.connect = {};
+      this.connect = {
+        connectPerson: "",
+        sonLaboratory: "",
+      };
+      this.sonLaboratoryList = [];
       this.connectVisible = true;
-      upPlanUser2({ orderId: this.orderId }).then((res) => {
-        if (res.code === 200 && res.data.length > 0) {
-          this.sonLaboratoryList = [];
-          res.data.forEach((m) => {
-            this.sonLaboratoryList.push({
-              value: m,
-              label: m,
-            });
-          });
+      treeDevice().then((res) => {
+        if (res.code === 200) {
+          const laboratoryNames = [
+            ...new Set((res.data || []).map((item) => item && item.label).filter(Boolean)),
+          ];
+          this.sonLaboratoryList = laboratoryNames.map((laboratoryName) => ({
+            value: laboratoryName,
+            label: laboratoryName,
+          }));
+          if (this.sonLaboratoryList.length === 0) {
+            this.$message.warning("鏆傛棤鍦烘墍鏁版嵁");
+            return;
+          }
           this.connect.sonLaboratory = this.sonLaboratoryList[0].value;
         }
+      }).catch(() => {
+        this.$message.error("鍦烘墍鏁版嵁鍔犺浇澶辫触");
       });
     },
     confirmConnect() {
@@ -913,18 +876,34 @@
         });
       });
     },
+    beforeUpload (file) {
+      if (file.size > 1024 * 1024 * 10) {
+        this.$message.error('涓婁紶鏂囦欢涓嶈秴杩�10M');
+        this.$refs.upload.clearFiles()
+        return false;
+      } else {
+        return true;
+      }
+    },
+    onError(error, file, fileList, index) {
+      this.$message.error('鏂囦欢涓婁紶澶辫触锛岃閲嶈瘯');
+    },
+    onExceed() {
+      this.$message.warning("瓒呭嚭鏂囦欢涓暟");
+    },
+    handleSuccessUp(response) {
+      if (response.code == 200) {
+        this.$refs.upload.clearFiles()
+        this.$message.success("涓婁紶鎴愬姛");
+        this.refreshTable()
+      } else {
+        this.$message.error(response.message);
+      }
+    },
   },
 };
 </script>
 <style scoped>
-.search {
-  background-color: #fff;
-  height: 40px;
-  display: flex;
-  align-items: center;
-  margin-top: 20px;
-}
-
 .search_thing {
   display: flex;
   align-items: center;
@@ -939,20 +918,6 @@
 
 .search_input {
   width: calc(100% - 120px);
-}
-
-.ins-order-plan-main .search {
-  width: 100%;
-  height: 40px;
-  background-color: #fff;
-  border-radius: 3px;
-}
-
-.ins-order-plan-main .center {
-  background-color: #fff;
-  border-radius: 3px;
-  padding: 20px;
-  padding-top: 0px;
 }
 
 .tab {
@@ -982,12 +947,10 @@
   border-color: #3a7bfa;
   color: #3a7bfa;
 }
-
-.center .center-options .center-title {
-  width: 100%;
+.center-options {
   display: flex;
   align-items: center;
-  justify-content: right;
+  justify-content: space-between;
 }
 
 .center .center-options .center-title span:last-child {
@@ -998,10 +961,5 @@
 
 .view-self-checkbox {
   margin-left: 50px;
-}
-</style>
-<style>
-.ins-order-plan-main .el-form-item__label {
-  color: #000;
 }
 </style>

--
Gitblit v1.9.3