From 1aa5952ed531348d22ac907aefdfb035bd160206 Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期四, 20 二月 2025 16:33:37 +0800
Subject: [PATCH] 检验任务完成80%

---
 src/api/performance/manHour.js                                |    2 
 vue.config.js                                                 |    2 
 src/views/business/unpass/components/addUnPass.vue            |  124 ++++
 src/views/business/unpass/components/unPassDialog.vue         |  275 +++++++++
 src/views/business/inspectionTask/inspection.vue              |  205 +++----
 src/views/business/inspectionTask/index.vue                   |   88 +-
 src/views/business/materialOrder/index.vue                    |  495 ++++++++---------
 src/api/standard/standardLibrary.js                           |    2 
 src/api/cnas/process/method/standardMethod.js                 |    1 
 src/api/business/inspectionTask.js                            |    1 
 src/api/business/unpass.js                                    |   75 ++
 src/api/standard/model.js                                     |    2 
 src/api/performance/class.js                                  |    2 
 src/views/business/unpass/components/PurchaseVerification.vue |  376 +++++++++++++
 14 files changed, 1,240 insertions(+), 410 deletions(-)

diff --git a/src/api/business/inspectionTask.js b/src/api/business/inspectionTask.js
index c3dab1e..b26a992 100644
--- a/src/api/business/inspectionTask.js
+++ b/src/api/business/inspectionTask.js
@@ -1,3 +1,4 @@
+// 妫�楠屼换鍔$浉鍏虫帴鍙�
 import request from "@/utils/request";
 
 // 閫氳繃妫�楠屽崟鏌ヨ妫�楠屾暟鎹紙鏁版嵁鏌ョ湅锛�
diff --git a/src/api/business/unpass.js b/src/api/business/unpass.js
new file mode 100644
index 0000000..7803d75
--- /dev/null
+++ b/src/api/business/unpass.js
@@ -0,0 +1,75 @@
+// 涓嶅悎鏍肩鐞嗙浉鍏虫帴鍙�
+
+import request from "@/utils/request";
+
+//鏌ヨ杩涜揣楠岃瘉淇℃伅
+export function getFactoryVerify(query) {
+  return request({
+    url: "/insOrderPlan/getFactoryVerify",
+    method: "get",
+    params: query,
+  });
+}
+
+// 淇濆瓨杩涜揣鍘熷璁板綍
+export function addFactoryVerify(data) {
+  return request({
+    url: "/insOrderPlan/addFactoryVerify",
+    method: "post",
+    data: data,
+  });
+}
+
+//鏌ヨ涓嶅悎鏍肩殑妫�楠岄」
+export function getInsProductUnqualified(query) {
+  return request({
+    url: "/insOrderPlan/getInsProductUnqualified",
+    method: "get",
+    params: query,
+  });
+}
+
+// 鎻愪氦闇�瑕佸娴嬬殑妫�楠岄」
+export function addUnqualifiedRetest(data) {
+  return request({
+    url: "/insOrderPlan/addUnqualifiedRetest",
+    method: "post",
+    data: data,
+  });
+}
+
+// 鏌ヨ妫�楠屼笅鍗曞唴瀹硅鎯�
+export function getInsOrder(query) {
+  return request({
+    url: "/insOrder/getInsOrder",
+    method: "get",
+    params: query,
+  });
+}
+
+// 鏌ョ湅OA璇︽儏
+export function getUnqualifiedHandler(query) {
+  return request({
+    url: "/unqualifiedHandler/getUnqualifiedHandler",
+    method: "get",
+    params: query,
+  });
+}
+
+// 涓嬭浇OA闄勪欢
+export function downFile(query) {
+  return request({
+    url: "/unqualifiedHandler/downFile",
+    method: "get",
+    params: query,
+  });
+}
+
+// 鎻愪氦涓嶅悎鏍煎鐞�
+export function addUnqualifiedHandler(data) {
+  return request({
+    url: "/unqualifiedHandler/addUnqualifiedHandler",
+    method: "post",
+    data: data,
+  });
+}
diff --git a/src/api/cnas/process/method/standardMethod.js b/src/api/cnas/process/method/standardMethod.js
index 737e740..0d64b8b 100644
--- a/src/api/cnas/process/method/standardMethod.js
+++ b/src/api/cnas/process/method/standardMethod.js
@@ -1,3 +1,4 @@
+// 瀹為獙瀹ょ殑妫�娴嬭兘鍔涙。妗堢浉鍏虫帴鍙�
 import request from "@/utils/request";
 
 //鑾峰彇鏍囧噯鏂规硶鍒楄〃
diff --git a/src/api/performance/class.js b/src/api/performance/class.js
index b61e395..8555eb1 100644
--- a/src/api/performance/class.js
+++ b/src/api/performance/class.js
@@ -1,3 +1,5 @@
+// 鐝鐩稿叧鎺ュ彛
+
 import request from "@/utils/request";
 
 // 缁╂晥绠$悊-鐝-鍒嗛〉鏌ヨ
diff --git a/src/api/performance/manHour.js b/src/api/performance/manHour.js
index 4ba20ae..2c9d05c 100644
--- a/src/api/performance/manHour.js
+++ b/src/api/performance/manHour.js
@@ -1,3 +1,5 @@
+// 宸ユ椂绠$悊鐩稿叧鎺ュ彛
+
 import request from "@/utils/request";
 
 // 鏌ヨ宸ユ椂姹囨��
diff --git a/src/api/standard/model.js b/src/api/standard/model.js
index 5bbe405..cf85e09 100644
--- a/src/api/standard/model.js
+++ b/src/api/standard/model.js
@@ -1,3 +1,5 @@
+// 鍘熷璁板綍妯℃澘鐩稿叧鎺ュ彛
+
 import request from "@/utils/request";
 
 // 鏌ヨ瀹㈡埛鍒楄〃
diff --git a/src/api/standard/standardLibrary.js b/src/api/standard/standardLibrary.js
index 184ee68..ad374ed 100644
--- a/src/api/standard/standardLibrary.js
+++ b/src/api/standard/standardLibrary.js
@@ -1,3 +1,5 @@
+// 鏍囧噯搴撶浉鍏虫帴鍙�
+
 import request from "@/utils/request";
 
 // 鏍囧噯搴撴爲鎺掑簭
diff --git a/src/views/business/inspectionTask/index.vue b/src/views/business/inspectionTask/index.vue
index 6dccaa2..c9639da 100644
--- a/src/views/business/inspectionTask/index.vue
+++ b/src/views/business/inspectionTask/index.vue
@@ -89,7 +89,7 @@
 </style>
 <template>
   <div class="ins-order-plan-main">
-    <div v-show="activeFace == 0" style="height: 100%">
+    <div style="height: 100%">
       <div class="search">
         <div class="search_thing">
           <div class="search_label">濮旀墭缂栧彿锛�</div>
@@ -178,31 +178,6 @@
         <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"
@@ -261,13 +236,7 @@
 </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 {
@@ -286,13 +255,7 @@
 export default {
   components: {
     EditInspectionItem,
-    // CopperOrder,
-    // ShowInfo,
-    ValueTable,
     limsTable,
-    // Inspection,
-    // Add,
-    // CustomsInspection,
   },
   dicts: ["urgency_level", "inspection_task_state"],
   computed: {
@@ -384,14 +347,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) {
@@ -413,6 +377,7 @@
         {
           label: "妫�楠岀被鍨�",
           prop: "orderType",
+          width: "100px",
           dataType: "tag",
           formatData: (params) => {
             return this.orderTypeList.find((m) => m.value == params).label;
@@ -794,6 +759,39 @@
       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;
+      }
+
     },
     playOrder(num) {
       this.activeFace = num;
@@ -843,6 +841,16 @@
       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;
diff --git a/src/views/business/inspectionTask/inspection.vue b/src/views/business/inspectionTask/inspection.vue
index 6ae2972..0ed826a 100644
--- a/src/views/business/inspectionTask/inspection.vue
+++ b/src/views/business/inspectionTask/inspection.vue
@@ -1,5 +1,5 @@
 <template>
-  <div v-loading="loading" class="inspection">
+  <div v-loading="loading" class="inspection" style="background-color: rgb(245, 247, 251);">
     <el-row class="title">
       <el-col :span="8" style="text-align: left">
         <el-form :inline="true" :model="otherForm" class="form-inline" label-width="50px"
@@ -17,7 +17,7 @@
         </el-form>
       </el-col>
       <el-col :span="16" style="text-align: right">
-        <!-- <el-button size="small" type="primary" @click="refreshView">鍒锋柊</el-button> -->
+        <el-button size="small" type="primary" @click="refreshView">鍒锋柊</el-button>
         <el-button v-if="typeSource === 1" size="small" type="primary" @click="openPurchase">杩涜揣楠岃瘉</el-button>
         <el-button v-if="state === 1 && typeSource === 1" size="small" type="primary"
           @click="openUnPassDialog('add')">涓嶅悎鏍煎鐞�</el-button>
@@ -31,7 +31,7 @@
         <el-button v-if="state == 2" size="medium" type="primary" @click="openAddCheck">閫氳繃</el-button>
         <el-button v-if="state == 2" size="medium" @click="upInsReview(0)">涓嶉�氳繃</el-button>
         <el-button type="primary" size="small" @click="exportTable('myTable')">涓嬭浇鍘熷璁板綍</el-button>
-        <el-button size="small" @click="$emit('goback')">杩斿洖</el-button>
+        <el-button size="small" @click="goback">杩斿洖</el-button>
       </el-col>
     </el-row>
     <div class="search">
@@ -78,7 +78,6 @@
           <!-- <el-tag v-if="currentKey">{{ insOrder.remark }}</el-tag> -->
         </el-form-item>
       </el-form>
-      <el-divider></el-divider>
     </div>
     <div class="center">
       <div class="search" style="
@@ -292,7 +291,7 @@
                       state == 1
                     "><span :style="`font-family:${n.v.ff} !important;`">{{
                       toFixed(n.v.v, n.v.ct)
-                        }}</span></template>
+                    }}</span></template>
                     <template v-else-if="
                       n.v.ps != undefined &&
                       n.v.ps.value === '鏈�缁堝��' &&
@@ -505,44 +504,25 @@
         <el-button :loading="reviewLoading" type="primary" @click="upInsReview(1)">纭� 瀹�</el-button>
       </span>
     </el-dialog>
-    <!-- <add-un-pass v-if="addUnPassDialog" ref="addUnPassDialog" :addUnPassDialog="addUnPassDialog"
-      @resetAddUnPass="resetAddUnPass"></add-un-pass> -->
-    <!-- <UnPassDialog
-      v-if="unPassDialog"
-      ref="unPassDialog"
-      :orderId="orderId"
-      :unPassDialog="unPassDialog"
-      @resetForm="resetForm"
-    ></UnPassDialog> -->
-    <!-- <InspectionWord
-      v-if="unPassCheck"
-      :inspectorList="inspectorList"
-      :orderId="orderId"
-      :rawMaterialTag="rawMaterialTag"
-      :sonLaboratory="sonLaboratory"
-      :state="state"
-      :typeSource="typeSource"
-      :unPassCheck="unPassCheck"
-      @closeUnPassCheckDialog="closeUnPassCheckDialog"
-      @refreshView="refreshView"
-    /> -->
-    <!-- <purchase-verification
-      v-if="purchaseDialog"
-      ref="purchaseDialog"
-      :orderId="orderId"
-      :purchaseDialog="purchaseDialog"
-      @resetPurchaseDialog="resetPurchaseDialog"
-    ></purchase-verification> -->
+    <add-un-pass v-if="addUnPassDialog" ref="addUnPassDialog" :addUnPassDialog="addUnPassDialog"
+      @resetAddUnPass="resetAddUnPass"></add-un-pass>
+    <UnPassDialog v-if="unPassDialog" ref="unPassDialog" :orderId="orderId" :unPassDialog="unPassDialog"
+      @resetForm="resetForm"></UnPassDialog>
+    <!-- <InspectionWord v-if="unPassCheck" :inspectorList="inspectorList" :orderId="orderId"
+      :rawMaterialTag="rawMaterialTag" :sonLaboratory="sonLaboratory" :state="state" :typeSource="typeSource"
+      :unPassCheck="unPassCheck" @closeUnPassCheckDialog="closeUnPassCheckDialog" @refreshView="refreshView" /> -->
+    <purchase-verification v-if="purchaseDialog" ref="purchaseDialog" :orderId="orderId"
+      :purchaseDialog="purchaseDialog" @resetPurchaseDialog="resetPurchaseDialog"></purchase-verification>
   </div>
 </template>
 
 <script>
 import excelFunction from "@/utils/excelFountion";
 import limsTable from "@/components/Table/lims-table.vue";
