From a7dc7b230fcc6abc6ee5a7bfadb90789b03d2ca8 Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期一, 07 九月 2026 16:45:37 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/dev_pro2.0' into dev_pro2.0

---
 src/views/mes/md/item/type/index.vue |   34 +++++++++++++++++++++++++++++++++-
 1 files changed, 33 insertions(+), 1 deletions(-)

diff --git a/src/views/mes/md/item/type/index.vue b/src/views/mes/md/item/type/index.vue
index d3765d9..859dcb2 100644
--- a/src/views/mes/md/item/type/index.vue
+++ b/src/views/mes/md/item/type/index.vue
@@ -5,11 +5,18 @@
 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 { getItemPage as getMesItemPage } from '#/api/mes/md/item';
+import { getItemPage as getMdmItemPage } from '#/api/mdm/item';
 import { $t } from '#/locales';
 
 import { useGridColumns, useGridFormSchema } from './data';
@@ -49,6 +56,12 @@
   importModalApi.open();
 }
 
+/** 瀵煎嚭鍒嗙被锛堟寜褰撳墠鍒楄〃鏌ヨ鏉′欢瀵煎嚭鍏ㄩ儴鍛戒腑鏁版嵁锛� */
+async function handleExport() {
+  const data = await exportItemType(await gridApi.formApi.getValues());
+  downloadFileFromBlobPart({ fileName: '鐗╂枡鍒嗙被鏁版嵁.xls', source: data });
+}
+
 /** 娣诲姞涓嬬骇鍒嗙被 */
 function handleAppend(row: MesMdItemTypeApi.ItemType) {
   formModalApi.setData({ parentId: row.id }).open();
@@ -61,6 +74,18 @@
 
 /** 鍒犻櫎鍒嗙被 */
 async function handleDelete(row: MesMdItemTypeApi.ItemType) {
+  try {
+    const [mesResult, mdmResult] = await Promise.all([
+      getMesItemPage({ pageNo: 1, pageSize: 1, itemTypeId: row.id }),
+      getMdmItemPage({ pageNo: 1, pageSize: 1, categoryId: row.id } as any),
+    ]);
+    if (mesResult.total > 0 || mdmResult.total > 0) {
+      message.error('璇ュ垎绫讳笅瀛樺湪鐗╂枡锛屾棤娉曞垹闄�');
+      return;
+    }
+  } catch {
+    // 鏌ヨ寮傚父鏃剁户缁墽琛屽垹闄わ紝鐢卞悗绔厹搴曟牎楠�
+  }
   const hideLoading = message.loading({
     content: $t('ui.actionMessage.deleting', [row.name]),
     duration: 0,
@@ -132,6 +157,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