|
|
|
import config from '@/config'
|
|
|
|
import {ADMIN} from '@/config/default'
|
|
|
|
import {formatFullPath} from '@/utils/i18n'
|
|
|
|
import {filterMenu} from '@/utils/authority-utils'
|
|
|
|
import {getLocalSetting} from '@/utils/themeUtil'
|
|
|
|
|
|
|
|
const localSetting = getLocalSetting(true)
|
|
|
|
|
|
|
|
export default {
|
|
|
|
namespaced: true,
|
|
|
|
state: {
|
|
|
|
isMobile: false,
|
|
|
|
animates: ADMIN.animates,
|
|
|
|
palettes: ADMIN.palettes,
|
|
|
|
pageMinHeight: 0,
|
|
|
|
menuData: [],
|
|
|
|
activatedFirst: undefined,
|
|
|
|
...config,
|
|
|
|
...localSetting
|
|
|
|
},
|
|
|
|
getters: {
|
|
|
|
menuData(state, getters, rootState) {
|
|
|
|
if (state.filterMenu) {
|
|
|
|
const {permissions, roles} = rootState.account
|
|
|
|
filterMenu(state.menuData, permissions, roles)
|
|
|
|
}
|
|
|
|
return state.menuData
|
|
|
|
},
|
|
|
|
firstMenu(state) {
|
|
|
|
const {menuData} = state
|
|
|
|
if (menuData.length > 0 && !menuData[0].fullPath) {
|
|
|
|
formatFullPath(menuData)
|
|
|
|
}
|
|
|
|
return menuData.map(item => {
|
|
|
|
const menuItem = {...item}
|
|
|
|
delete menuItem.children
|
|
|
|
return menuItem
|
|
|
|
})
|
|
|
|
},
|
|
|
|
subMenu(state) {
|
|
|
|
const {menuData, activatedFirst} = state
|
|
|
|
if (!menuData[0].fullPath) {
|
|
|
|
formatFullPath(menuData)
|
|
|
|
}
|
|
|
|
const current = menuData.find(menu => menu.fullPath === activatedFirst)
|
|
|
|
return current && current.children ? current.children : []
|
|
|
|
}
|
|
|
|
},
|
|
|
|
mutations: {
|
|
|
|
setDevice (state, isMobile) {
|
|
|
|
state.isMobile = isMobile
|
|
|
|
},
|
|
|
|
setTheme (state, theme) {
|
|
|
|
state.theme = theme
|
|
|
|
},
|
|
|
|
setLayout (state, layout) {
|
|
|
|
state.layout = layout
|
|
|
|
},
|
|
|
|
setMultiPage (state, multiPage) {
|
|
|
|
state.multiPage = multiPage
|
|
|
|
},
|
|
|
|
setAnimate (state, animate) {
|
|
|
|
state.animate = animate
|
|
|
|
},
|
|
|
|
setWeekMode(state, weekMode) {
|
|
|
|
state.weekMode = weekMode
|
|
|
|
},
|
|
|
|
setFixedHeader(state, fixedHeader) {
|
|
|
|
state.fixedHeader = fixedHeader
|
|
|
|
},
|
|
|
|
setFixedSideBar(state, fixedSideBar) {
|
|
|
|
state.fixedSideBar = fixedSideBar
|
|
|
|
},
|
|
|
|
setLang(state, lang) {
|
|
|
|
state.lang = lang
|
|
|
|
},
|
|
|
|
setHideSetting(state, hideSetting) {
|
|
|
|
state.hideSetting = hideSetting
|
|
|
|
},
|
|
|
|
correctPageMinHeight(state, minHeight) {
|
|
|
|
state.pageMinHeight += minHeight
|
|
|
|
},
|
|
|
|
setMenuData(state, menuData) {
|
|
|
|
state.menuData = menuData
|
|
|
|
},
|
|
|
|
setAsyncRoutes(state, asyncRoutes) {
|
|
|
|
state.asyncRoutes = asyncRoutes
|
|
|
|
},
|
|
|
|
setPageWidth(state, pageWidth) {
|
|
|
|
state.pageWidth = pageWidth
|
|
|
|
},
|
|
|
|
setActivatedFirst(state, activatedFirst) {
|
|
|
|
state.activatedFirst = activatedFirst
|
|
|
|
},
|
|
|
|
setFixedTabs(state, fixedTabs) {
|
|
|
|
state.fixedTabs = fixedTabs
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|