feat: 无菜单图标时使用默认菜单图标

This commit is contained in:
xlsea 2025-05-16 16:32:32 +08:00
parent e8c83e6bc6
commit 4acce9ca00
2 changed files with 7 additions and 1 deletions

View File

@ -24,6 +24,8 @@ import {
updateLocaleOfGlobalMenus updateLocaleOfGlobalMenus
} from './shared'; } from './shared';
const defaultIcon = import.meta.env.VITE_MENU_ICON;
export const useRouteStore = defineStore(SetupStoreId.Route, () => { export const useRouteStore = defineStore(SetupStoreId.Route, () => {
const authStore = useAuthStore(); const authStore = useAuthStore();
const tabStore = useTabStore(); const tabStore = useTabStore();
@ -120,6 +122,8 @@ export const useRouteStore = defineStore(SetupStoreId.Route, () => {
if (route.meta.icon?.startsWith('local-icon-')) { if (route.meta.icon?.startsWith('local-icon-')) {
route.meta.localIcon = route.meta.icon.replace('local-icon-', 'menu-'); route.meta.localIcon = route.meta.icon.replace('local-icon-', 'menu-');
delete route.meta.icon; delete route.meta.icon;
} else if (!isNotNull(route.meta.icon)) {
route.meta.icon = defaultIcon;
} }
// @ts-expect-error no hidden field // @ts-expect-error no hidden field

View File

@ -18,6 +18,8 @@ import MenuOperateDrawer from './modules/menu-operate-drawer.vue';
useDict('sys_show_hide'); useDict('sys_show_hide');
useDict('sys_normal_disable'); useDict('sys_normal_disable');
const defaultIcon = import.meta.env.VITE_MENU_ICON;
const { hasAuth } = useAuth(); const { hasAuth } = useAuth();
const appStore = useAppStore(); const appStore = useAppStore();
const editingData = ref<Api.System.Menu>(); const editingData = ref<Api.System.Menu>();
@ -96,7 +98,7 @@ function renderPrefix({ option }: { option: TreeOption }) {
const renderLocalIcon = String(option.icon).startsWith('local-icon-'); const renderLocalIcon = String(option.icon).startsWith('local-icon-');
const icon = renderLocalIcon ? undefined : String(option.icon); const icon = renderLocalIcon ? undefined : String(option.icon);
const localIcon = renderLocalIcon ? String(option.icon).replace('local-icon-', 'menu-') : undefined; const localIcon = renderLocalIcon ? String(option.icon).replace('local-icon-', 'menu-') : undefined;
return <SvgIcon icon={icon} localIcon={localIcon} />; return <SvgIcon icon={icon || defaultIcon} localIcon={localIcon} />;
} }
function renderSuffix({ option }: { option: TreeOption }) { function renderSuffix({ option }: { option: TreeOption }) {