From e5454b769d44a34af423bf87ac8a740bf8c20341 Mon Sep 17 00:00:00 2001
From: Crunchy <3114200645@qq.com>
Date: 星期二, 29 四月 2025 13:25:29 +0800
Subject: [PATCH] Merge branch 'dev' into dev_tides

---
 src/views/business/materialOrder/index.vue |  238 ++++++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 186 insertions(+), 52 deletions(-)

diff --git a/src/views/business/materialOrder/index.vue b/src/views/business/materialOrder/index.vue
index ce2ca45..770931d 100644
--- a/src/views/business/materialOrder/index.vue
+++ b/src/views/business/materialOrder/index.vue
@@ -5,51 +5,51 @@
         <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">
+              @keyup.enter.native="goSearch">
             </el-input>
           </el-form-item>
-          <el-form-item label="濮旀墭缂栧彿" prop="entrustCode">
+          <el-form-item label="濮旀墭缂栧彿" prop="entrustCode" v-if="tabIndex !== 0">
             <el-input v-model="entity.entrustCode" clearable placeholder="璇疯緭鍏�" size="small"
-              @keyup.enter.native="refreshTable">
+              @keyup.enter.native="goSearch">
             </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">
+              @keyup.enter.native="goSearch">
             </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">
+              @keyup.enter.native="goSearch">
             </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 size="mini" type="primary" @click="refreshTable()">鏌ヨ</el-button>
+            <el-button size="mini" type="primary" @click="goSearch">鏌ヨ</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">
+              @keyup.enter.native="goSearch">
             </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">
+              @keyup.enter.native="goSearch">
             </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-select v-model="entity.inspectStatus" clearable size="small" @change="goSearch">
               <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="閫夋嫨鏃ユ湡"
+            <el-date-picker v-model="entity.date" end-placeholder="缁撴潫鏃ユ湡" format="yyyy-MM-dd" placeholder="閫夋嫨鏃ユ湡" @change="goSearch"
               range-separator="鑷�" size="small" start-placeholder="寮�濮嬫棩鏈�" type="daterange" value-format="yyyy-MM-dd">
             </el-date-picker>
           </el-form-item>
@@ -59,15 +59,15 @@
         <div class="table-tab">
           <div>
             <ul class="tab">
-              <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 === 0 }" v-if="checkPermi(['get:raw:await'])" @click="handleTab(0)">寰呬笅鍗�</li>
+              <li :class="{ active: tabIndex === 1 }" v-if="checkPermi(['get:raw:testing'])" @click="handleTab(1)">妫�楠屼腑</li>
+              <li :class="{ active: tabIndex === 2 }" v-if="checkPermi(['get:raw:check'])" @click="handleTab(2)">宸叉楠�</li>
+              <li :class="{ active: tabIndex === 4 }" v-if="checkPermi(['get:raw:quarterCheck'])" @click="handleTab(4)">瀛e害妫�楠�</li>
               <li :class="{ active: tabIndex === 3 }" v-if="checkPermi(['get:Ifs:ByAll'])" @click="handleTab(3)">鍏ㄩ儴</li>
             </ul>
           </div>
           <div>
-            <el-button v-show="tabIndex === 3 || tabIndex === 2" :loading="outLoading" size="small" type="primary"
+            <el-button v-show="tabIndex === 3" :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>
@@ -76,8 +76,8 @@
         <!--寰呬笅鍗�-->
         <div class="table">
           <lims-table :tableData="tableData" :column="column" v-if="tabIndex === 0" @pagination="pagination"
-            :rowClassName="changeRowClass" :height="'calc(100vh - 290px)'" key="tableData" :page="page"
-            :tableLoading="tableLoading"></lims-table>
+                      ref="tableData" :rowClassName="changeRowClass" :height="'calc(100vh - 290px)'"
+                      key="tableData" :page="page" :tableLoading="tableLoading"></lims-table>
         </div>
         <!--妫�楠屼腑-->
         <div class="table">
@@ -109,8 +109,7 @@
     <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"></el-input>
       </div>
       <span slot="footer" class="dialog-footer">
         <el-row>
@@ -195,6 +194,7 @@
   concessionRelease,
   getIfsByAll,
   getIfsByOver,
+  getIfsByQuarter,
   getIfsByStateOne,
   rawAllExport,
   rawOrderRelease,
