From 64a8cd04229f7b903913fc3dc7ef4aef267ac3bc Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期一, 26 十月 2026 17:36:14 +0800
Subject: [PATCH] Merge branch 'dev_pro2.0' into dev_南通_苏珩

---
 src/views/basicData/mdm/index.vue |   94 ++++++++++++++++++++++++++++++-----------------
 1 files changed, 60 insertions(+), 34 deletions(-)

diff --git a/src/views/basicData/mdm/index.vue b/src/views/basicData/mdm/index.vue
index af385ba..b31f503 100644
--- a/src/views/basicData/mdm/index.vue
+++ b/src/views/basicData/mdm/index.vue
@@ -5,6 +5,8 @@
 
 import { computed, ref } from 'vue';
 
+import { isAiEnable } from '@vben/hooks';
+
 import { confirm, Page, useVbenModal } from '#/packages/effects/common-ui/src';
 import { downloadFileFromBlobPart, isEmpty } from '#/packages/utils/src';
 
@@ -23,6 +25,7 @@
 import { $t } from '#/locales';
 
 import { useGridColumns, useGridFormSchema } from './data';
+import AgentImport from './modules/agent-import.vue';
 import Form from './modules/form.vue';
 import ImportForm from './modules/import-form.vue';
 
@@ -35,6 +38,11 @@
 
 const [ImportModal, importModalApi] = useVbenModal({
   connectedComponent: ImportForm,
+  destroyOnClose: true,
+});
+
+const [AgentImportModal, agentImportModalApi] = useVbenModal({
+  connectedComponent: AgentImport,
   destroyOnClose: true,
 });
 
@@ -96,6 +104,56 @@
 function handleImport() {
   importModalApi.open();
 }
+
+/** 鏅鸿兘浣撳鍏ョ墿鏂� */
+function handleAgentImport() {
+  agentImportModalApi.open();
+}
+
+/** 宸ュ叿鏍忔寜閽細鏅鸿兘浣撳鍏ュ彈 AI 鎬诲紑鍏虫帶鍒� */
+const toolbarActions = computed(() => [
+  {
+    label: $t('ui.actionTitle.create', ['鐗╂枡']),
+    type: 'primary' as const,
+    icon: ACTION_ICON.ADD,
+    auth: ['mdm:item:create'],
+    onClick: handleCreate,
+  },
+  {
+    label: $t('ui.actionTitle.import', ['鐗╂枡']),
+    type: 'primary' as const,
+    icon: ACTION_ICON.UPLOAD,
+    auth: ['mdm:item:import'],
+    onClick: handleImport,
+  },
+  ...(isAiEnable()
+    ? [
+        {
+          label: '鏅鸿兘浣撳鍏�',
+          type: 'primary' as const,
+          icon: ACTION_ICON.UPLOAD,
+          auth: ['mdm:item:import'],
+          onClick: handleAgentImport,
+        },
+      ]
+    : []),
+  {
+    label: $t('ui.actionTitle.export'),
+    type: 'primary' as const,
+    icon: ACTION_ICON.DOWNLOAD,
+    auth: ['mdm:item:export'],
+    onClick: handleExport,
+  },
+  {
+    label: $t('ui.actionTitle.deleteBatch'),
+    type: 'primary' as const,
+    danger: true,
+    icon: ACTION_ICON.DELETE,
+    auth: ['mdm:item:delete'],
+    disabled: isEmpty(checkedIds),
+    onClick: handleDeleteBatch,
+  },
+]);
 
 /** 缂栬緫鐗╂枡 */
 function handleEdit(row: MdmItemApi.Item) {
@@ -223,42 +281,10 @@
   <Page auto-content-height>
     <FormModal @success="handleRefresh" />
     <ImportModal @success="handleRefresh" />
+    <AgentImportModal @success="handleRefresh" />
     <Grid table-title="鐗╂枡鍒楄〃">
       <template #toolbar-tools>
-        <TableAction
-          :actions="[
-            {
-              label: $t('ui.actionTitle.create', ['鐗╂枡']),
-              type: 'primary',
-              icon: ACTION_ICON.ADD,
-              auth: ['mdm:item:create'],
-              onClick: handleCreate,
-            },
-            {
-              label: $t('ui.actionTitle.import', ['鐗╂枡']),
-              type: 'primary',
-              icon: ACTION_ICON.UPLOAD,
-              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.deleteBatch'),
-              type: 'primary',
-              danger: true,
-              icon: ACTION_ICON.DELETE,
-              auth: ['mdm:item:delete'],
-              disabled: isEmpty(checkedIds),
-              onClick: handleDeleteBatch,
-            },
-          ]"
-        />
+        <TableAction :actions="toolbarActions" />
       </template>
       <template #categoryName="{ row }">
         <Tag v-if="getCategoryColor(row.categoryId)" :color="getCategoryColor(row.categoryId)">{{ getCategoryName(row.categoryId) }}</Tag>

--
Gitblit v1.9.3