From 4f94a66bc8ad9a57295f161de9195d5528b1d181 Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期二, 08 四月 2025 11:55:16 +0800
Subject: [PATCH] 基础数据维护+原辅材下单修改

---
 src/views/business/inspectionTask/index.vue | 1285 +++++++++++++++++++++++----------------------------------
 1 files changed, 526 insertions(+), 759 deletions(-)

diff --git a/src/views/business/inspectionTask/index.vue b/src/views/business/inspectionTask/index.vue
index 127d5bb..aa138cb 100644
--- a/src/views/business/inspectionTask/index.vue
+++ b/src/views/business/inspectionTask/index.vue
@@ -1,198 +1,98 @@
-<style scoped>
-.search {
-  background-color: #fff;
-  height: 40px;
-  display: flex;
-  align-items: center;
-  margin-top: 20px;
-}
-
-.search_thing {
-  display: flex;
-  align-items: center;
-  height: 50px;
-}
-
-.search_label {
-  width: 100px;
-  font-size: 14px;
-  text-align: right;
-}
-
-.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 {
-  list-style-type: none;
-  display: flex;
-  padding-left: 6px;
-}
-
-.tab li {
-  line-height: 24px;
-  padding: 4px 10px;
-  font-size: 14px;
-  color: #333333;
-  border: 1px solid #eeeeee;
-  cursor: pointer;
-}
-
-.tab li:nth-child(1) {
-  border-radius: 8px 0 0 8px;
-}
-
-.tab li:nth-last-child(1) {
-  border-radius: 0 8px 8px 0;
-}
-
-.tab li.active {
-  border-color: #3a7bfa;
-  color: #3a7bfa;
-}
-
-.center .center-options .center-title {
-  width: 100%;
-  display: flex;
-  align-items: center;
-  justify-content: right;
-}
-
-.center .center-options .center-title span:last-child {
-  color: #3a7bfa;
-  font-size: 23px;
-  font-weight: 400;
-}
-
-.view-self-checkbox {
-  margin-left: 50px;
-}
-</style>
-<style>
-.ins-order-plan-main .el-form-item__label {
-  color: #000;
-}
-</style>
 <template>
-  <div class="ins-order-plan-main">
-    <div v-show="activeFace == 0 && state == 0" style="height: 100%">
+  <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-input
-              v-model="queryParams.entrustCode"
-              clearable
-              placeholder="璇疯緭鍏�"
-              size="small"
-              @keyup.enter.native="refreshTable()"
-            ></el-input>
-          </div>
-        </div>
-        <div class="search_thing">
-          <div class="search_label">妫�楠岀姸鎬侊細</div>
-          <div class="search_input">
-            <el-select
-              v-model="queryParams.insState"
-              size="small"
-              style="width: 100%"
-              @change="refreshTable()"
-            >
-              <el-option
-                v-for="(a, i) in dict.type.inspection_task_state"
-                :key="i"
-                :label="a.label"
-                :value="a.value"
-              ></el-option>
+        <el-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>
+          </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>
             </el-select>
-          </div>
-        </div>
-        <div class="search_thing" style="padding-left: 30px">
-          <el-button size="small" @click="refresh()">閲� 缃�</el-button>
-          <el-button size="small" type="primary" @click="refreshTable()"
-            >鏌� 璇�</el-button
-          >
-        </div>
+          </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">
         <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 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>
-        <!-- <ValueTable
-          :key="upIndex"
-          ref="insOrderPlan"
-          :componentData="componentData"
-          :isColumnWidth="true"
-          :tableRowClassName="changeRowClass"
-          :upUrl="$api.user.updateUser"
-          :url="$api.insOrderPlan.selectInsOrderPlanList"
-          class="value-table"
-          @handleInspection="handleInspection"
-        /> -->
-        <lims-table
-          :tableData="tableData"
-          :column="column"
-          :page="page"
-          :tableLoading="tableLoading"
-          :height="'calc(100vh - 290px)'"
-          @pagination="pagination"
-        ></lims-table>
+        <lims-table :tableData="tableData" :column="column" :page="page" :tableLoading="tableLoading"
+          :rowClassName="rowClassName" :height="'calc(100vh - 300px)'" @pagination="pagination" key="tableData0">
+          <div slot="action" slot-scope="scope">
+            <el-button size="small" type="text" @click="handleDataLook(scope.row)">鏁版嵁鏌ョ湅</el-button>
+            <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">
+              <template #reference>
+                <el-button link type="text" size="small">鏇村</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">
       鏄惁璁ら濮旀墭缂栧彿<span style="color: #33c130">{{
         sampleUserForm.entrustCode
-      }}</span
-      >鐨勪换鍔�
+      }}</span>鐨勪换鍔�
       <span slot="footer" class="dialog-footer">
         <el-button @click="claimVisible = false">鍙� 娑�</el-button>
