chore: update

This commit is contained in:
xiaoxian521 2025-03-20 15:57:13 +08:00
parent 818f12d1ea
commit 2d06dc1dd8
28 changed files with 147 additions and 75 deletions

View File

@ -121,6 +121,7 @@
"@faker-js/faker": "^9.5.0",
"@iconify-json/ep": "^1.2.2",
"@iconify-json/ri": "^1.2.5",
"@iconify/utils": "^2.3.0",
"@iconify/vue": "4.2.0",
"@intlify/unplugin-vue-i18n": "^6.0.3",
"@types/codemirror": "^5.60.15",

3
pnpm-lock.yaml generated
View File

@ -225,6 +225,9 @@ importers:
'@iconify-json/ri':
specifier: ^1.2.5
version: 1.2.5
'@iconify/utils':
specifier: ^2.3.0
version: 2.3.0
'@iconify/vue':
specifier: 4.2.0
version: 4.2.0(vue@3.5.13(typescript@5.7.3))

View File

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

View File

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

View File

@ -1,15 +1,34 @@
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;
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,
{
@ -24,4 +43,5 @@ export default defineComponent({
}
);
}
}
});

View File

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

View File

@ -5,7 +5,7 @@ export default {
path: "/able",
redirect: "/able/watermark",
meta: {
icon: "ri:ubuntu-fill",
icon: "ri/ubuntu-fill",
title: $t("menus.pureAble"),
rank: able
},

View File

@ -5,7 +5,7 @@ export default {
path: "/about",
redirect: "/about/index",
meta: {
icon: "ri:file-info-line",
icon: "ri/file-info-line",
title: $t("menus.pureAbout"),
rank: about
},

View File

@ -6,7 +6,7 @@ export default {
path: "/board",
redirect: "/board/index",
meta: {
icon: "ri:artboard-line",
icon: "ri/artboard-line",
title: $t("menus.pureBoard"),
rank: board
},

View File

@ -4,7 +4,7 @@ export default {
path: "/chatai",
redirect: "/chatai/index",
meta: {
icon: "ri:chat-search-line",
icon: "ri/chat-search-line",
title: "chat-ai",
rank: chatai
},

View File

@ -5,7 +5,7 @@ export default {
path: "/codemirror",
redirect: "/codemirror/index",
meta: {
icon: "ri:code-box-line",
icon: "ri/code-box-line",
title: $t("menus.pureCodeMirror"),
rank: codemirror
},

View File

@ -5,7 +5,7 @@ export default {
path: "/components",
redirect: "/components/dialog",
meta: {
icon: "ep:menu",
icon: "ep/menu",
title: $t("menus.pureComponents"),
rank: components
},

View File

@ -5,7 +5,7 @@ export default {
path: "/editor",
redirect: "/editor/index",
meta: {
icon: "ep:edit",
icon: "ep/edit",
title: $t("menus.pureEditor"),
rank: editor
},

View File

@ -5,7 +5,7 @@ export default {
path: "/error",
redirect: "/error/403",
meta: {
icon: "ri:information-line",
icon: "ri/information-line",
// showLink: false,
title: $t("menus.pureAbnormal"),
rank: error

View File

@ -5,7 +5,7 @@ export default {
path: "/flow-chart",
redirect: "/flow-chart/index",
meta: {
icon: "ep:set-up",
icon: "ep/set-up",
title: $t("menus.pureFlowChart"),
rank: flowchart
},

View File

@ -5,7 +5,7 @@ export default {
path: "/form",
redirect: "/form/index",
meta: {
icon: "ri:edit-box-line",
icon: "ri/edit-box-line",
title: $t("menus.pureSchemaForm"),
rank: form
},

View File

@ -6,7 +6,7 @@ export default {
path: "/form-design",
redirect: "/form-design/index",
meta: {
icon: "ri:terminal-window-line",
icon: "ri/terminal-window-line",
title: $t("menus.pureFormDesign"),
rank: formdesign
},

View File

@ -5,7 +5,7 @@ export default {
path: "/ganttastic",
redirect: "/ganttastic/index",
meta: {
icon: "ri:bar-chart-horizontal-line",
icon: "ri/bar-chart-horizontal-line",
title: $t("menus.pureGanttastic"),
rank: ganttastic
},

View File

@ -5,7 +5,7 @@ export default {
path: "/guide",
redirect: "/guide/index",
meta: {
icon: "ep:guide",
icon: "ep/guide",
title: $t("menus.pureGuide"),
rank: guide
},

View File

@ -9,7 +9,7 @@ export default {
component: Layout,
redirect: "/welcome",
meta: {
icon: "ep:home-filled",
icon: "ep/home-filled",
title: $t("menus.pureHome"),
rank: home
},

View File

@ -5,7 +5,7 @@ export default {
path: "/list",
redirect: "/list/card",
meta: {
icon: "ri:list-check",
icon: "ri/list-check",
title: $t("menus.pureList"),
rank: list
},
@ -15,7 +15,7 @@ export default {
name: "CardList",
component: () => import("@/views/list/card/index.vue"),
meta: {
icon: "ri:bank-card-line",
icon: "ri/bank-card-line",
title: $t("menus.pureCardList"),
showParent: true
}

View File

@ -5,7 +5,7 @@ export default {
path: "/markdown",
redirect: "/markdown/index",
meta: {
icon: "ri:markdown-line",
icon: "ri/markdown-line",
title: $t("menus.pureMarkdown"),
rank: markdown
},

View File

@ -6,7 +6,7 @@ export default {
path: "/mind-map",
redirect: "/mind-map/index",
meta: {
icon: "ri:mind-map",
icon: "ri/mind-map",
title: $t("menus.pureMindMap"),
rank: mind
},

View File

@ -6,7 +6,7 @@ export default {
redirect: "/nested/menu1/menu1-1",
meta: {
title: $t("menus.pureMenus"),
icon: "ep:histogram",
icon: "ep/histogram",
rank: nested
},
children: [

View File

@ -5,7 +5,7 @@ export default {
path: "/ppt",
redirect: "/ppt/index",
meta: {
icon: "ri:file-ppt-2-line",
icon: "ri/file-ppt-2-line",
title: "PPT",
rank: ppt
},

View File

@ -5,7 +5,7 @@ export default {
path: "/result",
redirect: "/result/success",
meta: {
icon: "ri:checkbox-circle-line",
icon: "ri/checkbox-circle-line",
title: $t("menus.pureResult"),
rank: result
},

View File

@ -5,7 +5,7 @@ export default {
path: "/table",
redirect: "/table/index",
meta: {
icon: "ri:table-line",
icon: "ri/table-line",
title: $t("menus.pureTable"),
rank: table
},

View File

@ -4,7 +4,7 @@ export default {
path: "/vue-flow",
redirect: "/vue-flow/index",
meta: {
icon: "ep:set-up",
icon: "ep/set-up",
title: "vue-flow",
rank: vueflow
},