From a63543a5c793c8954fa2f9da0ee4fb215c62d8c2 Mon Sep 17 00:00:00 2001 From: 疯狂的狮子Li <15040126243@163.com> Date: 星期一, 20 五月 2024 10:26:46 +0800 Subject: [PATCH] !118 ♥️发布 5.2.0-BETA 公测版本 Merge pull request !118 from 疯狂的狮子Li/dev --- src/store/modules/settings.ts | 47 ++++++++++++++++++++--------------------------- 1 files changed, 20 insertions(+), 27 deletions(-) diff --git a/src/store/modules/settings.ts b/src/store/modules/settings.ts index fcf595c..ef49b3c 100644 --- a/src/store/modules/settings.ts +++ b/src/store/modules/settings.ts @@ -1,35 +1,29 @@ import { defineStore } from 'pinia'; import defaultSettings from '@/settings'; -import { SettingTypeEnum } from '@/enums/SettingTypeEnum'; import { useDynamicTitle } from '@/utils/dynamicTitle'; -import { Ref } from 'vue'; export const useSettingsStore = defineStore('setting', () => { - const storageSetting = JSON.parse(localStorage.getItem('layout-setting') || '{}'); + const storageSetting = useStorage<LayoutSetting>('layout-setting', { + topNav: defaultSettings.topNav, + tagsView: defaultSettings.tagsView, + fixedHeader: defaultSettings.fixedHeader, + sidebarLogo: defaultSettings.sidebarLogo, + dynamicTitle: defaultSettings.dynamicTitle, + sideTheme: defaultSettings.sideTheme, + theme: defaultSettings.theme + }); + const title = ref<string>(defaultSettings.title); + const theme = ref<string>(storageSetting.value.theme); + const sideTheme = ref<string>(storageSetting.value.sideTheme); + const showSettings = ref<boolean>(defaultSettings.showSettings); + const topNav = ref<boolean>(storageSetting.value.topNav); + const tagsView = ref<boolean>(storageSetting.value.tagsView); + const fixedHeader = ref<boolean>(storageSetting.value.fixedHeader); + const sidebarLogo = ref<boolean>(storageSetting.value.sidebarLogo); + const dynamicTitle = ref<boolean>(storageSetting.value.dynamicTitle); + const animationEnable = ref<boolean>(defaultSettings.animationEnable); + const dark = ref<boolean>(defaultSettings.dark); - const prop: { [key: string]: Ref<any> } = { - title: ref<string>(''), - theme: ref<string>(storageSetting.theme || defaultSettings.theme), - sideTheme: ref<string>(storageSetting.sideTheme || defaultSettings.sideTheme), - showSettings: ref<boolean>(storageSetting.showSettings || defaultSettings.showSettings), - topNav: ref<boolean>(storageSetting.topNav === undefined ? defaultSettings.topNav : storageSetting.topNav), - tagsView: ref<boolean>(storageSetting.tagsView === undefined ? defaultSettings.tagsView : storageSetting.tagsView), - fixedHeader: ref<boolean>(storageSetting.fixedHeader === undefined ? defaultSettings.fixedHeader : storageSetting.fixedHeader), - sidebarLogo: ref<boolean>(storageSetting.sidebarLogo === undefined ? defaultSettings.sidebarLogo : storageSetting.sidebarLogo), - dynamicTitle: ref<boolean>(storageSetting.dynamicTitle === undefined ? defaultSettings.dynamicTitle : storageSetting.dynamicTitle), - animationEnable: ref<boolean>(storageSetting.animationEnable === undefined ? defaultSettings.animationEnable : storageSetting.animationEnable), - dark: ref<boolean>(storageSetting.dark || defaultSettings.dark) - }; - - const { title, theme, sideTheme, showSettings, topNav, tagsView, fixedHeader, sidebarLogo, dynamicTitle, animationEnable, dark } = prop; - - // actions - const changeSetting = (param: { key: SettingTypeEnum; value: any }) => { - const { key, value } = param; - if (key in prop) { - prop[key].value = value; - } - }; const setTitle = (value: string) => { title.value = value; useDynamicTitle(); @@ -46,7 +40,6 @@ dynamicTitle, animationEnable, dark, - changeSetting, setTitle }; }); -- Gitblit v1.9.3