-        <el-button :loading="loading" type="primary" @click="confirmClaim"
-          >纭� 瀹�</el-button
-        >
+        <el-button :loading="loading" type="primary" @click="confirmClaim">纭� 瀹�</el-button>
       </span>
     </el-dialog>
     <el-dialog :visible.sync="connectVisible" title="妫�楠屼氦鎺�" width="400px">
@@ -201,18 +101,8 @@
           <span class="required-span">* </span>浜ゆ帴浜哄憳锛�
         </div>
         <div class="search_input">
-          <el-select
-            v-model="connect.connectPerson"
-            filterable
-            placeholder="璇烽�夋嫨"
-            style="width: 100%"
-          >
-            <el-option
-              v-for="item in personList"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value"
-            >
+          <el-select v-model="connect.connectPerson" filterable placeholder="璇烽�夋嫨" style="width: 100%">
+            <el-option v-for="item in personList" :key="item.value" :label="item.label" :value="item.value">
             </el-option>
           </el-select>
         </div>
@@ -222,102 +112,47 @@
           <span class="required-span">* </span>璇曢獙瀹わ細
         </div>
         <div class="search_input">
-          <el-select
-            v-model="connect.sonLaboratory"
-            filterable
-            placeholder="璇烽�夋嫨"
-            style="width: 100%"
-          >
-            <el-option
-              v-for="item in sonLaboratoryList"
-              :key="item.value"
-              :label="item.label"
-              :value="item.value"
-            >
+          <el-select v-model="connect.sonLaboratory" filterable placeholder="璇烽�夋嫨" style="width: 100%">
+            <el-option v-for="item in sonLaboratoryList" :key="item.value" :label="item.label" :value="item.value">
             </el-option>
           </el-select>
         </div>
       </div>
       <span slot="footer" class="dialog-footer">
         <el-button @click="connectVisible = false">鍙� 娑�</el-button>
-        <el-button :loading="loading" type="primary" @click="confirmConnect"
-          >纭� 瀹�</el-button
-        >
+        <el-button :loading="loading" type="primary" @click="confirmConnect">纭� 瀹�</el-button>
       </span>
     </el-dialog>
-    <div
-      v-if="activeFace > 0 && isCopper == null"
-      style="width: 100%; height: 100%"
-    >
-      <!-- <Add :active="activeFace" :currentId="currentId" :examine="examine" /> -->
-    </div>
-    <div
-      v-if="activeFace > 0 && isCopper == 0"
-      style="width: 100%; height: 100%"
-    >
-      <!-- <CustomsInspection
-        :active="activeFace"
-        :currentId="currentId"
-        :customsInspection="customsInspection"
-        :isReport="isReport"
-      /> -->
-    </div>
-    <div
-      v-if="activeFace > 0 && isCopper == 1"
-      style="width: 100%; height: 100%"
-    >
-      <!-- <CopperOrder :active="activeFace" :currentId="currentId"></CopperOrder> -->
-    </div>
-    <!--<Inspection
-      v-if="state > 0"
-      :key="InspectionKey"
-      :inspectorList="inspectorList"
-      :orderId="orderId"
-      :sonLaboratory="sonLaboratory"
-      :state="state"
-      :typeSource="typeSource"
-      @goback="goback"
-      @refreshView="refreshView"
-    />-->
     <el-dialog :visible.sync="dataDialogVisible" title="鏁版嵁鏌ョ湅" width="80%">
-      <div v-if="dataDialogVisible" style="height: 70vh; overflow-y: auto">
-        <ValueTable
-          ref="ValueTableDataLook"
-          :componentData="componentDataDataLook"
-          :rowKey="'insProductId'"
-          :url="$api.insOrder.selectSampleAndProductByOrderId"
-        />
+      <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="
+    <el-dialog :visible.sync="bindDialogVisible" title="妫�楠岄」缁戝畾" width="600px">
+      <div slot="title" style="
           display: flex;
           align-items: center;
           justify-content: space-between;
-        "
-      >
+        ">
         <span>妫�楠岄」缁戝畾</span>
-        <el-button
-          style="float: right; margin-left: 360px"
-          size="small"
-          @click="openBindAdd"
-          type="primary"
-        >
+        <el-button style="float: right; margin-left: 360px" size="small" @click="openBindAdd" type="primary">
           鏂板
         </el-button>
       </div>
-      <el-table :data="bindTableData" style="width: 100%" height="70vh">
-        <el-table-column
-          prop="inspectionItemClass"
-          label="妫�楠岄」鍒嗙被"
-          width="150"
-        >
+      <el-table :data="bindTableData" style="width: 100%" height="70vh" v-loading="bindTableDataLoading"
+        :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border>
+        <el-table-column prop="inspectionItemClass" label="妫�楠岄」鍒嗙被" width="150">
         </el-table-column>
         <el-table-column prop="inspectionItem" label="妫�楠岄」" width="150">
         </el-table-column>
