1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
| import defaultSettings from '@/settings'
| import {useDynamicTitle} from "@/utils/dynamicTitle";
| import {defineStore} from "pinia";
| import {getStorage} from "@/utils/storage";
|
| const {sideTheme, showSettings, topNav, tagsView, fixedHeader, sidebarLogo, dynamicTitle} = defaultSettings
| const item = getStorage({name:"layout-setting"}) || '';
| const storageSetting = item !== '' ? JSON.parse(item) : '';
|
| export interface SettingState {
| title: string,
| theme: string,
| sideTheme: string,
| showSettings: any,
| topNav: string,
| tagsView: string,
| fixedHeader: string,
| sidebarLogo: string,
| dynamicTitle: string,
| baseTitle:string
| }
|
| export const useSettingsStore = defineStore('settings',{
| state:():SettingState=>({
| title: '',
| theme: storageSetting.theme || '#409EFF',
| sideTheme: storageSetting.sideTheme || sideTheme,
| showSettings: showSettings,
| topNav: !storageSetting.topNav ? topNav : storageSetting.topNav,
| tagsView: !storageSetting.tagsView ? tagsView : storageSetting.tagsView,
| fixedHeader: !storageSetting.fixedHeader ? fixedHeader : storageSetting.fixedHeader,
| sidebarLogo: !storageSetting.sidebarLogo ? sidebarLogo : storageSetting.sidebarLogo,
| dynamicTitle: !storageSetting.dynamicTitle ? dynamicTitle : storageSetting.dynamicTitle,
| baseTitle: ''
| }),
| actions:{
| setBaseTitle(title:string){
| this.baseTitle = title;
| useDynamicTitle();
| },
| changeSetting(data: {key:any, value:any}) {
| if (this.hasOwnProperty(data.key)) {
| (this as any)[data.key] = data.value
| }
| },
| settings(title:string){
| this.title = title;
| useDynamicTitle();
| }
| }
| })
|
|