feat: 离线图标功能
This commit is contained in:
parent
cce6117157
commit
2cc82a0c05
@ -24,7 +24,7 @@ const profileRoute: RouteRecordStringComponent[] = [
|
|||||||
{
|
{
|
||||||
component: '/_core/profile/index',
|
component: '/_core/profile/index',
|
||||||
meta: {
|
meta: {
|
||||||
icon: 'mingcute:profile-line',
|
icon: 'mingcute:profile-line|offline',
|
||||||
keepAlive: true,
|
keepAlive: true,
|
||||||
title: $t('ui.widgets.profile'),
|
title: $t('ui.widgets.profile'),
|
||||||
},
|
},
|
||||||
@ -48,7 +48,7 @@ const profileRoute: RouteRecordStringComponent[] = [
|
|||||||
component: '/system/oss-config/index',
|
component: '/system/oss-config/index',
|
||||||
meta: {
|
meta: {
|
||||||
activePath: '/system/oss',
|
activePath: '/system/oss',
|
||||||
icon: 'mingcute:profile-line',
|
icon: 'ant-design:setting-outlined|offline',
|
||||||
keepAlive: true,
|
keepAlive: true,
|
||||||
title: 'oss配置',
|
title: 'oss配置',
|
||||||
},
|
},
|
||||||
@ -57,7 +57,6 @@ const profileRoute: RouteRecordStringComponent[] = [
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
// TODO: 图标要改
|
|
||||||
{
|
{
|
||||||
component: 'BasicLayout',
|
component: 'BasicLayout',
|
||||||
meta: {
|
meta: {
|
||||||
@ -73,7 +72,7 @@ const profileRoute: RouteRecordStringComponent[] = [
|
|||||||
component: '/tool/gen/edit-gen',
|
component: '/tool/gen/edit-gen',
|
||||||
meta: {
|
meta: {
|
||||||
activePath: '/tool/gen',
|
activePath: '/tool/gen',
|
||||||
icon: 'mingcute:profile-line',
|
icon: 'tabler:code|offline',
|
||||||
keepAlive: true,
|
keepAlive: true,
|
||||||
title: '生成配置',
|
title: '生成配置',
|
||||||
},
|
},
|
||||||
@ -97,7 +96,7 @@ const profileRoute: RouteRecordStringComponent[] = [
|
|||||||
component: '/system/role-assign/index',
|
component: '/system/role-assign/index',
|
||||||
meta: {
|
meta: {
|
||||||
activePath: '/system/role',
|
activePath: '/system/role',
|
||||||
icon: 'mingcute:profile-line',
|
icon: 'eos-icons:role-binding-outlined|offline',
|
||||||
keepAlive: true,
|
keepAlive: true,
|
||||||
title: '分配角色',
|
title: '分配角色',
|
||||||
},
|
},
|
||||||
@ -144,7 +143,7 @@ export const localMenuList: RouteRecordStringComponent[] = [
|
|||||||
path: '/vben-admin/document',
|
path: '/vben-admin/document',
|
||||||
component: 'IFrameView',
|
component: 'IFrameView',
|
||||||
meta: {
|
meta: {
|
||||||
icon: 'lucide:book-open-text',
|
icon: 'lucide:book-open-text|offline',
|
||||||
iframeSrc: 'https://dapdap.top',
|
iframeSrc: 'https://dapdap.top',
|
||||||
keepAlive: true,
|
keepAlive: true,
|
||||||
title: $t('demos.vben.document'),
|
title: $t('demos.vben.document'),
|
||||||
@ -156,7 +155,7 @@ export const localMenuList: RouteRecordStringComponent[] = [
|
|||||||
component: 'BasicLayout',
|
component: 'BasicLayout',
|
||||||
meta: {
|
meta: {
|
||||||
hideChildrenInMenu: true,
|
hideChildrenInMenu: true,
|
||||||
icon: 'lucide:copyright',
|
icon: 'lucide:copyright|offline',
|
||||||
order: 9999,
|
order: 9999,
|
||||||
title: $t('demos.vben.about'),
|
title: $t('demos.vben.about'),
|
||||||
},
|
},
|
||||||
|
@ -28,7 +28,7 @@ const routes: RouteRecordRaw[] = [
|
|||||||
path: '/vben-admin/about',
|
path: '/vben-admin/about',
|
||||||
component: () => import('#/views/_core/about/index.vue'),
|
component: () => import('#/views/_core/about/index.vue'),
|
||||||
meta: {
|
meta: {
|
||||||
icon: 'lucide:copyright',
|
icon: 'lucide:copyright|offline',
|
||||||
title: $t('demos.vben.about'),
|
title: $t('demos.vben.about'),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -37,7 +37,7 @@ const routes: RouteRecordRaw[] = [
|
|||||||
path: '/vben-admin/document',
|
path: '/vben-admin/document',
|
||||||
component: IFrameView,
|
component: IFrameView,
|
||||||
meta: {
|
meta: {
|
||||||
icon: 'lucide:book-open-text',
|
icon: 'lucide:book-open-text|offline',
|
||||||
link: VBEN_DOC_URL,
|
link: VBEN_DOC_URL,
|
||||||
title: $t('demos.vben.document'),
|
title: $t('demos.vben.document'),
|
||||||
},
|
},
|
||||||
|
@ -6,6 +6,7 @@ import { computed, onMounted, ref, useTemplateRef } from 'vue';
|
|||||||
import { AuthenticationLogin, z } from '@vben/common-ui';
|
import { AuthenticationLogin, z } from '@vben/common-ui';
|
||||||
import { $t } from '@vben/locales';
|
import { $t } from '@vben/locales';
|
||||||
|
|
||||||
|
import { Modal } from 'ant-design-vue';
|
||||||
import { omit } from 'lodash-es';
|
import { omit } from 'lodash-es';
|
||||||
|
|
||||||
import { tenantList, type TenantResp } from '#/api';
|
import { tenantList, type TenantResp } from '#/api';
|
||||||
@ -144,6 +145,14 @@ async function handleAccountLogin(values: LoginAndRegisterParams) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
onMounted(() => {
|
||||||
|
Modal.info({
|
||||||
|
title: '提示',
|
||||||
|
content:
|
||||||
|
'离线图标分支需要导入[离线图标.sql] 目录:scripts/菜单图标替换sql/update_icon_离线图标.sql',
|
||||||
|
});
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
|
@ -1,12 +1,15 @@
|
|||||||
import type { VxeGridProps } from '#/adapter/vxe-table';
|
import type { VxeGridProps } from '#/adapter/vxe-table';
|
||||||
|
|
||||||
|
import { h } from 'vue';
|
||||||
|
|
||||||
import { DictEnum } from '@vben/constants';
|
import { DictEnum } from '@vben/constants';
|
||||||
|
import { FolderIcon, MenuIcon, OkButtonIcon, VbenIcon } from '@vben/icons';
|
||||||
import { $t } from '@vben/locales';
|
import { $t } from '@vben/locales';
|
||||||
import { getPopupContainer } from '@vben/utils';
|
import { getPopupContainer } from '@vben/utils';
|
||||||
|
|
||||||
import { type FormSchemaGetter, z } from '#/adapter/form';
|
import { type FormSchemaGetter, z } from '#/adapter/form';
|
||||||
import { getDictOptions } from '#/utils/dict';
|
import { getDictOptions } from '#/utils/dict';
|
||||||
import { renderDict, renderIcon } from '#/utils/render';
|
import { renderDict } from '#/utils/render';
|
||||||
|
|
||||||
export const querySchema: FormSchemaGetter = () => [
|
export const querySchema: FormSchemaGetter = () => [
|
||||||
{
|
{
|
||||||
@ -48,11 +51,10 @@ export const yesNoOptions = [
|
|||||||
|
|
||||||
// (M目录 C菜单 F按钮)
|
// (M目录 C菜单 F按钮)
|
||||||
const menuTypes = {
|
const menuTypes = {
|
||||||
M: { value: '目录', icon: 'fxemoji:folder' },
|
C: { icon: MenuIcon, value: '菜单' },
|
||||||
C: { value: '菜单', icon: 'fluent-emoji-flat:open-book' },
|
F: { icon: OkButtonIcon, value: '按钮' },
|
||||||
F: { value: '按钮', icon: 'fluent-emoji:ok-button' },
|
M: { icon: FolderIcon, value: '目录' },
|
||||||
};
|
};
|
||||||
|
|
||||||
export const columns: VxeGridProps['columns'] = [
|
export const columns: VxeGridProps['columns'] = [
|
||||||
{
|
{
|
||||||
title: '菜单名称',
|
title: '菜单名称',
|
||||||
@ -74,7 +76,9 @@ export const columns: VxeGridProps['columns'] = [
|
|||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
return (
|
return (
|
||||||
<span class={'flex justify-center'}>{renderIcon(row.icon)}</span>
|
<span class={'flex justify-center'}>
|
||||||
|
<VbenIcon icon={row.icon} />
|
||||||
|
</span>
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -95,9 +99,9 @@ export const columns: VxeGridProps['columns'] = [
|
|||||||
return '未知';
|
return '未知';
|
||||||
}
|
}
|
||||||
return (
|
return (
|
||||||
<span class={['flex', 'items-center', 'justify-center']}>
|
<span class="flex items-center justify-center gap-1">
|
||||||
{renderIcon(current.icon)}
|
{h(current.icon, { class: 'size-[18px]' })}
|
||||||
<span style={{ marginLeft: '2px' }}>{current.value}</span>
|
<span>{current.value}</span>
|
||||||
</span>
|
</span>
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
@ -99,7 +99,7 @@ onBeforeUnmount(() => {
|
|||||||
>
|
>
|
||||||
<template #trigger>
|
<template #trigger>
|
||||||
<div :class="[nsMenu.be('tooltip', 'trigger')]">
|
<div :class="[nsMenu.be('tooltip', 'trigger')]">
|
||||||
<VbenIcon :class="nsMenu.e('icon')" :icon="menuIcon" offline />
|
<VbenIcon :class="nsMenu.e('icon')" :icon="menuIcon" />
|
||||||
<slot></slot>
|
<slot></slot>
|
||||||
<span v-if="collapseShowTitle" :class="nsMenu.e('name')">
|
<span v-if="collapseShowTitle" :class="nsMenu.e('name')">
|
||||||
<slot name="title"></slot>
|
<slot name="title"></slot>
|
||||||
@ -114,7 +114,7 @@ onBeforeUnmount(() => {
|
|||||||
class="right-2"
|
class="right-2"
|
||||||
v-bind="props"
|
v-bind="props"
|
||||||
/>
|
/>
|
||||||
<VbenIcon :class="nsMenu.e('icon')" :icon="menuIcon" offline />
|
<VbenIcon :class="nsMenu.e('icon')" :icon="menuIcon" />
|
||||||
<slot></slot>
|
<slot></slot>
|
||||||
<slot name="title"></slot>
|
<slot name="title"></slot>
|
||||||
</div>
|
</div>
|
||||||
|
@ -87,7 +87,6 @@ const iconArrowStyle = computed(() => {
|
|||||||
:class="nsMenu.e('icon')"
|
:class="nsMenu.e('icon')"
|
||||||
:icon="icon"
|
:icon="icon"
|
||||||
fallback
|
fallback
|
||||||
offline
|
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<div v-if="!hiddenTitle" :class="[e('title')]">
|
<div v-if="!hiddenTitle" :class="[e('title')]">
|
||||||
|
@ -13,7 +13,6 @@ const props = defineProps<{
|
|||||||
// 没有是否显示默认图标
|
// 没有是否显示默认图标
|
||||||
fallback?: boolean;
|
fallback?: boolean;
|
||||||
icon?: Component | Function | string;
|
icon?: Component | Function | string;
|
||||||
offline?: boolean;
|
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
const isRemoteIcon = computed(() => {
|
const isRemoteIcon = computed(() => {
|
||||||
@ -24,20 +23,37 @@ const isComponent = computed(() => {
|
|||||||
const { icon } = props;
|
const { icon } = props;
|
||||||
return !isString(icon) && (isObject(icon) || isFunction(icon));
|
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>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
<component :is="icon as Component" v-if="isComponent" v-bind="$attrs" />
|
<component :is="icon as Component" v-if="isComponent" v-bind="$attrs" />
|
||||||
<img v-else-if="isRemoteIcon" :src="icon as string" v-bind="$attrs" />
|
<img v-else-if="isRemoteIcon" :src="icon as string" v-bind="$attrs" />
|
||||||
<IconifyOfflineIcon
|
<IconifyOfflineIcon
|
||||||
v-else-if="icon && offline"
|
v-else-if="offlineIcon.confirm"
|
||||||
v-bind="$attrs"
|
v-bind="$attrs"
|
||||||
:icon="icon as string"
|
:icon="offlineIcon.icon"
|
||||||
/>
|
|
||||||
<IconifyIcon
|
|
||||||
v-else-if="icon && !offline"
|
|
||||||
v-bind="$attrs"
|
|
||||||
:icon="icon as string"
|
|
||||||
/>
|
/>
|
||||||
|
<IconifyIcon v-else-if="icon" v-bind="$attrs" :icon="icon as string" />
|
||||||
<IconDefault v-else-if="fallback" v-bind="$attrs" />
|
<IconDefault v-else-if="fallback" v-bind="$attrs" />
|
||||||
</template>
|
</template>
|
||||||
|
@ -144,7 +144,6 @@ const tabsView = computed(() => {
|
|||||||
:icon="tab.icon"
|
:icon="tab.icon"
|
||||||
class="mr-1 flex size-4 items-center overflow-hidden"
|
class="mr-1 flex size-4 items-center overflow-hidden"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
<span class="flex-1 overflow-hidden whitespace-nowrap text-sm">
|
<span class="flex-1 overflow-hidden whitespace-nowrap text-sm">
|
||||||
{{ tab.title }}
|
{{ tab.title }}
|
||||||
</span>
|
</span>
|
||||||
|
@ -17,14 +17,18 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@vben-core/icons": "workspace:*"
|
"@vben-core/icons": "workspace:*",
|
||||||
|
"@vben-core/shadcn-ui": "workspace:^"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@iconify/icons-akar-icons": "^1.2.19",
|
||||||
"@iconify/icons-ant-design": "^1.2.7",
|
"@iconify/icons-ant-design": "^1.2.7",
|
||||||
"@iconify/icons-arcticons": "^1.2.77",
|
"@iconify/icons-arcticons": "^1.2.77",
|
||||||
"@iconify/icons-bi": "^1.2.19",
|
"@iconify/icons-bi": "^1.2.19",
|
||||||
"@iconify/icons-bx": "^1.2.6",
|
"@iconify/icons-bx": "^1.2.6",
|
||||||
|
"@iconify/icons-carbon": "^1.2.20",
|
||||||
"@iconify/icons-devicon": "^1.2.17",
|
"@iconify/icons-devicon": "^1.2.17",
|
||||||
|
"@iconify/icons-emojione": "^1.2.6",
|
||||||
"@iconify/icons-eos-icons": "^1.2.6",
|
"@iconify/icons-eos-icons": "^1.2.6",
|
||||||
"@iconify/icons-fa-brands": "^1.2.4",
|
"@iconify/icons-fa-brands": "^1.2.4",
|
||||||
"@iconify/icons-fe": "^1.2.5",
|
"@iconify/icons-fe": "^1.2.5",
|
||||||
@ -36,6 +40,7 @@
|
|||||||
"@iconify/icons-icon-park-twotone": "^1.2.8",
|
"@iconify/icons-icon-park-twotone": "^1.2.8",
|
||||||
"@iconify/icons-la": "^1.2.3",
|
"@iconify/icons-la": "^1.2.3",
|
||||||
"@iconify/icons-logos": "^1.2.36",
|
"@iconify/icons-logos": "^1.2.36",
|
||||||
|
"@iconify/icons-lucide": "^1.2.135",
|
||||||
"@iconify/icons-majesticons": "^1.2.6",
|
"@iconify/icons-majesticons": "^1.2.6",
|
||||||
"@iconify/icons-material-symbols": "^1.2.58",
|
"@iconify/icons-material-symbols": "^1.2.58",
|
||||||
"@iconify/icons-mdi": "^1.2.48",
|
"@iconify/icons-mdi": "^1.2.48",
|
||||||
@ -45,6 +50,7 @@
|
|||||||
"@iconify/icons-simple-icons": "^1.2.74",
|
"@iconify/icons-simple-icons": "^1.2.74",
|
||||||
"@iconify/icons-solar": "^1.2.3",
|
"@iconify/icons-solar": "^1.2.3",
|
||||||
"@iconify/icons-streamline": "^1.2.3",
|
"@iconify/icons-streamline": "^1.2.3",
|
||||||
|
"@iconify/icons-tabler": "^1.2.95",
|
||||||
"@iconify/icons-uiw": "^1.2.6",
|
"@iconify/icons-uiw": "^1.2.6",
|
||||||
"@iconify/icons-vscode-icons": "^1.2.29",
|
"@iconify/icons-vscode-icons": "^1.2.29",
|
||||||
"@iconify/icons-wpf": "^1.2.3"
|
"@iconify/icons-wpf": "^1.2.3"
|
||||||
|
@ -9,6 +9,7 @@ import windowsIcon from '@iconify/icons-devicon/windows8';
|
|||||||
import alipayIcon from '@iconify/icons-fa-brands/alipay';
|
import alipayIcon from '@iconify/icons-fa-brands/alipay';
|
||||||
import androidIcon from '@iconify/icons-flat-color-icons/android-os';
|
import androidIcon from '@iconify/icons-flat-color-icons/android-os';
|
||||||
import comandLine from '@iconify/icons-flat-color-icons/command-line';
|
import comandLine from '@iconify/icons-flat-color-icons/command-line';
|
||||||
|
import folderIcon from '@iconify/icons-flat-color-icons/folder';
|
||||||
import defaultOsIcon from '@iconify/icons-ic/outline-computer';
|
import defaultOsIcon from '@iconify/icons-ic/outline-computer';
|
||||||
import memoryIcon from '@iconify/icons-la/memory';
|
import memoryIcon from '@iconify/icons-la/memory';
|
||||||
import chromeIcon from '@iconify/icons-logos/chrome';
|
import chromeIcon from '@iconify/icons-logos/chrome';
|
||||||
@ -19,6 +20,8 @@ import quarkIcon from '@iconify/icons-logos/quarkus-icon';
|
|||||||
import redisIcon from '@iconify/icons-logos/redis';
|
import redisIcon from '@iconify/icons-logos/redis';
|
||||||
import safariIcon from '@iconify/icons-logos/safari';
|
import safariIcon from '@iconify/icons-logos/safari';
|
||||||
import iphoneIcon from '@iconify/icons-majesticons/iphone-x-apps-line';
|
import iphoneIcon from '@iconify/icons-majesticons/iphone-x-apps-line';
|
||||||
|
import menuIcon from '@iconify/icons-material-symbols/menu';
|
||||||
|
import okButtonIcon from '@iconify/icons-mdi/button-pointer';
|
||||||
import micromessengerIcon from '@iconify/icons-mdi/wechat';
|
import micromessengerIcon from '@iconify/icons-mdi/wechat';
|
||||||
import defaultBrowserIcon from '@iconify/icons-ph/browser-duotone';
|
import defaultBrowserIcon from '@iconify/icons-ph/browser-duotone';
|
||||||
import baiduIcon from '@iconify/icons-ri/baidu-fill';
|
import baiduIcon from '@iconify/icons-ri/baidu-fill';
|
||||||
@ -31,7 +34,7 @@ import githubOAuthIcon from '@iconify/icons-uiw/github';
|
|||||||
import excelIcon from '@iconify/icons-vscode-icons/file-type-excel';
|
import excelIcon from '@iconify/icons-vscode-icons/file-type-excel';
|
||||||
import osxIcon from '@iconify/icons-wpf/macos';
|
import osxIcon from '@iconify/icons-wpf/macos';
|
||||||
|
|
||||||
import './other';
|
import './menu-icons';
|
||||||
|
|
||||||
// 用户 下拉菜单
|
// 用户 下拉菜单
|
||||||
export const GitHubOutlined = createIconifyOfflineIcon(
|
export const GitHubOutlined = createIconifyOfflineIcon(
|
||||||
@ -142,3 +145,17 @@ export const DefaultBrowserIcon = createIconifyOfflineIcon(
|
|||||||
'ph:browser-duotone',
|
'ph:browser-duotone',
|
||||||
defaultBrowserIcon,
|
defaultBrowserIcon,
|
||||||
);
|
);
|
||||||
|
|
||||||
|
// 菜单类型 目录/按钮/菜单
|
||||||
|
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,
|
||||||
|
);
|
||||||
|
108
packages/icons/src/iconify-offline/menu-icons.ts
Normal file
108
packages/icons/src/iconify-offline/menu-icons.ts
Normal file
@ -0,0 +1,108 @@
|
|||||||
|
import { addOfflineIcon } from '@vben-core/icons';
|
||||||
|
|
||||||
|
import schedule from '@iconify/icons-akar-icons/schedule';
|
||||||
|
import settingOutline from '@iconify/icons-ant-design/setting-outlined';
|
||||||
|
import Operation from '@iconify/icons-arcticons/one-hand-operation';
|
||||||
|
import BaseLineHousesFill from '@iconify/icons-bi/houses-fill';
|
||||||
|
import BxPackage from '@iconify/icons-bx/package';
|
||||||
|
import modelAlt from '@iconify/icons-carbon/model-alt';
|
||||||
|
import taskApproved from '@iconify/icons-carbon/task-approved';
|
||||||
|
import redisWordmark from '@iconify/icons-devicon/redis-wordmark';
|
||||||
|
import springWordmark from '@iconify/icons-devicon/spring-wordmark';
|
||||||
|
import vscode from '@iconify/icons-devicon/vscode';
|
||||||
|
import evergreenTree from '@iconify/icons-emojione/evergreen-tree';
|
||||||
|
import RoleBindingOutlined from '@iconify/icons-eos-icons/role-binding-outlined';
|
||||||
|
import SystemGroup from '@iconify/icons-eos-icons/system-group';
|
||||||
|
import NoticePush from '@iconify/icons-fe/notice-push';
|
||||||
|
import plus from '@iconify/icons-flat-color-icons/plus';
|
||||||
|
import from24 from '@iconify/icons-fluent/form-24-regular';
|
||||||
|
import builDefinition from '@iconify/icons-fluent-mdl2/build-definition';
|
||||||
|
import Dictionary from '@iconify/icons-fluent-mdl2/dictionary';
|
||||||
|
import leaveUser from '@iconify/icons-fluent-mdl2/leave-user';
|
||||||
|
import BaseLineHouse from '@iconify/icons-ic/baseline-house';
|
||||||
|
import monitor from '@iconify/icons-ic/baseline-monitor';
|
||||||
|
import roundLaunch from '@iconify/icons-ic/round-launch';
|
||||||
|
import MenuSharp from '@iconify/icons-ic/sharp-menu';
|
||||||
|
import Appointment from '@iconify/icons-icon-park-outline/appointment';
|
||||||
|
import SettingTwo from '@iconify/icons-icon-park-twotone/setting-two';
|
||||||
|
import boolOpenText from '@iconify/icons-lucide/book-open-text';
|
||||||
|
import copyright from '@iconify/icons-lucide/copyright';
|
||||||
|
import table from '@iconify/icons-lucide/table';
|
||||||
|
import cloudDoneOutlineRounded from '@iconify/icons-material-symbols/cloud-done-outline-rounded';
|
||||||
|
import generatingTokensOutline from '@iconify/icons-material-symbols/generating-tokens-outline';
|
||||||
|
import LogoDevOutline from '@iconify/icons-material-symbols/logo-dev-outline';
|
||||||
|
import ccOutline from '@iconify/icons-mdi/cc-outline';
|
||||||
|
import tools from '@iconify/icons-mdi/tools';
|
||||||
|
import workflowOutline from '@iconify/icons-mdi/workflow-outline';
|
||||||
|
import DepartmentLine from '@iconify/icons-mingcute/department-line';
|
||||||
|
import profileLine from '@iconify/icons-mingcute/profile-line';
|
||||||
|
import UserDuotone from '@iconify/icons-ph/user-duotone';
|
||||||
|
import insatnceLine from '@iconify/icons-ri/instance-line';
|
||||||
|
import todoLine from '@iconify/icons-ri/todo-line';
|
||||||
|
import Authy from '@iconify/icons-simple-icons/authy';
|
||||||
|
import FolderWithFilesOutline from '@iconify/icons-solar/folder-with-files-outline';
|
||||||
|
import monitorBoldDuotone from '@iconify/icons-solar/monitor-bold-duotone';
|
||||||
|
import InterfaceLoginDialPadFingerPasswordDialPadDotFinger from '@iconify/icons-streamline/interface-login-dial-pad-finger-password-dial-pad-dot-finger';
|
||||||
|
import categoryPlus from '@iconify/icons-tabler/category-plus';
|
||||||
|
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(
|
||||||
|
'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);
|
||||||
|
// 个人中心
|
||||||
|
addOfflineIcon('mingcute:profile-line', profileLine);
|
||||||
|
// oss配置
|
||||||
|
addOfflineIcon('ant-design:setting-outlined', settingOutline);
|
@ -1,40 +0,0 @@
|
|||||||
import { addOfflineIcon } from '@vben-core/icons';
|
|
||||||
|
|
||||||
import Operation from '@iconify/icons-arcticons/one-hand-operation';
|
|
||||||
import BaseLineHousesFill from '@iconify/icons-bi/houses-fill';
|
|
||||||
import BxPackage from '@iconify/icons-bx/package';
|
|
||||||
import RoleBindingOutlined from '@iconify/icons-eos-icons/role-binding-outlined';
|
|
||||||
import SystemGroup from '@iconify/icons-eos-icons/system-group';
|
|
||||||
import NoticePush from '@iconify/icons-fe/notice-push';
|
|
||||||
import Dictionary from '@iconify/icons-fluent-mdl2/dictionary';
|
|
||||||
import BaseLineHouse from '@iconify/icons-ic/baseline-house';
|
|
||||||
import MenuSharp from '@iconify/icons-ic/sharp-menu';
|
|
||||||
import Appointment from '@iconify/icons-icon-park-outline/appointment';
|
|
||||||
import SettingTwo from '@iconify/icons-icon-park-twotone/setting-two';
|
|
||||||
import LogoDevOutline from '@iconify/icons-material-symbols/logo-dev-outline';
|
|
||||||
import DepartmentLine from '@iconify/icons-mingcute/department-line';
|
|
||||||
import UserDuotone from '@iconify/icons-ph/user-duotone';
|
|
||||||
import Authy from '@iconify/icons-simple-icons/authy';
|
|
||||||
import FolderWithFilesOutline from '@iconify/icons-solar/folder-with-files-outline';
|
|
||||||
import InterfaceLoginDialPadFingerPasswordDialPadDotFinger from '@iconify/icons-streamline/interface-login-dial-pad-finger-password-dial-pad-dot-finger';
|
|
||||||
|
|
||||||
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(
|
|
||||||
'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);
|
|
@ -1,3 +1,4 @@
|
|||||||
export * from './iconify/index.js';
|
export * from './iconify/index.js';
|
||||||
export * from './iconify-offline/index.js';
|
export * from './iconify-offline/index.js';
|
||||||
export * from './svg/index.js';
|
export * from './svg/index.js';
|
||||||
|
export { VbenIcon } from '@vben-core/shadcn-ui';
|
||||||
|
@ -33,13 +33,13 @@ UPDATE sys_menu SET icon = 'emojione:evergreen-tree' WHERE menu_id = 1506;
|
|||||||
UPDATE sys_menu SET icon = 'mdi:workflow-outline' WHERE menu_id = 11616;
|
UPDATE sys_menu SET icon = 'mdi:workflow-outline' WHERE menu_id = 11616;
|
||||||
UPDATE sys_menu SET icon = 'carbon:model-alt' WHERE menu_id = 11617;
|
UPDATE sys_menu SET icon = 'carbon:model-alt' WHERE menu_id = 11617;
|
||||||
UPDATE sys_menu SET icon = 'carbon:task-approved' WHERE menu_id = 11618;
|
UPDATE sys_menu SET icon = 'carbon:task-approved' WHERE menu_id = 11618;
|
||||||
UPDATE sys_menu SET icon = 'streamline:waiting-appointments-calendar' WHERE menu_id = 11619;
|
UPDATE sys_menu SET icon = 'ri:todo-line' WHERE menu_id = 11619;
|
||||||
UPDATE sys_menu SET icon = 'fluent-mdl2:build-definition' WHERE menu_id = 11620;
|
UPDATE sys_menu SET icon = 'fluent-mdl2:build-definition' WHERE menu_id = 11620;
|
||||||
UPDATE sys_menu SET icon = 'ri:instance-line' WHERE menu_id = 11621;
|
UPDATE sys_menu SET icon = 'ri:instance-line' WHERE menu_id = 11621;
|
||||||
UPDATE sys_menu SET icon = 'tabler:category-plus' WHERE menu_id = 11622;
|
UPDATE sys_menu SET icon = 'tabler:category-plus' WHERE menu_id = 11622;
|
||||||
UPDATE sys_menu SET icon = 'ic:round-launch' WHERE menu_id = 11629;
|
UPDATE sys_menu SET icon = 'ic:round-launch' WHERE menu_id = 11629;
|
||||||
UPDATE sys_menu SET icon = 'icon-park-outline:monitor' WHERE menu_id = 11630;
|
UPDATE sys_menu SET icon = 'icon-park-outline:monitor' WHERE menu_id = 11630;
|
||||||
UPDATE sys_menu SET icon = 'streamline:waiting-appointments-calendar' WHERE menu_id = 11631;
|
UPDATE sys_menu SET icon = 'ri:todo-line' WHERE menu_id = 11631;
|
||||||
UPDATE sys_menu SET icon = 'material-symbols:cloud-done-outline-rounded' WHERE menu_id = 11632;
|
UPDATE sys_menu SET icon = 'material-symbols:cloud-done-outline-rounded' WHERE menu_id = 11632;
|
||||||
UPDATE sys_menu SET icon = 'mdi:cc-outline' WHERE menu_id = 11633;
|
UPDATE sys_menu SET icon = 'mdi:cc-outline' WHERE menu_id = 11633;
|
||||||
UPDATE sys_menu SET icon = 'fluent-mdl2:leave-user' WHERE menu_id = 11638;
|
UPDATE sys_menu SET icon = 'fluent-mdl2:leave-user' WHERE menu_id = 11638;
|
46
scripts/菜单图标替换sql/update_icon_离线图标.sql
Normal file
46
scripts/菜单图标替换sql/update_icon_离线图标.sql
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
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