@@ -325,30 +160,17 @@
         </el-table-column>
         <el-table-column label="鎿嶄綔">
           <template slot-scope="scope">
-            <el-button size="mini" type="text" @click="handleDelete(scope.row)"
-              >鍒犻櫎</el-button
-            >
+            <el-button size="mini" type="text" @click="handleDelete(scope.row)">鍒犻櫎</el-button>
           </template>
         </el-table-column>
       </el-table>
     </el-dialog>
-    <el-dialog
-      :visible.sync="bindAddDialogVisible"
-      title="閫夋嫨缁戝畾"
-      width="600px"
-    >
-      <el-table
-        :data="bindAddTableData"
-        style="width: 100%"
-        height="60vh"
-        @selection-change="handleBindAddSelectionChange"
-      >
+    <el-dialog :visible.sync="bindAddDialogVisible" title="閫夋嫨缁戝畾" width="600px">
+      <el-table :data="bindAddTableData" style="width: 100%" height="60vh"
+        :header-cell-style="{ background: '#f8f8f9', color: '#515a6e' }" border
+        @selection-change="handleBindAddSelectionChange">
         <el-table-column type="selection" width="55"> </el-table-column>
-        <el-table-column
-          prop="inspectionItemClass"
-          label="妫�楠岄」鍒嗙被"
-          width="150"
-        >
+        <el-table-column prop="inspectionItemClass" label="妫�楠岄」鍒嗙被" width="150">
         </el-table-column>
         <el-table-column prop="inspectionItem" label="妫�楠岄」" width="150">
         </el-table-column>
@@ -357,40 +179,49 @@
       </el-table>
       <span slot="footer" class="dialog-footer">
         <el-button @click="bindAddDialogVisible = false">鍙� 娑�</el-button>
-        <el-button :loading="loading" type="primary" @click="bindAdd"
-          >缁� 瀹�</el-button
-        >
+        <el-button :loading="loading" type="primary" @click="bindAdd">缁� 瀹�</el-button>
       </span>
     </el-dialog>
-    <!-- <un-pass-retest-result
-      v-if="retestVisible"
-      :retestInfo="retestInfo"
-      :retestVisible="retestVisible"
-      @closeRetestLook="closeRetestLook"
-    ></un-pass-retest-result> -->
     <!--浜т笟閾句俊鎭煡鐪�-->
     <!-- <ShowInfo
       v-if="showInfoDialog"
       ref="showInfoDialog"
       :showInfoDialog="showInfoDialog"
     ></ShowInfo> -->
+    <!--淇敼妫�楠屽�煎脊妗�-->
     <edit-inspection-item ref="editInspectionItem"></edit-inspection-item>
+    <!--鏌ョ湅宸ユ椂寮规-->
+    <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 ValueTable from "@/components/Table/value-table.vue";
-// import Inspection from "../do/b1-inspect-order-plan/Inspection.vue";
-// import CustomsInspection from "../do/b1-material-ins-order/customs-inspection.vue";
 import { getYearAndMonthAndDays } from "@/utils/date";
-// import Add from "../do/b1-ins-order/add.vue";
-// import ShowInfo from "../do/b1-material-ins-order/showInfo.vue";
-// import CopperOrder from "../do/b1-material-ins-order/copper-order.vue";
-// import UnPassRetestResult from "../do/b1-material-ins-order/unPassRetestResult.vue";
+
 import EditInspectionItem from "./components/EditInspectionItem.vue";
 import limsTable from "@/components/Table/lims-table.vue";
+import viewManHourDia from "./components/viewManHourDia.vue"
+import UnPassRetestResult from "@/components/rawMaterialInspection/unPassRetestResult.vue"
 import {
-  getRetestResult,
   claimInsOrderPlan,
   upPlanUser2,
   upPlanUser,
@@ -400,29 +231,36 @@
   bindingProductTreeByProductId,
   delProductTreeByProductId,
   selectInsOrderPlanList,
+  selectSampleAndProductByOrderId,
 } from "@/api/business/inspectionTask.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,
-    // CopperOrder,
-    // ShowInfo,
-    ValueTable,
     limsTable,
