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
52
53
54
55
| import defaultSettings from '@/settings'
| import {Module} from "vuex";
| import {State} from "@/store";
| import {useDynamicTitle} from "@/utils/dynamicTitle";
|
| const {sideTheme, showSettings, topNav, tagsView, fixedHeader, sidebarLogo, dynamicTitle} = defaultSettings
| const item = localStorage.getItem("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
| }
|
| const settings: Module<SettingState, State> = {
| namespaced: true,
| 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
| }),
| mutations: {
| CHANGE_SETTING: (state: any, {key, value}) => {
| if (state.hasOwnProperty(key)) {
| state[key] = value
| }
| }
| },
| actions: {
| // 修改布局设置
| changeSetting({commit}, data) {
| commit('CHANGE_SETTING', data)
| },
| // 设置网页标题
| setTitle({commit, state}, title) {
| state.title = title
| useDynamicTitle();
| }
| }
| }
|
| export default settings
|
|