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.
WeChat/src/store/modules/common.js

87 lines
3.2 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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