-    // Inspection,
-    // Add,
-    // CustomsInspection,
-    // UnPassRetestResult
+    viewManHourDia,
+    UnPassRetestResult
   },
   dicts: ["urgency_level", "inspection_task_state"],
   computed: {
-    ...mapGetters(["name", "userId"]),
+    ...mapGetters(["nickName", "userId"]),
   },
   data() {
     return {
+      issuedVisible: false,
+      fullscreen: false,
+      lookDialogVisible: false,
+      option: null,
       InspectionKey: 1,
       bindDialogVisible: false,
       bindAddDialogVisible: false,
+      bindTableDataLoading: false,
       bindTableData: [],
       bindAddTableData: [],
       chooseBindAddList: [],
@@ -441,262 +279,7 @@
       ],
       active: 1,
       tabIndex: 0,
-      componentDataDataLook: {
-        entity: {
-          id: 0,
-          orderBy: {
-            field: "sampleCode",
-            order: "asc",
-          },
-        },
-        isIndex: false,
-        showSelect: false,
-        select: false,
-        do: [
-          {
-            id: "parent",
-            font: "涓嶅悎鏍煎娴嬫煡鐪�",
-            type: "text",
-            method: "getRetestResult",
-            disabFun: (row, index) => {
-              return row.insResult != 0;
-            },
-          },
-          {
-            id: "parent",
-            font: "妫�楠岄」缁戝畾",
-            type: "text",
-            method: "getBinding",
-            disabFun: (row, index) => {
-              return (
-                this.lookInfo.userName == null ||
-                this.lookInfo.insState == 3 ||
-                this.lookInfo.insState == 5
-              );
-            },
-          },
-        ],
-        tagField: {
-          insState: {
-            select: [],
-          },
-          insResult: {
-            select: [
-              {
-                value: 1,
-                label: "鍚堟牸",
-                type: "success",
-              },
-              {
-                value: 0,
-                label: "涓嶅悎鏍�",
-                type: "danger",
-              },
-              {
-                value: 3,
-                label: "涓嶅垽瀹�",
-                type: "",
-              },
-            ],
-          },
-        },
-        selectField: {},
-        spanConfig: {
-          rows: [
-            {
-              name: "sampleCode",
-              index: 0,
-            },
-            {
-              name: "sample",
-              index: 1,
-            },
-            {
-              name: "model",
-              index: 6,
-            },
-          ],
-        },
-        requiredAdd: [],
-        requiredUp: [],
-      },
       dataDialogVisible: false,
-      componentData: {
-        entity: {
-          orderBy: {
-            field: "entrustCode",
-            order: "asc",
-          },
-          sonLaboratory: null,
-          insState: null,
-          userId: null,
-          typeSource: null,
-        },
-        isIndex: true,
-        showSelect: false,
-        select: false,
-        init: false,
-        needSort: ["createTime", "sendTime", "type", "appointed", "insState"],
-        do: [
-          {
-            id: "",
-            font: "鏁版嵁鏌ョ湅",
-            type: "text",
-            method: "handleDataLook",
-          },
-          {
-            id: "",
-            font: "淇敼妫�楠屽��",
-            type: "text",
-            method: "editInspection",
-            disabFun: (row, index) => {
-              return (
-                row.userName == null || row.insState == 3 || row.insState == 5
-              );
-            },
-          },
-          {
-            id: "",
-            font: "妫�楠�",
-            type: "text",
-            method: "handleInspection",
-            disabFun: (row, index) => {
-              return (
-                row.userName == null ||
-                row.insState == 3 ||
-                row.insState == 5 ||
-                (row.userName &&
-                  !row.userName.includes(
-                    JSON.parse(localStorage.getItem("user")).name
-                  ))
-              );
-            },
-          },
-          {
-            id: "",
-            font: "浜ゆ帴",
-            type: "text",
-            method: "handleConnect",
-            disabFun: (row, index) => {
-              return (
-                row.userName == null ||
-                row.insState == 5 ||
-                row.insState == 3 ||
-                (row.userName &&
-                  !row.userName.includes(
-                    JSON.parse(localStorage.getItem("user")).name
-                  ))
-              );
-            },
-          },
-          // {
-          //   font: '浜т笟閾�',
-          //   type: 'text',
-          //   method: 'openInfoDialog',
-          //   disabFun: (row, index) => {
-          //     return row.typeSource !== 1
-          //   }
-          // },
-          // {
-          // 	id: '',
-          // 	font: '璁ら',
-          // 	type: 'text',
-          // 	method: 'claimFun',
-          // 	disabFun: (row, index) => {
-          // 		return row.userName != null || row.checkName!=null
-          // 	}
-          // },
-          {
-            id: "",
-            font: "鍘熷璁板綍",
-            type: "text",
-            method: "viewInspectInfo",
-          },
-        ],
-        linkEvent: {
-          entrustCode: {
-            method: "selectAllByOne",
-          },
-        },
-        tagField: {
-          type: {
-            select: [],
-          },
-          insState: {
-            select: [],
-          },
-          insResult: {
-            select: [
-              {
-                value: 0,
-                label: "涓嶅悎鏍�",
-                type: "danger",
-              },
-              {
-                value: 1,
-                label: "鍚堟牸",
-                type: "success",
-              },
-              {
-                value: "",
-                label: "鏈嚭缁撴灉",
-                type: "info",
-              },
-            ],
-          },
-          typeSource: {
-            select: [
-              {
-                value: 0,
-                label: "鎴愬搧涓嬪崟",
-                type: "info",
-              },
-              {
-                value: 1,
-                label: "鍘熸潗鏂欎笅鍗�",
-                type: "info",
-              },
-              {
-                value: 2,
-                label: "鍘熸潗鏂欎笅鍗�",
-                type: "info",
-              },
-            ],
-          },
-          orderType: {
-            select: [
-              {
-                value: "Customer-ordered test",
-                label: "濮旀墭璇曢獙",
-                type: "success",
-                effect: "plain",
-              },
-              {
-                value: "鎶芥",
-                label: "鎶芥",
-                type: "",
-                effect: "plain",
-              },
-              {
-                value: "杩涘巶妫�楠�",
-                label: "杩涘巶妫�楠�",
-                type: "info",
-                effect: "plain",
-              },
-              {
-                value: "Quarterly inspection",
-                label: "瀛e害妫�楠�",
-                type: "warning",
-                effect: "plain",
-              },
-            ],
-          },
-        },
-        selectField: {},
-        requiredAdd: [],
-        requiredUp: [],
-      },
-      upIndex: 0,
       planTotal: 0,
       insStateList: [],
       state: 0, // 0:鍙拌处椤碉紝1锛氭楠岄〉闈�,2妫�楠岄〉闈�(澶嶆牳)锛岄粯璁や负0,3鏁版嵁鏌ョ湅
@@ -722,7 +305,6 @@
       customsInspection: {},
       showInfoDialog: false, // 浜т笟閾句俊鎭煡鐪�
       isReport: 0,
-      retestVisible: false,
       retestInfo: [],
       isCopper: null,
       bindCurrentInfo: {},
@@ -748,7 +330,7 @@
         },
         {
           value: "Quarterly inspection",
-          label: "瀛e害妫�楠�",
+          label: "鍙潬鎬ф楠�",
           type: "warning",
           effect: "plain",
         },
