king
2021-11-18 c98e45bfac25e9110ad0383faac54a54d98ea9d5
src/store/reducer.js
@@ -1,52 +1,91 @@
import md5 from 'md5'
import moment from 'moment'
import * as Type from './action-type'
let _mainMenu = null
let _url = window.location.href.split('#')[0]
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
  }
}
if (localStorage.getItem(_url + '-sideHidden') === 'true') {
  _mainMenu = ''
}
let defaultState = {
  selectedMainMenu: '', // 已选主菜单
  tabviews: [], // 导航栏
  collapse: false, // 是否收起侧边栏导航
  isiframe: false, // 是否为iframe窗口
  debug: false // 知否可以复制菜单参数
  menuTree: null,       // 菜单结构树
  mainMenu: _mainMenu,  // 已选主菜单
  collapse: _collapse,  // 是否收起侧边栏导航
  editLevel: null,      // 编辑菜单级别,值为level1、level2、level3、HS
  permAction: {},       // 用户按钮权限
  permMenus: [],        // 用户三级菜单列表
  memberLevel: _level,  // 会员等级
}
// 用户消息
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,
        selectedMainMenu: action.selectedMainMenu
        mainMenu: action.mainMenu
      }
    case Type.MODIFY_TABVIEW:
    case Type.RESET_EDITLEVEL:
    // 重置编辑级别
      return {
        ...state,
        tabviews: action.tabviews
        editLevel: action.editLevel
      }
    case Type.TOGGLE_ISIFRAME:
    case Type.INIT_ACTIONPERMISSION:
    // 初始化按钮权限
      return {
        ...state,
        isiframe: action.isiframe
        permAction: action.permAction
      }
    case Type.RESET_STATE:
    case Type.INIT_MENUPERMISSION:
    // 初始化三级菜单权限
      return {
        ...state,
        ...{
          selectedMainMenu: '',
          tabviews: [],
          collapse: false,
          isiframe: false
        }
        permMenus: action.permMenus
      }
    case Type.RESET_DEBUG:
    case Type.MODIFY_MEMBERLEVEL:
      // 修改会员等级
      return {
        ...state,
        debug: true
        memberLevel: action.memberLevel
      }
    case Type.LOGOUT:
      return {
        menuTree: null,
        mainMenu: null,
        collapse: localStorage.getItem('collapse') === 'true',
        editLevel: null,
        permAction: {},
        permMenus: [],
      }
    default:
      return state
  }
}
}