From 66d2a3a44b44489eaab5465bd7a2e906d508d898 Mon Sep 17 00:00:00 2001
From: zhaowei <zhaowei>
Date: 星期三, 02 四月 2025 15:01:19 +0800
Subject: [PATCH] 设备台账页面实现批量打印铭牌功能

---
 src/views/eam/equipment/modules/NameplateModal.vue |  132 +++++++++++++++++++++++++++----------------
 src/views/eam/equipment/EamEquipmentList.vue       |   23 +++++--
 2 files changed, 98 insertions(+), 57 deletions(-)

diff --git a/src/views/eam/equipment/EamEquipmentList.vue b/src/views/eam/equipment/EamEquipmentList.vue
index d8ed389..3e28275 100644
--- a/src/views/eam/equipment/EamEquipmentList.vue
+++ b/src/views/eam/equipment/EamEquipmentList.vue
@@ -89,6 +89,10 @@
             <a-icon type="delete"/>
             鍒犻櫎
           </a-menu-item>
+          <a-menu-item key="2" @click="handleOpenNameplateModal(selectionRows)">
+            <a-icon type="printer"/>
+            鎵撳嵃閾墝
+          </a-menu-item>
         </a-menu>
         <a-button style="margin-left: 8px"> 鎵归噺鎿嶄綔
           <a-icon type="down"/>
@@ -141,7 +145,7 @@
             <a class="ant-dropdown-link">鏇村 <a-icon type="down"/></a>
             <a-menu slot="overlay">
               <a-menu-item>
-                <a href="javascript:;" @click="handleOpenNameplateModal(record)">閾墝</a>
+                <a href="javascript:;" @click="handleOpenNameplateModal([record])">閾墝</a>
               </a-menu-item>
               <a-menu-item>
                 <a href="javascript:;" @click="handleOpenResumeDrawer(record)">灞ュ巻</a>
@@ -171,7 +175,7 @@
     <!-- 琛ㄥ崟鍖哄煙 -->
     <eamEquipment-modal ref="modalForm" @ok="modalFormOk"></eamEquipment-modal>
     <!--閾墝寮圭獥-->
-    <nameplate-modal ref="nameplateModalRef"/>
+    <nameplate-modal ref="nameplateModalRef" :printedRows="printedRows"/>
     <!--灞ュ巻寮圭獥-->
     <resume-drawer ref="resumeDrawerRef"/>
   </a-card>
@@ -453,6 +457,7 @@
         templateXlsDownloadUrl: '瀵煎叆妯℃澘/璁惧鍙拌处瀵煎叆妯℃澘_v1.0.xlsx'
       },
       treeData: [],
+      printedRows: [],
       activeTabKey: 1,
       appHomeUrl: ''
     }
@@ -480,17 +485,17 @@
 
     /**
      * 寮�鍚摥鐗屽脊绐�
-     * @param record 琛ㄦ牸琛屼俊鎭�
+     * @param recordArray 琛ㄦ牸琛屼俊鎭泦鍚�
      */
