From fec6a89b4ed2dfc988c1ab308188306d536d8ccd Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期三, 02 九月 2026 17:17:32 +0800
Subject: [PATCH] feat(mdm): 基础数据物料管理/物料分类/计量单位增加导出按钮

---
 src/api/mdm/unit/index.ts              |    5 ++
 src/views/mes/md/item/type/index.vue   |   20 +++++++++
 src/views/basicData/mdm/index.vue      |   26 ++++++------
 src/api/mes/md/item/type/index.ts      |    5 ++
 src/views/basicData/mdm/unit/index.vue |   15 +++++++
 5 files changed, 57 insertions(+), 14 deletions(-)

diff --git a/src/api/mdm/unit/index.ts b/src/api/mdm/unit/index.ts
index 5041a55..0a5eb6c 100644
--- a/src/api/mdm/unit/index.ts
+++ b/src/api/mdm/unit/index.ts
@@ -48,6 +48,11 @@
   return requestClient.delete(`/mdm/unit/delete?id=${id}`);
 }
 
+/** 瀵煎嚭璁¢噺鍗曚綅 */
+export function exportUnit(params: Record<string, any>) {
+  return requestClient.download('/mdm/unit/export-excel', { params });
+}
+
 /** 涓嬭浇璁¢噺鍗曚綅瀵煎叆妯℃澘 */
 export function importUnitTemplate() {
   return requestClient.download('/mdm/unit/get-import-template');
diff --git a/src/api/mes/md/item/type/index.ts b/src/api/mes/md/item/type/index.ts
index bd99b95..86dc13d 100644
--- a/src/api/mes/md/item/type/index.ts
+++ b/src/api/mes/md/item/type/index.ts
@@ -53,6 +53,11 @@
   return requestClient.delete(`/mes/md/item-type/delete?id=${id}`);
 }
 
+/** 瀵煎嚭鐗╂枡浜у搧鍒嗙被 */
+export function exportItemType(params: Record<string, any>) {
+  return requestClient.download('/mes/md/item-type/export-excel', { params });
+}
+
 /** 涓嬭浇鐗╂枡浜у搧鍒嗙被瀵煎叆妯℃澘 */
 export function importItemTypeTemplate() {
   return requestClient.download('/mes/md/item-type/get-import-template');
diff --git a/src/views/basicData/mdm/index.vue b/src/views/basicData/mdm/index.vue
index 99cea03..af385ba 100644
--- a/src/views/basicData/mdm/index.vue
+++ b/src/views/basicData/mdm/index.vue
@@ -14,7 +14,7 @@
 import {
   deleteItem,
   deleteItemList,
-  // exportItem,
+  exportItem,
   getItemPage,
   updateItemStatus,
   updateItemSync,
@@ -81,11 +81,11 @@
   gridApi.query();
 }
 
-/** 瀵煎嚭琛ㄦ牸 */
-// async function handleExport() {
-//   const data = await exportItem(await gridApi.formApi.getValues());
-//   downloadFileFromBlobPart({ fileName: '鐗╂枡.xls', source: data });
-// }
+/** 瀵煎嚭琛ㄦ牸锛堟寜褰撳墠鍒楄〃鏌ヨ鏉′欢瀵煎嚭鍏ㄩ儴鍛戒腑鏁版嵁锛� */
+async function handleExport() {
+  const data = await exportItem(await gridApi.formApi.getValues());
+  downloadFileFromBlobPart({ fileName: '鐗╂枡鏁版嵁.xls', source: data });
+}
 
 /** 鍒涘缓鐗╂枡 */
 function handleCreate() {
@@ -241,13 +241,13 @@
               auth: ['mdm:item:import'],
               onClick: handleImport,
             },
-            // {
-            //   label: $t('ui.actionTitle.export'),
-            //   type: 'primary',
-            //   icon: ACTION_ICON.DOWNLOAD,
-            //   auth: ['mdm:item:export'],
-            //   onClick: handleExport,
-            // },
+            {
+              label: $t('ui.actionTitle.export'),
+              type: 'primary',
+              icon: ACTION_ICON.DOWNLOAD,
+              auth: ['mdm:item:export'],
+              onClick: handleExport,
+            },
             {
               label: $t('ui.actionTitle.deleteBatch'),
               type: 'primary',
diff --git a/src/views/basicData/mdm/unit/index.vue b/src/views/basicData/mdm/unit/index.vue
index 07cd0db..4a9fca8 100644
--- a/src/views/basicData/mdm/unit/index.vue
+++ b/src/views/basicData/mdm/unit/index.vue
@@ -3,12 +3,14 @@
 import type { MdmUnitApi } from '#/api/mdm/unit';
 
 import { Page, useVbenModal } from '#/packages/effects/common-ui/src';
+import { downloadFileFromBlobPart } from '#/packages/utils/src';
 
 import { message, Tag } from 'ant-design-vue';
 
 import { ACTION_ICON, TableAction, useVbenVxeGrid } from '#/adapter/vxe-table';
 import {
   deleteUnit,
+  exportUnit,
   getUnitPage,
 } from '#/api/mdm/unit';
 import { $t } from '#/locales';
@@ -42,6 +44,12 @@
 /** 瀵煎叆璁¢噺鍗曚綅 */
 function handleImport() {
   importModalApi.open();
+}
+
+/** 瀵煎嚭璁¢噺鍗曚綅锛堟寜褰撳墠鍒楄〃鏌ヨ鏉′欢瀵煎嚭鍏ㄩ儴鍛戒腑鏁版嵁锛� */
+async function handleExport() {
+  const data = await exportUnit(await gridApi.formApi.getValues());
+  downloadFileFromBlobPart({ fileName: '璁¢噺鍗曚綅鏁版嵁.xls', source: data });
 }
 
 /** 缂栬緫璁¢噺鍗曚綅 */
@@ -117,6 +125,13 @@
               auth: ['mdm:unit-measure:import'],
               onClick: handleImport,
             },
+            {
+              label: $t('ui.actionTitle.export'),
+              type: 'primary',
+              icon: ACTION_ICON.DOWNLOAD,
+              auth: ['mdm:unit-measure:export'],
+              onClick: handleExport,
+            },
           ]"
         />
       </template>
