From e9dc8274a0a03491e977c4c4e6d65c3918e865a2 Mon Sep 17 00:00:00 2001 From: xiaoxian521 <1923740402@qq.com> Date: Sun, 28 Nov 2021 16:39:26 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E5=90=8C=E6=AD=A5=E5=AE=8C=E6=95=B4?= =?UTF-8?q?=E7=89=88=E5=88=86=E6=94=AF=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/serverConfig.json | 1 + src/assets/iconfont/iconfont.css | 10 +++- src/assets/iconfont/iconfont.js | 38 ++++++------- src/assets/iconfont/iconfont.json | 7 +++ src/assets/iconfont/iconfont.ttf | Bin 5324 -> 5580 bytes src/assets/iconfont/iconfont.woff | Bin 3220 -> 3380 bytes src/assets/iconfont/iconfont.woff2 | Bin 2668 -> 2800 bytes src/components/ReIcon/index.ts | 62 ++++++++++++++------ src/layout/components/setting/index.vue | 13 +++++ src/layout/components/tag/index.vue | 89 +++++++++++++---------------- src/layout/index.vue | 17 ++++-- src/layout/types.ts | 4 +- src/plugins/fontawesome/index.ts | 8 ++- src/router/index.ts | 12 ++-- src/store/modules/multiTags.ts | 98 ++++++++++++++++++++++++++++++++ src/store/modules/types.ts | 5 ++ src/style/sidebar.scss | 6 -- src/utils/progress/index.ts | 2 +- src/utils/storage/responsive.ts | 84 ++++++++++++++------------- types/global.d.ts | 1 + 20 files changed, 309 insertions(+), 148 deletions(-) create mode 100644 src/store/modules/multiTags.ts diff --git a/public/serverConfig.json b/public/serverConfig.json index 4c2b240..7d28a5b 100644 --- a/public/serverConfig.json +++ b/public/serverConfig.json @@ -3,6 +3,7 @@ "Title": "PureAdmin", "FixedHeader": true, "HiddenSideBar": false, + "MultiTagsCache": false, "KeepAlive": true, "Locale": "zh", "Layout": "vertical", diff --git a/src/assets/iconfont/iconfont.css b/src/assets/iconfont/iconfont.css index 09ee987..efdec40 100644 --- a/src/assets/iconfont/iconfont.css +++ b/src/assets/iconfont/iconfont.css @@ -1,8 +1,8 @@ @font-face { font-family: "iconfont"; /* Project id 2208059 */ - src: url("iconfont.woff2?t=1636197082361") format("woff2"), - url("iconfont.woff?t=1636197082361") format("woff"), - url("iconfont.ttf?t=1636197082361") format("truetype"); + src: url("iconfont.woff2?t=1638023560828") format("woff2"), + url("iconfont.woff?t=1638023560828") format("woff"), + url("iconfont.ttf?t=1638023560828") format("truetype"); } .iconfont { @@ -13,6 +13,10 @@ -moz-osx-font-smoothing: grayscale; } +.team-icontabs::before { + content: "\e63e"; +} + .team-iconlogo::before { content: "\e620"; } diff --git a/src/assets/iconfont/iconfont.js b/src/assets/iconfont/iconfont.js index e180203..994bf8f 100644 --- a/src/assets/iconfont/iconfont.js +++ b/src/assets/iconfont/iconfont.js @@ -2,17 +2,17 @@ var l, t, e, + h, i, - a, - n = - '', - h = (h = document.getElementsByTagName("script"))[ - h.length - 1 + a = + '', + n = (n = document.getElementsByTagName("script"))[ + n.length - 1 ].getAttribute("data-injectcss"), o = function (c, l) { l.parentNode.insertBefore(c, l); }; - if (h && !c.__iconfont__svg__cssinject__) { + if (n && !c.__iconfont__svg__cssinject__) { c.__iconfont__svg__cssinject__ = !0; try { document.write( @@ -22,21 +22,21 @@ console && console.log(c); } } - function d() { - a || ((a = !0), e()); - } function v() { + i || ((i = !0), e()); + } + function d() { try { - i.documentElement.doScroll("left"); + h.documentElement.doScroll("left"); } catch (c) { - return void setTimeout(v, 50); + return void setTimeout(d, 50); } - d(); + v(); } (l = function () { var c, l; - ((l = document.createElement("div")).innerHTML = n), - (n = null), + ((l = document.createElement("div")).innerHTML = a), + (a = null), (c = l.getElementsByTagName("svg")[0]) && (c.setAttribute("aria-hidden", "true"), (c.style.position = "absolute"), @@ -55,10 +55,10 @@ document.addEventListener("DOMContentLoaded", t, !1)) : document.attachEvent && ((e = l), - (i = c.document), - (a = !1), - v(), - (i.onreadystatechange = function () { - "complete" == i.readyState && ((i.onreadystatechange = null), d()); + (h = c.document), + (i = !1), + d(), + (h.onreadystatechange = function () { + "complete" == h.readyState && ((h.onreadystatechange = null), v()); })); })(window); diff --git a/src/assets/iconfont/iconfont.json b/src/assets/iconfont/iconfont.json index 58756c7..8c8b9b4 100644 --- a/src/assets/iconfont/iconfont.json +++ b/src/assets/iconfont/iconfont.json @@ -6,6 +6,13 @@ "description": "pure-admin", "glyphs": [ { + "icon_id": "20594647", + "name": "标签页", + "font_class": "tabs", + "unicode": "e63e", + "unicode_decimal": 58942 + }, + { "icon_id": "22129506", "name": "水能", "font_class": "logo", diff --git a/src/assets/iconfont/iconfont.ttf b/src/assets/iconfont/iconfont.ttf index 9950e0858d6fb192efb1ac29bac449d8f98f0538..24eb3de3e4dd77256bcfb3810e082d3f196a7394 100644 GIT binary patch delta 897 zcmXX^O=uHg5S_{Q?PiEZTUmJ&1@Gy;-$ZZIPA+ErORu z1jT~~L#*_mJ==?-6;V*oiy{{BpyI{9OAvY!1%=u=o5(WE%$xUS-om%CWhH+tQ`j2@ zz^edoYz}+SZh-&->PnG0JIFM`#N=7OLXEX^wIB-o|8fV5pcN{ z7{YoVNhk<{R=yK7gjTf^{|x}9@D4jIo)&)xFM|xQagY6B2f%>sup5rRG|a&zn1`G2 z09NRtX^6RO%n&o)5N1WMidL~;nLX$u17RP^d8G=$^|Dne7p!2pl-q_GF(?|AgT;bt zTBZ>sVkYP1VkW67I`Pb4tXwJ6Dx!Ot4!MdI=AS8*cVfY`=x81*#etHSN1=lkD~0yy zY|e+XK_m~f&8PR&(J+hYf*I2dF-rz0`+b=RUN+sGFsk*GFU>HTgy8i=sQHU2!`hMI&8_?iB7xs_mH>)x)S+8fvD7N+e=Bp=dO^BTDRq zov2GSMbnh~$=-l2e@HC~?8f?aA9-)Pn)2y6=a1JPB|R^>WP1V&%=zWo0uuzrCK>1K z??v0=92-GP#Z_OoN_SM;FDXx{lfycuQ_irHN+YIZO}ZW56%Q#&$WQV^E#=hxS(nru z@U@tbNi!Pm3N2ehRxB3Z8JA^LWc;QnO-1XC&&vAXLB{8GnLMJKJVX5<#&PYIYqON? zy7m$i+~nVPw#yE4wzldU4Q%J!wHKMte#?yBPMtN`1<1e%j4t;JqiTrHjvYVCr)DN* JnhQn=;UC^*qoe=; delta 647 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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,39 +3,53 @@ import icon from "./src/Icon.vue"; import { FontAwesomeIcon } from "@fortawesome/vue-fontawesome"; import { iconComponents } from "/@/plugins/element-plus"; -export const Icon = Object.assign(icon, { - install(app: App) { - app.component(icon.name, icon); - } -}); - -export default { - Icon -}; /** * find icon component * @param icon icon图标 * @returns component */ export function findIconReg(icon: string) { - const faReg = /^fa-/; + // fontawesome + const faReg = /^FA-/; + // iconfont + const iFReg = /^IF-/; + // typeof icon === "function" 属于SVG if (faReg.test(icon)) { - return findIcon(icon.split(faReg)[1]); + 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, false); + return findIcon(icon, "EL"); } } -export function findIcon(icon: String, isFa: Boolean = true) { - if (isFa) { + +// 支持fontawesome、iconfont、element-plus/icons、自定义svg +export function findIcon(icon: String, type = "EL", property?: string) { + if (type === "FA") { return defineComponent({ name: "FaIcon", - data() { - return { icon: icon }; + setup() { + return { icon, property }; }, components: { FontAwesomeIcon }, - template: `` + template: `` }); - } else { + } 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 ); @@ -44,5 +58,17 @@ export function findIcon(icon: String, isFa: Boolean = true) { } else { return null; } + } else if (type === "SVG") { + return icon; } } + +export const Icon = Object.assign(icon, { + install(app: App) { + app.component(icon.name, icon); + } +}); + +export default { + Icon +}; 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 @@ - -