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.

81 lines
2.0 KiB

import config from '@/config'
import {ADMIN} from '@/config/default'
import {formatFullPath} from '@/utils/i18n'
export default {
namespaced: true,
state: {
isMobile: false,
animates: ADMIN.animates,
palettes: ADMIN.palettes,
pageMinHeight: 0,
menuData: [],
activatedFirst: undefined,
...config,
},
getters: {
firstMenu(state) {
const {menuData} = state
if (!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 : []
}
},
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
},
setActivatedFirst(state, activatedFirst) {
state.activatedFirst = activatedFirst
}
}
}