-    handleOpenNameplateModal(record) {
-      this.$refs.nameplateModalRef.model = Object.assign({}, record)
-      this.$refs.nameplateModalRef.httpUrl = this.appHomeUrl + record.equipmentCode
+    handleOpenNameplateModal(recordArray) {
+      this.printedRows = recordArray
+      this.$refs.nameplateModalRef.httpUrl = this.appHomeUrl
       this.$refs.nameplateModalRef.visible = true
     },
 
     /**
      * 寮�鍚饱鍘嗘娊灞�
-     * @param record
+     * @param record 琛ㄦ牸琛屼俊鎭�
      */
     handleOpenResumeDrawer(record) {
       this.$refs.resumeDrawerRef.visible = true
@@ -526,9 +531,11 @@
     /**
      * 璁惧鍙拌处琛ㄦ牸澶氶�夋鐘舵�佹敼鍙樻椂瑙﹀彂
      * @param selectedRowKeys 宸查�夋嫨鐨剅owKey闆嗗悎
+     * @param selectionRows 褰撳墠鍒嗛〉涓嬪凡閫夋嫨鐨勮淇℃伅闆嗗悎
      */
-    onSelectChange(selectedRowKeys) {
+    onSelectChange(selectedRowKeys, selectionRows) {
       this.selectedRowKeys = selectedRowKeys
+      this.selectionRows = selectionRows
       this.$refs.tabPaneTableListRef.dataSource = []
       this.$refs.tabPaneTableListRef.onClearSelected()
       if (selectedRowKeys.length === 1) this.loadTabPaneTableData(selectedRowKeys[0])
diff --git a/src/views/eam/equipment/modules/NameplateModal.vue b/src/views/eam/equipment/modules/NameplateModal.vue
index af606bf..e02482b 100644
--- a/src/views/eam/equipment/modules/NameplateModal.vue
+++ b/src/views/eam/equipment/modules/NameplateModal.vue
@@ -6,62 +6,66 @@
     @cancel="handleCancel"
     :maskClosable="false"
   >
-    <table id="nameplateTable" border="1" cellpadding="12" cellspacing="0" align="center" width="80%">
-      <thead>
-      <tr>
-        <th colspan="3">璁惧绠$悊鐗�</th>
-      </tr>
-      </thead>
 
-      <tbody>
-      <tr>
-        <td rowspan="3">
-          <QrcodeVue :value="httpUrl"/>
-        </td>
-        <td>璁惧缂栧彿</td>
-        <td>{{ model.equipmentCode }}</td>
-      </tr>
+    <div id="nameplateTable">
+      <table border="1" cellpadding="12" cellspacing="0" align="center" width="80%" v-for="item in printedRows"
+             :key="item.id">
+        <thead>
+        <tr>
+          <th colspan="3">璁惧绠$悊鐗�</th>
+        </tr>
+        </thead>
 
-      <tr>
-        <td>璁惧鍚嶇О</td>
-        <td>{{ model.equipmentName }}</td>
-      </tr>
+        <tbody>
+        <tr>
+          <td rowspan="3">
+            <QrcodeVue :value="httpUrl+item.equipmentCode"/>
+          </td>
+          <td>璁惧缂栧彿</td>
+          <td>{{ item.equipmentCode }}</td>
+        </tr>
 
-      <tr>
-        <td>璁惧鍨嬪彿</td>
-        <td>{{ model.equipmentModel }}</td>
-      </tr>
+        <tr>
+          <td>璁惧鍚嶇О</td>
+          <td>{{ item.equipmentName }}</td>
+        </tr>
 
-      <tr>
-        <td>璁惧绠$悊</td>
-        <td>浣跨敤杞﹂棿</td>
-        <td>{{ model.orgId_dictText }}</td>
-      </tr>
+        <tr>
+          <td>璁惧鍨嬪彿</td>
+          <td>{{ item.equipmentModel }}</td>
+        </tr>
 
-      <tr>
-        <td rowspan="3">
-          <QrcodeVue :value="model.equipmentCode"/>
-        </td>
-        <td>鍑哄巶缂栧彿</td>
-        <td>{{ model.factoryNumber }}</td>
-      </tr>
+        <tr>
+          <td>璁惧绠$悊</td>
+          <td>浣跨敤杞﹂棿</td>
+          <td>{{ item.orgId_dictText }}</td>
+        </tr>
 
-      <tr>
-        <td>璁惧绠$悊鍛�</td>
-        <td>{{ model.equipmentManager_dictText }}</td>
-      </tr>
+        <tr>
+          <td rowspan="3">
+            <QrcodeVue :value="item.equipmentCode"/>
+          </td>
+          <td>鍑哄巶缂栧彿</td>
+          <td>{{ item.factoryNumber }}</td>
+        </tr>
 
-      <tr>
-        <td>瀹夎浣嶇疆</td>
-        <td>{{ model.installationPosition }}</td>
-      </tr>
+        <tr>
+          <td>璁惧绠$悊鍛�</td>
+          <td>{{ item.equipmentManager_dictText }}</td>
+        </tr>
 
-      <tr>
-        <td>MES</td>
-        <td colspan="2" style="color: #f00;font-weight: bold;letter-spacing: 1px">闈炵鐞嗗憳鍕垮姩姝ら摥鐗�</td>
-      </tr>
-      </tbody>
-    </table>
+        <tr>
+          <td>瀹夎浣嶇疆</td>
+          <td>{{ item.installationPosition }}</td>
+        </tr>
+
+        <tr>
+          <td>MES</td>
+          <td colspan="2" style="color: #f00;font-weight: bold;letter-spacing: 1px">闈炵鐞嗗憳鍕垮姩姝ら摥鐗�</td>
+        </tr>
+        </tbody>
+      </table>
+    </div>
 
     <template slot="footer">
       <a-button @click="handleCancel">鍏抽棴</a-button>
@@ -76,11 +80,15 @@
 export default {
   name: 'NameplateModal',
   components: { QrcodeVue },
+  props: {
+    printedRows: {
+      type: Array
+    }
+  },
   data() {
     return {
       title: '閾墝',
       visible: false,
-      model: {},
       httpUrl: ''
     }
   },
@@ -93,11 +101,37 @@
 </script>
 
 <style lang="less" scoped>
+/deep/ .ant-modal {
+  height: 75%;
+  overflow: hidden;
+
+  .ant-modal-content {
+    height: 100%;
+    display: flex;
+    flex-direction: column;
+    overflow: hidden;
+
+    ::-webkit-scrollbar {
+      width: 8px;
+      height: 8px;
+    }
+
+    .ant-modal-body {
+      flex: 1;
+      overflow: auto;
+    }
+  }
+}
+
 table {
   font-family: "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "寰蒋闆呴粦", Arial, sans-serif;
   color: #000;
   text-align: center;
 
+  &:not(:last-child) {
+    margin-bottom: 10px;
+  }
+
   th {
     font-size: 28px;
     letter-spacing: 3px;

--
Gitblit v1.9.3