chore: 更新离线图标方案
This commit is contained in:
parent
980a9639b8
commit
be78a07b01
@ -24,7 +24,7 @@ const profileRoute: RouteRecordStringComponent[] = [
|
||||
{
|
||||
component: '/_core/profile/index',
|
||||
meta: {
|
||||
icon: 'mingcute:profile-line|offline',
|
||||
icon: 'mingcute:profile-line',
|
||||
keepAlive: true,
|
||||
title: $t('ui.widgets.profile'),
|
||||
},
|
||||
@ -48,7 +48,7 @@ const profileRoute: RouteRecordStringComponent[] = [
|
||||
component: '/system/oss-config/index',
|
||||
meta: {
|
||||
activePath: '/system/oss',
|
||||
icon: 'ant-design:setting-outlined|offline',
|
||||
icon: 'ant-design:setting-outlined',
|
||||
keepAlive: true,
|
||||
title: 'oss配置',
|
||||
},
|
||||
@ -72,7 +72,7 @@ const profileRoute: RouteRecordStringComponent[] = [
|
||||
component: '/tool/gen/edit-gen',
|
||||
meta: {
|
||||
activePath: '/tool/gen',
|
||||
icon: 'tabler:code|offline',
|
||||
icon: 'tabler:code',
|
||||
keepAlive: true,
|
||||
title: '生成配置',
|
||||
},
|
||||
@ -96,7 +96,7 @@ const profileRoute: RouteRecordStringComponent[] = [
|
||||
component: '/system/role-assign/index',
|
||||
meta: {
|
||||
activePath: '/system/role',
|
||||
icon: 'eos-icons:role-binding-outlined|offline',
|
||||
icon: 'eos-icons:role-binding-outlined',
|
||||
keepAlive: true,
|
||||
title: '分配角色',
|
||||
},
|
||||
@ -143,7 +143,7 @@ export const localMenuList: RouteRecordStringComponent[] = [
|
||||
path: '/vben-admin/document',
|
||||
component: 'IFrameView',
|
||||
meta: {
|
||||
icon: 'lucide:book-open-text|offline',
|
||||
icon: 'lucide:book-open-text',
|
||||
iframeSrc: 'https://dapdap.top',
|
||||
keepAlive: true,
|
||||
title: $t('demos.vben.document'),
|
||||
@ -155,7 +155,7 @@ export const localMenuList: RouteRecordStringComponent[] = [
|
||||
component: 'BasicLayout',
|
||||
meta: {
|
||||
hideChildrenInMenu: true,
|
||||
icon: 'lucide:copyright|offline',
|
||||
icon: 'lucide:copyright',
|
||||
order: 9999,
|
||||
title: $t('demos.vben.about'),
|
||||
},
|
||||
|
@ -1,10 +1,6 @@
|
||||
import { defineComponent, h } from 'vue';
|
||||
|
||||
import { Icon, type IconifyIcon } from '@iconify/vue';
|
||||
import {
|
||||
addIcon as addOfflineIcon,
|
||||
Icon as OfflineIcon,
|
||||
} from '@iconify/vue/dist/offline';
|
||||
import { addIcon, Icon, type IconifyIcon } from '@iconify/vue';
|
||||
|
||||
function createIconifyIcon(icon: string) {
|
||||
return defineComponent({
|
||||
@ -25,8 +21,8 @@ function createIconifyOfflineIcon(icon: string, iconComponent: IconifyIcon) {
|
||||
return defineComponent({
|
||||
name: `Icon-${icon}`,
|
||||
setup(props, { attrs }) {
|
||||
addOfflineIcon(icon, iconComponent);
|
||||
return () => h(OfflineIcon, { icon, ...props, ...attrs });
|
||||
addIcon(icon, iconComponent);
|
||||
return () => h(Icon, { icon, ...props, ...attrs });
|
||||
},
|
||||
});
|
||||
}
|
||||
|
@ -5,9 +5,8 @@ export * from './lucide';
|
||||
|
||||
export type { IconifyIcon as IconifyIconStructure } from '@iconify/vue';
|
||||
export { addCollection, addIcon, Icon as IconifyIcon } from '@iconify/vue';
|
||||
// 离线图标使用
|
||||
export {
|
||||
addCollection as addOfflineCollection,
|
||||
addIcon as addOfflineIcon,
|
||||
Icon as IconifyOfflineIcon,
|
||||
} from '@iconify/vue/dist/offline';
|
||||
|
||||
/**
|
||||
* 从@iconify/vue/dist/offline'导出的组件为离线ICON 不支持在线
|
||||
* 从@iconify/vue'导出的组件为在能找到本地图标为离线 否则会在线获取(适用性更强)
|
||||
*/
|
||||
|
@ -1,7 +1,7 @@
|
||||
<script setup lang="ts">
|
||||
import { type Component, computed } from 'vue';
|
||||
|
||||
import { IconDefault, IconifyIcon, IconifyOfflineIcon } from '@vben-core/icons';
|
||||
import { IconDefault, IconifyIcon } from '@vben-core/icons';
|
||||
import {
|
||||
isFunction,
|
||||
isHttpUrl,
|
||||
@ -23,37 +23,11 @@ const isComponent = computed(() => {
|
||||
const { icon } = props;
|
||||
return !isString(icon) && (isObject(icon) || isFunction(icon));
|
||||
});
|
||||
|
||||
/**
|
||||
* 判断图标是否为离线图标
|
||||
* 主要是判断后缀是否为 |offline
|
||||
*/
|
||||
const offlineIcon = computed(() => {
|
||||
if (
|
||||
isString(props.icon) &&
|
||||
!isHttpUrl(props.icon) &&
|
||||
props.icon.endsWith('|offline')
|
||||
) {
|
||||
return {
|
||||
confirm: true,
|
||||
icon: props.icon.replace('|offline', ''),
|
||||
};
|
||||
}
|
||||
return {
|
||||
confirm: false,
|
||||
icon: '',
|
||||
};
|
||||
});
|
||||
</script>
|
||||
|
||||
<template>
|
||||
<component :is="icon as Component" v-if="isComponent" v-bind="$attrs" />
|
||||
<img v-else-if="isRemoteIcon" :src="icon as string" v-bind="$attrs" />
|
||||
<IconifyOfflineIcon
|
||||
v-else-if="offlineIcon.confirm"
|
||||
v-bind="$attrs"
|
||||
:icon="offlineIcon.icon"
|
||||
/>
|
||||
<IconifyIcon v-else-if="icon" v-bind="$attrs" :icon="icon as string" />
|
||||
<IconDefault v-else-if="fallback" v-bind="$attrs" />
|
||||
</template>
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { addOfflineIcon } from '@vben-core/icons';
|
||||
import { addIcon } from '@vben-core/icons';
|
||||
|
||||
import schedule from '@iconify/icons-akar-icons/schedule';
|
||||
import settingOutline from '@iconify/icons-ant-design/setting-outlined';
|
||||
@ -49,60 +49,54 @@ import code from '@iconify/icons-tabler/code';
|
||||
/**
|
||||
* 这里添加菜单图标
|
||||
*/
|
||||
addOfflineIcon('eos-icons:system-group', SystemGroup);
|
||||
addOfflineIcon('ph:user-duotone', UserDuotone);
|
||||
addOfflineIcon('eos-icons:role-binding-outlined', RoleBindingOutlined);
|
||||
addOfflineIcon('ic:sharp-menu', MenuSharp);
|
||||
addOfflineIcon('mingcute:department-line', DepartmentLine);
|
||||
addOfflineIcon('icon-park-outline:appointment', Appointment);
|
||||
addOfflineIcon('fluent-mdl2:dictionary', Dictionary);
|
||||
addOfflineIcon('icon-park-twotone:setting-two', SettingTwo);
|
||||
addOfflineIcon('fe:notice-push', NoticePush);
|
||||
addOfflineIcon('material-symbols:logo-dev-outline', LogoDevOutline);
|
||||
addOfflineIcon('arcticons:one-hand-operation', Operation);
|
||||
addOfflineIcon(
|
||||
addIcon('eos-icons:system-group', SystemGroup);
|
||||
addIcon('ph:user-duotone', UserDuotone);
|
||||
addIcon('eos-icons:role-binding-outlined', RoleBindingOutlined);
|
||||
addIcon('ic:sharp-menu', MenuSharp);
|
||||
addIcon('mingcute:department-line', DepartmentLine);
|
||||
addIcon('icon-park-outline:appointment', Appointment);
|
||||
addIcon('fluent-mdl2:dictionary', Dictionary);
|
||||
addIcon('icon-park-twotone:setting-two', SettingTwo);
|
||||
addIcon('fe:notice-push', NoticePush);
|
||||
addIcon('material-symbols:logo-dev-outline', LogoDevOutline);
|
||||
addIcon('arcticons:one-hand-operation', Operation);
|
||||
addIcon(
|
||||
'streamline:interface-login-dial-pad-finger-password-dial-pad-dot-finger',
|
||||
InterfaceLoginDialPadFingerPasswordDialPadDotFinger,
|
||||
);
|
||||
addOfflineIcon('solar:folder-with-files-outline', FolderWithFilesOutline);
|
||||
addOfflineIcon('simple-icons:authy', Authy);
|
||||
addOfflineIcon('ic:baseline-house', BaseLineHouse);
|
||||
addOfflineIcon('bi:houses-fill', BaseLineHousesFill);
|
||||
addOfflineIcon('bx:package', BxPackage);
|
||||
addOfflineIcon('solar:monitor-bold-duotone', monitorBoldDuotone);
|
||||
addOfflineIcon(
|
||||
'material-symbols:generating-tokens-outline',
|
||||
generatingTokensOutline,
|
||||
);
|
||||
addOfflineIcon('devicon:redis-wordmark', redisWordmark);
|
||||
addOfflineIcon('devicon:spring-wordmark', springWordmark);
|
||||
addOfflineIcon('akar-icons:schedule', schedule);
|
||||
addOfflineIcon('mdi:tools', tools);
|
||||
addOfflineIcon('tabler:code', code);
|
||||
addOfflineIcon('flat-color-icons:plus', plus);
|
||||
addOfflineIcon('devicon:vscode', vscode);
|
||||
addOfflineIcon('lucide:table', table);
|
||||
addOfflineIcon('emojione:evergreen-tree', evergreenTree);
|
||||
addOfflineIcon('fluent-mdl2:leave-user', leaveUser);
|
||||
addOfflineIcon('mdi:workflow-outline', workflowOutline);
|
||||
addOfflineIcon('tabler:category-plus', categoryPlus);
|
||||
addOfflineIcon('carbon:model-alt', modelAlt);
|
||||
addOfflineIcon('fluent-mdl2:build-definition', builDefinition);
|
||||
addOfflineIcon('fluent-mdl2:build-definition', builDefinition);
|
||||
addOfflineIcon('icon-park-outline:monitor', monitor);
|
||||
addOfflineIcon('ri:instance-line', insatnceLine);
|
||||
addOfflineIcon('ri:todo-line', todoLine);
|
||||
addOfflineIcon('fluent:form-24-regular', from24);
|
||||
addOfflineIcon('carbon:task-approved', taskApproved);
|
||||
addOfflineIcon('ic:round-launch', roundLaunch);
|
||||
addOfflineIcon(
|
||||
'material-symbols:cloud-done-outline-rounded',
|
||||
cloudDoneOutlineRounded,
|
||||
);
|
||||
addOfflineIcon('mdi:cc-outline', ccOutline);
|
||||
addOfflineIcon('lucide:book-open-text', boolOpenText);
|
||||
addOfflineIcon('lucide:copyright', copyright);
|
||||
addIcon('solar:folder-with-files-outline', FolderWithFilesOutline);
|
||||
addIcon('simple-icons:authy', Authy);
|
||||
addIcon('ic:baseline-house', BaseLineHouse);
|
||||
addIcon('bi:houses-fill', BaseLineHousesFill);
|
||||
addIcon('bx:package', BxPackage);
|
||||
addIcon('solar:monitor-bold-duotone', monitorBoldDuotone);
|
||||
addIcon('material-symbols:generating-tokens-outline', generatingTokensOutline);
|
||||
addIcon('devicon:redis-wordmark', redisWordmark);
|
||||
addIcon('devicon:spring-wordmark', springWordmark);
|
||||
addIcon('akar-icons:schedule', schedule);
|
||||
addIcon('mdi:tools', tools);
|
||||
addIcon('tabler:code', code);
|
||||
addIcon('flat-color-icons:plus', plus);
|
||||
addIcon('devicon:vscode', vscode);
|
||||
addIcon('lucide:table', table);
|
||||
addIcon('emojione:evergreen-tree', evergreenTree);
|
||||
addIcon('fluent-mdl2:leave-user', leaveUser);
|
||||
addIcon('mdi:workflow-outline', workflowOutline);
|
||||
addIcon('tabler:category-plus', categoryPlus);
|
||||
addIcon('carbon:model-alt', modelAlt);
|
||||
addIcon('fluent-mdl2:build-definition', builDefinition);
|
||||
addIcon('fluent-mdl2:build-definition', builDefinition);
|
||||
addIcon('icon-park-outline:monitor', monitor);
|
||||
addIcon('ri:instance-line', insatnceLine);
|
||||
addIcon('ri:todo-line', todoLine);
|
||||
addIcon('fluent:form-24-regular', from24);
|
||||
addIcon('carbon:task-approved', taskApproved);
|
||||
addIcon('ic:round-launch', roundLaunch);
|
||||
addIcon('material-symbols:cloud-done-outline-rounded', cloudDoneOutlineRounded);
|
||||
addIcon('mdi:cc-outline', ccOutline);
|
||||
addIcon('lucide:book-open-text', boolOpenText);
|
||||
addIcon('lucide:copyright', copyright);
|
||||
// 个人中心
|
||||
addOfflineIcon('mingcute:profile-line', profileLine);
|
||||
addIcon('mingcute:profile-line', profileLine);
|
||||
// oss配置
|
||||
addOfflineIcon('ant-design:setting-outlined', settingOutline);
|
||||
addIcon('ant-design:setting-outlined', settingOutline);
|
||||
|
@ -1,46 +0,0 @@
|
||||
UPDATE sys_menu SET icon = 'eos-icons:system-group|offline' WHERE menu_id = 1;
|
||||
UPDATE sys_menu SET icon = 'solar:monitor-bold-duotone|offline' WHERE menu_id = 2;
|
||||
UPDATE sys_menu SET icon = 'mdi:tools|offline' WHERE menu_id = 3;
|
||||
UPDATE sys_menu SET icon = 'flat-color-icons:plus|offline' WHERE menu_id = 4;
|
||||
UPDATE sys_menu SET icon = 'devicon:vscode|offline' WHERE menu_id = 5;
|
||||
UPDATE sys_menu SET icon = 'ic:baseline-house|offline' WHERE menu_id = 6;
|
||||
UPDATE sys_menu SET icon = 'ph:user-duotone|offline' WHERE menu_id = 100;
|
||||
UPDATE sys_menu SET icon = 'eos-icons:role-binding-outlined|offline' WHERE menu_id = 101;
|
||||
UPDATE sys_menu SET icon = 'ic:sharp-menu|offline' WHERE menu_id = 102;
|
||||
UPDATE sys_menu SET icon = 'mingcute:department-line|offline' WHERE menu_id = 103;
|
||||
UPDATE sys_menu SET icon = 'icon-park-outline:appointment|offline' WHERE menu_id = 104;
|
||||
UPDATE sys_menu SET icon = 'fluent-mdl2:dictionary|offline' WHERE menu_id = 105;
|
||||
UPDATE sys_menu SET icon = 'icon-park-twotone:setting-two|offline' WHERE menu_id = 106;
|
||||
UPDATE sys_menu SET icon = 'fe:notice-push|offline' WHERE menu_id = 107;
|
||||
UPDATE sys_menu SET icon = 'material-symbols:logo-dev-outline|offline' WHERE menu_id = 108;
|
||||
UPDATE sys_menu SET icon = 'material-symbols:generating-tokens-outline|offline' WHERE menu_id = 109;
|
||||
UPDATE sys_menu SET icon = 'devicon:redis-wordmark|offline' WHERE menu_id = 113;
|
||||
UPDATE sys_menu SET icon = 'fluent:form-new-24-regular|offline' WHERE menu_id = 114;
|
||||
UPDATE sys_menu SET icon = 'tabler:code|offline' WHERE menu_id = 115;
|
||||
UPDATE sys_menu SET icon = 'devicon:spring-wordmark|offline' WHERE menu_id = 117;
|
||||
UPDATE sys_menu SET icon = 'solar:folder-with-files-outline|offline' WHERE menu_id = 118;
|
||||
UPDATE sys_menu SET icon = 'akar-icons:schedule|offline' WHERE menu_id = 120;
|
||||
UPDATE sys_menu SET icon = 'bi:houses-fill|offline' WHERE menu_id = 121;
|
||||
UPDATE sys_menu SET icon = 'bx:package|offline' WHERE menu_id = 122;
|
||||
UPDATE sys_menu SET icon = 'simple-icons:authy|offline' WHERE menu_id = 123;
|
||||
UPDATE sys_menu SET icon = 'arcticons:one-hand-operation|offline' WHERE menu_id = 500;
|
||||
UPDATE sys_menu SET icon = 'streamline:interface-login-dial-pad-finger-password-dial-pad-dot-finger|offline' WHERE menu_id = 501;
|
||||
|
||||
UPDATE sys_menu SET icon = 'lucide:table|offline' WHERE menu_id = 1500;
|
||||
UPDATE sys_menu SET icon = 'emojione:evergreen-tree|offline' WHERE menu_id = 1506;
|
||||
|
||||
/*UPDATE sys_menu SET icon = 'icon-park-twotone:web-page|offline' WHERE menu_id = 4; PLUS官网 */
|
||||
UPDATE sys_menu SET icon = 'mdi:workflow-outline|offline' WHERE menu_id = 11616;
|
||||
UPDATE sys_menu SET icon = 'carbon:model-alt|offline' WHERE menu_id = 11617;
|
||||
UPDATE sys_menu SET icon = 'carbon:task-approved|offline' WHERE menu_id = 11618;
|
||||
UPDATE sys_menu SET icon = 'ri:todo-line|offline' WHERE menu_id = 11619;
|
||||
UPDATE sys_menu SET icon = 'fluent-mdl2:build-definition|offline' WHERE menu_id = 11620;
|
||||
UPDATE sys_menu SET icon = 'ri:instance-line|offline' WHERE menu_id = 11621;
|
||||
UPDATE sys_menu SET icon = 'tabler:category-plus|offline' WHERE menu_id = 11622;
|
||||
UPDATE sys_menu SET icon = 'ic:round-launch|offline' WHERE menu_id = 11629;
|
||||
UPDATE sys_menu SET icon = 'icon-park-outline:monitor|offline' WHERE menu_id = 11630;
|
||||
UPDATE sys_menu SET icon = 'ri:todo-line|offline' WHERE menu_id = 11631;
|
||||
UPDATE sys_menu SET icon = 'material-symbols:cloud-done-outline-rounded|offline' WHERE menu_id = 11632;
|
||||
UPDATE sys_menu SET icon = 'mdi:cc-outline|offline' WHERE menu_id = 11633;
|
||||
UPDATE sys_menu SET icon = 'fluent-mdl2:leave-user|offline' WHERE menu_id = 11638;
|
||||
UPDATE sys_menu SET icon = 'fluent:form-24-regular|offline' WHERE menu_id = 11628;
|
Loading…
Reference in New Issue
Block a user