From 6b28aa21702934ae76dbc1eb6045315b8d1b44ec Mon Sep 17 00:00:00 2001 From: xiaoxian521 <1923740402@qq.com> Date: Wed, 22 Dec 2021 10:12:52 +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/layout/components/setting/index.vue | 58 ++++++++++++++++++++++----------- src/layout/index.vue | 6 ++-- src/layout/theme/element-plus.ts | 12 ++++--- src/utils/storage/responsive.ts | 3 +- types/global.d.ts | 1 + 6 files changed, 54 insertions(+), 27 deletions(-) diff --git a/public/serverConfig.json b/public/serverConfig.json index 2462e96..ad1279a 100644 --- a/public/serverConfig.json +++ b/public/serverConfig.json @@ -8,6 +8,7 @@ "Locale": "zh", "Layout": "vertical", "Theme": "default", + "DarkMode": false, "Grey": false, "Weak": false, "HideTabs": false, diff --git a/src/layout/components/setting/index.vue b/src/layout/components/setting/index.vue index ee20f45..8c43984 100644 --- a/src/layout/components/setting/index.vue +++ b/src/layout/components/setting/index.vue @@ -145,23 +145,14 @@ const multiTagsCacheChange = () => { useMultiTagsStoreHook().multiTagsCacheChange(multiTagsCache); }; -//初始化项目配置 -nextTick(() => { - settings.greyVal && - document.querySelector("html")?.setAttribute("class", "html-grey"); - settings.weakVal && - document.querySelector("html")?.setAttribute("class", "html-weakness"); - settings.tabsVal && tagsChange(); - - writeNewStyle(createNewStyle(epThemeColor.value)); -}); - // 清空缓存并返回登录页 function onReset() { - storageLocal.clear(); - storageSession.clear(); - toggleClass(false, "html-grey", document.querySelector("html")); - toggleClass(false, "html-weakness", document.querySelector("html")); + toggleClass(getConfig().Grey, "html-grey", document.querySelector("html")); + toggleClass( + getConfig().Weak, + "html-weakness", + document.querySelector("html") + ); useMultiTagsStoreHook().handleTags("equal", [ { path: "/welcome", @@ -176,6 +167,8 @@ function onReset() { ]); useMultiTagsStoreHook().multiTagsCacheChange(getConfig().MultiTagsCache); useEpThemeStoreHook().setEpThemeColor("#409EFF"); + storageLocal.clear(); + storageSession.clear(); router.push("/login"); } @@ -234,7 +227,11 @@ const getThemeColor = computed(() => { function setLayoutModel(layout: string) { layoutTheme.value.layout = layout; window.document.body.setAttribute("layout", layout); - instance.layout = { layout, theme: layoutTheme.value.theme }; + instance.layout = { + layout, + theme: layoutTheme.value.theme, + darkMode: instance.layout.darkMode + }; useAppStoreHook().setLayout(layout); } @@ -244,7 +241,11 @@ function setLayoutThemeColor(theme: string) { toggleTheme({ scopeName: `layout-theme-${theme}` }); - instance.layout = { layout: useAppStoreHook().layout, theme }; + instance.layout = { + layout: useAppStoreHook().layout, + theme, + darkMode: dataTheme.value + }; if (theme === "default" || theme === "light") { setEpThemeColor("#409EFF"); @@ -261,7 +262,7 @@ const setEpThemeColor = (color: string) => { useEpThemeStoreHook().setEpThemeColor(color); }; -let dataTheme = ref(false); +let dataTheme = ref(instance.layout.darkMode); // 日间、夜间主题切换 function dataThemeChange() { @@ -269,8 +270,27 @@ function dataThemeChange() { if (dataTheme.value) { body.setAttribute("data-theme", "dark"); setLayoutThemeColor("light"); - } else body.setAttribute("data-theme", ""); + } else { + body.setAttribute("data-theme", ""); + instance.layout = { + layout: useAppStoreHook().layout, + theme: instance.layout.theme, + darkMode: dataTheme.value + }; + } } + +//初始化项目配置 +nextTick(() => { + settings.greyVal && + document.querySelector("html")?.setAttribute("class", "html-grey"); + settings.weakVal && + document.querySelector("html")?.setAttribute("class", "html-weakness"); + settings.tabsVal && tagsChange(); + + writeNewStyle(createNewStyle(epThemeColor.value)); + dataThemeChange(); +});