From 414a9c839061e06468138c9f662a4d9cf4225599 Mon Sep 17 00:00:00 2001
From: spring <2396852758@qq.com>
Date: 星期三, 09 四月 2025 15:08:29 +0800
Subject: [PATCH] 完成二次报检,过期报检

---
 src/views/business/materialOrder/index.vue |  201 +++++++++++++++++++++++++++++++------------------
 1 files changed, 126 insertions(+), 75 deletions(-)

diff --git a/src/views/business/materialOrder/index.vue b/src/views/business/materialOrder/index.vue
index 4cb05c3..2ab2c30 100644
--- a/src/views/business/materialOrder/index.vue
+++ b/src/views/business/materialOrder/index.vue
@@ -20,8 +20,11 @@
           <el-form-item label="鎶ユ绫诲瀷" prop="inspectionType">
             <el-select v-model="entity.inspectionType" clearable placeholder="璇烽�夋嫨" size="small" @change="refreshTable"
               style="width: 100%">
-              <el-option label="鍘熻緟鏉�" value="鍘熻緟鏉�"></el-option>
-              <el-option label="鍖呮潗" value="鍖呮潗"></el-option>
+              <!-- <el-option label="鍘熻緟鏉�" value="鍘熻緟鏉�"></el-option>
+              <el-option label="鍖呮潗" value="鍖呮潗"></el-option> -->
+              <el-option v-for="item in dict.type.inspection_type" :key="item.value" :label="item.label"
+                :value="item.value">
+              </el-option>
             </el-select>
           </el-form-item>
           <el-form-item>
@@ -67,7 +70,7 @@
               <li :class="{ active: tabIndex === 0 }" @click="handleTab(0)">寰呬笅鍗�</li>
               <li :class="{ active: tabIndex === 1 }" @click="handleTab(1)">妫�楠屼腑</li>
               <li :class="{ active: tabIndex === 2 }" @click="handleTab(2)">宸叉楠�</li>
-              <li :class="{ active: tabIndex === 4 }" @click="handleTab(4)">瀛e害妫�楠�</li>
+              <li :class="{ active: tabIndex === 4 }" @click="handleTab(4)">鍙潬鎬ф楠�</li>
               <li :class="{ active: tabIndex === 3 }" v-if="checkPermi(['get:Ifs:ByAll'])" @click="handleTab(3)">鍏ㄩ儴</li>
             </ul>
           </div>
@@ -76,6 +79,10 @@
               @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>
+            <el-button v-if="tabIndex === 0" size="small" type="primary"
+              @click="opendeclareDialog(2, '浜屾鎶ユ')">浜屾鎶ユ</el-button>
+            <el-button v-if="tabIndex === 0" size="small" type="primary"
+              @click="opendeclareDialog(3, '杩囨湡鎶ユ')">杩囨湡鎶ユ</el-button>
           </div>
         </div>
         <!--寰呬笅鍗�-->
@@ -102,7 +109,7 @@
             :rowClassName="changeRowClass" :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"
             :rowClassName="changeRowClass" :handleSelectionChange="selectMethod" @pagination="pagination4"
@@ -138,7 +145,7 @@
     <!-- 鎾ら攢涓嬪崟 -->
     <el-dialog :visible.sync="quashDialogVisible" title="涓嬪崟鎾ら攢" width="30%">
       <el-button size="small" type="primary" @click="cancelQuashOrder('enterOrderId')">鎾ら攢杩涘巶妫�楠屼笅鍗�</el-button>
-      <el-button size="small" type="primary" @click="cancelQuashOrder('quarterOrderId')">鎾ら攢瀛e害妫�楠屼笅鍗�</el-button>
+      <el-button size="small" type="primary" @click="cancelQuashOrder('quarterOrderId')">鎾ら攢鍙潬鎬ф楠屼笅鍗�</el-button>
       <span slot="footer" class="dialog-footer">
         <el-row>
           <el-button @click="quashDialogVisible = false">鍙� 娑�</el-button>
@@ -176,7 +183,7 @@
           type="primary" @click="viewInsInfo0">鏌ョ湅</el-link>
       </div>
       <div>
-        <span style="font-size: 16px;">瀛e害妫�楠屽師濮嬫暟鎹�</span>
+        <span style="font-size: 16px;">鍙潬鎬ф楠屽師濮嬫暟鎹�</span>
         <el-link :disabled="!insInfo.quarterOrderId" :underline="false" style="vertical-align: bottom;margin-left: 6px"
           type="primary" @click="viewInsInfo1">鏌ョ湅</el-link>
       </div>
