Files
miniapp/store/modules/auth.js
T
2023-08-30 09:44:26 +08:00

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