-// import UnPassDialog from "../b1-unpass-manage/unPassDialog.vue";
-// import AddUnPass from "../b1-unpass-manage/addUnPass.vue";
-// import InspectionWord from "./InspectionWord.vue";
-// import PurchaseVerification from "../b1-unpass-manage/PurchaseVerification.vue";
+import UnPassDialog from "../unpass/components/addUnPass.vue";
+import AddUnPass from "../unpass/components/addUnPass.vue";
+// import InspectionWord from "./components/InspectionWord.vue";
+import PurchaseVerification from "../unpass/components/PurchaseVerification.vue";
 import {
   doInsOrder,
   getCableTag,
@@ -567,12 +547,11 @@
 import html2canvas from "html2canvas";
 import { mapGetters } from "vuex";
 export default {
-  // props: ["sonLaboratory", "orderId", "state", "inspectorList", "typeSource"],
   components: {
-    // PurchaseVerification,
-    // AddUnPass,
+    PurchaseVerification,
+    AddUnPass,
     limsTable,
-    // UnPassDialog,
+    UnPassDialog,
     // InspectionWord,
   },
   data() {
@@ -821,65 +800,7 @@
   watch: {
     // 鐩戝惉浠诲姟id锛岃幏鍙栦换鍔′俊鎭�
     id(val) {
-      this.loading = true;
-      doInsOrder({
-        id: val,
-        laboratory: this.sonLaboratory,
-      }).then(async (res) => {
-        this.insOrder = res.data.insOrder;
-        this.supplierDensity = res.data.supplierDensity;
-        this.getList()
-        this.urgentList.forEach((m) => {
-          if (m.value == this.insOrder.type) {
-            this.insOrder.typeName = m.label;
-          }
-        });
-        this.loading = false;
-        if (!res.data.sampleProduct || res.data.sampleProduct.length == 0) {
-          this.$emit("goback");
-          return this.$message.error("璇ヤ换鍔℃病鏈夋牱鍝佷俊鎭�");
-        }
-        // 璧嬪�煎綋鍓嶆牱鍝佸垪琛�
-        this.sampleProduct = res.data.sampleProduct;
-        this.currentSample = this.HaveJson(this.sampleProduct[0]);
-        let insProduct = this.HaveJson(this.currentSample.insProduct);
-        // 娓╁害銆佹箍搴﹁祴鍊�
-        this.otherForm = {
-          temperature: this.insOrder.temperature
-            ? this.insOrder.temperature
-            : null,
-          humidity: this.insOrder.humidity ? this.insOrder.humidity : null,
-        };
-        if (this.typeSource == "1") {
-          this.getRawMaterialTag(this.currentSample.id); // 鍘熸潗鏂欑殑妫�楠屼换鍔℃煡璇㈡壒鏁�
-          this.rawMaterialTag = "1";
-        }
-        this.getEquipOptions(1);
-        // 鑾峰彇褰撳墠鏍峰搧鐨勬楠岄」
-        let list = await this.getCurrentProduct(this.currentSample.id, 0);
-        this.currentSample.insProduct = this.HaveJson(list);
-        // 鍒濆鍖栦紶閫掑埌鍚庣鐨勫弬鏁�
-        this.param = {};
-        this.changeType = 0;
-        this.currentSample.insProduct.forEach((a) => {
-          this.param[a.id] = {
-            insValue: [],
-            comValue: [],
-            resValue: null,
-            equipValue: [],
-            equipName: [],
-            insResult: null,
-          };
-        });
-        if (this.currentSample.index == undefined)
-          this.currentSample["index"] = 1;
-        let bushing = this.currentSample.bushing;
-        this.getTableLists(); //澶勭悊妯℃澘鍒楄〃淇℃伅
-
-        this.currentKey = 1;
-        this.getCableTag(this.currentSample.id); // 鏌ヨ鏄惁鏈夎澶氭妫�楠岀殑鐢电紗閰嶇疆
-        this.getRepetitionTag(this.currentSample.id); // 鏌ヨ鏄惁鏈夎閲嶅妫�楠岄」
-      });
+      this.refreshView()
     },
     // 鐩戝惉褰撳墠妯℃澘鍙樺寲
     currentTable(val1, val0) {
@@ -1009,9 +930,67 @@
       this.checkUser = "";
     },
     // 鍒锋柊椤甸潰
-    // refreshView() {
-    //   this.$emit("refreshView");
-    // },
+    refreshView() {
+      this.loading = true;
+      doInsOrder({
+        id: this.id,
+        laboratory: this.sonLaboratory,
+      }).then(async (res) => {
+        this.insOrder = res.data.insOrder;
+        this.supplierDensity = res.data.supplierDensity;
+        this.getList()
+        this.urgentList.forEach((m) => {
+          if (m.value == this.insOrder.type) {
+            this.insOrder.typeName = m.label;
+          }
+        });
+        this.loading = false;
+        if (!res.data.sampleProduct || res.data.sampleProduct.length == 0) {
+          this.goback();
+          return this.$message.error("璇ヤ换鍔℃病鏈夋牱鍝佷俊鎭�");
+        }
+        // 璧嬪�煎綋鍓嶆牱鍝佸垪琛�
+        this.sampleProduct = res.data.sampleProduct;
+        this.currentSample = this.HaveJson(this.sampleProduct[0]);
+        let insProduct = this.HaveJson(this.currentSample.insProduct);
+        // 娓╁害銆佹箍搴﹁祴鍊�
+        this.otherForm = {
+          temperature: this.insOrder.temperature
+            ? this.insOrder.temperature
+            : null,
+          humidity: this.insOrder.humidity ? this.insOrder.humidity : null,
+        };
+        if (this.typeSource == "1") {
+          this.getRawMaterialTag(this.currentSample.id); // 鍘熸潗鏂欑殑妫�楠屼换鍔℃煡璇㈡壒鏁�
+          this.rawMaterialTag = "1";
+        }
+        this.getEquipOptions(1);
+        // 鑾峰彇褰撳墠鏍峰搧鐨勬楠岄」
+        let list = await this.getCurrentProduct(this.currentSample.id, 0);
+        this.currentSample.insProduct = this.HaveJson(list);
+        // 鍒濆鍖栦紶閫掑埌鍚庣鐨勫弬鏁�
+        this.param = {};
+        this.changeType = 0;
+        this.currentSample.insProduct.forEach((a) => {
+          this.param[a.id] = {
+            insValue: [],
+            comValue: [],
+            resValue: null,
+            equipValue: [],
+            equipName: [],
+            insResult: null,
+          };
+        });
+        if (this.currentSample.index == undefined)
+          this.currentSample["index"] = 1;
+        let bushing = this.currentSample.bushing;
+        this.getTableLists(); //澶勭悊妯℃澘鍒楄〃淇℃伅
+
+        this.currentKey = 1;
+        this.getCableTag(this.currentSample.id); // 鏌ヨ鏄惁鏈夎澶氭妫�楠岀殑鐢电紗閰嶇疆
+        this.getRepetitionTag(this.currentSample.id); // 鏌ヨ鏄惁鏈夎閲嶅妫�楠岄」
+      });
+    },
     closeUnPassCheckDialog() {
       this.unPassCheck = false;
     },
@@ -2565,7 +2544,7 @@
         }).then((res) => {
           if (res.code === 200) {
             this.$message.success("鎿嶄綔鎴愬姛");
-            this.$emit("goback");
+            this.goback();
             this.addCheck = false;
           }
           this.reviewLoading = false;
@@ -2590,7 +2569,7 @@
         }).then((res) => {
           if (res.code === 200) {
             this.$message.success("鎿嶄綔鎴愬姛");
-            this.$emit("goback");
+            this.goback();
           }
           this.reviewLoading = false;
         })
@@ -2631,7 +2610,7 @@
             }).then((res) => {
               if (res.code === 200) {
                 this.$message.success("鎿嶄綔鎴愬姛");
-                this.$emit("goback");
+                this.goback();
                 this.submitLoading = false;
                 this.addVerifyDia = false;
               }
@@ -2683,7 +2662,7 @@
                   if (res.code === 200) {
                     this.$message.success("鎿嶄綔鎴愬姛");
                     this.addVerifyDia = false;
-                    this.$emit("goback");
+                    this.goback();
                   }
                   this.submitLoading = false;
                 })
@@ -2926,14 +2905,13 @@
         return v;
       }
     },
+    goback() {
+      this.$tab.closeOpenPage({ path: "/business/inspectionTask" });
+    }
   },
 };
 </script>
 <style scoped>
->>>.el-divider {
-  margin: 0 !important;
-}
-
 .custom-table .el-table__header-wrapper th {
   background-color: #87ceeb;
   /* 鍙甯︽湁my-custom-table绫荤殑琛ㄦ牸鐢熸晥 */
@@ -2969,6 +2947,7 @@
   width: 100%;
   background-color: #fff;
   border-radius: 3px;
+  margin-bottom: 10px;
 }
 
 .search .form-inline {
@@ -3136,9 +3115,9 @@
 }
 </style>
 <style>