@@ -204,10 +204,11 @@
   updateEntrustCode
 } from "@/api/business/rawMaterialOrder";
 import { getWarehouseSubmit } from "@/api/business/materialInspection";
+import {mapGetters} from "vuex";
 // import Inspection from "../do/b1-inspect-order-plan/Inspection.vue";
 
 export default {
-  name: "b1-material-inspection-order",
+  name: "MaterialOrder",
   // import 寮曞叆鐨勭粍浠堕渶瑕佹敞鍏ュ埌瀵硅薄涓墠鑳戒娇鐢�
   components: { limsTable, DownFileDialog, FilesLookVisible, DataLookVisible, ShowInfo, PrintDialog },
   data() {
@@ -245,7 +246,6 @@
         { label: '鎶ユ鏃堕棿', prop: 'declareDate' },
         {
           dataType: 'action',
-          fixed: 'right',
           label: '鎿嶄綔',
           operation: [
             {
@@ -274,7 +274,7 @@
       ],
       page: {
         total: 0,
-        size: 10,
+        size: 20,
         current: 1
       },
       tableData1: [],
@@ -355,7 +355,7 @@
       ],
       page1: {
         total: 0,
-        size: 10,
+        size: 20,
         current: 1
       },
       tableData2: [],
@@ -411,7 +411,25 @@
         { label: '闆朵欢鎻忚堪', prop: 'partDesc' },
         { label: '渚涘簲鍟嗗悕绉�', prop: 'supplierName' },
         { label: '涓嶅悎鏍兼弿杩�', prop: 'unqualifiedDesc' },
-        { label: '鍏嶆', prop: 'isExemption' },
+        {
+          dataType: 'tag',
+          label: '鍏嶆',
+          prop: 'isExemption',
+          formatData: (params) => {
+            if (params == 1) {
+              return '鍏嶆'
+            } else {
+              return null
+            }
+          },
+          formatType: (params) => {
+            if (params == 1) {
+              return 'success'
+            } else {
+              return null
+            }
+          }
+        },
         {
           label: '鏍峰搧鍚嶇О',
           prop: 'sampleName',
@@ -457,6 +475,11 @@
               disabled: (row) => {
                 return row.isQuarter == 0
               },
+              showHide: (row) => {
+                return this.checkPermi([
+                  "get:raw:check:operation",
+                ]);
+              },
             },
             {
               name: '鏁版嵁鏌ョ湅',
@@ -470,14 +493,14 @@
               type: 'text',
               clickFun: (row) => {
                 this.handleFileLook(row);
-              },
+              }
             },
             {
               name: '鎶ュ憡涓嬭浇',
               type: 'text',
               clickFun: (row) => {
                 this.download(row);
-              },
+              }
             },
             {
               name: '鍘熷璁板綍',
@@ -498,6 +521,11 @@
               disabled: (row) => {
                 return row.inspectStatus != 2
               },
+              showHide: (row) => {
+                return this.checkPermi([
+                  "get:raw:check:operation",
+                ]);
+              },
             },
             {
               name: '瀛e害鎾ら攢',
@@ -508,13 +536,18 @@
               disabled: (row) => {
                 return row.quarterOrderId == null || row.quarterReportId != null
               },
+              showHide: (row) => {
+                return this.checkPermi([
+                  "get:raw:check:operation",
+                ]);
+              },
             },
           ]
         }
       ],
       page2: {
         total: 0,
-        size: 10,
+        size: 20,
         current: 1
       },
       tableData3: [],
@@ -564,7 +597,25 @@
         { label: '闆朵欢鎻忚堪', prop: 'partDesc' },
         { label: '渚涘簲鍟嗗悕绉�', prop: 'supplierName' },
         { label: '涓嶅悎鏍兼弿杩�', prop: 'unqualifiedDesc' },
-        { label: '鍏嶆', prop: 'isExemption' },
+        {
+          dataType: 'tag',
+          label: '鍏嶆',
+          prop: 'isExemption',
+          formatData: (params) => {
+            if (params == 1) {
+              return '鍏嶆'
+            } else {
+              return null
+            }
+          },
+          formatType: (params) => {
+            if (params == 1) {
+              return 'success'
+            } else {
+              return null
+            }
+          }
+        },
         {
           label: '鏍峰搧鍚嶇О',
           prop: 'sampleName',
@@ -620,7 +671,7 @@
       ],
       page3: {
         total: 0,
-        size: 10,
+        size: 20,
         current: 1
       },
       tableData4: [],
