vue+antd 后台管理框架
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

99 lines
2.5 KiB

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
}
}
}