15815213711
2022-03-07 56f8b51c26bd1fb7e1fdc62acab5151cdf83c860
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