陶杰
2025-01-09 cc1ee1fb090b8344faab02537dec80995cec93fe
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
/**
 * @module main/store/modules/permission
 * @description 权限相关的store
 */
import utils from '@/plugins/utils'
 
const cloneDeep = require('lodash.clonedeep')
 
const state = () => {
  return {
    // 后台返回的菜单包括按钮
    routes: [],
  }
}
 
const getters = {
  // 渲染左侧菜单实际需要的结构,不需要按钮
  menus(state) {
    const menus = cloneDeep(state.routes)
    utils.filterMenu(menus)
    return menus
  },
  // 叶子菜单的一维数组,并且带上菜单的完整路径
  leafMenus(state) {
    return utils.filterMenu2LeafArray(state.routes)
  },
  // 按钮权限一维数组
  menuPermissions(state) {
    return utils.filterMenuPermissions(state.routes)
  },
}
 
const actions = {}
 
const mutations = {
  SET_ROUTES(state, menus) {
    state.routes = menus
  },
}
 
export default {
  namespaced: true,
  state,
  getters,
  actions,
  mutations,
}