-.inspection .el-form-item__label {
+/* .inspection .el-form-item__label {
   color: #000;
-}
+} */
 
 .inspection .el-drawer__header::before {
   content: "";
diff --git a/src/views/business/materialOrder/index.vue b/src/views/business/materialOrder/index.vue
index e0b3b07..45c4936 100644
--- a/src/views/business/materialOrder/index.vue
+++ b/src/views/business/materialOrder/index.vue
@@ -3,60 +3,50 @@
     <div>
       <div class="search">
         <el-form :model="entity" ref="entity" size="small" :inline="true"><el-form-item label="鎵瑰彿" prop="updateBatchNo">
-          <el-input v-model="entity.updateBatchNo" clearable placeholder="璇疯緭鍏�"
-                    size="small"
-                    @keyup.enter.native="refreshTable">
-          </el-input>
-        </el-form-item><el-form-item label="濮旀墭缂栧彿" prop="entrustCode">
-          <el-input v-model="entity.entrustCode" clearable placeholder="璇疯緭鍏�"
-                    size="small"
-                    @keyup.enter.native="refreshTable">
-          </el-input>
-        </el-form-item><el-form-item label="闆朵欢鍙�" prop="partNo">
-          <el-input v-model="entity.partNo" clearable placeholder="璇疯緭鍏�"
-                    size="small"
-                    @keyup.enter.native="refreshTable">
-          </el-input>
-        </el-form-item><el-form-item label="闆朵欢鎻忚堪" prop="partDesc">
-          <el-input v-model="entity.partDesc" clearable placeholder="璇疯緭鍏�"
-                    size="small"
-                    @keyup.enter.native="refreshTable">
-          </el-input>
-        </el-form-item>
+            <el-input v-model="entity.updateBatchNo" clearable placeholder="璇疯緭鍏�" size="small"
+              @keyup.enter.native="refreshTable">
+            </el-input>
+          </el-form-item><el-form-item label="濮旀墭缂栧彿" prop="entrustCode">
+            <el-input v-model="entity.entrustCode" clearable placeholder="璇疯緭鍏�" size="small"
+              @keyup.enter.native="refreshTable">
+            </el-input>
+          </el-form-item><el-form-item label="闆朵欢鍙�" prop="partNo">
+            <el-input v-model="entity.partNo" clearable placeholder="璇疯緭鍏�" size="small"
+              @keyup.enter.native="refreshTable">
+            </el-input>
+          </el-form-item><el-form-item label="闆朵欢鎻忚堪" prop="partDesc">
+            <el-input v-model="entity.partDesc" clearable placeholder="璇疯緭鍏�" size="small"
+              @keyup.enter.native="refreshTable">
+            </el-input>
+          </el-form-item>
           <el-form-item>
-            <el-button v-if="tabIndex === 2 || tabIndex === 3 || tabIndex === 4" :icon="!more?'el-icon-arrow-down':'el-icon-arrow-up'" style="color: #3A7BFA;" type="text" @click="more=!more">{{!more?'鏇村':'鏀惰捣'}}</el-button>
+            <el-button v-if="tabIndex === 2 || tabIndex === 3 || tabIndex === 4"
+              :icon="!more ? 'el-icon-arrow-down' : 'el-icon-arrow-up'" style="color: #3A7BFA;" type="text"
+              @click="more = !more">{{ !more ? '鏇村' : '鏀惰捣' }}</el-button>
             <el-button size="mini" type="primary" @click="refreshTable()">鏌ヨ</el-button>
             <el-button size="mini" @click="refresh()">閲嶇疆</el-button>
           </el-form-item>
-          <el-form-item label="渚涘簲鍟嗗悕绉�" prop="supplierName" v-if="(tabIndex === 2 || tabIndex === 3 || tabIndex === 4) && more">
-            <el-input v-model="entity.supplierName" clearable placeholder="璇疯緭鍏�"
-                      size="small"
-                      @keyup.enter.native="refreshTable">
+          <el-form-item label="渚涘簲鍟嗗悕绉�" prop="supplierName"
+            v-if="(tabIndex === 2 || tabIndex === 3 || tabIndex === 4) && more">
+            <el-input v-model="entity.supplierName" clearable placeholder="璇疯緭鍏�" size="small"
+              @keyup.enter.native="refreshTable">
             </el-input>
           </el-form-item>
-          <el-form-item label="鏍峰搧鍨嬪彿" prop="sampleModel" v-if="(tabIndex === 2 || tabIndex === 3 || tabIndex === 4) && more">
-            <el-input v-model="entity.sampleModel" clearable placeholder="璇疯緭鍏�"
-                      size="small"
-                      @keyup.enter.native="refreshTable">
+          <el-form-item label="鏍峰搧鍨嬪彿" prop="sampleModel"
+            v-if="(tabIndex === 2 || tabIndex === 3 || tabIndex === 4) && more">
+            <el-input v-model="entity.sampleModel" clearable placeholder="璇疯緭鍏�" size="small"
+              @keyup.enter.native="refreshTable">
             </el-input>
           </el-form-item>
-          <el-form-item label="妫�楠岀姸鎬�" prop="inspectStatus" v-if="(tabIndex === 2 || tabIndex === 3 || tabIndex === 4) && more">
-            <el-select v-model="entity.inspectStatus" clearable
-                       size="small" @change="refreshTable()">
+          <el-form-item label="妫�楠岀姸鎬�" prop="inspectStatus"
+            v-if="(tabIndex === 2 || tabIndex === 3 || tabIndex === 4) && more">
+            <el-select v-model="entity.inspectStatus" clearable size="small" @change="refreshTable()">
               <el-option v-for="(a, i) in inspectStatusList" :key="i" :label="a.label" :value="a.value"></el-option>
             </el-select>
           </el-form-item>
           <el-form-item label="涓嬪彂鏃堕棿" prop="date" v-if="(tabIndex === 2 || tabIndex === 3 || tabIndex === 4) && more">
-            <el-date-picker
-              v-model="entity.date"
-              end-placeholder="缁撴潫鏃ユ湡"
-              format="yyyy-MM-dd"
-              placeholder="閫夋嫨鏃ユ湡"
-              range-separator="鑷�"
-              size="small"
-              start-placeholder="寮�濮嬫棩鏈�"
-              type="daterange"
-              value-format="yyyy-MM-dd">
+            <el-date-picker v-model="entity.date" end-placeholder="缁撴潫鏃ユ湡" format="yyyy-MM-dd" placeholder="閫夋嫨鏃ユ湡"
+              range-separator="鑷�" size="small" start-placeholder="寮�濮嬫棩鏈�" type="daterange" value-format="yyyy-MM-dd">
             </el-date-picker>
           </el-form-item>
         </el-form>
@@ -65,48 +55,45 @@
         <div class="table-tab">
           <div>
             <ul class="tab">
-              <li v-for="(m,i) in tabList" :key="m.value" :class="{active:m.value===tabIndex}" @click="handleTab(m)">{{m.label}}</li>
+              <li v-for="(m, i) in tabList" :key="m.value" :class="{ active: m.value === tabIndex }" @click="handleTab(m)">
+                {{ m.label }}</li>
             </ul>
           </div>
           <div>
-            <el-button v-show="tabIndex === 3 || tabIndex === 2" :loading="outLoading" size="small" type="primary" @click="handleOut">瀵煎嚭</el-button>
+            <el-button v-show="tabIndex === 3 || tabIndex === 2" :loading="outLoading" size="small" type="primary"
+              @click="handleOut">瀵煎嚭</el-button>
             <el-button v-if="tabIndex === 0" size="small" type="primary" @click="copper">閾滄潗鏂欎笅鍗�</el-button>
             <el-button v-if="tabIndex !== 0" size="small" type="primary" @click="openPrint">鏍囩鎵撳嵃</el-button>
           </div>
         </div>
         <!--寰呬笅鍗�-->
         <div class="table">
-          <lims-table :tableData="tableData" :column="column" v-if="tabIndex === 0"
-            @pagination="pagination" :height="'calc(100vh - 290px)'" key="tableData"
-            :page="page" :tableLoading="tableLoading"></lims-table>
+          <lims-table :tableData="tableData" :column="column" v-if="tabIndex === 0" @pagination="pagination"
+            :height="'calc(100vh - 290px)'" key="tableData" :page="page" :tableLoading="tableLoading"></lims-table>
         </div>
         <!--妫�楠屼腑-->
         <div class="table">
-          <lims-table :tableData="tableData1" :column="column1" v-if="tabIndex === 1"
-                      :isSelection="true" :handleSelectionChange="selectMethod"
-                      @pagination="pagination1" :height="'calc(100vh - 290px)'" key="tableData1"
-                      :page="page1" :tableLoading="tableLoading1"></lims-table>
+          <lims-table :tableData="tableData1" :column="column1" v-if="tabIndex === 1" :isSelection="true"
+            :handleSelectionChange="selectMethod" @pagination="pagination1" :height="'calc(100vh - 290px)'"
+            key="tableData1" :page="page1" :tableLoading="tableLoading1"></lims-table>
         </div>
         <!--宸叉楠�-->
         <div class="table">
-          <lims-table :tableData="tableData2" :column="column2" v-if="tabIndex === 2"
-                      :isSelection="true" :handleSelectionChange="selectMethod"
-                      @pagination="pagination2" :height="'calc(100vh - 290px)'" key="tableData2"
-                      :page="page2" :tableLoading="tableLoading2"></lims-table>
+          <lims-table :tableData="tableData2" :column="column2" v-if="tabIndex === 2" :isSelection="true"
+            :handleSelectionChange="selectMethod" @pagination="pagination2" :height="'calc(100vh - 290px)'"
+            key="tableData2" :page="page2" :tableLoading="tableLoading2"></lims-table>
         </div>
         <!--鍏ㄩ儴-->
         <div class="table">
-          <lims-table :tableData="tableData3" :column="column3" v-if="tabIndex === 3"
-                      :isSelection="true" :handleSelectionChange="selectMethod"
-                      @pagination="pagination3" :height="'calc(100vh - 290px)'" key="tableData3"
-                      :page="page3" :tableLoading="tableLoading3"></lims-table>
+          <lims-table :tableData="tableData3" :column="column3" v-if="tabIndex === 3" :isSelection="true"
+            :handleSelectionChange="selectMethod" @pagination="pagination3" :height="'calc(100vh - 290px)'"
+            key="tableData3" :page="page3" :tableLoading="tableLoading3"></lims-table>
         </div>
         <!--瀛e害妫�楠�-->
         <div class="table">
-          <lims-table :tableData="tableData4" :column="column4" v-if="tabIndex === 4"
-                      :isSelection="true" :handleSelectionChange="selectMethod"
-                      @pagination="pagination4" :height="'calc(100vh - 290px)'" key="tableData4"
-                      :page="page4" :tableLoading="tableLoading4"></lims-table>
+          <lims-table :tableData="tableData4" :column="column4" v-if="tabIndex === 4" :isSelection="true"
+            :handleSelectionChange="selectMethod" @pagination="pagination4" :height="'calc(100vh - 290px)'"
+            key="tableData4" :page="page4" :tableLoading="tableLoading4"></lims-table>
         </div>
       </div>
     </div>
@@ -114,9 +101,8 @@
     <el-dialog :visible.sync="exemptionVisible" title="纭鍏嶆" width="42%">
       <div style="display: flex">
         <span style="width: 90px; line-height: 32px">瑙勬牸鍨嬪彿锛�</span>
-        <el-input v-model="exemptionInfo.partDetail" clearable placeholder="璇疯緭鍏�"
-                  size="small"
-                  @keyup.enter.native="refreshTable"></el-input>
+        <el-input v-model="exemptionInfo.partDetail" clearable placeholder="璇疯緭鍏�" size="small"
+          @keyup.enter.native="refreshTable"></el-input>
       </div>
       <span slot="footer" class="dialog-footer">
         <el-row>
@@ -128,13 +114,14 @@
     <!-- 鎾ら攢鎶ユ -->
     <el-dialog :visible.sync="declareDialogVisible" title="鎶ユ鎾ら攢" width="30%">
       <p style="font-size:16px;color:#333333">鎵瑰彿<span
-        style="color:#34BD66">{{this.insOrderRow.updateBatchNo}}</span>鐨勪俊鎭槸鍚�<span style="color: #FF4902">鎾ら攢鎶ユ</span></p>
+          style="color:#34BD66">{{ this.insOrderRow.updateBatchNo }}</span>鐨勪俊鎭槸鍚�<span style="color: #FF4902">鎾ら攢鎶ユ</span>
+      </p>
       <span slot="footer" class="dialog-footer">
-					<el-row>
-						<el-button @click="declareDialogVisible = false">鍙� 娑�</el-button>
-						<el-button :loading="upLoad" type="primary" @click="submitDeclare">纭� 瀹�</el-button>
-					</el-row>
-				</span>
+        <el-row>
+          <el-button @click="declareDialogVisible = false">鍙� 娑�</el-button>
+          <el-button :loading="upLoad" type="primary" @click="submitDeclare">纭� 瀹�</el-button>
+        </el-row>
+      </span>
     </el-dialog>
     <!-- 鎾ら攢涓嬪崟 -->
     <el-dialog :visible.sync="quashDialogVisible" title="涓嬪崟鎾ら攢" width="30%">
@@ -155,42 +142,37 @@
       </span>
     </el-dialog>
     <!--鏍囩鎵撳嵃寮规-->
-    <print-dialog v-if="printDialog" ref="printDialog"
-                  :printDialog="printDialog"
-                  @closePrintDialog="closePrintDialog"></print-dialog>
+    <print-dialog v-if="printDialog" ref="printDialog" :printDialog="printDialog"
+      @closePrintDialog="closePrintDialog"></print-dialog>
     <!--鏁版嵁鏌ョ湅寮规-->
-    <data-look-visible v-if="dataDialogVisible" ref="dataDialogVisible"
-                       :dataDialogVisible="dataDialogVisible"
-                       :dataLookInfo="dataLookInfo" @closeDataLook="closeDataLook"></data-look-visible>
+    <data-look-visible v-if="dataDialogVisible" ref="dataDialogVisible" :dataDialogVisible="dataDialogVisible"
+      :dataLookInfo="dataLookInfo" @closeDataLook="closeDataLook"></data-look-visible>
     <!--闄勪欢鏌ョ湅寮规-->
-    <files-look-visible v-if="filesDialogVisible" ref="filesDialogVisible"
-                        :filesDialogVisible="filesDialogVisible"
-                        :filesLookInfo="filesLookInfo" @closeFilesLook="closeFilesLook"></files-look-visible>
+    <files-look-visible v-if="filesDialogVisible" ref="filesDialogVisible" :filesDialogVisible="filesDialogVisible"
+      :filesLookInfo="filesLookInfo" @closeFilesLook="closeFilesLook"></files-look-visible>
     <!--鎶ュ憡涓嬭浇寮规-->
     <down-file-dialog v-if="downFileDialogVisible" ref="downFileDialogVisible"
-                      :downFileDialogVisible="downFileDialogVisible"
-                      :downLoadInfo="downLoadInfo" @closeDownFileDialog="closeDownFileDialog"></down-file-dialog>
+      :downFileDialogVisible="downFileDialogVisible" :downLoadInfo="downLoadInfo"
+      @closeDownFileDialog="closeDownFileDialog"></down-file-dialog>
     <!--浜т笟閾句俊鎭煡鐪�-->
     <ShowInfo v-if="showInfoDialog" ref="showInfoDialog" :showInfoDialog="showInfoDialog"></ShowInfo>
     <!--妫�楠屼换鍔′俊鎭煡鐪�-->
     <el-dialog :visible.sync="InspectInfoDialog" title="鏁版嵁鏌ョ湅" width="400px" @closed="closeInsInfoDialog">
       <div style="margin-bottom: 8px">
         <span style="font-size: 16px;">杩涘巶妫�楠屽師濮嬫暟鎹�</span>
-        <el-link :disabled="!insInfo.enterOrderId" :underline="false"
-                 style="vertical-align: bottom;margin-left: 6px"
-                 type="primary" @click="viewInsInfo0">鏌ョ湅</el-link>
+        <el-link :disabled="!insInfo.enterOrderId" :underline="false" style="vertical-align: bottom;margin-left: 6px"
+          type="primary" @click="viewInsInfo0">鏌ョ湅</el-link>
       </div>
       <div>
-        <span  style="font-size: 16px;">瀛e害妫�楠屽師濮嬫暟鎹�</span>
-        <el-link :disabled="!insInfo.quarterOrderId" :underline="false"
-                 style="vertical-align: bottom;margin-left: 6px"
-                 type="primary" @click="viewInsInfo1">鏌ョ湅</el-link>
+        <span style="font-size: 16px;">瀛e害妫�楠屽師濮嬫暟鎹�</span>
+        <el-link :disabled="!insInfo.quarterOrderId" :underline="false" style="vertical-align: bottom;margin-left: 6px"
+          type="primary" @click="viewInsInfo1">鏌ョ湅</el-link>
       </div>
     </el-dialog>
-<!--    <Inspection v-if="state>0" :key="InspectionKey" :inspectorList="inspectorList" :orderId="orderId"-->
-<!--                :sonLaboratory="'鍘熸潗鏂�'" :state="state"-->
-<!--                :typeSource="typeSource"-->
-<!--                @goback="goback" @refreshView="refreshView"/>-->
+    <!--    <Inspection v-if="state>0" :key="InspectionKey" :inspectorList="inspectorList" :orderId="orderId"-->
+    <!--                :sonLaboratory="'鍘熸潗鏂�'" :state="state"-->
+    <!--                :typeSource="typeSource"-->
+    <!--                @goback="goback" @refreshView="refreshView"/>-->
   </div>
 </template>
 
@@ -213,22 +195,22 @@
   revokeInspectionReport,
   updateEntrustCode
 } from "@/api/business/rawMaterialOrder";
-import {getWarehouseSubmit} from "@/api/business/materialInspection";
+import { getWarehouseSubmit } from "@/api/business/materialInspection";
 // import Inspection from "../do/b1-inspect-order-plan/Inspection.vue";
 
 export default {
   name: "b1-material-inspection-order",
   // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
-  components: {limsTable,DownFileDialog, FilesLookVisible, DataLookVisible, ShowInfo, PrintDialog},
+  components: { limsTable, DownFileDialog, FilesLookVisible, DataLookVisible, ShowInfo, PrintDialog },
   data() {
     // 杩欓噷瀛樻斁鏁版嵁
     return {
       tableData: [],
       tableLoading: false,
       column: [
-        {label: '鎵瑰彿', prop: 'updateBatchNo'},
-        {label: '闆朵欢鍙�', prop: 'partNo'},
-        {label: '闆朵欢鎻忚堪', prop: 'partDesc'},
+        { label: '鎵瑰彿', prop: 'updateBatchNo' },
+        { label: '闆朵欢鍙�', prop: 'partNo' },
+        { label: '闆朵欢鎻忚堪', prop: 'partDesc' },
         {
           dataType: 'tag',
           label: '鐗╂枡绫诲瀷',
@@ -248,11 +230,11 @@
             }
           }
         },
-        {label: '鎶佃揪鐨勯噰璐暟閲�', prop: 'qtyArrived'},
-        {label: '鍗曚綅', prop: 'buyUnitMeas'},
-        {label: '璁㈠崟鍙�', prop: 'orderNo'},
-        {label: '鎺ユ敹鏃堕棿', prop: 'receiverDate'},
-        {label: '鎶ユ鏃堕棿', prop: 'declareDate'},
+        { label: '鎶佃揪鐨勯噰璐暟閲�', prop: 'qtyArrived' },
+        { label: '鍗曚綅', prop: 'buyUnitMeas' },
+        { label: '璁㈠崟鍙�', prop: 'orderNo' },
+        { label: '鎺ユ敹鏃堕棿', prop: 'receiverDate' },
+        { label: '鎶ユ鏃堕棿', prop: 'declareDate' },
         {
           dataType: 'action',
           fixed: 'right',
@@ -283,21 +265,21 @@
         }
       ],
       page: {
-        total:0,
-        size:10,
-        current:1
+        total: 0,
+        size: 10,
+        current: 1
       },
       tableData1: [],
       tableLoading1: false,
       column1: [
-        {label: '鎵瑰彿', prop: 'updateBatchNo'},
-        {label: '濮旀墭缂栧彿', prop: 'entrustCode'},
-        {label: '闆朵欢鍙�', prop: 'partNo'},
-        {label: '闆朵欢鎻忚堪', prop: 'partDesc'},
-        {label: '鏍峰搧鍚嶇О', prop: 'sampleName'},
-        {label: '鏍峰搧鍨嬪彿', prop: 'sampleModel'},
-        {label: '妫�楠屼汉', prop: 'userName'},
-        {label: '涓嬪彂鏃堕棿', prop: 'sendTime'},
+        { label: '鎵瑰彿', prop: 'updateBatchNo' },
+        { label: '濮旀墭缂栧彿', prop: 'entrustCode' },
+        { label: '闆朵欢鍙�', prop: 'partNo' },
+        { label: '闆朵欢鎻忚堪', prop: 'partDesc' },
+        { label: '鏍峰搧鍚嶇О', prop: 'sampleName' },
+        { label: '鏍峰搧鍨嬪彿', prop: 'sampleModel' },
+        { label: '妫�楠屼汉', prop: 'userName' },
+        { label: '涓嬪彂鏃堕棿', prop: 'sendTime' },
         {
           dataType: 'tag',
           label: '鐗╂枡绫诲瀷',
@@ -317,11 +299,11 @@
             }
           }
         },
-        {label: '鎶佃揪鐨勯噰璐暟閲�', prop: 'qtyArrived'},
-        {label: '鍗曚綅', prop: 'buyUnitMeas'},
-        {label: '璁㈠崟鍙�', prop: 'orderNo'},
-        {label: '鎺ユ敹鏃堕棿', prop: 'receiverDate'},
-        {label: '鎶ユ鏃堕棿', prop: 'declareDate'},
+        { label: '鎶佃揪鐨勯噰璐暟閲�', prop: 'qtyArrived' },
+        { label: '鍗曚綅', prop: 'buyUnitMeas' },
+        { label: '璁㈠崟鍙�', prop: 'orderNo' },
+        { label: '鎺ユ敹鏃堕棿', prop: 'receiverDate' },
+        { label: '鎶ユ鏃堕棿', prop: 'declareDate' },
         {
           dataType: 'action',
           fixed: 'right',
@@ -352,27 +334,27 @@
         }
       ],
       page1: {
-        total:0,
-        size:10,
-        current:1
+        total: 0,
+        size: 10,
+        current: 1
       },
       tableData2: [],
       tableLoading2: false,
       column2: [
-        {label: '濮旀墭缂栧彿', prop: 'entrustCode'},
-        {label: '妫�楠岀姸鎬�', prop: 'inspectStatus'},
-        {label: '璁㈠崟鍙�', prop: 'orderNo'},
-        {label: '鎶佃揪鐨勯噰璐暟閲�', prop: 'qtyArrived'},
-        {label: '涓嬪彂鏃堕棿', prop: 'sendTime'},
-        {label: '鎵瑰彿', prop: 'updateBatchNo'},
-        {label: '闆朵欢鍙�', prop: 'partNo'},
-        {label: '闆朵欢鎻忚堪', prop: 'partDesc'},
-        {label: '渚涘簲鍟嗗悕绉�', prop: 'supplierName'},
-        {label: '涓嶅悎鏍兼弿杩�', prop: 'unqualifiedDesc'},
-        {label: '鍏嶆', prop: 'isExemption'},
-        {label: '鏍峰搧鍚嶇О', prop: 'sampleName'},
-        {label: '鏍峰搧鍨嬪彿', prop: 'sampleModel'},
-        {label: '妫�楠屼汉', prop: 'userName'},
+        { label: '濮旀墭缂栧彿', prop: 'entrustCode' },
+        { label: '妫�楠岀姸鎬�', prop: 'inspectStatus' },
+        { label: '璁㈠崟鍙�', prop: 'orderNo' },
+        { label: '鎶佃揪鐨勯噰璐暟閲�', prop: 'qtyArrived' },
+        { label: '涓嬪彂鏃堕棿', prop: 'sendTime' },
+        { label: '鎵瑰彿', prop: 'updateBatchNo' },
+        { label: '闆朵欢鍙�', prop: 'partNo' },
+        { label: '闆朵欢鎻忚堪', prop: 'partDesc' },
+        { label: '渚涘簲鍟嗗悕绉�', prop: 'supplierName' },
+        { label: '涓嶅悎鏍兼弿杩�', prop: 'unqualifiedDesc' },
+        { label: '鍏嶆', prop: 'isExemption' },
+        { label: '鏍峰搧鍚嶇О', prop: 'sampleName' },
+        { label: '鏍峰搧鍨嬪彿', prop: 'sampleModel' },
+        { label: '妫�楠屼汉', prop: 'userName' },
         {
           dataType: 'tag',
           label: '鐗╂枡绫诲瀷',
@@ -392,9 +374,9 @@
             }
           }
         },
