From 87706ad4256cbb1d845744ad77d33354d0e268f6 Mon Sep 17 00:00:00 2001 From: dap <15891557205@163.com> Date: Fri, 23 Jan 2026 11:21:01 +0800 Subject: [PATCH] =?UTF-8?q?refactor(icons):=20=E7=A7=BB=E9=99=A4=E7=A6=BB?= =?UTF-8?q?=E7=BA=BF=E5=9B=BE=E6=A0=87=E4=BE=9D=E8=B5=96=E5=B9=B6=E6=94=B9?= =?UTF-8?q?=E7=94=A8CSS=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 移除 `@iconify/icons-flat-color-icons/folder`、`@iconify/icons-material-symbols/menu` 和 `@iconify/icons-mdi/button-pointer` 的显式导入与离线图标包装导出。将树组件和菜单视图中的图标使用方式从组件实例更改为CSS类(例如 `icons-[flat-color-icons--folder]`)。这消除了对特定离线图标包的依赖,使图标管理更统一并可能减少打包体积。 --- .../web-antd/src/components/tree/src/data.tsx | 12 ++++-------- apps/web-antd/src/views/system/menu/data.tsx | 19 ++++++++++++++----- packages/icons/src/iconify-offline/index.ts | 17 ----------------- 3 files changed, 18 insertions(+), 30 deletions(-) diff --git a/apps/web-antd/src/components/tree/src/data.tsx b/apps/web-antd/src/components/tree/src/data.tsx index 2bbaf317..b58886f3 100644 --- a/apps/web-antd/src/components/tree/src/data.tsx +++ b/apps/web-antd/src/components/tree/src/data.tsx @@ -2,9 +2,11 @@ import type { VxeGridProps } from '#/adapter/vxe-table'; import type { ID } from '#/api/common'; import type { MenuOption } from '#/api/system/menu/model'; -import { h, markRaw } from 'vue'; +import { h } from 'vue'; -import { FolderIcon, MenuIcon, OkButtonIcon, VbenIcon } from '@vben/icons'; +import { VbenIcon } from '@vben/icons'; + +import { menuTypes } from '#/views/system/menu/data'; export interface Permission { checked: boolean; @@ -16,12 +18,6 @@ export interface MenuPermissionOption extends MenuOption { permissions: Permission[]; } -const menuTypes = { - C: { icon: markRaw(MenuIcon), value: '菜单' }, - F: { icon: markRaw(OkButtonIcon), value: '按钮' }, - M: { icon: markRaw(FolderIcon), value: '目录' }, -}; - export const nodeOptions = [ { label: '节点关联', value: true }, { label: '节点独立', value: false }, diff --git a/apps/web-antd/src/views/system/menu/data.tsx b/apps/web-antd/src/views/system/menu/data.tsx index e5177cab..079b34f3 100644 --- a/apps/web-antd/src/views/system/menu/data.tsx +++ b/apps/web-antd/src/views/system/menu/data.tsx @@ -4,7 +4,7 @@ import type { VxeGridProps } from '#/adapter/vxe-table'; import { h } from 'vue'; import { DictEnum } from '@vben/constants'; -import { FolderIcon, MenuIcon, OkButtonIcon, VbenIcon } from '@vben/icons'; +import { VbenIcon } from '@vben/icons'; import { $t } from '@vben/locales'; import { getPopupContainer } from '@vben/utils'; @@ -51,10 +51,19 @@ export const yesNoOptions = [ ]; // (M目录 C菜单 F按钮) -const menuTypes = { - C: { icon: MenuIcon, value: '菜单' }, - F: { icon: OkButtonIcon, value: '按钮' }, - M: { icon: FolderIcon, value: '目录' }, +export const menuTypes = { + C: { + icon: , + value: '菜单', + }, + F: { + icon: , + value: '按钮', + }, + M: { + icon: , + value: '目录', + }, }; export const columns: VxeGridProps['columns'] = [ { diff --git a/packages/icons/src/iconify-offline/index.ts b/packages/icons/src/iconify-offline/index.ts index 59d4431b..f36396d0 100644 --- a/packages/icons/src/iconify-offline/index.ts +++ b/packages/icons/src/iconify-offline/index.ts @@ -1,8 +1,5 @@ import { createIconifyOfflineIcon } from '@vben-core/icons'; -import folderIcon from '@iconify/icons-flat-color-icons/folder'; -import menuIcon from '@iconify/icons-material-symbols/menu'; -import okButtonIcon from '@iconify/icons-mdi/button-pointer'; import dingdingFill from '@iconify/icons-ri/dingding-fill'; import giteeIcon from '@iconify/icons-simple-icons/gitee'; @@ -17,17 +14,3 @@ export const GiteeIcon = createIconifyOfflineIcon( 'simple-icons:gitee', giteeIcon, ); - -// 菜单类型 目录/按钮/菜单 -export const FolderIcon = createIconifyOfflineIcon( - 'flat-color-icons:folder', - folderIcon, -); -export const OkButtonIcon = createIconifyOfflineIcon( - 'mdi:button-pointer', - okButtonIcon, -); -export const MenuIcon = createIconifyOfflineIcon( - 'material-symbols:menu', - menuIcon, -);