mirror of
https://github.com/pure-admin/vue-pure-admin.git
synced 2025-12-09 14:40:27 +08:00
chore: update
This commit is contained in:
@@ -13,3 +13,11 @@ const IconSelect = iconSelect;
|
||||
const FontIcon = fontIcon;
|
||||
|
||||
export { IconifyIconOffline, IconifyIconOnline, IconSelect, FontIcon };
|
||||
|
||||
export function getIconOffline(icon: string) {
|
||||
if (icon && icon.includes("/")) {
|
||||
return icon.replace("/", ":");
|
||||
} else {
|
||||
return icon;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,11 @@
|
||||
import type { iconType } from "./types";
|
||||
import { h, defineComponent, type Component } from "vue";
|
||||
import { IconifyIconOnline, IconifyIconOffline, FontIcon } from "../index";
|
||||
import {
|
||||
FontIcon,
|
||||
getIconOffline,
|
||||
IconifyIconOnline,
|
||||
IconifyIconOffline
|
||||
} from "../index";
|
||||
|
||||
/**
|
||||
* 支持 `iconfont`、自定义 `svg` 以及 `iconify` 中所有的图标
|
||||
@@ -52,7 +57,7 @@ export function useRenderIcon(icon: any, attrs?: iconType): Component {
|
||||
const IconifyIcon =
|
||||
icon && icon.includes(":") ? IconifyIconOnline : IconifyIconOffline;
|
||||
return h(IconifyIcon, {
|
||||
icon: icon,
|
||||
icon: getIconOffline(icon),
|
||||
...attrs
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1,27 +1,47 @@
|
||||
import { h, defineComponent } from "vue";
|
||||
import { Icon as IconifyIcon, addIcon } from "@iconify/vue/dist/offline";
|
||||
|
||||
// Iconify Icon在Vue里本地使用(用于内网环境)
|
||||
export default defineComponent({
|
||||
name: "IconifyIconOffline",
|
||||
components: { IconifyIcon },
|
||||
props: {
|
||||
icon: {
|
||||
default: null
|
||||
}
|
||||
},
|
||||
render() {
|
||||
if (typeof this.icon === "object") addIcon(this.icon, this.icon);
|
||||
const attrs = this.$attrs;
|
||||
return h(
|
||||
this.icon,
|
||||
{
|
||||
"aria-hidden": false,
|
||||
style: attrs?.style
|
||||
? Object.assign(attrs.style, { outline: "none" })
|
||||
: { outline: "none" },
|
||||
...attrs
|
||||
},
|
||||
{
|
||||
default: () => []
|
||||
}
|
||||
);
|
||||
if (typeof this.icon === "string") {
|
||||
return h(
|
||||
IconifyIcon,
|
||||
{
|
||||
icon: this.icon,
|
||||
"aria-hidden": false,
|
||||
style: attrs?.style
|
||||
? Object.assign(attrs.style, { outline: "none" })
|
||||
: { outline: "none" },
|
||||
...attrs
|
||||
},
|
||||
{
|
||||
default: () => []
|
||||
}
|
||||
);
|
||||
} else {
|
||||
return h(
|
||||
this.icon,
|
||||
{
|
||||
"aria-hidden": false,
|
||||
style: attrs?.style
|
||||
? Object.assign(attrs.style, { outline: "none" })
|
||||
: { outline: "none" },
|
||||
...attrs
|
||||
},
|
||||
{
|
||||
default: () => []
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
// // 这里存放本地图标,在 src/layout/index.vue 文件中加载,避免在首启动加载
|
||||
// import { addIcon } from "@iconify/vue/dist/offline";
|
||||
// 这里存放本地图标,在 src/layout/index.vue 文件中加载,避免在首启动加载
|
||||
import { getIcons } from "@iconify/utils";
|
||||
import { addCollection } from "@iconify/vue/dist/offline";
|
||||
|
||||
// // 本地菜单图标,后端在路由的 icon 中返回对应的图标字符串并且前端在此处使用 addIcon 添加即可渲染菜单图标
|
||||
// // @iconify-json/ep
|
||||
// 本地菜单图标,后端在路由的 icon 中返回对应的图标字符串并且前端在此处使用 addIcon 添加即可渲染菜单图标
|
||||
// @iconify-json/ep
|
||||
// import Menu from "~icons/ep/menu";
|
||||
// import Edit from "~icons/ep/edit";
|
||||
// import SetUp from "~icons/ep/set-up";
|
||||
@@ -11,15 +12,22 @@
|
||||
// import Lollipop from "~icons/ep/lollipop";
|
||||
// import Histogram from "~icons/ep/histogram";
|
||||
// import HomeFilled from "~icons/ep/home-filled";
|
||||
// addIcon("ep:menu", Menu);
|
||||
// addIcon("ep:edit", Edit);
|
||||
// addIcon("ep:set-up", SetUp);
|
||||
// addIcon("ep:guide", Guide);
|
||||
// addIcon("ep:monitor", Monitor);
|
||||
// addIcon("ep:lollipop", Lollipop);
|
||||
// addIcon("ep:histogram", Histogram);
|
||||
// addIcon("ep:home-filled", HomeFilled);
|
||||
// // @iconify-json/ri
|
||||
|
||||
import { icons as iconsEp } from "@iconify-json/ep";
|
||||
addCollection(
|
||||
getIcons(iconsEp, [
|
||||
"menu",
|
||||
"edit",
|
||||
"set-up",
|
||||
"guide",
|
||||
"monitor",
|
||||
"lollipop",
|
||||
"histogram",
|
||||
"home-filled"
|
||||
])
|
||||
);
|
||||
|
||||
// @iconify-json/ri
|
||||
// import Tag from "~icons/ri/bookmark-2-line";
|
||||
// import Ppt from "~icons/ri/file-ppt-2-line";
|
||||
// import Card from "~icons/ri/bank-card-line";
|
||||
@@ -44,27 +52,54 @@
|
||||
// import InformationLine from "~icons/ri/information-line";
|
||||
// import TerminalWindowLine from "~icons/ri/terminal-window-line";
|
||||
// import CheckboxCircleLine from "~icons/ri/checkbox-circle-line";
|
||||
// addIcon("ri:bookmark-2-line", Tag);
|
||||
// addIcon("ri:file-ppt-2-line", Ppt);
|
||||
// addIcon("ri:bank-card-line", Card);
|
||||
// addIcon("ri:admin-fill", Role);
|
||||
// addIcon("ri:file-info-line", Info);
|
||||
// addIcon("ri:git-branch-line", Dept);
|
||||
// addIcon("ri:links-fill", Links);
|
||||
// addIcon("ri:table-line", Table);
|
||||
// addIcon("ri:search-line", Search);
|
||||
// addIcon("ri:admin-line", FlUser);
|
||||
// addIcon("ri:settings-3-line", Setting);
|
||||
// addIcon("ri:mind-map", MindMap);
|
||||
// addIcon("ri:bar-chart-horizontal-line", BarChart);
|
||||
// addIcon("ri:window-line", LoginLog);
|
||||
// addIcon("ri:file-search-line", SystemLog);
|
||||
// addIcon("ri:artboard-line", Artboard);
|
||||
// addIcon("ri:list-check", ListCheck);
|
||||
// addIcon("ri:ubuntu-fill", UbuntuFill);
|
||||
// addIcon("ri:user-voice-line", OnlineUser);
|
||||
// addIcon("ri:edit-box-line", EditBoxLine);
|
||||
// addIcon("ri:history-fill", OperationLog);
|
||||
// addIcon("ri:information-line", InformationLine);
|
||||
// addIcon("ri:terminal-window-line", TerminalWindowLine);
|
||||
// addIcon("ri:checkbox-circle-line", CheckboxCircleLine);
|
||||
// import ChatSearchLine from "~icons/ri/chat-search-line";
|
||||
import { icons as iconsRi } from "@iconify-json/ri";
|
||||
addCollection(
|
||||
getIcons(iconsRi, [
|
||||
"bookmark-2-line",
|
||||
"file-ppt-2-line",
|
||||
"bank-card-line",
|
||||
"admin-fill",
|
||||
"file-info-line",
|
||||
"git-branch-line",
|
||||
"table-line",
|
||||
"links-fill",
|
||||
"search-line",
|
||||
"admin-line",
|
||||
"settings-3-line",
|
||||
"mind-map",
|
||||
"bar-chart-horizontal-line",
|
||||
"window-line",
|
||||
"artboard-line",
|
||||
"file-search-line",
|
||||
"list-check",
|
||||
"ubuntu-fill",
|
||||
"user-voice-line",
|
||||
"edit-box-line",
|
||||
"history-fill",
|
||||
"information-line",
|
||||
"terminal-window-line",
|
||||
"checkbox-circle-line",
|
||||
"chat-search-line",
|
||||
"code-box-line",
|
||||
"markdown-line"
|
||||
])
|
||||
);
|
||||
|
||||
// {
|
||||
// "prefix": "ri",
|
||||
// "icons": {
|
||||
// "bookmark-2-line": {
|
||||
// "body": "<path fill=\"currentColor\" d=\"M5 2h14a1 1 0 0 1 1 1v19.143a.5.5 0 0 1-.766.424L12 18.03l-7.234 4.536A.5.5 0 0 1 4 22.143V3a1 1 0 0 1 1-1m13 2H6v15.432l6-3.761l6 3.761zM8 9h8v2H8z\"/>"
|
||||
// },
|
||||
// "information-line": {
|
||||
// "body": "<path fill=\"currentColor\" d=\"M12 22C6.477 22 2 17.523 2 12S6.477 2 12 2s10 4.477 10 10s-4.477 10-10 10m0-2a8 8 0 1 0 0-16a8 8 0 0 0 0 16M11 7h2v2h-2zm0 4h2v6h-2z\"/>"
|
||||
// },
|
||||
// "search-line": {
|
||||
// "body": "<path fill=\"currentColor\" d=\"m18.031 16.617l4.283 4.282l-1.415 1.415l-4.282-4.283A8.96 8.96 0 0 1 11 20c-4.968 0-9-4.032-9-9s4.032-9 9-9s9 4.032 9 9a8.96 8.96 0 0 1-1.969 5.617m-2.006-.742A6.98 6.98 0 0 0 18 11c0-3.867-3.133-7-7-7s-7 3.133-7 7s3.133 7 7 7a6.98 6.98 0 0 0 4.875-1.975z\"/>"
|
||||
// }
|
||||
// },
|
||||
// "lastModified": 1734422306,
|
||||
// "width": 24,
|
||||
// "height": 24
|
||||
// }
|
||||
|
||||
Reference in New Issue
Block a user