diff --git a/src/views/mes/md/item/type/index.vue b/src/views/mes/md/item/type/index.vue
index d3765d9..0bf9953 100644
--- a/src/views/mes/md/item/type/index.vue
+++ b/src/views/mes/md/item/type/index.vue
@@ -5,11 +5,16 @@
 import { ref } from 'vue';
 
 import { Page, useVbenModal } from '@vben/common-ui';
+import { downloadFileFromBlobPart } from '@vben/utils';
 
 import { message } from 'ant-design-vue';
 
 import { ACTION_ICON, TableAction, useVbenVxeGrid } from '#/adapter/vxe-table';
-import { deleteItemType, getItemTypeList } from '#/api/mes/md/item/type';
+import {
+  deleteItemType,
+  exportItemType,
+  getItemTypeList,
+} from '#/api/mes/md/item/type';
 import { $t } from '#/locales';
 
 import { useGridColumns, useGridFormSchema } from './data';
@@ -47,6 +52,12 @@
 /** 瀵煎叆鍒嗙被 */
 function handleImport() {
   importModalApi.open();
+}
+
+/** 瀵煎嚭鍒嗙被锛堟寜褰撳墠鍒楄〃鏌ヨ鏉′欢瀵煎嚭鍏ㄩ儴鍛戒腑鏁版嵁锛� */
+async function handleExport() {
+  const data = await exportItemType(await gridApi.formApi.getValues());
+  downloadFileFromBlobPart({ fileName: '鐗╂枡鍒嗙被鏁版嵁.xls', source: data });
 }
 
 /** 娣诲姞涓嬬骇鍒嗙被 */
@@ -132,6 +143,13 @@
               onClick: handleImport,
             },
             {
+              label: $t('ui.actionTitle.export'),
+              type: 'primary',
+              icon: ACTION_ICON.DOWNLOAD,
+              auth: ['mes:md-item-type:export'],
+              onClick: handleExport,
+            },
+            {
               label: isExpanded ? '鏀剁缉' : '灞曞紑',
               type: 'primary',
               onClick: handleExpand,

--
Gitblit v1.9.3