king
2020-11-25 9cf5fc474d2159aad973e3208fbef670f325307f
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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
import md5 from 'md5'
import moment from 'moment'
import * as Type from './action-type'
 
let _collapse = localStorage.getItem('collapse') === 'true'
let _level = 10
let _Mlevel = sessionStorage.getItem('Member_Level')
 
if (_Mlevel) {
  if (_Mlevel === md5('mksoft' + moment().format('YYYYMM') + 10)) {
    _level = 10
  } else if (_Mlevel === md5('mksoft' + moment().format('YYYYMM') + 20)) {
    _level = 20
  } else if (_Mlevel === md5('mksoft' + moment().format('YYYYMM') + 30)) {
    _level = 30
  }
}
 
let defaultState = {
  menuTree: null,       // 菜单结构树
  mainMenu: null,       // 已选主菜单
  tabviews: [],         // 导航栏
  collapse: _collapse,  // 是否收起侧边栏导航
  isiframe: false,      // 是否为iframe窗口
  debug: false,         // 知否可以复制菜单参数, 是否可进入编辑模式
  editState: false,     // 是否为编辑状态,值为false、true
  editLevel: null,      // 编辑菜单级别,值为level1、level2、level3、HS
  permRoles: [],        // 用户角色列表
  permAction: {},       // 用户按钮权限
  permMenus: [],        // 用户三级菜单列表
  dataManager: false,   // 数据管理员
  memberLevel: _level,  // 会员等级
  customMenu: null      // 编辑中的菜单(自定义页面)
}
 
// 用户消息
export default (state = defaultState, action = {}) => {
  switch (action.type) {
    case Type.Toggle_COLLAPSE:
    // 切换菜单栏展开合并状态
      return {
        ...state,
        collapse: action.collapse
      }
    case Type.MODIFY_MENUTREE:
    // 初始化菜单信息
      return {
        ...state,
        menuTree: action.menuTree
      }
    case Type.MODIFY_MAINMENU:
    // 切换主菜单
      return {
        ...state,
        mainMenu: action.mainMenu
      }
    case Type.MODIFY_TABVIEW:
    // tab页改变
      return {
        ...state,
        tabviews: action.tabviews
      }
    case Type.TOGGLE_ISIFRAME:
    // 切换是否为iframe状态
      return {
        ...state,
        isiframe: action.isiframe
      }
    case Type.RESET_STATE:
    // 重置默认参数(退出时)
      return {
        ...state,
        ...{
          mainMenu: null,
          tabviews: [],
          collapse: false,
          isiframe: false
        }
      }
    case Type.RESET_DEBUG:
    // 切换debug状态
      return {
        ...state,
        debug: true
      }
    case Type.RESET_EDITSTATE:
    // 重置编辑状态
      return {
        ...state,
        tabviews: [],
        editState: action.editState,
        collapse: false
      }
    case Type.RESET_EDITLEVEL:
    // 重置编辑级别
      return {
        ...state,
        editState: true,
        editLevel: action.editLevel
      }
    case Type.INIT_ROLESPERMISSION:
    // 初始化按钮权限
      return {
        ...state,
        permRoles: action.permRoles
      }
    case Type.INIT_ACTIONPERMISSION:
    // 初始化按钮权限
      return {
        ...state,
        permAction: action.permAction
      }
    case Type.INIT_MENUPERMISSION:
    // 初始化三级菜单权限
      return {
        ...state,
        permMenus: action.permMenus
      }
    case Type.MODIFY_MEMBERLEVEL:
      // 修改会员等级
      return {
        ...state,
        memberLevel: action.memberLevel
      }
    case Type.MODIFY_DATAMANAGER:
      // 修改数据权限
      return {
        ...state,
        dataManager: action.dataManager
      }
    case Type.MODIFY_CUSTOMMENU:
      // 修改自定义菜单信息
      return {
        ...state,
        customMenu: action.customMenu
      }
    case Type.LOGOUT:
      return {
        menuTree: null,
        mainMenu: null,
        tabviews: [],
        collapse: localStorage.getItem('collapse') === 'true',
        isiframe: false,
        debug: false,
        editState: false,
        editLevel: null,
        permAction: {},
        permMenus: [],
        customMenu: null
      }
    default:
      return state
  }
}