@@ -670,7 +721,25 @@
         { label: '闆朵欢鎻忚堪', prop: 'partDesc' },
         { label: '渚涘簲鍟嗗悕绉�', prop: 'supplierName' },
         { label: '涓嶅悎鏍兼弿杩�', prop: 'unqualifiedDesc' },
-        { label: '鍏嶆', prop: 'isExemption' },
+        {
+          dataType: 'tag',
+          label: '鍏嶆',
+          prop: 'isExemption',
+          formatData: (params) => {
+            if (params == 1) {
+              return '鍏嶆'
+            } else {
+              return null
+            }
+          },
+          formatType: (params) => {
+            if (params == 1) {
+              return 'success'
+            } else {
+              return null
+            }
+          }
+        },
         {
           label: '鏍峰搧鍚嶇О',
           prop: 'sampleName',
@@ -743,7 +812,7 @@
       ],
       page4: {
         total: 0,
-        size: 10,
+        size: 20,
         current: 1
       },
       entity: {
@@ -781,7 +850,7 @@
         }
       ],
       more: false,
-      tabIndex: 0,
+      tabIndex: '',
       multipleSelection: [],
       active: 0, //1锛氫笅鍗曪紝2锛氭煡鐪�
       orderType: 0, //0锛氬師鏉愭枡涓嬪崟锛�1锛氬搴︽楠屼笅鍗�
@@ -822,11 +891,31 @@
       outLoading: false
     }
   },
