import defaultSettings from '@/settings';
|
import cache from '@/utils/cache';
|
|
const {sideTheme, showSettings, topNav, tagsView, sidebarLogo, dynamicTitle, language} = defaultSettings;
|
|
const settingKey = 'layout-setting';
|
|
const storageSetting = cache.local.getJSON(settingKey) || {};
|
|
const useSettingStore = defineStore(
|
'setting',
|
{
|
state: () => ({
|
language: storageSetting.language === undefined ? language : storageSetting.language,
|
theme: storageSetting.theme || '#409EFF',
|
sideTheme: storageSetting.sideTheme || sideTheme,
|
showSettings: showSettings,
|
topNav: storageSetting.topNav === undefined ? topNav : storageSetting.topNav,
|
tagsView: storageSetting.tagsView === undefined ? tagsView : storageSetting.tagsView,
|
sidebarLogo: storageSetting.sidebarLogo === undefined ? sidebarLogo : storageSetting.sidebarLogo,
|
dynamicTitle: storageSetting.dynamicTitle === undefined ? dynamicTitle : storageSetting.dynamicTitle
|
}),
|
actions: {
|
setSetting(layoutSetting) {
|
cache.local.setJSON(settingKey, layoutSetting)
|
},
|
removeSetting() {
|
cache.local.setJSON(settingKey, {language: this.language})
|
},
|
setTitle(title) {
|
document.title = this.dynamicTitle ? title + ' - ' + defaultSettings.title : defaultSettings.title;
|
},
|
setLanguage(language) {
|
this.language = language;
|
storageSetting.language = language;
|
cache.local.setJSON(settingKey, storageSetting);
|
}
|
}
|
})
|
|
export default useSettingStore;
|