auth.js 1.7KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. // 权限信息仓库
  2. export default {
  3. state: {
  4. authList:[],
  5. menuArr:[] //菜单
  6. },
  7. getters: {
  8. // 检查菜单是否存在
  9. getAuth:(state) => {
  10. return function (key) {
  11. let arr = state.authList.filter(item => item.name == key)
  12. return arr.length == 0 ? false : true
  13. }
  14. },
  15. // 返回菜单名
  16. getAuthName:(state) => {
  17. return function (key) {
  18. let arr = state.authList.filter(item => item.name == key)
  19. return arr.length == 0 ? '' : arr[0].label
  20. }
  21. },
  22. // 返回用户是否拥有该按钮权限
  23. getOperation(state){
  24. return function(key){
  25. let curRoute = '/' + this.$mp.page.route;
  26. let arr = state.authList.filter(item => (curRoute.indexOf(item.name) != -1 || item.name.indexOf(curRoute) != -1))
  27. let operation = arr[0] ? arr[0].operation : []
  28. return operation.indexOf(key) > -1 ? true : false
  29. }
  30. },
  31. // 获取菜单
  32. getMenu(state){
  33. return function(key){
  34. let arr = state.menuArr.filter(item => item.url == key)
  35. return arr.length ? arr[0].children : []
  36. }
  37. }
  38. },
  39. mutations: {
  40. // 设置权限信息
  41. 'SETAUTH':function(state, payload){
  42. state.authList = payload
  43. },
  44. // 清除权限信息
  45. 'CLEARAUTH':function(state){
  46. state.authList = []
  47. },
  48. // 设置菜单信息
  49. 'SETMENU':function(state, payload){
  50. state.menuArr = payload
  51. },
  52. // 清除菜单信息
  53. 'CLEARMENU':function(state){
  54. state.menuArr = []
  55. },
  56. },
  57. actions: {
  58. setAuth({ commit },payload){
  59. commit('SETAUTH',payload)
  60. },
  61. clearAuth({ commit }){
  62. commit('CLEARAUTH')
  63. },
  64. setMenu({ commit },payload){
  65. commit('SETMENU',payload)
  66. },
  67. clearMenu({ commit }){
  68. commit('CLEARMENU')
  69. }
  70. }
  71. }