@@ -185,6 +192,8 @@
     <!--                :sonLaboratory="'鍘熻緟鏉�'" :state="state"-->
     <!--                :typeSource="typeSource"-->
     <!--                @goback="goback" @refreshView="refreshView"/>-->
+    <!-- 杩囨湡鎶ユ/浜屾鎶ユ -->
+    <declareDialog ref="declareDialog" :title="declareTitle" @refreshTable="refreshTable" />
   </div>
 </template>
 
@@ -208,42 +217,46 @@
   revokeInspectionReport,
   updateEntrustCode
 } from "@/api/business/rawMaterialOrder";
-import { getWarehouseSubmit } from "@/api/business/materialInspection";
+import { getWarehouseSubmit, ifsInventoryQuantityDelIfsInventory } from "@/api/business/materialInspection";
 import { mapGetters } from "vuex";
+import declareDialog from './components/declareDialog.vue'
 // import Inspection from "../do/b1-inspect-order-plan/Inspection.vue";
 
 export default {
   name: "MaterialOrder",
+  dicts: ["inspection_type"],
   // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
-  components: { limsTable, DownFileDialog, FilesLookVisible, DataLookVisible, ShowInfo, PrintDialog },
+  components: { limsTable, DownFileDialog, FilesLookVisible, DataLookVisible, ShowInfo, PrintDialog, declareDialog },
   data() {
     // 杩欓噷瀛樻斁鏁版嵁
     return {
+      inspectionTypeList: [],
+      declareTitle: '',
       tableData: [],
       tableLoading: false,
       column: [
         { label: '鎵瑰彿', prop: 'updateBatchNo' },
         { label: '闆朵欢鍙�', prop: 'partNo' },
         { label: '闆朵欢鎻忚堪', prop: 'partDesc' },
-        { label: '鎶ユ绫诲瀷', prop: 'inspectionType' },
         {
+          label: '鎶ユ绫诲瀷', prop: 'inspectionType',
           dataType: 'tag',
-          label: '鐗╂枡绫诲瀷',
-          prop: 'isExpire',
           formatData: (params) => {
-            if (params == 1) {
-              return '杩囨湡鐗╂枡'
-            } else {
-              return null
+            let obj = this.inspectionTypeList.find(m => m.value == params)
+            if (obj) {
+              return obj.label
             }
           },
           formatType: (params) => {
-            if (params == 1) {
-              return 'info'
-            } else {
-              return null
+            let obj = this.inspectionTypeList.find(m => m.value == params)
+            if (obj) {
+              return obj.raw.listClass
             }
           }
+        },
+        {
+          label: '杩囨湡鏃堕棿',
+          prop: 'expirationTime',
         },
         { label: '鎶佃揪鐨勯噰璐暟閲�', prop: 'qtyArrived' },
         { label: '鍗曚綅', prop: 'buyUnitMeas' },
@@ -267,6 +280,40 @@
               type: 'text',
               clickFun: (row) => {
                 this.exemption(row);
+              },
+            },
+            {
+              name: '鍒犻櫎',
+              type: 'text',
+              clickFun: (row) => {
+                this.$confirm("鏄惁鍒犻櫎璇ユ潯鏁版嵁?", "鎻愮ず", {
+                  confirmButtonText: "纭畾",
+                  cancelButtonText: "鍙栨秷",
+                  type: "warning",
+                })
+                  .then(() => {
+                    ifsInventoryQuantityDelIfsInventory({ id: row.id }).then((res) => {
+                      if (res.code == 200) {
+                        this.$message.success("鍒犻櫎鎴愬姛");
+                        this.refreshTable()
+                      }
+                    });
+                  })
+                  .catch(() => { });
+              },
+              disabled: (row) => {
+                return !row.inspectionType || row.inspectionType < 2
+              },
+            },
+            {
+              name: '缂栬緫',
+              type: 'text',
+              clickFun: (row) => {
+                this.declareTitle = row.inspectionType == 2 ? '浜屾鎶ユ' : '杩囨湡鎶ユ'
+                this.$refs.declareDialog.open(row.inspectionType, row)
+              },
+              disabled: (row) => {
+                return !row.inspectionType || row.inspectionType < 2
               },
             },
             // {
@@ -307,25 +354,25 @@
         { label: '鏍峰搧鍨嬪彿', prop: 'sampleModel' },
         { label: '妫�楠屼汉', prop: 'userName' },
         { label: '涓嬪彂鏃堕棿', prop: 'sendTime' },
-        { label: '鎶ユ绫诲瀷', prop: 'inspectionType' },
         {
+          label: '鎶ユ绫诲瀷', prop: 'inspectionType',
           dataType: 'tag',
-          label: '鐗╂枡绫诲瀷',
-          prop: 'isExpire',
           formatData: (params) => {
-            if (params == 1) {
-              return '杩囨湡鐗╂枡'
-            } else {
-              return null
+            let obj = this.inspectionTypeList.find(m => m.value == params)
+            if (obj) {
+              return obj.label
             }
           },
           formatType: (params) => {
-            if (params == 1) {
-              return 'info'
-            } else {
-              return null
+            let obj = this.inspectionTypeList.find(m => m.value == params)
+            if (obj) {
+              return obj.raw.listClass
             }
           }
+        },
+        {
+          label: '杩囨湡鏃堕棿',
+          prop: 'expirationTime',
         },
         { label: '鎶佃揪鐨勯噰璐暟閲�', prop: 'qtyArrived' },
         { label: '鍗曚綅', prop: 'buyUnitMeas' },
@@ -447,25 +494,25 @@
         },
         { label: '鏍峰搧鍨嬪彿', prop: 'sampleModel' },
         { label: '妫�楠屼汉', prop: 'userName' },
-        { label: '鎶ユ绫诲瀷', prop: 'inspectionType' },
         {
+          label: '鎶ユ绫诲瀷', prop: 'inspectionType',
           dataType: 'tag',
-          label: '鐗╂枡绫诲瀷',
-          prop: 'isExpire',
           formatData: (params) => {
-            if (params == 1) {
-              return '杩囨湡鐗╂枡'
-            } else {
-              return null
+            let obj = this.inspectionTypeList.find(m => m.value == params)
+            if (obj) {
+              return obj.label
             }
           },
           formatType: (params) => {
-            if (params == 1) {
-              return 'info'
-            } else {
-              return null
+            let obj = this.inspectionTypeList.find(m => m.value == params)
+            if (obj) {
+              return obj.raw.listClass
             }
           }
+        },
+        {
+          label: '杩囨湡鏃堕棿',
+          prop: 'expirationTime',
         },
         { label: '鍗曚綅', prop: 'buyUnitMeas' },
         { label: '鎺ユ敹鏃堕棿', prop: 'receiverDate' },
@@ -476,7 +523,7 @@
           label: '鎿嶄綔',
           operation: [
             {
-              name: '瀛e害妫�楠�',
+              name: '鍙潬鎬ф楠�',
               type: 'text',
               clickFun: (row) => {
                 this.playOrderSec(row);
@@ -527,7 +574,7 @@
               },
             },
             {
-              name: '瀛e害鎾ら攢',
+              name: '鍙潬鎬ф挙閿�',
               type: 'text',
               clickFun: (row) => {
                 this.repealQuarter(row);
@@ -619,25 +666,25 @@
         },
         { label: '鏍峰搧鍨嬪彿', prop: 'sampleModel' },
         { label: '妫�楠屼汉', prop: 'userName' },
-        { label: '鎶ユ绫诲瀷', prop: 'inspectionType' },
         {
+          label: '鎶ユ绫诲瀷', prop: 'inspectionType',
           dataType: 'tag',
-          label: '鐗╂枡绫诲瀷',
-          prop: 'isExpire',
           formatData: (params) => {
-            if (params == 1) {
-              return '杩囨湡鐗╂枡'
-            } else {
-              return null
+            let obj = this.inspectionTypeList.find(m => m.value == params)
+            if (obj) {
+              return obj.label
             }
           },
           formatType: (params) => {
-            if (params == 1) {
-              return 'info'
-            } else {
-              return null
+            let obj = this.inspectionTypeList.find(m => m.value == params)
+            if (obj) {
+              return obj.raw.listClass
             }
           }
+        },
+        {
+          label: '杩囨湡鏃堕棿',
+          prop: 'expirationTime',
         },
         { label: '鍗曚綅', prop: 'buyUnitMeas' },
         { label: '鎺ユ敹鏃堕棿', prop: 'receiverDate' },
@@ -744,25 +791,24 @@
         },
         { label: '鏍峰搧鍨嬪彿', prop: 'sampleModel' },
         { label: '妫�楠屼汉', prop: 'userName' },
-        { label: '鎶ユ绫诲瀷', prop: 'inspectionType' },
         {
-          dataType: 'tag',
-          label: '鐗╂枡绫诲瀷',
-          prop: 'isExpire',
+          label: '鎶ユ绫诲瀷', prop: 'inspectionType', dataType: 'tag',
           formatData: (params) => {
-            if (params == 1) {
-              return '杩囨湡鐗╂枡'
-            } else {
-              return null
+            let obj = this.inspectionTypeList.find(m => m.value == params)
+            if (obj) {
+              return obj.label
             }
           },
           formatType: (params) => {
-            if (params == 1) {
-              return 'info'
-            } else {
-              return null
+            let obj = this.inspectionTypeList.find(m => m.value == params)
+            if (obj) {
+              return obj.raw.listClass
             }
           }
+        },
+        {
+          label: '杩囨湡鏃堕棿',
+          prop: 'expirationTime',
         },
         { label: '鍗曚綅', prop: 'buyUnitMeas' },
         { label: '鎺ユ敹鏃堕棿', prop: 'receiverDate' },
@@ -773,7 +819,7 @@
           label: '鎿嶄綔',
           operation: [
             {
-              name: '瀛e害妫�楠�',
+              name: '鍙潬鎬ф楠�',
               type: 'text',
               clickFun: (row) => {
                 this.playOrderSec(row);
@@ -837,7 +883,7 @@
           value: 2
         },
         {
-          label: '瀛e害妫�楠�',
+          label: '鍙潬鎬ф楠�',
           value: 4
         },
         {
@@ -849,7 +895,7 @@
       tabIndex: 0,
       multipleSelection: [],
       active: 0, //1锛氫笅鍗曪紝2锛氭煡鐪�
-      orderType: 0, //0锛氬師杈呮潗涓嬪崟锛�1锛氬搴︽楠屼笅鍗�
+      orderType: 0, //0锛氬師杈呮潗涓嬪崟锛�1锛氬彲闈犳�ф楠屼笅鍗�
       currentId: null,
       btnLoading: false,
       quashDialogVisible: false, // 鎾ら攢涓嬪崟鎻愰啋寮规
@@ -892,6 +938,7 @@
   },
   mounted() {
     this.refreshTable()
+    this.inspectionTypeList = this.dict.type.inspection_type;
   },
   activated() {
     this.refreshTable()
@@ -919,7 +966,7 @@
         // 宸叉楠屾煡璇�
         this.getIfsByOverList()
       } else if (this.tabIndex === 4) {
-        // 鏌ヨ瀛e害妫�楠�
+        // 鏌ヨ鍙潬鎬ф楠�
         this.getIfsByQuarterList()
       } else {
         // 鍏ㄩ儴鏌ヨ
@@ -975,7 +1022,7 @@
         this.tableLoading2 = false
       })
     },
-    // 鏌ヨ瀛e害妫�楠�
+    // 鏌ヨ鍙潬鎬ф楠�
     getIfsByQuarterList() {
       this.tableLoading4 = true
       if (null != this.entity.date) {
@@ -1080,9 +1127,9 @@
         });
       });
     },
-    // 瀛e害鎾ら攢
+    // 鍙潬鎬ф挙閿�
     repealQuarter(row) {
-      this.$confirm('鏄惁鎾ら攢瀛e害涓嬪崟?', "璀﹀憡", {
+      this.$confirm('鏄惁鎾ら攢鍙潬鎬т笅鍗�?', "璀﹀憡", {
         confirmButtonText: "纭畾",
         cancelButtonText: "鍙栨秷",
         type: "warning"
@@ -1158,7 +1205,7 @@
     playOrder(row) {
       this.$router.push({ path: "/materialOrder/customsInspection", query: { orderType: 0, customsInspection: row, active: 1 } });
     },
-    // 瀛e害妫�楠屼笅鍗�
+    // 鍙潬鎬ф楠屼笅鍗�
     playOrderSec(row) {
       this.$router.push({ path: "/materialOrder/customsInspection", query: { orderType: 1, customsInspection: row, active: 1 } });
     },
@@ -1231,7 +1278,7 @@
           })
         }).catch(() => { })
       } else if (!row.enterOrderId && row.quarterOrderId) {
-        this.$confirm('鏄惁鎾ら攢瀛e害涓嬪崟?', "璀﹀憡", {
+        this.$confirm('鏄惁鎾ら攢鍙潬鎬т笅鍗�?', "璀﹀憡", {
           confirmButtonText: "纭畾",
           cancelButtonText: "鍙栨秷",
           type: "warning"
@@ -1359,6 +1406,10 @@
       }
       return ''
     },
+    opendeclareDialog(type, title) {
+      this.declareTitle = title
+      this.$refs.declareDialog.open(type)
+    }
   },
 }
 </script>

--
Gitblit v1.9.3