>~kXr2t@%c8^~6`4f%Wpe1g
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
diff --git a/src/assets/iconfont/iconfont.woff2 b/src/assets/iconfont/iconfont.woff2
index 29ba680e3b1a8ff6f05f26ee4c774aa367d92a7d..5b037303d76ff241e0ae43d79f2ffa53e66e68f9 100644
GIT binary patch
literal 2800
zcmV*nPew8T0RR9101EH`3jhEB02Ryt01Bf30RR9100000000000000000000
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
ZN6Ny6k-x{Gu+&7AB!!zJ(khb%0|2nv4qyNP
diff --git a/src/components/ReIcon/index.ts b/src/components/ReIcon/index.ts
index 41bf519..0d2b770 100644
--- a/src/components/ReIcon/index.ts
+++ b/src/components/ReIcon/index.ts
@@ -3,6 +3,66 @@ import icon from "./src/Icon.vue";
import { FontAwesomeIcon } from "@fortawesome/vue-fontawesome";
import { iconComponents } from "/@/plugins/element-plus";
+/**
+ * find icon component
+ * @param icon icon图标
+ * @returns component
+ */
+export function findIconReg(icon: string) {
+ // fontawesome
+ const faReg = /^FA-/;
+ // iconfont
+ const iFReg = /^IF-/;
+ // typeof icon === "function" 属于SVG
+ if (faReg.test(icon)) {
+ const text = icon.split(faReg)[1];
+ return findIcon(
+ text.slice(0, text.indexOf(" ")),
+ "FA",
+ text.slice(text.indexOf(" ") + 1, text.length)
+ );
+ } else if (iFReg.test(icon)) {
+ return findIcon(icon.split(iFReg)[1], "IF");
+ } else if (typeof icon === "function") {
+ return findIcon(icon, "SVG");
+ } else {
+ return findIcon(icon, "EL");
+ }
+}
+
+// 支持fontawesome、iconfont、element-plus/icons、自定义svg
+export function findIcon(icon: String, type = "EL", property?: string) {
+ if (type === "FA") {
+ return defineComponent({
+ name: "FaIcon",
+ setup() {
+ return { icon, property };
+ },
+ components: { FontAwesomeIcon },
+ template: ``
+ });
+ } else if (type === "IF") {
+ return defineComponent({
+ name: "IfIcon",
+ data() {
+ return { icon: `iconfont ${icon}` };
+ },
+ template: ``
+ });
+ } else if (type === "EL") {
+ const components = iconComponents.filter(
+ component => component.name === icon
+ );
+ if (components.length > 0) {
+ return components[0];
+ } else {
+ return null;
+ }
+ } else if (type === "SVG") {
+ return icon;
+ }
+}
+
export const Icon = Object.assign(icon, {
install(app: App) {
app.component(icon.name, icon);
@@ -12,37 +72,3 @@ export const Icon = Object.assign(icon, {
export default {
Icon
};
-/**
- * find icon component
- * @param icon icon图标
- * @returns component
- */
-export function findIconReg(icon: string) {
- const faReg = /^fa-/;
- if (faReg.test(icon)) {
- return findIcon(icon.split(faReg)[1]);
- } else {
- return findIcon(icon, false);
- }
-}
-export function findIcon(icon: String, isFa: Boolean = true) {
- if (isFa) {
- return defineComponent({
- name: "FaIcon",
- data() {
- return { icon: icon };
- },
- components: { FontAwesomeIcon },
- template: ``
- });
- } else {
- const components = iconComponents.filter(
- component => component.name === icon
- );
- if (components.length > 0) {
- return components[0];
- } else {
- return null;
- }
- }
-}
diff --git a/src/layout/components/setting/index.vue b/src/layout/components/setting/index.vue
index 37ee7a8..dffdc64 100644
--- a/src/layout/components/setting/index.vue
+++ b/src/layout/components/setting/index.vue
@@ -17,6 +17,7 @@ import { debounce } from "/@/utils/debounce";
import { themeColorsType } from "../../types";
import { useAppStoreHook } from "/@/store/modules/app";
import { storageLocal, storageSession } from "/@/utils/storage";
+import { useMultiTagsStoreHook } from "/@/store/modules/multiTags";
import { toggleTheme } from "@zougt/vite-plugin-theme-preprocessor/dist/browser-utils";
const router = useRouter();
@@ -135,6 +136,18 @@ function onReset() {
storageSession.clear();
toggleClass(false, "html-grey", document.querySelector("html"));
toggleClass(false, "html-weakness", document.querySelector("html"));
+ useMultiTagsStoreHook().handleTags("equal", [
+ {
+ path: "/welcome",
+ parentPath: "/",
+ meta: {
+ title: "message.hshome",
+ icon: "el-icon-s-home",
+ i18n: true,
+ showLink: true
+ }
+ }
+ ]);
router.push("/login");
}
diff --git a/src/layout/components/tag/index.vue b/src/layout/components/tag/index.vue
index a7e358b..9daf274 100644
--- a/src/layout/components/tag/index.vue
+++ b/src/layout/components/tag/index.vue
@@ -1,18 +1,3 @@
-
-