-        {label: '鍗曚綅', prop: 'buyUnitMeas'},
-        {label: '鎺ユ敹鏃堕棿', prop: 'receiverDate'},
-        {label: '鎶ユ鏃堕棿', prop: 'declareDate'},
+        { label: '鍗曚綅', prop: 'buyUnitMeas' },
+        { label: '鎺ユ敹鏃堕棿', prop: 'receiverDate' },
+        { label: '鎶ユ鏃堕棿', prop: 'declareDate' },
         {
           dataType: 'action',
           fixed: 'right',
@@ -465,27 +447,27 @@
         }
       ],
       page2: {
-        total:0,
-        size:10,
-        current:1
+        total: 0,
+        size: 10,
+        current: 1
       },
       tableData3: [],
       tableLoading3: false,
       column3: [
-        {label: '濮旀墭缂栧彿', prop: 'entrustCode'},
-        {label: '妫�楠岀姸鎬�', prop: 'inspectStatus'},
-        {label: '璁㈠崟鍙�', prop: 'orderNo'},
-        {label: '鎶佃揪鐨勯噰璐暟閲�', prop: 'qtyArrived'},
-        {label: '涓嬪彂鏃堕棿', prop: 'sendTime'},
-        {label: '鎵瑰彿', prop: 'updateBatchNo'},
-        {label: '闆朵欢鍙�', prop: 'partNo'},
-        {label: '闆朵欢鎻忚堪', prop: 'partDesc'},
-        {label: '渚涘簲鍟嗗悕绉�', prop: 'supplierName'},
-        {label: '涓嶅悎鏍兼弿杩�', prop: 'unqualifiedDesc'},
-        {label: '鍏嶆', prop: 'isExemption'},
-        {label: '鏍峰搧鍚嶇О', prop: 'sampleName'},
-        {label: '鏍峰搧鍨嬪彿', prop: 'sampleModel'},
-        {label: '妫�楠屼汉', prop: 'userName'},
+        { label: '濮旀墭缂栧彿', prop: 'entrustCode' },
+        { label: '妫�楠岀姸鎬�', prop: 'inspectStatus' },
+        { label: '璁㈠崟鍙�', prop: 'orderNo' },
+        { label: '鎶佃揪鐨勯噰璐暟閲�', prop: 'qtyArrived' },
+        { label: '涓嬪彂鏃堕棿', prop: 'sendTime' },
+        { label: '鎵瑰彿', prop: 'updateBatchNo' },
+        { label: '闆朵欢鍙�', prop: 'partNo' },
+        { label: '闆朵欢鎻忚堪', prop: 'partDesc' },
+        { label: '渚涘簲鍟嗗悕绉�', prop: 'supplierName' },
+        { label: '涓嶅悎鏍兼弿杩�', prop: 'unqualifiedDesc' },
+        { label: '鍏嶆', prop: 'isExemption' },
+        { label: '鏍峰搧鍚嶇О', prop: 'sampleName' },
+        { label: '鏍峰搧鍨嬪彿', prop: 'sampleModel' },
+        { label: '妫�楠屼汉', prop: 'userName' },
         {
           dataType: 'tag',
           label: '鐗╂枡绫诲瀷',
@@ -505,9 +487,9 @@
             }
           }
         },
-        {label: '鍗曚綅', prop: 'buyUnitMeas'},
-        {label: '鎺ユ敹鏃堕棿', prop: 'receiverDate'},
-        {label: '鎶ユ鏃堕棿', prop: 'declareDate'},
+        { label: '鍗曚綅', prop: 'buyUnitMeas' },
+        { label: '鎺ユ敹鏃堕棿', prop: 'receiverDate' },
+        { label: '鎶ユ鏃堕棿', prop: 'declareDate' },
         {
           dataType: 'action',
           fixed: 'right',
@@ -531,27 +513,27 @@
         }
       ],
       page3: {
-        total:0,
-        size:10,
-        current:1
+        total: 0,
+        size: 10,
+        current: 1
       },
       tableData4: [],
       tableLoading4: false,
       column4: [
-        {label: '濮旀墭缂栧彿', prop: 'entrustCode'},
-        {label: '妫�楠岀姸鎬�', prop: 'inspectStatus'},
-        {label: '璁㈠崟鍙�', prop: 'orderNo'},
-        {label: '鎶佃揪鐨勯噰璐暟閲�', prop: 'qtyArrived'},
-        {label: '涓嬪彂鏃堕棿', prop: 'sendTime'},
-        {label: '鎵瑰彿', prop: 'updateBatchNo'},
-        {label: '闆朵欢鍙�', prop: 'partNo'},
-        {label: '闆朵欢鎻忚堪', prop: 'partDesc'},
-        {label: '渚涘簲鍟嗗悕绉�', prop: 'supplierName'},
-        {label: '涓嶅悎鏍兼弿杩�', prop: 'unqualifiedDesc'},
-        {label: '鍏嶆', prop: 'isExemption'},
-        {label: '鏍峰搧鍚嶇О', prop: 'sampleName'},
-        {label: '鏍峰搧鍨嬪彿', prop: 'sampleModel'},
-        {label: '妫�楠屼汉', prop: 'userName'},
+        { label: '濮旀墭缂栧彿', prop: 'entrustCode' },
+        { label: '妫�楠岀姸鎬�', prop: 'inspectStatus' },
+        { label: '璁㈠崟鍙�', prop: 'orderNo' },
+        { label: '鎶佃揪鐨勯噰璐暟閲�', prop: 'qtyArrived' },
+        { label: '涓嬪彂鏃堕棿', prop: 'sendTime' },
+        { label: '鎵瑰彿', prop: 'updateBatchNo' },
+        { label: '闆朵欢鍙�', prop: 'partNo' },
+        { label: '闆朵欢鎻忚堪', prop: 'partDesc' },
+        { label: '渚涘簲鍟嗗悕绉�', prop: 'supplierName' },
+        { label: '涓嶅悎鏍兼弿杩�', prop: 'unqualifiedDesc' },
+        { label: '鍏嶆', prop: 'isExemption' },
+        { label: '鏍峰搧鍚嶇О', prop: 'sampleName' },
+        { label: '鏍峰搧鍨嬪彿', prop: 'sampleModel' },
+        { label: '妫�楠屼汉', prop: 'userName' },
         {
           dataType: 'tag',
           label: '鐗╂枡绫诲瀷',
@@ -571,9 +553,9 @@
             }
           }
         },