@@ -760,14 +342,15 @@
         {
           label: "濮旀墭缂栧彿",
           prop: "entrustCode",
-          width: "140px",
+          width: "160px",
           dataType: "link",
           linkMethod: "selectAllByOne",
         },
-        { label: "鏍峰搧鍚嶇О", prop: "sample", width: "140px" },
+        { label: "鏍峰搧鍚嶇О", prop: "sample", width: "160px" },
         {
           label: "涓嬪崟绫诲埆",
           prop: "typeSource",
+          width: "100px",
           dataType: "tag",
           formatData: (params) => {
             if (params == 0) {
@@ -783,12 +366,28 @@
           prop: "type",
           dataType: "tag",
           formatData: (params) => {
-            return this.urgencyLevel.find((m) => m.value == params).label;
+            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",
+          width: "100px",
           dataType: "tag",
           formatData: (params) => {
             return this.orderTypeList.find((m) => m.value == params).label;
@@ -802,11 +401,18 @@
           prop: "insState",
           dataType: "tag",
           formatData: (params) => {
-            return this.inspectionTaskState.find((m) => m.value == params)
-              .label;
+            if (this.inspectionTaskState.find((m) => m.value == params)) {
+              return this.inspectionTaskState.find((m) => m.value == params).label;
+            } else {
+              return null
+            }
           },
           formatType: (params) => {
-            return this.inspectionTaskState.find((m) => m.value == params).type;
+            if (this.inspectionTaskState.find((m) => m.value == params)) {
+              return this.inspectionTaskState.find((m) => m.value == params).type;
+            } else {
+              return null
+            }
           },
         },
         { label: "妫�楠屼汉", prop: "userName" },
@@ -816,81 +422,126 @@
         { label: "妫�楠屽紑濮嬫椂闂�", prop: "insTime", width: "140px" },
         { label: "鐞嗙敱", prop: "verifyTell", width: "140px" },
         {
+          fixed: "right",
+          dataType: "slot",
+          slot: "action",
+          width: '340px',
+          label: "鎿嶄綔"
+        }
+      ],
+      page: {
+        total: 0,
+        size: 20,
+        current: 0,
+      },
+      tableLoading: false,
+      queryParams: {},
+      insResultList: [
+        {
+          value: 1,
+          label: "鍚堟牸",
+          type: "success",
+        },
+        {
+          value: 0,
+          label: "涓嶅悎鏍�",
+          type: "danger",
+        },
+        {
+          value: 3,
+          label: "涓嶅垽瀹�",
+          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
+            }
+          },
+        },
+        { label: "妫�楠屼汉", prop: "checkUserName" },
+        {
           dataType: "action",
           fixed: "right",
           label: "鎿嶄綔",
-          width: "260px",
           operation: [
             {
-              name: "鏁版嵁鏌ョ湅",
+              name: "涓嶅悎鏍煎娴嬫煡鐪�",
               type: "text",
               clickFun: (row) => {
-                this.handleDataLook(row);
+                this.getRetestResultInfo(row);
+              },
+              disabled: (row) => {
+                return row.insResult != 0
               },
             },
             {
-              name: "淇敼妫�楠屽��",
+              name: "妫�楠岄」缁戝畾",
               type: "text",
               clickFun: (row) => {
-                this.editInspection(row);
+                this.getBinding(row);
               },
               disabled: (row) => {
                 return (
-                  row.userName == null || row.insState == 3 || row.insState == 5
+                  this.lookInfo.userName == null ||
+                  this.lookInfo.insState == 3 ||
+                  this.lookInfo.insState == 5
                 );
-              },
-            },
-            {
-              name: "妫�楠�",
-              type: "text",
-              clickFun: (row) => {
-                this.handleInspection(row);
-              },
-              disabled: (row) => {
-                return (
-                  row.userName == null ||
-                  row.insState == 3 ||
-                  row.insState == 5 ||
-                  (row.userName && !row.userName.includes(this.name))
-                );
-              },
-            },
-            {
-              name: "浜ゆ帴",
-              type: "text",
-              clickFun: (row) => {
-                this.handleConnect(row);
-              },
-              disabled: (row) => {
-                return (
-                  row.userName == null ||
-                  row.insState == 5 ||
-                  row.insState == 3 ||
-                  (row.userName && !row.userName.includes(this.name))
-                );
-              },
-            },
-            {
-              name: "鍘熷璁板綍",
-              type: "text",
-              clickFun: (row) => {
-                this.viewInspectInfo(row);
               },
             },
           ],
         },
       ],
-      page: {
+      lookPage: {
         total: 0,
-        size: 10,
+        size: 20,
         current: 0,
       },
-      tableLoading: false,
-      queryParams: {},
+      lookTableLoading: false,
+      // 鏁版嵁鏌ョ湅鐩稿叧瀛楁---缁撴潫
+      retestVisible: false,
     };
   },
