chore: 更新离线图标方案

This commit is contained in:
dap 2024-11-07 19:00:35 +08:00
parent 980a9639b8
commit be78a07b01
7 changed files with 62 additions and 145 deletions

View File

@ -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'),
},

View File

@ -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 });
},
});
}

View File

@ -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'线 线()
*/

View File

@ -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>

View File

@ -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);

View File

@ -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;