From 7073acb3ef8d003c837e1e606c698510734334aa Mon Sep 17 00:00:00 2001
From: xlsea <m@xlsea.cn>
Date: 星期一, 08 一月 2024 11:48:56 +0800
Subject: [PATCH] 社交登录整合 TopIam
---
src/store/modules/settings.ts | 83 +++++++++++++++++++----------------------
1 files changed, 38 insertions(+), 45 deletions(-)
diff --git a/src/store/modules/settings.ts b/src/store/modules/settings.ts
index 32119cd..ef49b3c 100644
--- a/src/store/modules/settings.ts
+++ b/src/store/modules/settings.ts
@@ -1,54 +1,47 @@
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),
- topNav: ref<boolean>(storageSetting.topNav || defaultSettings.topNav),
- tagsView: ref<boolean>(storageSetting.tagsView || defaultSettings.tagsView),
- fixedHeader: ref<boolean>(storageSetting.fixedHeader || defaultSettings.fixedHeader),
- sidebarLogo: ref<boolean>(storageSetting.sidebarLogo || defaultSettings.sidebarLogo),
- dynamicTitle: ref<boolean>(storageSetting.dynamicTitle || defaultSettings.dynamicTitle),
- animationEnable: ref<boolean>(storageSetting.animationEnable || defaultSettings.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();
- };
- return {
- title,
- theme,
- sideTheme,
- showSettings,
- topNav,
- tagsView,
- fixedHeader,
- sidebarLogo,
- dynamicTitle,
- animationEnable,
- dark,
- changeSetting,
- setTitle
- };
+ const setTitle = (value: string) => {
+ title.value = value;
+ useDynamicTitle();
+ };
+ return {
+ title,
+ theme,
+ sideTheme,
+ showSettings,
+ topNav,
+ tagsView,
+ fixedHeader,
+ sidebarLogo,
+ dynamicTitle,
+ animationEnable,
+ dark,
+ setTitle
+ };
});
export default useSettingsStore;
--
Gitblit v1.9.3