-        {label: '鍗曚綅', prop: 'buyUnitMeas'},
-        {label: '鎺ユ敹鏃堕棿', prop: 'receiverDate'},
-        {label: '鎶ユ鏃堕棿', prop: 'declareDate'},
+        { label: '鍗曚綅', prop: 'buyUnitMeas' },
+        { label: '鎺ユ敹鏃堕棿', prop: 'receiverDate' },
+        { label: '鎶ユ鏃堕棿', prop: 'declareDate' },
         {
           dataType: 'action',
           fixed: 'right',
@@ -614,9 +596,9 @@
         }
       ],
       page4: {
-        total:0,
-        size:10,
-        current:1
+        total: 0,
+        size: 10,
+        current: 1
       },
       entity: {
         updateBatchNo: null,
@@ -652,16 +634,16 @@
           value: 3
         }
       ],
-      more:false,
+      more: false,
       tabIndex: 0,
-      multipleSelection:[],
+      multipleSelection: [],
       active: 0, //1锛氫笅鍗曪紝2锛氭煡鐪�
       orderType: 0, //0锛氬師鏉愭枡涓嬪崟锛�1锛氬搴︽楠屼笅鍗�
       currentId: null,
       btnLoading: false,
       quashDialogVisible: false, // 鎾ら攢涓嬪崟鎻愰啋寮规
       declareDialogVisible: false, // 鎾ら攢鎶ユ鎻愰啋寮规
-      insOrderRow:{},
+      insOrderRow: {},
       upLoad: false,
       filesDialogVisible: false, // 闄勪欢鏌ョ湅寮规
       printDialog: false, // 鏍囩鎵撳嵃寮规
@@ -678,11 +660,11 @@
       exemptionLoading: false,
       exemptionInfo: {},
       inspectStatusList: [
-        {label: '妫�楠屼腑', value: 0},
-        {label: '鍚堟牸', value: 1},
-        {label: '涓嶅悎鏍�', value: 2},
-        {label: '鏈笅鍗�', value: 3},
-        {label: '璁╂鏀捐', value: 4},
+        { label: '妫�楠屼腑', value: 0 },
+        { label: '鍚堟牸', value: 1 },
+        { label: '涓嶅悎鏍�', value: 2 },
+        { label: '鏈笅鍗�', value: 3 },
+        { label: '璁╂鏀捐', value: 4 },
       ],
       state: 0,
       orderId: 0,
@@ -691,10 +673,10 @@
       typeSource: null,// 0:鎴愬搧涓嬪崟锛�1锛氬師鏉愭枡涓嬪崟, 2: 閾滃崟涓濅笅鍗�
       InspectInfoDialog: false, // 鏁版嵁鏌ョ湅寮规
       insInfo: {},
-      outLoading:false
+      outLoading: false
     }
   },
-  mounted () {
+  mounted() {
     this.refreshTable()
   },
   // 鏂规硶闆嗗悎
@@ -719,9 +701,9 @@
       }
     },
     // 寰呬笅鍗曟煡璇�
-    getPurchaseOrderList () {
+    getPurchaseOrderList() {
       this.tableLoading = true
-      const params = {...this.entity, isInspect: 1, state: 0}
+      const params = { ...this.entity, isInspect: 1, state: 0 }
       getWarehouseSubmit(params).then(res => {
         this.tableLoading = false
         if (res.code === 200) {
@@ -733,9 +715,9 @@
       })
     },
     // 妫�楠屼腑鏌ヨ
-    getIfsByStateOneList () {
+    getIfsByStateOneList() {
       this.tableLoading1 = true
-      const params = {...this.entity, orderState: 1, state: 1}
+      const params = { ...this.entity, orderState: 1, state: 1 }
       getIfsByStateOne(params).then(res => {
         this.tableLoading1 = false
         if (res.code === 200) {
@@ -747,9 +729,9 @@
       })
     },
     // 宸叉楠屾煡璇�
-    getIfsByOverList () {
+    getIfsByOverList() {
       this.tableLoading2 = true
-      const params = {...this.entity, orderState: 4, state: 2}
+      const params = { ...this.entity, orderState: 4, state: 2 }
       getIfsByOver(params).then(res => {
         this.tableLoading2 = false
         if (res.code === 200) {
@@ -761,9 +743,9 @@
       })
     },
     // 鏌ヨ瀛e害妫�楠�
-    getIfsByQuarterList () {
+    getIfsByQuarterList() {
       this.tableLoading4 = true
-      const params = {...this.entity}
+      const params = { ...this.entity }
       getIfsByOver(params).then(res => {
         this.tableLoading4 = false
         if (res.code === 200) {
@@ -775,9 +757,9 @@
       })
     },
     // 鍏ㄩ儴
-    getIfsByAllList () {
+    getIfsByAllList() {
       this.tableLoading3 = true
-      const params = {...this.entity, isInspect: 1}
+      const params = { ...this.entity, isInspect: 1 }
       getIfsByAll(params).then(res => {
         this.tableLoading3 = false
         if (res.code === 200) {
@@ -793,52 +775,52 @@
       this.resetForm('entity')
       this.refreshTable()
     },
-    pagination (page) {
+    pagination(page) {
       this.page.size = page.limit
       this.refreshTable()
     },
-    pagination1 (page) {
+    pagination1(page) {
       this.page1.size = page.limit
       this.refreshTable()
     },
-    pagination2 (page) {
+    pagination2(page) {
       this.page2.size = page.limit
       this.refreshTable()
     },
-    pagination3 (page) {
+    pagination3(page) {
       this.page3.size = page.limit
       this.refreshTable()
     },
-    pagination4 (page) {
+    pagination4(page) {
       this.page4.size = page.limit
       this.refreshTable()
     },
     // 鏌ョ湅妫�楠屾暟鎹�
-    viewInspectInfo (row) {
+    viewInspectInfo(row) {
       //褰撳墠妫�楠屼换鍔$殑妫�楠屼汉鍒楄〃
       let inspectorList = []
-      if(row.userName){
+      if (row.userName) {
         inspectorList = row.userName.split(',')
       }
       let user = JSON.parse(localStorage.getItem('user'))
-      if(user){
+      if (user) {
         inspectorList.push(user.name)
       }
       this.inspectorList = inspectorList
       this.insInfo = row
       this.InspectInfoDialog = true
     },
-    closeInsInfoDialog () {
+    closeInsInfoDialog() {
       this.InspectInfoDialog = false
     },
     // 鐩存帴鏀捐
-    goPass (row) {
+    goPass(row) {
       this.$confirm('鏄惁鏀捐褰撳墠鏁版嵁?', '鎻愮ず', {
         confirmButtonText: '纭畾',
         cancelButtonText: '鍙栨秷',
         type: 'warning'
       }).then(() => {
-        concessionRelease({ifsInventoryId: row.id}).then(res => {
+        concessionRelease({ ifsInventoryId: row.id }).then(res => {
           if (res.code === 200) {
             this.$message({
               type: 'success',
@@ -861,21 +843,21 @@
         cancelButtonText: "鍙栨秷",
         type: "warning"
       }).then(() => {
-        repealQuarterRawOrder({quarterOrderId: row.quarterOrderId}).then(res => {
+        repealQuarterRawOrder({ quarterOrderId: row.quarterOrderId }).then(res => {
           if (res.code === 200) {
             this.$message.success('鎾ら攢鎴愬姛')
             this.refreshTable('page')
           }
         })
-      }).catch(() => {})
+      }).catch(() => { })
     },
-    viewInsInfo0 () {
+    viewInsInfo0() {
       this.state = 3;
       this.typeSource = this.insInfo.typeSource
       this.orderId = this.insInfo.enterOrderId
       this.InspectInfoDialog = false
     },
-    viewInsInfo1 () {
+    viewInsInfo1() {
       this.state = 3;
       this.typeSource = this.insInfo.typeSource
       this.orderId = this.insInfo.quarterOrderId
@@ -886,16 +868,16 @@
       this.refreshTable('page')
     },
     // 鍒锋柊椤甸潰
-    refreshView () {
+    refreshView() {
       this.InspectionKey++
     },
     // 閾滄潗鏂欎笅鍗�
-    copper () {
+    copper() {
       this.$router.push("/materialOrder/copperOrder");
-      this.$router.push({ path: "/materialOrder/copperOrder", query: {active: 1} });
+      this.$router.push({ path: "/materialOrder/copperOrder", query: { active: 1 } });
     },
     // 鎵撳紑鏍囩鎵撳嵃寮规
-    openPrint () {
+    openPrint() {
       if (this.multipleSelection.length > 0) {
         this.printDialog = true
         this.$nextTick(() => {
@@ -907,29 +889,29 @@
       }
     },
     // 鍏抽棴鏍囩鎵撳嵃寮规
-    closePrintDialog () {
+    closePrintDialog() {
       this.printDialog = false
     },
     // 涓嬪崟
     playOrder(row) {
-      this.$router.push({ path: "/materialOrder/customsInspection", query: {orderType: 0, customsInspection: row, active: 1} });
+      this.$router.push({ path: "/materialOrder/customsInspection", query: { orderType: 0, customsInspection: row, active: 1 } });
     },
     // 瀛e害妫�楠屼笅鍗�
-    playOrderSec (row) {
+    playOrderSec(row) {
       if (typeof row !== "object") {
-        this.$router.push({ path: "/materialOrder/customsInspection", query: {active: row} });
+        this.$router.push({ path: "/materialOrder/customsInspection", query: { active: row } });
       } else {
-        this.$router.push({ path: "/materialOrder/customsInspection", query: {orderType: 1, customsInspection: row, active: 1} });
+        this.$router.push({ path: "/materialOrder/customsInspection", query: { orderType: 1, customsInspection: row, active: 1 } });
       }
     },
     // 鎵撳紑鍏嶆寮规
-    exemption (row) {
+    exemption(row) {
       this.exemptionVisible = true
       this.exemptionInfo = row
       this.$set(this.exemptionInfo, 'partDetail', row.partDesc)
     },
     // 鎻愪氦鍏嶆淇℃伅
-    submitExemption () {
+    submitExemption() {
       this.exemptionLoading = true
       rawOrderRelease({
         ifsInventoryId: this.exemptionInfo.id,
@@ -947,13 +929,13 @@
       })
     },
     // 鎵撳紑鎾ら攢鎶ユ寮规
-    cancelDeclare (row) {
+    cancelDeclare(row) {
       this.declareDialogVisible = true
       this.insOrderRow = row
     },
     // 鎻愪氦鎾ら攢鎶ユ鐢宠
-    submitDeclare () {
-      revokeInspectionReport({id: this.insOrderRow.id}).then(res => {
+    submitDeclare() {
+      revokeInspectionReport({ id: this.insOrderRow.id }).then(res => {
         if (res.code === 200) {
           this.declareDialogVisible = false
           this.refreshTable()
@@ -964,7 +946,7 @@
       })
     },
     // 鎵撳紑鎾ら攢涓嬪崟鐨勫脊妗�
-    cancelOrder (row) {
+    cancelOrder(row) {
       if (row.enterOrderId && row.quarterOrderId) {
         this.quashDialogVisible = true
       } else if (row.enterOrderId && !row.quarterOrderId) {
@@ -973,56 +955,56 @@
           cancelButtonText: "鍙栨秷",
           type: "warning"
         }).then(() => {
-          repealEnterRawOrder({enterOrderId: row.enterOrderId}).then(res => {
+          repealEnterRawOrder({ enterOrderId: row.enterOrderId }).then(res => {
             if (res.code === 200) {
               this.$message.success('鎾ら攢鎴愬姛')
               this.refreshTable('page')
             }
           })
-        }).catch(() => {})
+        }).catch(() => { })
       } else if (!row.enterOrderId && row.quarterOrderId) {
         this.$confirm('鏄惁鎾ら攢瀛e害涓嬪崟?', "璀﹀憡", {
           confirmButtonText: "纭畾",
           cancelButtonText: "鍙栨秷",
           type: "warning"
         }).then(() => {
-          repealQuarterRawOrder({quarterOrderId: row.quarterOrderId}).then(res => {
+          repealQuarterRawOrder({ quarterOrderId: row.quarterOrderId }).then(res => {
             if (res.code === 200) {
               this.$message.success('鎾ら攢鎴愬姛')
               this.refreshTable('page')
             }
           })
-        }).catch(() => {})
+        }).catch(() => { })
       }
       this.insOrderRow = row
     },
-    cancelQuashOrder (type) {
+    cancelQuashOrder(type) {
       if (type === 'enterOrderId') {
         this.$confirm('鏄惁鎾ら攢褰撳墠鏁版嵁?', "璀﹀憡", {
           confirmButtonText: "纭畾",
           cancelButtonText: "鍙栨秷",
           type: "warning"
         }).then(() => {
-          repealEnterRawOrder({enterOrderId: this.insOrderRow.enterOrderId}).then(res => {
+          repealEnterRawOrder({ enterOrderId: this.insOrderRow.enterOrderId }).then(res => {
             if (res.code === 200) {
               this.$message.success('鎾ら攢鎴愬姛')
               this.refreshTable('page')
             }
           })
-        }).catch(() => {})
+        }).catch(() => { })
       } else {
         this.$confirm('鏄惁鎾ら攢褰撳墠鏁版嵁?', "璀﹀憡", {
           confirmButtonText: "纭畾",
           cancelButtonText: "鍙栨秷",
           type: "warning"
         }).then(() => {
-          repealQuarterRawOrder({quarterOrderId: this.insOrderRow.quarterOrderId}).then(res => {
+          repealQuarterRawOrder({ quarterOrderId: this.insOrderRow.quarterOrderId }).then(res => {
             if (res.code === 200) {
               this.$message.success('鎾ら攢鎴愬姛')
               this.refreshTable('page')
             }
           })
-        }).catch(() => {})
+        }).catch(() => { })
       }
     },
     // 鐐瑰嚮鏍峰搧鍚嶇О鏌ョ湅璇︽儏
@@ -1040,16 +1022,16 @@
       this.dataDialogVisible = true;
     },
     // 鍏抽棴鏁版嵁鏌ョ湅寮规
-    closeDataLook () {
+    closeDataLook() {
       this.dataDialogVisible = false
     },
     // 闄勪欢鏌ョ湅
-    handleFileLook (row) {
+    handleFileLook(row) {
       this.filesDialogVisible = true
       this.filesLookInfo = row
     },
     // 鍏抽棴闄勪欢鏌ョ湅寮规
-    closeFilesLook () {
+    closeFilesLook() {
       this.filesDialogVisible = false
     },
     // 鎶ュ憡涓嬭浇
@@ -1058,32 +1040,32 @@
       this.downLoadInfo = row
     },
     // 鍏抽棴鎶ュ憡涓嬭浇寮规
-    closeDownFileDialog () {
+    closeDownFileDialog() {
       this.downFileDialogVisible = false
     },
     // 鏌ョ湅浜т笟閾句俊鎭�
-    openInfoDialog (row) {
+    openInfoDialog(row) {
       this.showInfoDialog = true
       this.$nextTick(() => {
         this.$refs.showInfoDialog.getInfo(row.id)
       })
     },
     // 淇敼濮旀墭缂栧彿
-    changeEntrustCode (row) {
+    changeEntrustCode(row) {
       this.entrustCodeVisible = true
-      this.entrustCodeInfo = {...row}
+      this.entrustCodeInfo = { ...row }
     },
     // 瀵煎嚭
-    handleOut(){
-      let entity = this.tabIndex === 3 ? {...this.entity, isInspect: 2} : {...this.entity,state: 2, orderState: 4,}
+    handleOut() {
+      let entity = this.tabIndex === 3 ? { ...this.entity, isInspect: 2 } : { ...this.entity, state: 2, orderState: 4, }
       delete entity.orderBy
       this.outLoading = true
       rawAllExport({
-        entity:entity
-      },{responseType: "blob"}).then(res => {
+        entity: entity
+      }, { responseType: "blob" }).then(res => {
         this.outLoading = false
         this.$message.success('瀵煎嚭鎴愬姛')
-        const blob = new Blob([res],{ type: 'application/octet-stream' });
+        const blob = new Blob([res], { type: 'application/octet-stream' });
         const url = URL.createObjectURL(blob);
         const link = document.createElement('a');
         link.href = url;
@@ -1092,7 +1074,7 @@
       })
     },
     // 鎻愪氦淇敼濮旀墭缂栧彿淇℃伅
-    submitCode () {
+    submitCode() {
       this.submitCodeLoading = true
       try {
         updateEntrustCode({
@@ -1115,7 +1097,7 @@
       this.refreshTable()
     },
     // 琛ㄦ牸閫夋嫨鏂规硶
-    selectMethod(val){
+    selectMethod(val) {
       this.multipleSelection = val
     },
   },
@@ -1127,6 +1109,7 @@
   display: flex;
   justify-content: space-between;
 }
+
 .tab {
   list-style-type: none;
   display: flex;
diff --git a/src/views/business/unpass/components/PurchaseVerification.vue b/src/views/business/unpass/components/PurchaseVerification.vue
new file mode 100644
index 0000000..2e66c74
--- /dev/null
+++ b/src/views/business/unpass/components/PurchaseVerification.vue
@@ -0,0 +1,376 @@
+<template>
+  <div>
+    <el-dialog title="杩涜揣楠岃瘉鍘熷璁板綍" :visible.sync="isShow" width="1000px" :show-close="false" :close-on-click-modal="false"
+      style="max-height: 96vh; margin-top: 2vh" :modal-append-to-body="false" :close-on-press-escape="false">
+      <div class="search">
+        <el-form :inline="true" :model="purchaseForm" label-position="right" :rules="purchaseFormRules"
+          ref="purchaseForm" class="form-inline" label-width="130px">
+          <el-row>
+            <el-col :span="8">
+              <el-form-item label="妫�楠岀紪鍙�:">
+                <el-input clearable v-model="purchaseForm.entrustCode" disabled size="small"
+                  placeholder="璇疯緭鍏�"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="鏉愭枡鍘傚:">
+                <el-input clearable v-model="purchaseForm.supplierName" disabled size="small"
+                  placeholder="璇疯緭鍏�"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="鍒拌揣鏃ユ湡:">
+                <el-input clearable v-model="purchaseForm.declareDate" disabled size="small"
+                  placeholder="璇疯緭鍏�"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="鏉愭枡鍚嶇О:">
+                <el-input clearable v-model="purchaseForm.sample" disabled size="small" placeholder="璇疯緭鍏�"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="瑙勬牸鍨嬪彿:">
+                <el-input clearable v-model="purchaseForm.model" disabled size="small" placeholder="璇疯緭鍏�"></el-input>
+              </el-form-item>
+            </el-col>
+            <el-col :span="8">
+              <el-form-item label="鏉愭枡鎵瑰彿:">
+                <el-input clearable v-model="purchaseForm.updateBatchNo" disabled size="small"
+                  placeholder="璇疯緭鍏�"></el-input>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <div>
+            <el-form-item class="headLine" label="楠岃瘉渚濇嵁鏂囦欢缂栧彿:" label-width="160px" style="width: 100%"
+              prop="verifyFileCode">
+              <el-input clearable v-model="purchaseForm.verifyFileCode" size="small"
+                :disabled="operationType === 'view'" placeholder="璇疯緭鍏�"></el-input>
+            </el-form-item>
+          </div>
+          <h4>
+            <span style="display: flex;align-items: center;">
+              <span class="line"></span><span>楠岃瘉鍐呭</span>
+            </span>
+          </h4>
+          <div class="title">涓�銆佷緵鏂逛骇鍝佹娴嬫姤鍛婄殑鍩烘湰淇℃伅纭</div>
+          <el-form-item label="鏉愭枡鍚嶇О:" prop="basicName">
+            <el-radio-group v-model="purchaseForm.basicName" :disabled="operationType === 'view'" v-removeAriaHidden>
+              <el-radio label="1">绗﹀悎</el-radio>
+              <el-radio label="2">涓嶇鍚�</el-radio>
+              <el-radio label="3">涓嶉�傜敤</el-radio>
+            </el-radio-group>
+          </el-form-item>
+          <el-form-item label="瑙勬牸鍨嬪彿:" prop="basicModel">
+            <el-radio-group v-model="purchaseForm.basicModel" :disabled="operationType === 'view'" v-removeAriaHidden>
+              <el-radio label="1">绗﹀悎</el-radio>
+              <el-radio label="2">涓嶇鍚�</el-radio>
+              <el-radio label="3">涓嶉�傜敤</el-radio>
+            </el-radio-group>
+          </el-form-item>
+          <el-form-item label="鏉愭枡鎵瑰彿:" prop="basicBatchNo">
+            <el-radio-group v-model="purchaseForm.basicBatchNo" :disabled="operationType === 'view'" v-removeAriaHidden>
+              <el-radio label="1">绗﹀悎</el-radio>
+              <el-radio label="2">涓嶇鍚�</el-radio>
+              <el-radio label="3">涓嶉�傜敤</el-radio>
+            </el-radio-group>
+          </el-form-item>
+          <el-form-item label="鎵ц鏍囧噯:" prop="basicStandard">
+            <el-radio-group v-model="purchaseForm.basicStandard" :disabled="operationType === 'view'"
+              v-removeAriaHidden>
+              <el-radio label="1">绗﹀悎</el-radio>
+              <el-radio label="2">涓嶇鍚�</el-radio>
+              <el-radio label="3">涓嶉�傜敤</el-radio>
+            </el-radio-group>
+          </el-form-item>
+          <el-form-item label="鐢熶骇鏃ユ湡:" prop="basicDate">
+            <el-radio-group v-model="purchaseForm.basicDate" :disabled="operationType === 'view'" v-removeAriaHidden>
+              <el-radio label="1">绗﹀悎</el-radio>
+              <el-radio label="2">涓嶇鍚�</el-radio>
+              <el-radio label="3">涓嶉�傜敤</el-radio>
+            </el-radio-group>
+          </el-form-item>
+          <el-form-item label="渚涜揣鏁伴噺:" prop="basicNumber">
+            <el-radio-group v-model="purchaseForm.basicNumber" :disabled="operationType === 'view'" v-removeAriaHidden>
+              <el-radio label="1">绗﹀悎</el-radio>
+              <el-radio label="2">涓嶇鍚�</el-radio>
+              <el-radio label="3">涓嶉�傜敤</el-radio>
+            </el-radio-group>
+          </el-form-item>
+          <el-form-item label="鏉愭枡棰滆壊:" prop="basicColor">
+            <el-radio-group v-model="purchaseForm.basicColor" :disabled="operationType === 'view'" v-removeAriaHidden>
+              <el-radio label="1">绗﹀悎</el-radio>
+              <el-radio label="2">涓嶇鍚�</el-radio>
+              <el-radio label="3">涓嶉�傜敤</el-radio>
+            </el-radio-group>
+          </el-form-item>
+          <div>
+            <el-form-item label="鍏朵粬:">
+              <el-input clearable v-model="purchaseForm.basicOtherValue" size="small"
+                :disabled="operationType === 'view'" placeholder="璇疯緭鍏�"></el-input>
+            </el-form-item>
+            <el-form-item>
+              <el-radio-group v-model="purchaseForm.basicOther" :disabled="operationType === 'view'">
+                <el-radio label="1">绗﹀悎</el-radio>
+                <el-radio label="2">涓嶇鍚�</el-radio>
+              </el-radio-group>
+            </el-form-item>
+            <div class="titleSec">
+              <span>浜屻�佷緵鏂逛骇鍝佹娴嬫姤鍛婁腑鍚勯」鎬ц兘鎸囨爣鐨勯獙璇�</span>
+              <span>
+                <el-button type="primary" size="small" @click="addItem"
+                  v-if="operationType === 'add'">鎵嬪姩娣诲姞妫�楠岄」鐩�</el-button>
+                <el-button type="primary" @click="addFactoryVerifyItem" v-if="operationType === 'add'"
+                  size="small">娣诲姞楠岃瘉椤圭洰</el-button>
+              </span>
+            </div>
+            <div>
+              <el-table :data="factoryVerifyItemList" style="width: 98%" v-loading="tableLoading">
+                <el-table-column type="index" label="搴忓彿" width="180" align="center"></el-table-column>
+                <el-table-column prop="inspectionItem" label="楠岃瘉椤圭洰" width="300"></el-table-column>
+                <el-table-column prop="result" label="楠岃瘉缁撴灉">
+                  <template slot-scope="scope">
+                    <el-radio-group v-model="scope.row.result" v-removeAriaHidden :disabled="operationType === 'view'">
+                      <el-radio label="1">绗﹀悎</el-radio>
+                      <el-radio label="2">涓嶇鍚�</el-radio>
+                      <el-radio label="3">涓嶉�傜敤</el-radio>
+                    </el-radio-group>
+                  </template>
+                </el-table-column>
+                <el-table-column label="鎿嶄綔" width="120" v-if="operationType === 'add'">
+                  <template slot-scope="scope">
+                    <el-button @click.native.prevent="deleteRow(scope.$index)" type="text" size="small">鍒犻櫎</el-button>
+                  </template>
+                </el-table-column>
+              </el-table>
+            </div>
+          </div>
+        </el-form>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="$emit('resetPurchaseDialog')">鍙� 娑�</el-button>
+        <el-button type="primary" @click="handlePurchase" :loading="handlePurchaseLoading"
+          v-if="operationType === 'add'">纭�
+          瀹�</el-button>
+      </span>
+    </el-dialog>
+    <el-dialog title="寰呴獙璇侀」鐩�" :visible.sync="factoryVerifyItemDia" width="1000px"
+      style="max-height: 96vh; margin-top: 2vh" :show-close="false" :close-on-click-modal="false"
+      :close-on-press-escape="false">
+      <el-table :data="tableList" style="width: 100%" v-loading="tableLoading"
+        @selection-change="handleSelectionChange">
+        <el-table-column type="selection" width="55"></el-table-column>
+        <el-table-column type="index" label="搴忓彿" width="60" align="center"></el-table-column>
+        <el-table-column prop="inspectionItem" label="楠岃瘉椤圭洰"></el-table-column>
+      </el-table>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="factoryVerifyItemDia = false">鍙� 娑�</el-button>
+        <el-button type="primary" @click="handleFactoryVerifyItem" :loading="handleFactoryVerifyLoading">娣� 鍔�</el-button>
+      </span>
+    </el-dialog>
+    <el-dialog title="鎵嬪姩娣诲姞楠岃瘉椤圭洰" :visible.sync="inspectionItemDia" width="500px" @close="resetInput" :show-close="false"
+      :close-on-click-modal="false" :close-on-press-escape="false">
+      <el-input v-model="inspectionItem"></el-input>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="inspectionItemDia = false">鍙� 娑�</el-button>
+        <el-button type="primary" @click="handleAdd">娣� 鍔�</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { getFactoryVerify, addFactoryVerify } from '@/api/business/unpass.js'
+import {
+  getInsProduct,
+} from "@/api/business/inspectionTask.js";
+export default {
+  name: "PurchaseVerification",
+  // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
+  components: {},
+  props: {
+    purchaseDialog: {
+      type: Boolean,
+      default: () => false
+    },
+    orderId: {
+      type: String,
+      default: () => null
+    },
+  },
+  data() {
+    // 杩欓噷瀛樻斁鏁版嵁
+    return {
+      type: '',
+      info: {},
+      isShow: this.purchaseDialog,
+      purchaseForm: {
+        entrustCode: '', // 妫�楠岀紪鍙�
+        supplierName: '', // 鏉愭枡鍘傚
+        declareDate: '', // 鍒拌揣鏃ユ湡
+        sample: '', // 鏉愭枡鍚嶇О
+        model: '', // 瑙勬牸鍨嬪彿
+        updateBatchNo: '', // 鏉愭枡鎵瑰彿
+        verifyFileCode: '', // 楠岃瘉渚濇嵁鏂囦欢缂栧彿
+        // 纭淇℃伅
+        basicName: '', // 鏉愭枡鍚嶇О
+        basicModel: '', // 瑙勬牸鍨嬪彿
+        basicBatchNo: '', // 鏉愭枡鎵瑰彿
+        basicStandard: '', // 鎵ц鏍囧噯
+        basicDate: '', // 鐢熶骇鏃ユ湡
+        basicNumber: '', // 渚涜揣鏁伴噺
+        basicColor: '', // 鏉愭枡棰滆壊
+        basicOtherValue: '', // 鍏朵粬鍚嶇О
+        basicOther: '', // 鍏朵粬
+      },
+      purchaseFormRules: {
+        verifyFileCode: [{ required: true, message: '璇峰~鍐欓獙璇佷緷鎹枃浠剁紪鍙�', trigger: 'blur' }],
+        basicName: [{ required: false, message: '璇烽�夋嫨鏉愭枡鍚嶇О楠岃瘉淇℃伅', trigger: 'change' }],
+        basicModel: [{ required: false, message: '璇烽�夋嫨瑙勬牸鍨嬪彿楠岃瘉淇℃伅', trigger: 'change' }],
+        basicStandard: [{ required: false, message: '璇烽�夋嫨鎵ц鏍囧噯楠岃瘉淇℃伅', trigger: 'change' }],
+        basicDate: [{ required: false, message: '璇烽�夋嫨鐢熶骇鏃ユ湡楠岃瘉淇℃伅', trigger: 'change' }],
+        basicNumber: [{ required: false, message: '璇烽�夋嫨渚涜揣鏁伴噺楠岃瘉淇℃伅', trigger: 'change' }],
+        basicColor: [{ required: false, message: '璇烽�夋嫨鏉愭枡棰滆壊楠岃瘉淇℃伅', trigger: 'change' }],
+      },
+      factoryVerifyItemList: [], // 渚涙柟浜у搧妫�娴嬫姤鍛婁腑鍚勯」鎬ц兘鎸囨爣鐨勯獙璇�
+      tableList: [], //
+      multipleSelection: [], //
+      operationType: '',
+      handlePurchaseLoading: false,
+      tableLoading: false,
+      factoryVerifyItemDia: false, // 娣诲姞楠岃瘉椤圭洰寮规
+      handleFactoryVerifyLoading: false,
+      inspectionItemDia: false,
+      inspectionItem: ''
+    }
+  },
+  // 鏂规硶闆嗗悎
+  methods: {
+    async getInsOrder(operationType, item) {
+      this.operationType = operationType
+      this.info = item
+      // 鏌ヨ宸叉彁浜ょ殑鏁版嵁
+      let factoryVerify = await getFactoryVerify({ insOrderId: this.orderId })
+      this.purchaseForm = factoryVerify.data
+      this.factoryVerifyItemList = factoryVerify.data.factoryVerifyItemList || []
+    },
+    // 鎵撳紑娣诲姞楠岃瘉椤圭洰寮规
+    async addFactoryVerifyItem() {
+      this.factoryVerifyItemDia = true
+      this.tableList = []
+      if (this.info.cableTag === undefined) {
+        this.info.cableTag = ''
+      }
+      this.tableLoading = true;
+      const type1 = 5
+      // 鏌ヨ妫�楠岄」鐩�
+      let res = await getInsProduct({ id: this.info.id, type: type1, laboratory: this.info.sonLaboratory, cableTag: this.info.cableTag, rawMaterialTag: this.info.rawMaterialTag })
+      if (res.data.length > 0) {
+        res.data.map((item) => {
+          if (item.inspectionItemSubclass) {
+            item.inspectionItem = item.inspectionItem + '-' + item.inspectionItemSubclass
+          }
+          const obj = Object.assign({
+            inspectionItem: item.inspectionItem,
+            result: item.result,
+          })
+          this.tableList.push(obj)
+        })
+        this.tableLoading = false;
+      }
+    },
+    handleSelectionChange(val) {
+      console.log('val---', val)
+      this.multipleSelection = val;
+    },
+    addItem() {
+      this.inspectionItemDia = true
+    },
+    deleteRow(index) {
+      this.factoryVerifyItemList.splice(index, 1);
+    },
+    handleAdd() {
+      if (!this.inspectionItem) {
+        this.$message.warning('璇峰~鍐欏唴瀹�')
+        return
+      }
+      this.factoryVerifyItemList.push({
+        inspectionItem: this.inspectionItem,
+        result: null,
+      })
+      this.inspectionItemDia = false
+    },
+    resetInput() {
+      this.inspectionItem = ''
+      this.inspectionItemDia = false
+    },
+    // 鎻愪氦娣诲姞瑕侀獙璇佺殑妫�楠岄」
+    handleFactoryVerifyItem() {
+      if (this.multipleSelection.length === 0) {
+        this.$message.warning('璇烽�夋嫨鏁版嵁')
+      } else {
+        this.factoryVerifyItemList = JSON.parse(JSON.stringify(this.multipleSelection))
+        this.factoryVerifyItemDia = false
+      }
+    },
+    handlePurchase() {
+      this.$refs['purchaseForm'].validate((valid) => {
+        if (valid) {
+          if (this.factoryVerifyItemList.some(item => item.result === undefined || item.result === null || item.result === '')) {
+            this.$message.warning('璇烽�夋嫨渚涙柟浜у搧楠岃瘉缁撴灉')
+            return
+          }
+          this.factoryVerifyItemList.forEach((item, index) => {
+            item.sort = index
+          })
+          this.purchaseForm.factoryVerifyItemList = JSON.parse(JSON.stringify(this.factoryVerifyItemList))
+          this.handlePurchaseLoading = true
+          addFactoryVerify(this.purchaseForm).then(res => {
+            if (res.code === 200) {
+              this.$message.success('鎻愪氦鎴愬姛')
+              this.$emit('resetPurchaseDialog')
+            }
+            this.handlePurchaseLoading = false
+          })
+        } else {
+          console.log('error submit!!');
+          return false;
+        }
+      });
+    },
+  },
+}
+</script>
+
+<style scoped>
+.headLine>>>.el-form-item__content {
+  width: 68%;
+}
+
+>>>.el-form-item__content {
+  display: inline-block;
+}
+
+h4 .line {
+  display: inline-block;
+  width: 3px;
+  height: 16px;
+  background: #3A7BFA;
+  margin-right: 4px;
+}
+
+.title {
+  margin: 10px 0;
+}
+
+.titleSec {
+  margin: 10px 0;
+  display: flex;
+  justify-content: space-between;
+}
+
+>>>.el-dialog__body {
+  max-height: 700px;
+  overflow-y: auto;
+}
+</style>
diff --git a/src/views/business/unpass/components/addUnPass.vue b/src/views/business/unpass/components/addUnPass.vue
new file mode 100644
index 0000000..c1777e9
--- /dev/null
+++ b/src/views/business/unpass/components/addUnPass.vue
@@ -0,0 +1,124 @@
+<template>
+  <div>
+    <el-dialog title="鏂板涓嶅悎鏍煎娴�" :visible.sync="isShow" width="70%" :show-close="false" :close-on-click-modal="false"
+      :close-on-press-escape="false">
+      <div class="table">
+        <el-table class="el-table" ref="productTable" :data="productList" max-height="800px" tooltip-effect="dark"
+          border v-loading="tableLoading" @selection-change="selectProduct" style="margin-bottom: 10px;"
+          @select-all="handleAll">
+          <el-table-column type="selection" width="65"></el-table-column>
+          <el-table-column prop="inspectionItemClass" label="妫�楠岄」鍒嗙被" min-width="140"
+            show-overflow-tooltip></el-table-column>
+          <el-table-column prop="inspectionItem" label="妫�楠岄」" min-width="140" show-overflow-tooltip></el-table-column>
+          <el-table-column prop="inspectionItemSubclass" label="妫�楠岄」瀛愰」" min-width="140"
+            show-overflow-tooltip></el-table-column>
+          <el-table-column prop="tell" label="瑕佹眰鎻忚堪" min-width="220px"></el-table-column>
+          <el-table-column prop="ask" label="瑕佹眰鍊�" min-width="220px"></el-table-column>
+          <el-table-column prop="lastValue" label="妫�楠岀粨鏋�" min-width="140" show-overflow-tooltip></el-table-column>
+          <el-table-column prop="insResult" label="缁撴灉鍒ゅ畾" min-width="140" show-overflow-tooltip>
+            <template>
+              <el-tag type="danger">涓嶅悎鏍�</el-tag>
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="$emit('resetAddUnPass')">鍙� 娑�</el-button>
+        <el-button type="primary" @click="submitHandle" :loading="handlePassLoading">纭� 瀹�</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { getInsProductUnqualified } from '@/api/business/unpass.js'
+export default {
+  name: "addUnPass",
+  // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
+  components: {},
+  props: {
+    addUnPassDialog: {
+      type: Boolean,
+      default: () => false
+    },
+  },
+  data() {
+    // 杩欓噷瀛樻斁鏁版嵁
+    return {
+      type: '',
+      isShow: this.addUnPassDialog,
+      handlePassLoading: false,
+      productList: [],
+      productListSelected: [],
+      productIds: [],
+      tableLoading: false
+    }
+  },
+  mounted() {
+  },
+  // 鏂规硶闆嗗悎
+  methods: {
+    getInsOrder(info) {
+      this.tableLoading = true
+      try {
+        getInsProductUnqualified({ id: info.id, type: info.type, laboratory: info.laboratory, rawMaterialTag: info.rawMaterialTag }).then(res => {
+          if (res.code === 200) {
+            this.productList = res.data
+          }
+          this.tableLoading = false
+        })
+      } catch (err) {
+        this.tableLoading = false
+      }
+    },
+    // 鎻愪氦涓嶅悎鏍煎鐞�
+    submitHandle() {
+      if (this.productListSelected.length === 0) {
+        this.$message.warning('璇烽�夋嫨闇�瑕佸娴嬬殑妫�楠岄」')
+        return
+      }
+      this.$confirm('纭鎻愪氦涓嶅悎鏍煎娴�?', '鎻愮ず', {
+        confirmButtonText: '纭畾',
+        cancelButtonText: '鍙栨秷',
+        type: 'warning'
+      }).then(() => {
+        this.handlePass()
+      }).catch(() => {
+
+      });
+    },
+    handlePass() {
+      this.handlePassLoading = true
+      try {
+        addUnqualifiedRetest({
+          ids: this.productIds
+        }).then(res => {
+          if (res.code === 200) {
+            this.$message.success('鎻愪氦鎴愬姛')
+            this.$emit('resetAddUnPass')
+          }
+          this.handlePassLoading = false
+        })
+      } catch (e) {
+        this.handlePassLoading = false
+      }
+    },
+    selectProduct(val) {
+      this.productListSelected = val
+      this.productIds = []
+      val.forEach(a => {
+        this.productIds.push(a.id)
+      })
+    },
+    handleAll(val) {
+      this.productListSelected = val
+      this.productIds = []
+      val.forEach(a => {
+        this.productIds.push(a.id)
+      })
+    },
+  },
+}
+</script>
+
+<style scoped></style>
diff --git a/src/views/business/unpass/components/unPassDialog.vue b/src/views/business/unpass/components/unPassDialog.vue
new file mode 100644
index 0000000..39a57b1
--- /dev/null
+++ b/src/views/business/unpass/components/unPassDialog.vue
@@ -0,0 +1,275 @@
+<template>
+  <div>
+    <el-dialog title="鏂板涓嶅悎鏍煎鐞�" :visible.sync="isShow" width="740px" :show-close="false" :close-on-click-modal="false"
+      :close-on-press-escape="false">
+      <div class="search">
+        <el-form :inline="true" :model="unPassForm" :rules="unPassFormRules" ref="unPassForm" class="form-inline"
+          label-width="120px">
+          <div>
+            <el-form-item class="headLine" label="鏍囬:" style="width: 100%" prop="headline">
+              <el-input clearable v-model="unPassForm.headline" size="small" :disabled="type === 'view'" type="textarea"
+                placeholder="璇疯緭鍏�"></el-input>
+            </el-form-item>
+          </div>
+          <el-form-item label="渚涘簲鍟嗗悕绉�:">
+            <el-input clearable v-model="unPassForm.supplierName" disabled size="small" placeholder="璇疯緭鍏�"></el-input>
+          </el-form-item>
+          <el-form-item label="鐗╂枡鍚嶇О:">
+            <el-tooltip class="item" effect="dark" placement="top" :content="unPassForm.materialName">
+              <el-input clearable v-model="unPassForm.materialName" disabled size="small" placeholder="璇疯緭鍏�"></el-input>
+            </el-tooltip>
+          </el-form-item>
+          <el-form-item label="鐢熶骇鎵规:">
+            <el-input clearable v-model="unPassForm.productionBatch" disabled size="small" placeholder="璇疯緭鍏�"></el-input>
+          </el-form-item>
+          <el-form-item label="鍒拌揣鏁伴噺:">
+            <el-input clearable v-model="unPassForm.cargoQuantity" disabled size="small" placeholder="璇疯緭鍏�"></el-input>
+          </el-form-item>
+          <el-form-item label="瑙勬牸鍨嬪彿:">
+            <el-input clearable v-model="unPassForm.specsModels" disabled size="small" placeholder="璇疯緭鍏�"></el-input>
+          </el-form-item>
+          <el-form-item label="鎶ユ鏃堕棿:">
+            <el-date-picker v-model="unPassForm.inspectTime" format="yyyy-MM-dd" value-format="yyyy-MM-dd" size="small"
+              disabled style="width: 175px" type="date" placeholder="閫夋嫨鏃ユ湡">
+            </el-date-picker>
+          </el-form-item>
+          <el-form-item label="鍙嶉浜�:">
+            <el-input clearable v-model="unPassForm.feedbackUser" disabled size="small" placeholder="璇疯緭鍏�"></el-input>
+          </el-form-item>
+          <el-form-item label="鍙嶉鏃堕棿:" prop="feedbackTime">
+            <el-date-picker v-model="unPassForm.feedbackTime" :disabled="type === 'view'" format="yyyy-MM-dd"
+              value-format="yyyy-MM-dd HH:mm:ss" size="small" style="width: 175px" type="date" placeholder="閫夋嫨鏃ユ湡">
+            </el-date-picker>
+          </el-form-item>
+          <el-form-item label="鍒嗙被:" prop="classification">
+            <el-select v-model="unPassForm.classification" :disabled="type === 'view'" size="small" placeholder="璇烽�夋嫨">
+              <el-option v-for="item in classificationOptions" :key="item.value" :label="item.label"
+                :value="item.value">
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="涓嶅悎鏍煎綊灞�:" prop="offGradeAscription">
+            <el-select v-model="unPassForm.offGradeAscription" :disabled="type === 'view'" size="small"
+              placeholder="璇烽�夋嫨">
+              <el-option v-for="item in offGradeAscriptionOptions" :key="item.value" :label="item.label"
+                :value="item.value">
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="涓嶅悎鏍兼儏鍐垫弿杩�:" prop="unqualifiedDesc">
+            <el-input clearable type="textarea" v-model="unPassForm.unqualifiedDesc" :disabled="type === 'view'"
+              style="width: 484px" size="small" placeholder="璇疯緭鍏�"></el-input>
+          </el-form-item>
+        </el-form>
+        <el-upload v-if="type === 'add'" ref="upload" :action="action2" :on-change="beforeUpload" :on-error="onError"
+          :on-remove="handleRemoveFile" :on-success="getUnpassUrl" :headers="headers" :file-list="unPassFilesList">
+          <el-button size="small" type="primary" style="text-align: left">闄勪欢涓婁紶</el-button>
+        </el-upload>
+        <div v-if="type !== 'add'">
+          <div style="padding-left: 40px;margin-bottom: 4px">闄勪欢锛�</div>
+          <div style="padding-left: 40px;margin-bottom: 4px" v-for="item in unqualifiedHandlerFiles">
+            <span>{{ item.fileName }}</span><el-link type="primary" style="margin-left: 20px;vertical-align: top"
+              :underline="false" @click="handleDown(item)">涓嬭浇</el-link>
+          </div>
+        </div>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="$emit('resetForm')">鍙� 娑�</el-button>
+        <el-button type="primary" @click="handlunPass" :loading="handlunPassLoading" v-if="type === 'add'">纭�
+          瀹�</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { getInsOrder, getUnqualifiedHandler, downFile, addUnqualifiedHandler } from '@/api/business/unpass.js'
+export default {
+  name: "unPassDialog",
+  // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
+  components: {},
+  props: {
+    unPassDialog: {
+      type: Boolean,
+      default: () => false
+    },
+    orderId: {
+      type: String,
+      default: () => null
+    },
+  },
+  data() {
+    // 杩欓噷瀛樻斁鏁版嵁
+    return {
+      type: '',
+      isShow: this.unPassDialog,
+      unPassForm: { // 涓嶅悎鏍煎鐞嗘暟鎹�
+        headline: '', // 鏍囬
+        inventoryQuantityId: '', // 鍘熸潗鏂檌d,涓嶅仛灞曠ず锛屽彧浼犲��
+        supplierName: '', // 渚涘簲鍟嗗悕绉�
+        materialName: '', // 鐗╂枡鍚嶇О
+        productionBatch: '', // 鐢熶骇鎵规
+        cargoQuantity: '', // 鍒拌揣鏁伴噺
+        specsModels: '', // 瑙勬牸鍨嬪彿
+        inspectTime: '', // 鎶ユ鏃堕棿
+        feedbackUser: '', // 鍙嶉浜�
+        feedbackTime: '', // 鍙嶉鏃堕棿
+        classification: '', // 鍒嗙被
+        offGradeAscription: '', // 涓嶅悎鏍煎綊灞�
+        unqualifiedDesc: '', // 涓嶅悎鏍兼儏鍐垫弿杩�
+        unqualifiedHandlerFiles: [], // 涓嶅悎鏍奸檮浠禪RL
+      },
+      unPassFormRules: {
+        offGradeAscription: [
+          { required: true, message: '璇烽�夋嫨涓嶅悎鏍煎綊灞�', trigger: 'change' }
+        ],
+        headline: [
+          { required: true, message: '璇峰~鍐欐爣棰�', trigger: 'blur' }
+        ]
+      },
+      unPassFilesList: [], // 涓嶅悎鏍煎鐞嗛檮浠舵暟鎹�
+      classificationOptions: [], // 涓嶅悎鏍煎垎绫讳笅鎷夋
+      offGradeAscriptionOptions: [], // 涓嶅悎鏍煎綊灞炰笅鎷夋
+      handlunPassLoading: false,
+      unqualifiedHandlerFiles: []
+    }
+  },
+  mounted() {
+    this.getClassificationOptions() // 鑾峰彇涓嶅悎鏍煎垎绫讳笅鎷夋閫夐」
+    this.getOffGradeAscriptionOptions() // 鑾峰彇涓嶅悎鏍煎綊灞炰笅鎷夋閫夐」
+  },
+  // 鏂规硶闆嗗悎
+  methods: {
+    getInsOrder(type, row) {
+      this.type = type
+      if (type === 'add') {
+        // 璧嬪�奸粯璁ゆ暟鎹�
+        getInsOrder({
+          orderId: this.orderId
+        }).then(res => {
+          if (res.code === 200) {
+            this.unPassForm.headline = `No.0005-涓ぉ瑁呭鐢电嚎-澶栬喘鍝佷笉鍚堟牸鍙嶉璇勫鍙婄籂姝i闃叉祦绋�(姝e紡鐗�)-${JSON.parse(localStorage.getItem("user")).name}-${new Date().toISOString().substring(0, 10)}` // 鏍囬
+            this.unPassForm.inventoryQuantityId = res.data.insOrderTemplate.inventoryQuantityId // 鍘熸潗鏂檌d
+            this.unPassForm.insOrderId = res.data.insOrder.id // 璁㈠崟id
+            this.unPassForm.supplierName = res.data.insOrderTemplate.supplierName // 渚涘簲鍟嗗悕绉�
+            this.unPassForm.materialName = res.data.insOrder.sampleType // 鐗╂枡鍚嶇О
+            this.unPassForm.productionBatch = res.data.insOrderTemplate.updateBatchNo // 鐢熶骇鎵规
+            this.unPassForm.cargoQuantity = res.data.insOrderTemplate.qtyArrived + res.data.insOrderTemplate.buyUnitMeas // 鍒拌揣鏁伴噺
+            this.unPassForm.specsModels = res.data.insOrder.partDetail // 瑙勬牸鍨嬪彿
+            this.unPassForm.inspectTime = res.data.insOrderTemplate.sendTime.substring(0, 10)  // 鎶ユ鏃堕棿
+            this.unPassForm.feedbackTime = new Date().toISOString().substring(0, 10) // 鎶ユ鏃堕棿
+            this.unPassForm.feedbackUser = JSON.parse(localStorage.getItem("user")).name // 鍙嶉浜�
+          }
+        })
+      } else {
+        this.getInfo(row.handlerId)
+        this.unPassForm = { ...row }
+      }
+    },
+    getInfo(handlerId) {
+      getUnqualifiedHandler({
+        id: handlerId
+      }).then(res => {
+        if (res.code === 200) {
+          this.unqualifiedHandlerFiles = this.HaveJson(res.data.unqualifiedHandlerFiles)
+        }
+      })
+    },
+    handleDown(row) {
+      downFile({
+        id: row.id,
+      }).then(res => {
+        if (res.code === 200) {
+          let url = '';
+          if (res.data.type == 1) {
+            url = this.javaApi + '/img/' + res.data.fileUrl
+            this.$download.saveAs(url, row.fileName);
+          } else {
+            url = this.javaApi + '/word/' + res.data.fileUrl
+            this.$download.saveAs(url, row.fileName);
+          }
+        }
+      }).catch(error => {
+
+      })
+    },
+    // 鎻愪氦涓嶅悎鏍煎鐞�
+    handlunPass() {
+      this.$refs['unPassForm'].validate((valid) => {
+        if (valid) {
+          this.unPassForm.unqualifiedHandlerFiles.forEach(item => {
+            delete item.orderBy
+          })
+          this.handlunPassLoading = true
+          addUnqualifiedHandler(this.unPassForm).then(res => {
+            if (res.code === 200) {
+              this.$message.success('鎻愪氦鎴愬姛')
+              this.$emit('resetForm')
+            }
+            this.handlunPassLoading = false
+          })
+        } else {
+          console.log('error submit!!');
+          return false;
+        }
+      });
+    },
+    getUnpassUrl(response, file, fileList) {
+      // 闄勪欢涓婁紶鎴愬姛鍚庯紝灏唘rl鍦ㄦ彁浜や笉鍚堟牸澶勭悊鏃朵紶缁欏悗鍙�
+      if (response.code == 200) {
+        this.$message.success('涓婁紶鎴愬姛')
+        this.unPassForm.unqualifiedHandlerFiles.push(response.data)
+      }
+    },
+    // 绉婚櫎闄勪欢
+    handleRemoveFile(file) {
+      const index = this.unPassForm.unqualifiedHandlerFiles.findIndex(val => val === file.response.data)
+      if (index > -1) {
+        this.unPassForm.unqualifiedHandlerFiles.splice(index, 1)
+      }
+    },
+    beforeUpload(file) {
+      if (file.size > 1024 * 1024 * 10) {
+        this.$message.error('涓婁紶鏂囦欢涓嶈秴杩�10M');
+        this.$refs.upload.clearFiles()
+        return false;
+      } else {
+        this.upLoading = true;
+        return true;
+      }
+    },
+    onError(err, file, fileList) {
+      this.$message.error('涓婁紶澶辫触')
+      this.$refs.upload.clearFiles()
+    },
+    getClassificationOptions() {
+      // 涓嶅悎鏍煎垎绫�
+      this.getDicts("categories_no_conformities").then((response) => {
+        this.classificationOptions = this.dictToValue(response.data);
+      });
+    },
+    getOffGradeAscriptionOptions() {
+      // 涓嶅悎鏍煎綊灞�
+      this.getDicts("attribution_no_conformities").then((response) => {
+        this.offGradeAscriptionOptions = this.dictToValue(response.data);
+      });
+    },
+  },
+  computed: {
+    headers() {
+      return {
+        'token': sessionStorage.getItem('token')
+      }
+    },
+    action2() {
+      return this.javaApi + '/unqualifiedHandler/uploadFileByUnqualified'
+    }
+  },
+}
+</script>
+
+<style scoped>
+.headLine>>>.el-form-item__content {
+  width: 68%;
+}
+</style>
diff --git a/vue.config.js b/vue.config.js
index dbf0bfc..018c3bb 100644
--- a/vue.config.js
+++ b/vue.config.js
@@ -36,7 +36,7 @@
     proxy: {
       // detail: https://cli.vuejs.org/config/#devserver-proxy
       [process.env.VUE_APP_BASE_API]: {
-        target: `http://192.168.0.104:8002`,
+        target: `http://192.168.0.170:8002`,
         changeOrigin: true,
         pathRewrite: {
           ["^" + process.env.VUE_APP_BASE_API]: "",

--
Gitblit v1.9.3