+  computed: {
+    ...mapGetters(['nickName'])
+  },
   mounted() {
+    if (this.checkPermi(['get:raw:await'])) {
+      this.tabIndex = 0
+    } else {
+      this.tabIndex = 2
+    }
+    this.refreshTable()
+  },
+  activated () {
     this.refreshTable()
   },
   // 鏂规硶闆嗗悎
   methods: {
+    // 鐐瑰嚮鏌ヨ鍥炶皟
+    goSearch() {
+      this.page.current = 1
+      this.page1.current = 1
+      this.page2.current = 1
+      this.page3.current = 1
+      this.page4.current = 1
+      this.refreshTable()
+    },
     // 鏌ヨ鍥炶皟
     refreshTable() {
       if (this.tabIndex === 0) {
@@ -906,7 +995,7 @@
         this.entity.endDeclareDate = ''
       }
       const params = { ...this.entity, ...this.page4 }
-      getIfsByOver(params).then(res => {
+      getIfsByQuarter(params).then(res => {
         this.tableLoading4 = false
         if (res.code === 200) {
           this.tableData4 = res.data.records
@@ -969,10 +1058,7 @@
       if (row.userName) {
         inspectorList = row.userName.split(',')
       }
-      let user = JSON.parse(localStorage.getItem('user'))
-      if (user) {
-        inspectorList.push(user.name)
-      }
+      inspectorList.push(this.nickName)
       this.inspectorList = inspectorList
       this.insInfo = row
       this.InspectInfoDialog = true
@@ -1019,16 +1105,60 @@
       }).catch(() => { })
     },
     viewInsInfo0() {
-      this.state = 3;
-      this.typeSource = this.insInfo.typeSource
-      this.orderId = this.insInfo.enterOrderId
+      let inspectorList = []
+      inspectorList.push(this.nickName)
       this.InspectInfoDialog = false
+      if (this.checkPermi(['business:inspectionView'])) {
+        this.$router.push({
+          name: "InspectionView",
+          query: {
+            sonLaboratory: '鍘熸潗鏂�',
+            state: 3,
+            typeSource: this.insInfo.typeSource,
+            orderId: this.insInfo.enterOrderId,
+            inspectorList: inspectorList,
+          },
+        })
+      } else {
+        this.$router.push({
+          path: "/inspectionTask/inspection",
+          query: {
+            sonLaboratory: '鍘熸潗鏂�',
+            state: 3,
+            typeSource: this.insInfo.typeSource,
+            orderId: this.insInfo.enterOrderId,
+            inspectorList: inspectorList,
+          },
+        })
+      }
     },
     viewInsInfo1() {
-      this.state = 3;
-      this.typeSource = this.insInfo.typeSource
-      this.orderId = this.insInfo.quarterOrderId
+      let inspectorList = []
+      inspectorList.push(this.nickName)
       this.InspectInfoDialog = false
+      if (this.checkPermi(['business:inspectionView'])) {
+        this.$router.push({
+          name: "InspectionView",
+          query: {
+            sonLaboratory: '鍘熸潗鏂�',
+            state: 3,
+            typeSource: this.insInfo.typeSource,
+            orderId: this.insInfo.quarterOrderId,
+            inspectorList: inspectorList,
+          },
+        })
+      } else {
+        this.$router.push({
+          path: "/inspectionTask/inspection",
+          query: {
+            sonLaboratory: '鍘熸潗鏂�',
+            state: 3,
+            typeSource: this.insInfo.typeSource,
+            orderId: this.insInfo.quarterOrderId,
+            inspectorList: inspectorList,
+          },
+        })
+      }
     },
     goback() {
       this.state = 0
@@ -1040,7 +1170,6 @@
     },
     // 閾滄潗鏂欎笅鍗�
     copper() {
-      this.$router.push("/materialOrder/copperOrder");
       this.$router.push({ path: "/materialOrder/copperOrder", query: { active: 1 } });
     },
     // 鎵撳紑鏍囩鎵撳嵃寮规
@@ -1061,20 +1190,20 @@
     },
     // 涓嬪崟
     playOrder(row) {
-      this.$router.push({ path: "/materialOrder/customsInspection", query: { orderType: 0, customsInspection: row, active: 1 } });
+      this.$router.push({ path: "/materialOrder/customsInspectionOrder", query: { orderType: 0, customsInspection: row, active: 1 } });
     },
     // 瀛e害妫�楠屼笅鍗�
     playOrderSec(row) {
-      this.$router.push({ path: "/materialOrder/customsInspection", query: { orderType: 1, customsInspection: row, active: 1 } });
+      this.$router.push({ path: "/materialOrder/customsInspectionOrder", query: { orderType: 1, customsInspection: row, active: 1 } });
     },
     // 鐐瑰嚮鏍峰搧鍚嶇О鏌ョ湅璇︽儏
     selectAllByOne(row) {
       if (row.isCopper == 1) {
         this.currentId = row.enterOrderId
-        this.$router.push({ path: "/materialOrder/copperOrder", query: { customsInspection: row, active: 2, currentId: this.currentId } });
+        this.$router.push({ path: "/materialOrder/CopperView", query: { customsInspection: row, active: 2, currentId: this.currentId } });
       } else {
         this.currentId = row.insOrderId
-        this.$router.push({ path: "/materialOrder/customsInspection", query: { customsInspection: row, active: 2, currentId: this.currentId } });
+        this.$router.push({ path: "/materialOrder/customsInspectionView", query: { customsInspection: row, active: 2, currentId: this.currentId } });
       }
     },
     // 鎵撳紑鍏嶆寮规
@@ -1174,7 +1303,7 @@
           repealQuarterRawOrder({ quarterOrderId: this.insOrderRow.quarterOrderId }).then(res => {
             if (res.code === 200) {
               this.$message.success('鎾ら攢鎴愬姛')
-              this.refreshTable('page')
+              this.refreshTable()
             }
           })
         }).catch(() => { })
@@ -1221,10 +1350,14 @@
     },
     // 瀵煎嚭
     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 }).then(res => {
+      let params = {}
+      if (this.multipleSelection.length > 0) {
+        params.ids = this.multipleSelection.map(item => item.id).join(',');
+      } else {
+        params = {...this.entity}
+      }
+      rawAllExport(params).then(res => {
         this.outLoading = false
         const blob = new Blob([res], { type: 'application/octet-stream' });
         this.$download.saveAs(blob, '鍘熸潗鏂欐娴嬩俊鎭鍑�.xlsx');
@@ -1252,6 +1385,7 @@
     // 鍒囨崲涓嬪崟tab琛ㄦ牸
     handleTab(m) {
       this.tabIndex = m;
+      this.multipleSelection = []
       this.refreshTable()
     },
     // 琛ㄦ牸閫夋嫨鏂规硶

--
Gitblit v1.9.3