|
|
import router from '@/router'
|
|
|
|
|
|
export default {
|
|
|
// 启用命名空间,使得该模块的状态和getters、actions、mutations是注册在全局命名空间下的子模块
|
|
|
namespaced: true,
|
|
|
state: {
|
|
|
// 页面文档可视高度(随窗口改变大小)
|
|
|
documentClientHeight: 0,
|
|
|
// 导航条, 布局风格, defalut(默认) / inverse(反向)
|
|
|
navbarLayoutType: 'default',
|
|
|
// 侧边栏, 布局皮肤, light(浅色) / dark(黑色)
|
|
|
sidebarLayoutSkin: 'dark',
|
|
|
// 侧边栏, 折叠状态
|
|
|
sidebarFold: false,
|
|
|
// 侧边栏, 菜单列表
|
|
|
menuList: [],
|
|
|
// 当前激活的菜单项名称
|
|
|
menuActiveName: '',
|
|
|
// 内容区域是否需要刷新
|
|
|
contentIsNeedRefresh: false,
|
|
|
// 主入口标签页数组
|
|
|
mainTabs: [],
|
|
|
// 当前激活的标签页名称
|
|
|
mainTabsActiveName: ''
|
|
|
},
|
|
|
mutations: {
|
|
|
// 更新文档可视高度
|
|
|
updateDocumentClientHeight(state, height) {
|
|
|
state.documentClientHeight = height
|
|
|
},
|
|
|
// 更新导航条布局类型
|
|
|
updateNavbarLayoutType(state, type) {
|
|
|
state.navbarLayoutType = type
|
|
|
},
|
|
|
// 更新侧边栏布局皮肤
|
|
|
updateSidebarLayoutSkin(state, skin) {
|
|
|
state.sidebarLayoutSkin = skin
|
|
|
},
|
|
|
// 更新侧边栏折叠状态
|
|
|
updateSidebarFold(state, fold) {
|
|
|
state.sidebarFold = fold
|
|
|
},
|
|
|
// 更新菜单列表
|
|
|
updateMenuList(state, list) {
|
|
|
state.menuList = list
|
|
|
},
|
|
|
// 更新当前激活的菜单项名称
|
|
|
updateMenuActiveName(state, name) {
|
|
|
state.menuActiveName = name
|
|
|
},
|
|
|
// 更新内容区域是否需要刷新
|
|
|
updateContentIsNeedRefresh(state, status) {
|
|
|
state.contentIsNeedRefresh = status
|
|
|
},
|
|
|
// 更新主入口标签页数组
|
|
|
updateMainTabs(state, tabs) {
|
|
|
state.mainTabs = tabs
|
|
|
},
|
|
|
// 更新当前激活的标签页名称
|
|
|
updateMainTabsActiveName(state, name) {
|
|
|
state.mainTabsActiveName = name
|
|
|
},
|
|
|
// 移除指定的标签页
|
|
|
removeTab(state, tabName) {
|
|
|
// 过滤掉要删除的标签页
|
|
|
state.mainTabs = state.mainTabs.filter(item => item.name !== tabName)
|
|
|
if (state.mainTabs.length >= 1) {
|
|
|
// 如果当前选中的标签页被删除,则跳转到最后一个标签页
|
|
|
if (tabName === state.mainTabsActiveName) {
|
|
|
var tab = state.mainTabs[state.mainTabs.length - 1]
|
|
|
router.push({ name: tab.name, query: tab.query, params: tab.params }, () => {
|
|
|
state.mainTabsActiveName = tab.name
|
|
|
})
|
|
|
}
|
|
|
} else {
|
|
|
// 如果没有剩余的标签页,重置菜单并跳转到首页
|
|
|
state.menuActiveName = ''
|
|
|
router.push({ name: 'home' })
|
|
|
}
|
|
|
},
|
|
|
// 关闭当前激活的标签页
|
|
|
closeCurrentTab(state) {
|
|
|
this.commit('common/removeTab', state.mainTabsActiveName)
|
|
|
}
|
|
|
}
|
|
|
}
|