-  created() {
+  mounted() {
     this.getAuthorizedPerson();
+    this.queryParams.userId = this.userId;
     this.currentTime = getYearAndMonthAndDays();
     this.getDicts("urgency_level").then((response) => {
       this.urgencyLevel = this.dictToValue(response.data);
@@ -898,10 +549,18 @@
     this.getDicts("inspection_task_state").then((response) => {
       this.inspectionTaskState = this.dictToValue(response.data);
     });
+    this.refreshTable();
   },
-  mounted() {
+  activated() {
+    this.getAuthorizedPerson();
     this.queryParams.userId = this.userId;
-    // this.getPower();
+    this.currentTime = getYearAndMonthAndDays();
+    this.getDicts("urgency_level").then((response) => {
+      this.urgencyLevel = this.dictToValue(response.data);
+    });
+    this.getDicts("inspection_task_state").then((response) => {
+      this.inspectionTaskState = this.dictToValue(response.data);
+    });
     this.refreshTable();
   },
   methods: {
@@ -926,65 +585,40 @@
       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);
     },
-    // 鍒锋柊椤甸潰
-    refreshView() {
-      this.getList();
+    // 鏌ョ湅宸ユ椂
+    viewManHour(row) {
+      this.$refs.viewManHourDia.showDialog(row.id, row.insState);
     },
     // 鏁版嵁鏌ョ湅
     handleDataLook(row) {
       this.lookInfo = row;
-      this.componentDataDataLook.entity.id = row.id;
-      this.dataDialogVisible = true;
-    },
-    // 鏌ョ湅涓嶅悎鏍煎娴嬬粨鏋�
-    getRetestResult(row) {
-      getRetestResult({ insProductId: row.insProductId }).then((res) => {
-        if (res.code == 201) return;
-        this.retestVisible = true;
-        this.retestInfo = res.data;
-      });
-    },
-    //
-    closeRetestLook() {
-      this.retestVisible = false;
-    },
-    // 鏉冮檺鍒嗛厤
-    getPower(radio) {
-      let power = JSON.parse(sessionStorage.getItem("power"));
-      let inspection = false;
-      let connect = false;
-      let review = false;
-      let claim = false;
-      for (var i = 0; i < power.length; i++) {
-        if (power[i].menuMethod == "doInsOrder") {
-          inspection = true;
-        }
-        if (power[i].menuMethod == "upPlanUser") {
-          connect = true;
-        }
-        if (power[i].menuMethod == "verifyPlan") {
-          review = true;
-        }
-        if (power[i].menuMethod == "claimInsOrderPlan") {
-          claim = true;
-        }
-      }
-      if (!claim) {
-        this.componentData.do.splice(3, 1);
-      }
-      if (!review) {
-        this.componentData.do.splice(2, 1);
-      }
-      if (!connect) {
-        this.componentData.do.splice(1, 1);
-      }
-      if (!inspection) {
-        this.componentData.do.splice(0, 1);
-      }
+      this.getLookList();
     },
     changeCheckBox(val) {
       this.queryParams.userId = val ? 0 : null;
@@ -1001,16 +635,57 @@
       this.queryParams.typeSource = this.tabIndex;
       this.getList();
     },
-    // claimFun(row) {
-    // 	if (row) {
-    // 		this.sampleUserForm = {
-    // 			entrustCode: row.entrustCode,
-    // 			insSampleId: row.id,
-    //       sonLaboratory: row.sonLaboratory,
-    // 		}
-    // 		this.claimVisible = true
-    // 	}
-    // },
+    // 涓嬭浇鎶ュ憡
+    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) {
       this.showInfoDialog = true;
@@ -1034,7 +709,7 @@
           this.loading = false;
         });
     },
-    changeRowClass({ row, rowIndex }) {
+    rowClassName({ row, rowIndex }) {
       if (this.currentTime == row.appointed) {
         return "highlight-warning-row-border";
       } else if (this.currentTime > row.appointed) {
@@ -1042,43 +717,11 @@
       }
       return "";
     },
-    onReset() {
-      this.searchForm = {
-        sampleName: null,
-        state: null,
-      };
-      this.queryParams.insState = null;
-      this.queryParams.sampleName = null;
-      this.refreshTable();
-    },
-    onSubmit() {
-      this.queryParams.insState = this.searchForm.state;
-      this.queryParams.sampleName = this.searchForm.sampleName;
-      this.$nextTick(() => {
-        this.refreshTable();
-      });
-    },
     handleTab(m, i) {
       this.tabIndex = i;
       this.queryParams.sonLaboratory = "";
       this.refreshTable();
     },
-    // getLaboratoryDicts() {
-    // 	this.$axios.post(this.$api.enums.selectEnumByCategory, {
-    // 		category: "瀛愬疄楠屽"
-    // 	}).then(res => {
-    // 		this.tabList = res.data.map(ele => {
-    // 			return {
-    // 				label: ele.label,
-    // 				value: ele.value
-    // 			}
-    // 		})
-    // 		if(this.tabList.length>0){
-    // 			this.componentData.entity.sonLaboratory = this.tabList[0].value
-    // 		}
-    // 		this.refreshTable()
-    // 	})
-    // },
     selectAllByOne(row) {
       this.isCopper = row.isCopper;
       this.customsInspection = row;
@@ -1086,9 +729,39 @@
       this.examine = 1;
       this.isReport = 0;
       this.currentId = parseInt(row.id);
-    },
-    playOrder(num) {
-      this.activeFace = num;
+      switch (row.isCopper) {
+        case 0:
+          // 鍘熸潗鏂�
+          this.$router.push({
+            path: "/materialOrder/customsInspection", query: {
+              customsInspection: row,
+              active: this.activeFace,
+              currentId: this.currentId,
+              isReport: this.isReport
+            }
+          });
+          break;
+        case null:
+          // 鎴愬搧
+          this.$router.push({
+            path: "/productOrder/add", query: {
+              examine: this.examine,
+              active: this.activeFace,
+              currentId: this.currentId
+            }
+          });
+          break;
+        case 1:
+          // 閾滄潗
+          this.$router.push({
+            path: "/materialOrder/copperOrder", query: {
+              active: this.activeFace,
+              currentId: this.currentId
+            }
+          });
+          break;
+      }
+
     },
     goback() {
       this.state = 0;
@@ -1101,14 +774,24 @@
       if (row.userName) {
         inspectorList = row.userName.split(",");
       }
-      if (this.name) {
-        inspectorList.push(this.name);
+      if (this.nickName) {
+        inspectorList.push(this.nickName);
       }
       this.inspectorList = inspectorList;
       this.sonLaboratory = row.sonLaboratory;
       this.state = 1;
       this.typeSource = row.typeSource;
       this.orderId = row.id;
+      this.$router.push({
+        path: "/inspectionTask/inspection",
+        query: {
+          inspectorList: this.inspectorList,
+          sonLaboratory: this.sonLaboratory,
+          state: this.state,
+          typeSource: this.typeSource,
+          orderId: this.orderId,
+        },
+      });
     },
     // 鏌ョ湅妫�楠屾暟鎹�
     viewInspectInfo(row) {
@@ -1117,14 +800,24 @@
       if (row.userName) {
         inspectorList = row.userName.split(",");
       }
-      if (this.name) {
-        inspectorList.push(this.name);
+      if (this.nickName) {
+        inspectorList.push(this.nickName);
       }
       this.inspectorList = inspectorList;
       this.sonLaboratory = row.sonLaboratory;
       this.state = 3;
       this.typeSource = row.typeSource;
       this.orderId = row.id;
+      this.$router.push({
+        path: "/inspectionTask/inspection",
+        query: {
+          inspectorList: this.inspectorList,
+          sonLaboratory: this.sonLaboratory,
+          state: this.state,
+          typeSource: this.typeSource,
+          orderId: this.orderId,
+        },
+      });
     },
     handleConnect(row) {
       this.orderId = row.id;
@@ -1179,12 +872,8 @@
           this.loading = false;
         });
     },
-    handleReview(row) {
-      this.state = 2;
-      this.orderId = row.id;
-    },
     getAuthorizedPerson() {
-      selectUserCondition().then((res) => {
+      selectUserCondition({ type: 1 }).then((res) => {
         let data = [];
         res.data.forEach((a) => {
           data.push({
@@ -1195,16 +884,21 @@
         this.personList = data;
       });
     },
+    // 鏌ョ湅涓嶅悎鏍煎娴嬬粨鏋�
+    getRetestResultInfo(row) {
+      getRetestResult({ insProductId: row.insProductId }).then(res => {
+        this.retestVisible = true
+        this.retestInfo = res.data
+      })
+    },
+    closeRetestLook() {
+      this.retestVisible = false
+    },
     // 缁戝畾妫�楠岄」缁戝畾
     getBinding(row) {
       this.bindCurrentInfo = row;
       getBindingProductByProductId({ productId: row.insProductId })
         .then((res) => {
-          if (res.coe == 201) {
-            // this.$message.error('鏈粦瀹氭楠岄」')
-            return;
-          }
-          // console.log(res)
           this.bindTableData = res.data;
           this.bindDialogVisible = true;
         })
@@ -1217,11 +911,6 @@
         productId: this.bindCurrentInfo.insProductId,
       })
         .then((res) => {
-          if (res.coe == 201) {
-            // this.$message.error('鏈粦瀹氭楠岄」')
-            return;
-          }
-          // console.log(res)
           this.bindAddTableData = res.data;
           this.bindAddDialogVisible = true;
         })
@@ -1247,10 +936,6 @@
       })
         .then((res) => {
           this.loading = false;
-          if (res.code == 201) {
-            this.$message.error("缁戝畾澶辫触");
-            return;
-          }
           this.$message.success("缁戝畾鎴愬姛");
           this.bindAddDialogVisible = false;
           this.getBinding(this.bindCurrentInfo);
@@ -1265,19 +950,101 @@
         cancelButtonText: "鍙栨秷",
         type: "warning",
       }).then(async () => {
-        delProductTreeByProductId({ productId: row.id })
-          .then((res) => {
-            if (res.coe == 201) {
-              // this.$message.error('鏈粦瀹氭楠岄」')
-              return;
-            }
-            this.getBinding(this.bindCurrentInfo);
-          })
-          .catch((error) => {
-            console.error(error);
-          });
+        this.bindTableDataLoading = true
+        delProductTreeByProductId({ productId: row.id }).then((res) => {
+          this.bindTableDataLoading = false
+          this.getBinding(this.bindCurrentInfo);
+        }).catch((error) => {
+          this.bindTableDataLoading = false
+          console.error(error);
+        });
       });
+    },
+    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_thing {
+  display: flex;
+  align-items: center;
+  height: 50px;
+}
+
+.search_label {
+  width: 100px;
+  font-size: 14px;
+  text-align: right;
+}
+
+.search_input {
+  width: calc(100% - 120px);
+}
+
+.tab {
+  list-style-type: none;
+  display: flex;
+  padding-left: 6px;
+}
+
+.tab li {
+  line-height: 24px;
+  padding: 4px 10px;
+  font-size: 14px;
+  color: #333333;
+  border: 1px solid #eeeeee;
+  cursor: pointer;
+}
+
+.tab li:nth-child(1) {
+  border-radius: 8px 0 0 8px;
+}
+
+.tab li:nth-last-child(1) {
+  border-radius: 0 8px 8px 0;
+}
+
+.tab li.active {
+  border-color: #3a7bfa;
+  color: #3a7bfa;
+}
+
+.center-options {
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+}
+
+.center .center-options .center-title span:last-child {
+  color: #3a7bfa;
+  font-size: 23px;
+  font-weight: 400;
+}
+
+.view-self-checkbox {
+  margin-left: 50px;
+}
+</style>

--
Gitblit v1.9.3