From c5190d45cc1b3bcb59bdd031fcee06a8774c3499 Mon Sep 17 00:00:00 2001
From: zhuo <2089219845@qq.com>
Date: 星期一, 17 三月 2025 14:03:53 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev' into dev

---
 src/views/business/inspectionTask/index.vue | 1832 +++++++++++++++++++++++++++++-----------------------------
 1 files changed, 920 insertions(+), 912 deletions(-)

diff --git a/src/views/business/inspectionTask/index.vue b/src/views/business/inspectionTask/index.vue
index 6dccaa2..7917484 100644
--- a/src/views/business/inspectionTask/index.vue
+++ b/src/views/business/inspectionTask/index.vue
@@ -1,3 +1,923 @@
+<template>
+  <div class="ins-order-plan-main">
+    <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-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>
+      </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"
+          :rowClassName="rowClassName" :height="'calc(100vh - 300px)'" @pagination="pagination"
+          key="tableData0"></lims-table>
+      </div>
+    </div>
+    <el-dialog :visible.sync="claimVisible" title="鎻愮ず" width="400px">
+      鏄惁璁ら濮旀墭缂栧彿<span style="color: #33c130">{{
+        sampleUserForm.entrustCode
+      }}</span>鐨勪换鍔�
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="claimVisible = false">鍙� 娑�</el-button>
+        <el-button :loading="loading" type="primary" @click="confirmClaim">纭� 瀹�</el-button>
+      </span>
+    </el-dialog>
+    <el-dialog :visible.sync="connectVisible" title="妫�楠屼氦鎺�" width="400px">
+      <div class="search_thing">
+        <div class="search_label" style="width: 90px">
+          <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-option>
+          </el-select>
+        </div>
+      </div>
+      <div class="search_thing">
+        <div class="search_label" style="width: 90px">
+          <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-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>
+      </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="
+          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>
+      </div>
+      <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>
+        <el-table-column prop="inspectionItemSubclass" label="妫�楠屽瓙椤�">
+        </el-table-column>
+        <el-table-column label="鎿嶄綔">
+          <template slot-scope="scope">
+            <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"
+                :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>
+        <el-table-column prop="inspectionItem" label="妫�楠岄」" width="150">
+        </el-table-column>
+        <el-table-column prop="inspectionItemSubclass" label="妫�楠屽瓙椤�">
+        </el-table-column>
+      </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>
+      </span>
+    </el-dialog>
+    <!--浜т笟閾句俊鎭煡鐪�-->
+    <!-- <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>
+  </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,
+  getProductTreeByProductId,
+  bindingProductTreeByProductId,
+  delProductTreeByProductId,
+  selectInsOrderPlanList,
+  selectSampleAndProductByOrderId,
+} from "@/api/business/inspectionTask.js";
+import { mapGetters } from "vuex";
+import {getRetestResult} from "@/api/business/rawMaterialOrder";
+export default {
+  name: 'InspectionTask',
+  components: {
+    EditInspectionItem,
+    limsTable,
+    viewManHourDia,
+    UnPassRetestResult
+  },
+  dicts: ["urgency_level", "inspection_task_state"],
+  computed: {
+    ...mapGetters(["nickName", "userId"]),
+  },
+  data() {
+    return {
+      InspectionKey: 1,
+      bindDialogVisible: false,
+      bindAddDialogVisible: false,
+      bindTableDataLoading: false,
+      bindTableData: [],
+      bindAddTableData: [],
+      chooseBindAddList: [],
+      examine: null,
+      inspectorList: [], //妫�楠屼汉鍛樺垪琛�
+      alone: true,
+      sampleUserForm: {
+        entrustCode: null,
+        insSampleId: null,
+        userId: null,
+      },
+      claimVisible: false,
+      tabList: [
+        { label: "濮旀墭", value: 0 },
+        { label: "鍘熸潗鏂�", value: 1 },
+      ],
+      active: 1,
+      tabIndex: 0,
+      dataDialogVisible: false,
+      planTotal: 0,
+      insStateList: [],
+      state: 0, // 0:鍙拌处椤碉紝1锛氭楠岄〉闈�,2妫�楠岄〉闈�(澶嶆牳)锛岄粯璁や负0,3鏁版嵁鏌ョ湅
+      typeSource: null, // 0:鎴愬搧涓嬪崟锛�1锛氬師鏉愭枡涓嬪崟
+      sonLaboratory: null, // 0:濮旀墭锛�1锛氬師鏉愭枡
+      activeFace: 0, // 1锛氫笅鍗曪紝2锛氭煡鐪嬶紝3锛氬鏍革紝榛樿涓�0
+      currentId: null,
+      entityCopy: {},
+      orderId: 0,
+      personList: [],
+      connectVisible: false,
+      connect: {
+        connectPerson: "",
+        sonLaboratory: "",
+      },
+      loading: false,
+      currentTime: null,
+      sonLaboratoryList: [],
+      typeSourceList: [
+        { label: "鎴愬搧涓嬪崟", value: 0 },
+        { label: "鍘熸潗鏂欎笅鍗�", value: 1 },
+      ],
+      customsInspection: {},
+      showInfoDialog: false, // 浜т笟閾句俊鎭煡鐪�
+      isReport: 0,
+      retestInfo: [],
+      isCopper: null,
+      bindCurrentInfo: {},
+      lookInfo: {},
+      orderTypeList: [
+        {
+          value: "Customer-ordered test",
+          label: "濮旀墭璇曢獙",
+          type: "success",
+          effect: "plain",
+        },
+        {
+          value: "鎶芥",
+          label: "鎶芥",
+          type: "",
+          effect: "plain",
+        },
+        {
+          value: "杩涘巶妫�楠�",
+          label: "杩涘巶妫�楠�",
+          type: "info",
+          effect: "plain",
+        },
+        {
+          value: "Quarterly inspection",
+          label: "瀛e害妫�楠�",
+          type: "warning",
+          effect: "plain",
+        },
+      ],
+      urgencyLevel: [],
+      inspectionTaskState: [],
+      tableData: [],
+      column: [
+        {
+          label: "濮旀墭缂栧彿",
+          prop: "entrustCode",
+          width: "160px",
+          dataType: "link",
+          linkMethod: "selectAllByOne",
+        },
+        { label: "鏍峰搧鍚嶇О", prop: "sample", width: "160px" },
+        {
+          label: "涓嬪崟绫诲埆",
+          prop: "typeSource",
+          width: "100px",
+          dataType: "tag",
+          formatData: (params) => {
+            if (params == 0) {
+              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: "orderType",
+          width: "100px",
+          dataType: "tag",
+          formatData: (params) => {
+            return this.orderTypeList.find((m) => m.value == params).label;
+          },
+          formatType: (params) => {
+            return this.orderTypeList.find((m) => m.value == params).type;
+          },
+        },
+        {
+          label: "鐘舵��",
+          prop: "insState",
+          dataType: "tag",
+          formatData: (params) => {
+            if (this.inspectionTaskState.find((m) => m.value == params)) {
+              return this.inspectionTaskState.find((m) => m.value == params).label;
+            } else {
+              return null
+            }
+          },
+          formatType: (params) => {
+            if (this.inspectionTaskState.find((m) => m.value == params)) {
+              return this.inspectionTaskState.find((m) => m.value == params).type;
+            } else {
+              return null
+            }
+          },
+        },
+        { label: "妫�楠屼汉", prop: "userName" },
+        { label: "澶嶆牳浜�", prop: "checkName" },
+        { label: "绾﹀畾鏃堕棿", prop: "appointed" },
+        { label: "涓嬪彂鏃堕棿", prop: "sendTime", width: "140px" },
+        { label: "妫�楠屽紑濮嬫椂闂�", prop: "insTime", width: "140px" },
+        { label: "鐞嗙敱", prop: "verifyTell", width: "140px" },
+        {
+          dataType: "action",
+          fixed: "right",
+          label: "鎿嶄綔",
+          operation: [
+            {
+              name: "鏁版嵁鏌ョ湅",
+              type: "text",
+              clickFun: (row) => {
+                this.handleDataLook(row);
+              },
+            },
+            {
+              name: "淇敼妫�楠屽��",
+              type: "text",
+              clickFun: (row) => {
+                this.editInspection(row);
+              },
+              disabled: (row) => {
+                return (row.userName == null || row.insState == 3 || row.insState == 5) && 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);
+              },
+            },
+          ],
+        },
+      ],
+      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
+            }
+          },
+        },
+        {
+          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,
+    };
+  },
+  mounted() {
+    this.getAuthorizedPerson();
+    this.queryParams.userId = this.userId;
+    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();
+  },
+  activated() {
+    this.getAuthorizedPerson();
+    this.queryParams.userId = this.userId;
+    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: {
+    getList() {
+      this.tableLoading = true;
+      let param = { ...this.queryParams, ...this.page };
+      delete param.total;
+      selectInsOrderPlanList({ ...param })
+        .then((res) => {
+          this.tableLoading = false;
+          if (res.code === 200) {
+            this.tableData = res.data.records;
+            this.page.total = res.data.total;
+          }
+        })
+        .catch((err) => {
+          this.tableLoading = false;
+        });
+    },
+    pagination({ page, limit }) {
+      this.page.current = page;
+      this.page.size = limit;
+      this.getList();
+    },
+    getLookList() {
+      this.lookTableLoading = true;
+      let param = { id: this.lookInfo.id, ...this.lookPage, 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);
+    },
+    // 鏌ョ湅宸ユ椂
+    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;
+      this.refreshTable();
+    },
+    refresh() {
+      this.queryParams = {};
+      this.queryParams.userId = this.userId;
+      this.alone = true;
+      this.refreshTable();
+    },
+    refreshTable(e) {
+      this.page.current = 1;
+      this.queryParams.typeSource = this.tabIndex;
+      this.getList();
+    },
+    // 鏌ョ湅浜т笟閾句俊鎭�
+    openInfoDialog(row) {
+      this.showInfoDialog = true;
+      this.$nextTick(() => {
+        this.$refs.showInfoDialog.getInfo(row.ifsInventoryId);
+      });
+    },
+    confirmClaim() {
+      this.loading = true;
+      claimInsOrderPlan(this.sampleUserForm)
+        .then((res) => {
+          if (res.code === 200 && res.data) {
+            this.loading = false;
+            this.$message.success("璁ら鎴愬姛");
+            this.claimVisible = false;
+            this.refreshTable("page");
+          }
+        })
+        .catch((error) => {
+          console.error(error);
+          this.loading = false;
+        });
+    },
+    rowClassName({ row, rowIndex }) {
+      if (this.currentTime == row.appointed) {
+        return "highlight-warning-row-border";
+      } else if (this.currentTime > row.appointed) {
+        return "highlight-danger-row-border";
+      }
+      return "";
+    },
+    handleTab(m, i) {
+      this.tabIndex = i;
+      this.queryParams.sonLaboratory = "";
+      this.refreshTable();
+    },
+    selectAllByOne(row) {
+      this.isCopper = row.isCopper;
+      this.customsInspection = row;
+      this.activeFace = 2;
+      this.examine = 1;
+      this.isReport = 0;
+      this.currentId = parseInt(row.id);
+      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;
+      this.refreshTable("page");
+    },
+    // 杩涜妫�楠屼换鍔�
+    handleInspection(row) {
+      //褰撳墠妫�楠屼换鍔$殑妫�楠屼汉鍒楄〃
+      let inspectorList = [];
+      if (row.userName) {
+        inspectorList = row.userName.split(",");
+      }
+      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) {
+      //褰撳墠妫�楠屼换鍔$殑妫�楠屼汉鍒楄〃
+      let inspectorList = [];
+      if (row.userName) {
+        inspectorList = row.userName.split(",");
+      }
+      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;
+      this.connect = {};
+      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,
+            });
+          });
+          this.connect.sonLaboratory = this.sonLaboratoryList[0].value;
+        }
+      });
+    },
+    confirmConnect() {
+      if (
+        this.connect.connectPerson == null ||
+        this.connect.connectPerson == "" ||
+        this.connect.connectPerson == undefined
+      ) {
+        this.$message.error("鏈�夋嫨浜ゆ帴浜哄憳");
+        return;
+      }
+      if (
+        this.connect.sonLaboratory == null ||
+        this.connect.sonLaboratory == "" ||
+        this.connect.sonLaboratory == undefined
+      ) {
+        this.$message.error("鏈�夋嫨璇曢獙瀹�");
+        return;
+      }
+      this.loading = true;
+      upPlanUser({
+        orderId: this.orderId,
+        userId: this.connect.connectPerson,
+        sonLaboratory: this.connect.sonLaboratory,
+      })
+        .then((res) => {
+          if (res.code === 200) {
+            this.loading = false;
+            this.$message.success("鎿嶄綔鎴愬姛");
+            this.refreshTable("page");
+          }
+          this.connectVisible = false;
+        })
+        .catch((error) => {
+          console.error(error);
+          this.loading = false;
+        });
+    },
+    getAuthorizedPerson() {
+      selectUserCondition({ type: 1 }).then((res) => {
+        let data = [];
+        res.data.forEach((a) => {
+          data.push({
+            label: a.name,
+            value: a.id,
+          });
+        });
+        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) => {
+          // console.log(res)
+          this.bindTableData = res.data;
+          this.bindDialogVisible = true;
+        })
+        .catch((error) => {
+          console.error(error);
+        });
+    },
+    openBindAdd() {
+      getProductTreeByProductId({
+        productId: this.bindCurrentInfo.insProductId,
+      })
+        .then((res) => {
+          // console.log(res)
+          this.bindAddTableData = res.data;
+          this.bindAddDialogVisible = true;
+        })
+        .catch((error) => {
+          console.error(error);
+        });
+    },
+    handleBindAddSelectionChange(list) {
+      this.chooseBindAddList = list;
+    },
+    bindAdd() {
+      if (this.chooseBindAddList.length == 0) {
+        this.$message.error("璇烽�夋嫨妫�楠岄」");
+        return;
+      }
+      this.chooseBindAddList.forEach((item) => {
+        delete item.template;
+      });
+      this.loading = true;
+      bindingProductTreeByProductId({
+        insProductId: this.bindCurrentInfo.insProductId,
+        insProductBindingList: this.chooseBindAddList,
+      })
+        .then((res) => {
+          this.loading = false;
+          this.$message.success("缁戝畾鎴愬姛");
+          this.bindAddDialogVisible = false;
+          this.getBinding(this.bindCurrentInfo);
+        })
+        .catch((error) => {
+          console.error(error);
+        });
+    },
+    handleDelete(row) {
+      this.$confirm("纭鍒犻櫎姝ゆ楠岄」, 鏄惁缁х画?", "鎻愮ず", {
+        confirmButtonText: "纭畾",
+        cancelButtonText: "鍙栨秷",
+        type: "warning",
+      }).then(async () => {
+        this.bindTableDataLoading = true
+        delProductTreeByProductId({ productId: row.id }).then((res) => {
+          this.bindTableDataLoading = false
+          this.getBinding(this.bindCurrentInfo);
+        }).catch((error) => {
+          this.bindTableDataLoading = false
+          console.error(error);
+        });
+      });
+    },
+  },
+};
+</script>
 <style scoped>
 .search {
   background-color: #fff;
@@ -87,915 +1007,3 @@
   color: #000;
 }
 </style>
