71 lines
1.7 KiB
JavaScript
71 lines
1.7 KiB
JavaScript
// 权限信息仓库
|
|
export default {
|
|
state: {
|
|
authList:[],
|
|
menuArr:[] //菜单
|
|
},
|
|
getters: {
|
|
// 检查菜单是否存在
|
|
getAuth:(state) => {
|
|
return function (key) {
|
|
let arr = state.authList.filter(item => item.name == key)
|
|
return arr.length == 0 ? false : true
|
|
}
|
|
},
|
|
// 返回菜单名
|
|
getAuthName:(state) => {
|
|
return function (key) {
|
|
let arr = state.authList.filter(item => item.name == key)
|
|
return arr.length == 0 ? '' : arr[0].label
|
|
}
|
|
},
|
|
// 返回用户是否拥有该按钮权限
|
|
getOperation(state){
|
|
return function(key){
|
|
let curRoute = '/' + this.$mp.page.route;
|
|
let arr = state.authList.filter(item => (curRoute.indexOf(item.name) != -1 || item.name.indexOf(curRoute) != -1))
|
|
let operation = arr[0] ? arr[0].operation : []
|
|
return operation.indexOf(key) > -1 ? true : false
|
|
}
|
|
},
|
|
// 获取菜单
|
|
getMenu(state){
|
|
return function(key){
|
|
let arr = state.menuArr.filter(item => item.url == key)
|
|
return arr.length ? arr[0].children : []
|
|
}
|
|
}
|
|
},
|
|
mutations: {
|
|
// 设置权限信息
|
|
'SETAUTH':function(state, payload){
|
|
state.authList = payload
|
|
},
|
|
// 清除权限信息
|
|
'CLEARAUTH':function(state){
|
|
state.authList = []
|
|
},
|
|
// 设置菜单信息
|
|
'SETMENU':function(state, payload){
|
|
state.menuArr = payload
|
|
},
|
|
// 清除菜单信息
|
|
'CLEARMENU':function(state){
|
|
state.menuArr = []
|
|
},
|
|
},
|
|
actions: {
|
|
setAuth({ commit },payload){
|
|
commit('SETAUTH',payload)
|
|
},
|
|
clearAuth({ commit }){
|
|
commit('CLEARAUTH')
|
|
},
|
|
setMenu({ commit },payload){
|
|
commit('SETMENU',payload)
|
|
},
|
|
clearMenu({ commit }){
|
|
commit('CLEARMENU')
|
|
}
|
|
}
|
|
} |