import Vue from 'vue' import { SIDEBAR_TYPE, DEFAULT_THEME, DEFAULT_LAYOUT_MODE, DEFAULT_COLOR, DEFAULT_COLOR_WEAK, DEFAULT_FIXED_HEADER, DEFAULT_FIXED_SIDEMENU, DEFAULT_FIXED_HEADER_HIDDEN, DEFAULT_CONTENT_WIDTH_TYPE, DEFAULT_MULTI_PAGE } from "@/store/mutation-types" const app = { state: { sidebar: { opened: true, withoutAnimation: false }, device: 'desktop', theme: '', layout: '', contentWidth: '', fixedHeader: false, fixSiderbar: false, autoHideHeader: false, color: null, weak: false, multipage: true //默认多页签模式 }, mutations: { SET_SIDEBAR_TYPE: (state, type) => { state.sidebar.opened = type Vue.ls.set(SIDEBAR_TYPE, type) }, CLOSE_SIDEBAR: (state, withoutAnimation) => { Vue.ls.set(SIDEBAR_TYPE, true) state.sidebar.opened = false state.sidebar.withoutAnimation = withoutAnimation }, TOGGLE_DEVICE: (state, device) => { state.device = device }, TOGGLE_THEME: (state, theme) => { // setStore('_DEFAULT_THEME', theme) Vue.ls.set(DEFAULT_THEME, theme) state.theme = theme }, TOGGLE_LAYOUT_MODE: (state, layout) => { Vue.ls.set(DEFAULT_LAYOUT_MODE, layout) state.layout = layout }, TOGGLE_FIXED_HEADER: (state, fixed) => { Vue.ls.set(DEFAULT_FIXED_HEADER, fixed) state.fixedHeader = fixed }, TOGGLE_FIXED_SIDERBAR: (state, fixed) => { Vue.ls.set(DEFAULT_FIXED_SIDEMENU, fixed) state.fixSiderbar = fixed }, TOGGLE_FIXED_HEADER_HIDDEN: (state, show) => { Vue.ls.set(DEFAULT_FIXED_HEADER_HIDDEN, show) state.autoHideHeader = show }, TOGGLE_CONTENT_WIDTH: (state, type) => { Vue.ls.set(DEFAULT_CONTENT_WIDTH_TYPE, type) state.contentWidth = type }, TOGGLE_COLOR: (state, color) => { Vue.ls.set(DEFAULT_COLOR, color) state.color = color }, TOGGLE_WEAK: (state, flag) => { Vue.ls.set(DEFAULT_COLOR_WEAK, flag) state.weak = flag }, SET_MULTI_PAGE (state, multipageFlag) { Vue.ls.set(DEFAULT_MULTI_PAGE, multipageFlag) state.multipage = multipageFlag } }, actions: { setSidebar: ({ commit }, type) => { commit('SET_SIDEBAR_TYPE', type) }, CloseSidebar({ commit }, { withoutAnimation }) { commit('CLOSE_SIDEBAR', withoutAnimation) }, ToggleDevice({ commit }, device) { commit('TOGGLE_DEVICE', device) }, ToggleTheme({ commit }, theme) { commit('TOGGLE_THEME', theme) }, ToggleLayoutMode({ commit }, mode) { commit('TOGGLE_LAYOUT_MODE', mode) }, ToggleFixedHeader({ commit }, fixedHeader) { if (!fixedHeader) { commit('TOGGLE_FIXED_HEADER_HIDDEN', false) } commit('TOGGLE_FIXED_HEADER', fixedHeader) }, ToggleFixSiderbar({ commit }, fixSiderbar) { commit( 'TOGGLE_FIXED_SIDERBAR', fixSiderbar) }, ToggleFixedHeaderHidden({ commit }, show) { commit('TOGGLE_FIXED_HEADER_HIDDEN', show) }, ToggleContentWidth({ commit }, type) { commit('TOGGLE_CONTENT_WIDTH', type) }, ToggleColor({ commit }, color) { commit('TOGGLE_COLOR', color) }, ToggleWeak({ commit }, weakFlag) { commit('TOGGLE_WEAK', weakFlag) }, ToggleMultipage({ commit }, multipageFlag) { commit('SET_MULTI_PAGE', multipageFlag) } } } export default app