Files
vue3-element-admin/src/store/modules/settings.ts
2022-03-11 00:07:34 +08:00

46 lines
1.5 KiB
TypeScript

import {defineStore} from "pinia";
import {SettingState} from "@/store/interface";
import defaultSettings from '../../settings'
import {localStorage} from "@/utils/storage";
const {showSettings, tagsView, fixedHeader, sidebarLogo} = defaultSettings
import variables from '@/styles/element-variables.module.scss'
export const useSettingStore = defineStore({
id: "setting",
state: (): SettingState => ({
theme: localStorage.get("theme") || variables.theme ,
showSettings: showSettings,
tagsView: localStorage.get("tagsView") != null ? localStorage.get("tagsView") : tagsView,
fixedHeader: fixedHeader,
sidebarLogo: sidebarLogo,
}),
actions: {
async changeSetting(payload: { key: string, value: any }) {
const {key, value} = payload
switch (key) {
case 'theme':
this.theme = value
break
case 'showSettings':
this.showSettings = value
break
case 'fixedHeader':
this.fixedHeader = value
break
case 'tagsView':
this.tagsView = value
localStorage.set("tagsView", value)
break
case 'sidebarLogo':
this.sidebarLogo = value
break
default:
break
}
}
}
})
export default useSettingStore;