-<template>
-  <div class="ins-order-plan-main">
-    <div v-show="activeFace == 0" style="height: 100%">
-      <div class="search">
-        <div class="search_thing">
-          <div class="search_label">濮旀墭缂栧彿锛�</div>
-          <div class="search_input">
-            <el-input v-model="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-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>
-      </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"
-          :height="'calc(100vh - 300px)'" @pagination="pagination" key="tableData0"></lims-table>
-      </div>
-    </div>
-    <el-dialog :visible.sync="claimVisible" title="鎻愮ず" width="400px">
-      鏄惁璁ら濮旀墭缂栧彿<span style="color: #33c130">{{
-        sampleUserForm.entrustCode
-      }}</span>鐨勪换鍔�
-      <span slot="footer" class="dialog-footer">
-        <el-button @click="claimVisible = false">鍙� 娑�</el-button>
-        <el-button :loading="loading" type="primary" @click="confirmClaim">纭� 瀹�</el-button>
-      </span>
-    </el-dialog>
-    <el-dialog :visible.sync="connectVisible" title="妫�楠屼氦鎺�" width="400px">
-      <div class="search_thing">
-        <div class="search_label" style="width: 90px">
-          <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-option>
-          </el-select>
-        </div>
-      </div>
-      <div class="search_thing">
-        <div class="search_label" style="width: 90px">
-          <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-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>
-      </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">
-        <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="
-          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>
-      </div>
-      <el-table :data="bindTableData" style="width: 100%" height="70vh">
-        <el-table-column prop="inspectionItemClass" label="妫�楠岄」鍒嗙被" width="150">
-        </el-table-column>
-        <el-table-column prop="inspectionItem" label="妫�楠岄」" width="150">
-        </el-table-column>
-        <el-table-column prop="inspectionItemSubclass" label="妫�楠屽瓙椤�">
-        </el-table-column>
-        <el-table-column label="鎿嶄綔">
-          <template slot-scope="scope">
-            <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-table-column type="selection" width="55"> </el-table-column>
-        <el-table-column prop="inspectionItemClass" label="妫�楠岄」鍒嗙被" width="150">
-        </el-table-column>
-        <el-table-column prop="inspectionItem" label="妫�楠岄」" width="150">
-        </el-table-column>
-        <el-table-column prop="inspectionItemSubclass" label="妫�楠屽瓙椤�">
-        </el-table-column>
-      </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>
-      </span>
-    </el-dialog>
-    <!--浜т笟閾句俊鎭煡鐪�-->
-    <!-- <ShowInfo
-      v-if="showInfoDialog"
-      ref="showInfoDialog"
-      :showInfoDialog="showInfoDialog"
-    ></ShowInfo> -->
-    <edit-inspection-item ref="editInspectionItem"></edit-inspection-item>
-  </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 EditInspectionItem from "./components/EditInspectionItem.vue";
-import limsTable from "@/components/Table/lims-table.vue";
-import {
-  claimInsOrderPlan,
-  upPlanUser2,
-  upPlanUser,
-  selectUserCondition,
-  getBindingProductByProductId,
-  getProductTreeByProductId,
-  bindingProductTreeByProductId,
-  delProductTreeByProductId,
-  selectInsOrderPlanList,
-  selectSampleAndProductByOrderId,
-} from "@/api/business/inspectionTask.js";
-import { mapGetters } from "vuex";
-export default {
-  components: {
-    EditInspectionItem,
-    // CopperOrder,
-    // ShowInfo,
-    ValueTable,
-    limsTable,
-    // Inspection,
-    // Add,
-    // CustomsInspection,
-  },
-  dicts: ["urgency_level", "inspection_task_state"],
-  computed: {
-    ...mapGetters(["nickName", "userId"]),
-  },
-  data() {
-    return {
-      InspectionKey: 1,
-      bindDialogVisible: false,
-      bindAddDialogVisible: false,
-      bindTableData: [],
-      bindAddTableData: [],
-      chooseBindAddList: [],
-      examine: null,
-      inspectorList: [], //妫�楠屼汉鍛樺垪琛�
-      alone: true,
-      sampleUserForm: {
-        entrustCode: null,
-        insSampleId: null,
-        userId: null,
-      },
-      claimVisible: false,
-      tabList: [
-        { label: "濮旀墭", value: 0 },
-        { label: "鍘熸潗鏂�", value: 1 },
-      ],
-      active: 1,
-      tabIndex: 0,
-      dataDialogVisible: false,
-      planTotal: 0,
-      insStateList: [],
-      state: 0, // 0:鍙拌处椤碉紝1锛氭楠岄〉闈�,2妫�楠岄〉闈�(澶嶆牳)锛岄粯璁や负0,3鏁版嵁鏌ョ湅
-      typeSource: null, // 0:鎴愬搧涓嬪崟锛�1锛氬師鏉愭枡涓嬪崟
-      sonLaboratory: null, // 0:濮旀墭锛�1锛氬師鏉愭枡
-      activeFace: 0, // 1锛氫笅鍗曪紝2锛氭煡鐪嬶紝3锛氬鏍革紝榛樿涓�0
-      currentId: null,
-      entityCopy: {},
-      orderId: 0,
-      personList: [],
-      connectVisible: false,
-      connect: {
-        connectPerson: "",
-        sonLaboratory: "",
-      },
-      loading: false,
-      currentTime: null,
-      sonLaboratoryList: [],
-      typeSourceList: [
-        { label: "鎴愬搧涓嬪崟", value: 0 },
-        { label: "鍘熸潗鏂欎笅鍗�", value: 1 },
-      ],
-      customsInspection: {},
-      showInfoDialog: false, // 浜т笟閾句俊鎭煡鐪�
-      isReport: 0,
-      retestInfo: [],
-      isCopper: null,
-      bindCurrentInfo: {},
-      lookInfo: {},
-      orderTypeList: [
-        {
-          value: "Customer-ordered test",
-          label: "濮旀墭璇曢獙",
-          type: "success",
-          effect: "plain",
-        },
-        {
-          value: "鎶芥",
-          label: "鎶芥",
-          type: "",
-          effect: "plain",
-        },
-        {
-          value: "杩涘巶妫�楠�",
-          label: "杩涘巶妫�楠�",
-          type: "info",
-          effect: "plain",
-        },
-        {
-          value: "Quarterly inspection",
-          label: "瀛e害妫�楠�",
-          type: "warning",
-          effect: "plain",
-        },
-      ],
-      urgencyLevel: [],
-      inspectionTaskState: [],
-      tableData: [],
-      column: [
-        {
-          label: "濮旀墭缂栧彿",
-          prop: "entrustCode",
-          width: "140px",
-          dataType: "link",
-          linkMethod: "selectAllByOne",
-        },
-        { label: "鏍峰搧鍚嶇О", prop: "sample", width: "140px" },
-        {
-          label: "涓嬪崟绫诲埆",
-          prop: "typeSource",
-          dataType: "tag",
-          formatData: (params) => {
-            if (params == 0) {
-              return "鎴愬搧涓嬪崟";
-            } else {
-              return "鍘熸潗鏂欎笅鍗�";
-            }
-          },
-        },
-        { label: "鏍峰搧鍨嬪彿", prop: "sampleModel", width: "120px" },
-        {
-          label: "绱ф�ョ▼搴�",
-          prop: "type",
-          dataType: "tag",
-          formatData: (params) => {
-            return this.urgencyLevel.find((m) => m.value == params).label;
-          },
-        },
-        {
-          label: "妫�楠岀被鍨�",
-          prop: "orderType",
-          dataType: "tag",
-          formatData: (params) => {
-            return this.orderTypeList.find((m) => m.value == params).label;
-          },
-          formatType: (params) => {
-            return this.orderTypeList.find((m) => m.value == params).type;
-          },
-        },
-        {
-          label: "鐘舵��",
-          prop: "insState",
-          dataType: "tag",
-          formatData: (params) => {
-            return this.inspectionTaskState.find((m) => m.value == params)
-              .label;
-          },
-          formatType: (params) => {
-            return this.inspectionTaskState.find((m) => m.value == params).type;
-          },
-        },
-        { label: "妫�楠屼汉", prop: "userName" },
-        { label: "澶嶆牳浜�", prop: "checkName" },
-        { label: "绾﹀畾鏃堕棿", prop: "appointed" },
-        { label: "涓嬪彂鏃堕棿", prop: "sendTime", width: "140px" },
-        { label: "妫�楠屽紑濮嬫椂闂�", prop: "insTime", width: "140px" },
-        { label: "鐞嗙敱", prop: "verifyTell", width: "140px" },
-        {
-          dataType: "action",
-          fixed: "right",
-          label: "鎿嶄綔",
-          operation: [
-            {
-              name: "鏁版嵁鏌ョ湅",
-              type: "text",
-              clickFun: (row) => {
-                this.handleDataLook(row);
-              },
-            },
-            {
-              name: "淇敼妫�楠屽��",
-              type: "text",
-              clickFun: (row) => {
-                this.editInspection(row);
-              },
-              disabled: (row) => {
-                return (
-                  row.userName == null || row.insState == 3 || row.insState == 5
-                );
-              },
-            },
-            {
-              name: "妫�楠�",
-              type: "text",
-              clickFun: (row) => {
-                this.handleInspection(row);
-              },
-              disabled: (row) => {
-                return (
-                  row.userName == null ||
-                  row.insState == 3 ||
-                  row.insState == 5 ||
-                  (row.userName && !row.userName.includes(this.nickName))
-                );
-              },
-            },
-            {
-              name: "浜ゆ帴",
-              type: "text",
-              clickFun: (row) => {
-                this.handleConnect(row);
-              },
-              disabled: (row) => {
-                return (
-                  row.userName == null ||
-                  row.insState == 5 ||
-                  row.insState == 3 ||
-                  (row.userName && !row.userName.includes(this.nickName))
-                );
-              },
-            },
-            {
-              name: "鍘熷璁板綍",
-              type: "text",
-              clickFun: (row) => {
-                this.viewInspectInfo(row);
-              },
-            },
-          ],
-        },
-      ],
-      page: {
-        total: 0,
-        size: 10,
-        current: 0,
-      },
-      tableLoading: false,
-      queryParams: {},
-      insResultList: [
-        {
-          value: 1,
-          label: "鍚堟牸",
-          type: "success",
-        },
-        {
-          value: 0,
-          label: "涓嶅悎鏍�",
-          type: "danger",
-        },
-        {
-          value: 3,
-          label: "涓嶅垽瀹�",
-          type: "",
-        },
-      ],
-      // 鏁版嵁鏌ョ湅鐩稿叧瀛楁---寮�濮�
-      lookTableData: [],
-      lookColumn: [
-        {
-          label: "鏍峰搧缂栧彿",
-          prop: "sampleCode",
-          width: "140px",
-          mergeCol: true, //鍚堝苟鍒�
-        },
-        { label: "鏍峰搧鍚嶇О", prop: "sample", width: "140px", mergeCol: true },
-        { label: "妫�楠岄」鍒嗙被", prop: "inspectionItemClass" },
-        { label: "妫�楠岄」", prop: "inspectionItem", width: "140px" },
-        { label: "妫�楠屽瓙椤�", prop: "inspectionItemSubclass" },
-        { label: "鍗曚綅", prop: "unit" },
-        { label: "鏍峰搧鍨嬪彿", prop: "model", mergeCol: true },
-        { label: "鏉′欢", prop: "radius" },
-        { label: "鐢电紗鏍囪瘑", prop: "cableTag" },
-        { label: "璇曢獙瑕佹眰", prop: "tell" },
-        { label: "妫�楠岀粨鏋�", prop: "lastValue" },
-        {
-          label: "缁撴灉鍒ゅ畾",
-          prop: "insResult",
-          dataType: "tag",
-          formatData: (params) => {
-            return this.insResultList.find((m) => m.value == params).label;
-          },
-          formatType: (params) => {
-            return this.insResultList.find((m) => m.value == params).type;
-          },
-        },
-        {
-          dataType: "action",
-          fixed: "right",
-          label: "鎿嶄綔",
-          operation: [
-            {
-              name: "妫�楠岄」缁戝畾",
-              type: "text",
-              clickFun: (row) => {
-                this.getBinding(row);
-              },
-              disabled: (row) => {
-                return (
-                  this.lookInfo.userName == null ||
-                  this.lookInfo.insState == 3 ||
-                  this.lookInfo.insState == 5
-                );
-              },
-            },
-          ],
-        },
-      ],
-      lookPage: {
-        total: 0,
-        size: 10,
-        current: 0,
-      },
-      lookTableLoading: false,
-      // 鏁版嵁鏌ョ湅鐩稿叧瀛楁---缁撴潫
-    };
-  },
-  created() {
-    this.getAuthorizedPerson();
-    this.currentTime = getYearAndMonthAndDays();
-    this.getDicts("urgency_level").then((response) => {
-      this.urgencyLevel = this.dictToValue(response.data);
-    });
-    this.getDicts("inspection_task_state").then((response) => {
-      this.inspectionTaskState = this.dictToValue(response.data);
-    });
-  },
-  mounted() {
-    this.queryParams.userId = this.userId;
-    // this.getPower();
-    this.refreshTable();
-  },
-  methods: {
-    getList() {
-      this.tableLoading = true;
-      let param = { ...this.queryParams, ...this.page };
-      delete param.total;
-      selectInsOrderPlanList({ ...param })
-        .then((res) => {
-          this.tableLoading = false;
-          if (res.code === 200) {
-            this.tableData = res.data.records;
-            this.page.total = res.data.total;
-          }
-        })
-        .catch((err) => {
-          this.tableLoading = false;
-        });
-    },
-    pagination({ page, limit }) {
-      this.page.current = page;
-      this.page.size = limit;
-      this.getList();
-    },
-    getLookList() {
-      this.lookTableLoading = true;
-      let param = { id: this.lookInfo.id, ...this.lookPage };
-      delete param.total;
-      selectSampleAndProductByOrderId({ ...param })
-        .then((res) => {
-          this.lookTableLoading = false;
-          if (res.code === 200) {
-            this.lookTableData = res.data.records;
-            this.lookPage.total = res.data.total;
-            this.dataDialogVisible = true;
-          }
-        })
-        .catch((err) => {
-          this.lookTableLoading = false;
-        });
-    },
-    lookPagination({ page, limit }) {
-      this.lookPage.current = page;
-      this.lookPage.size = limit;
-      this.getLookList();
-    },
-    // 淇敼妫�楠屽��
-    editInspection(row) {
-      this.$refs.editInspectionItem.showDialog(row.id);
-    },
-    // 鍒锋柊椤甸潰
-    refreshView() {
-      this.getList();
-    },
-    // 鏁版嵁鏌ョ湅
-    handleDataLook(row) {
-      this.lookInfo = row;
-      this.getLookList();
-    },
-    // 鏉冮檺鍒嗛厤
-    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);
-      }
-    },
-    changeCheckBox(val) {
-      this.queryParams.userId = val ? 0 : null;
-      this.refreshTable();
-    },
-    refresh() {
-      this.queryParams = {};
-      this.queryParams.userId = this.userId;
-      this.alone = true;
-      this.refreshTable();
-    },
-    refreshTable(e) {
-      this.page.current = 1;
-      this.queryParams.typeSource = this.tabIndex;
-      this.getList();
-    },
-    // claimFun(row) {
-    // 	if (row) {
-    // 		this.sampleUserForm = {
-    // 			entrustCode: row.entrustCode,
-    // 			insSampleId: row.id,
-    //       sonLaboratory: row.sonLaboratory,
-    // 		}
-    // 		this.claimVisible = true
-    // 	}
-    // },
-    // 鏌ョ湅浜т笟閾句俊鎭�
-    openInfoDialog(row) {
-      this.showInfoDialog = true;
-      this.$nextTick(() => {
-        this.$refs.showInfoDialog.getInfo(row.ifsInventoryId);
-      });
-    },
-    confirmClaim() {
-      this.loading = true;
-      claimInsOrderPlan(this.sampleUserForm)
-        .then((res) => {
-          if (res.code === 200 && res.data) {
-            this.loading = false;
-            this.$message.success("璁ら鎴愬姛");
-            this.claimVisible = false;
-            this.refreshTable("page");
-          }
-        })
-        .catch((error) => {
-          console.error(error);
-          this.loading = false;
-        });
-    },
-    changeRowClass({ row, rowIndex }) {
-      if (this.currentTime == row.appointed) {
-        return "highlight-warning-row-border";
-      } else if (this.currentTime > row.appointed) {
-        return "highlight-danger-row-border";
-      }
-      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;
-      this.activeFace = 2;
-      this.examine = 1;
-      this.isReport = 0;
-      this.currentId = parseInt(row.id);
-    },
-    playOrder(num) {
-      this.activeFace = num;
-    },
-    goback() {
-      this.state = 0;
-      this.refreshTable("page");
-    },
-    // 杩涜妫�楠屼换鍔�
-    handleInspection(row) {
-      //褰撳墠妫�楠屼换鍔$殑妫�楠屼汉鍒楄〃
-      let inspectorList = [];
-      if (row.userName) {
-        inspectorList = row.userName.split(",");
-      }
-      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) {
-      //褰撳墠妫�楠屼换鍔$殑妫�楠屼汉鍒楄〃
-      let inspectorList = [];
-      if (row.userName) {
-        inspectorList = row.userName.split(",");
-      }
-      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;
-    },
-    handleConnect(row) {
-      this.orderId = row.id;
-      this.connect = {};
-      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,
-            });
-          });
-          this.connect.sonLaboratory = this.sonLaboratoryList[0].value;
-        }
-      });
-    },
-    confirmConnect() {
-      if (
-        this.connect.connectPerson == null ||
-        this.connect.connectPerson == "" ||
-        this.connect.connectPerson == undefined
-      ) {
-        this.$message.error("鏈�夋嫨浜ゆ帴浜哄憳");
-        return;
-      }
-      if (
-        this.connect.sonLaboratory == null ||
-        this.connect.sonLaboratory == "" ||
-        this.connect.sonLaboratory == undefined
-      ) {
-        this.$message.error("鏈�夋嫨璇曢獙瀹�");
-        return;
-      }
-      this.loading = true;
-      upPlanUser({
-        orderId: this.orderId,
-        userId: this.connect.connectPerson,
-        sonLaboratory: this.connect.sonLaboratory,
-      })
-        .then((res) => {
-          if (res.code === 200) {
-            this.loading = false;
-            this.$message.success("鎿嶄綔鎴愬姛");
-            this.refreshTable("page");
-          }
-          this.connectVisible = false;
-        })
-        .catch((error) => {
-          console.error(error);
-          this.loading = false;
-        });
-    },
-    handleReview(row) {
-      this.state = 2;
-      this.orderId = row.id;
-    },
-    getAuthorizedPerson() {
-      selectUserCondition({ type: 1 }).then((res) => {
-        let data = [];
-        res.data.forEach((a) => {
-          data.push({
-            label: a.name,
-            value: a.id,
-          });
-        });
-        this.personList = data;
-      });
-    },
-    // 缁戝畾妫�楠岄」缁戝畾
-    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;
-        })
-        .catch((error) => {
-          console.error(error);
-        });
-    },
-    openBindAdd() {
-      getProductTreeByProductId({
-        productId: this.bindCurrentInfo.insProductId,
-      })
-        .then((res) => {
-          if (res.coe == 201) {
-            // this.$message.error('鏈粦瀹氭楠岄」')
-            return;
-          }
-          // console.log(res)
-          this.bindAddTableData = res.data;
-          this.bindAddDialogVisible = true;
-        })
-        .catch((error) => {
-          console.error(error);
-        });
-    },
-    handleBindAddSelectionChange(list) {
-      this.chooseBindAddList = list;
-    },
-    bindAdd() {
-      if (this.chooseBindAddList.length == 0) {
-        this.$message.error("璇烽�夋嫨妫�楠岄」");
-        return;
-      }
-      this.chooseBindAddList.forEach((item) => {
-        delete item.template;
-      });
-      this.loading = true;
-      bindingProductTreeByProductId({
-        insProductId: this.bindCurrentInfo.insProductId,
-        insProductBindingList: this.chooseBindAddList,
-      })
-        .then((res) => {
-          this.loading = false;
-          if (res.code == 201) {
-            this.$message.error("缁戝畾澶辫触");
-            return;
-          }
-          this.$message.success("缁戝畾鎴愬姛");
-          this.bindAddDialogVisible = false;
-          this.getBinding(this.bindCurrentInfo);
-        })
-        .catch((error) => {
-          console.error(error);
-        });
-    },
-    handleDelete(row) {
-      this.$confirm("纭鍒犻櫎姝ゆ楠岄」, 鏄惁缁х画?", "鎻愮ず", {
-        confirmButtonText: "纭畾",
-        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);
-          });
-      });
-    },
-  },
-};
-</script>

--
Gitblit v1.9.3