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