diff --git a/src/layout/components/setting/index.vue b/src/layout/components/setting/index.vue index 63397114d..42c9006a7 100644 --- a/src/layout/components/setting/index.vue +++ b/src/layout/components/setting/index.vue @@ -211,8 +211,9 @@ function setLayoutModel(layout: string) { $storage.layout = { layout, theme: layoutTheme.value.theme, - darkMode: $storage.layout.darkMode, - sidebarStatus: $storage.layout.sidebarStatus + darkMode: $storage.layout?.darkMode, + sidebarStatus: $storage.layout?.sidebarStatus, + epThemeColor: $storage.layout?.epThemeColor }; useAppStoreHook().setLayout(layout); } diff --git a/src/layout/hooks/useDataThemeChange.ts b/src/layout/hooks/useDataThemeChange.ts index 7976331cf..4b8c81fdc 100644 --- a/src/layout/hooks/useDataThemeChange.ts +++ b/src/layout/hooks/useDataThemeChange.ts @@ -13,7 +13,7 @@ import { } from "@pureadmin/theme/dist/browser-utils"; export function useDataThemeChange() { - const { layoutTheme } = useLayout(); + const { layoutTheme, layout } = useLayout(); const themeColors = ref>([ /* 道奇蓝(默认) */ { color: "#1b2a47", themeColor: "default" }, @@ -36,7 +36,7 @@ export function useDataThemeChange() { ]); const { $storage } = useGlobal(); - + const dataTheme = ref($storage?.layout?.darkMode); const body = document.documentElement as HTMLElement; /** 设置导航主题色 */ @@ -45,8 +45,13 @@ export function useDataThemeChange() { toggleTheme({ scopeName: `layout-theme-${theme}` }); - $storage.layout.theme = theme; - $storage.layout.darkMode = dataTheme.value; + $storage.layout = { + layout: layout.value, + theme, + darkMode: dataTheme.value, + sidebarStatus: $storage.layout?.sidebarStatus, + epThemeColor: $storage.layout?.epThemeColor + }; if (theme === "default" || theme === "light") { setEpThemeColor(getConfig().EpThemeColor); @@ -82,7 +87,6 @@ export function useDataThemeChange() { ); } }; - const dataTheme = ref($storage?.layout?.darkMode); /** 日间、夜间主题切换 */ function dataThemeChange() { @@ -94,10 +98,8 @@ export function useDataThemeChange() { } if (dataTheme.value) { - $storage.layout.darkMode = true; document.documentElement.classList.add("dark"); } else { - $storage.layout.darkMode = false; document.documentElement.classList.remove("dark"); } }