Files
vue3-element-admin/src/store/modules/settings.ts
szx efe664d823 fix:修复tagsView开关持久化存储
Former-commit-id: 9a935d6198b7a5e34c6884a3d7130c19899e2f8d
2022-12-20 11:17:12 +08:00

50 lines
1.2 KiB
TypeScript

import { defineStore } from 'pinia';
import defaultSettings from '../../settings';
import { ref } from 'vue';
import { useCssVar, useStorage } from '@vueuse/core';
const el = document.documentElement;
export const useSettingsStore = defineStore('setting', () => {
// state
const theme = useStorage('theme', useCssVar('--el-color-primary', el))
const showSettings = ref<boolean>(defaultSettings.showSettings);
const tagsView = useStorage<boolean>('tagsView', defaultSettings.tagsView)
const fixedHeader = ref<boolean>(defaultSettings.fixedHeader);
const sidebarLogo = ref<boolean>(defaultSettings.sidebarLogo);
// actions
function changeSetting(param: { key: string; value: any }) {
const { key, value } = param;
switch (key) {
case 'theme':
theme.value = value;
break;
case 'showSettings':
showSettings.value = value;
break;
case 'fixedHeader':
fixedHeader.value = value;
break;
case 'tagsView':
tagsView.value = value;
break;
case 'sidevarLogo':
sidebarLogo.value = value;
break;
default:
break;
}
}
return {
theme,
showSettings,
tagsView,
fixedHeader,
sidebarLogo,
changeSetting
};
});