king
2020-04-09 2ff464f30d94235b3ad04475593b75a74a354de9
src/components/header/index.jsx
@@ -15,6 +15,7 @@
  resetEditState,
  resetEditLevel,
  initPermission,
  initActionPermission,
  initMenuPermission,
  logout
} from '@/store/action'
@@ -56,6 +57,7 @@
    // 展开、收起左侧菜单栏
    if (!this.props.editState) {
      this.props.toggleCollapse(!this.props.collapse)
      localStorage.setItem('collapse', !this.props.collapse)
    }
  }
@@ -201,15 +203,11 @@
  async getRolesMenu () {
    // 获取角色权限
    let result = await Api.getSystemConfig({func: 'sPC_Get_RolesMenu'})
    // 登录超时
    if (!result) return
    if (result.status) {
    let promiseRole = new Promise(resolve => {
      Api.getSystemConfig({func: 'sPC_Get_RolesMenu'}).then(result => {
      let _permAction = {}
      let _permRoles = []
      let _permFuncField = []
        if (result && result.status) {
      if (result.UserRoles) {
        result.UserRoles.forEach(role => {
          _permRoles.push(role.RoleID)
@@ -220,25 +218,74 @@
          })
        })
      }
      if (result.sModular && result.sModular.length > 0) {
        result.sModular.forEach(field => {
          if (field.ModularNo) {
            _permFuncField.push(field.ModularNo)
          }
        })
        _permFuncField = _permFuncField.sort()
      }
      this.props.initPermission(_permRoles, _permAction, _permFuncField)
      this.loadmenu()
    } else {
        } else if (result) {
      notification.error({
        top: 92,
        message: result.message,
        duration: 15
      })
    }
        resolve({permAction: _permAction, permRoles: _permRoles})
      })
    })
    // 获取主菜单参数
    let promiseMenu = new Promise(resolve => {
      Api.getSystemConfig({func: 'sPC_Get_MainMenu', systemType: options.systemType}).then(result => {
        let mainMenu = null
        if (result && result.status) {
          if (result.debug === 'true') { // 是否为debug模式,即可复制菜单参数
            this.props.resetDebug()
          }
          let MainMenuId = sessionStorage.getItem('MainMenu') // 是否为打开新页面
          if (MainMenuId) {
            // 通过url中menuid筛选出选中的主菜单
            let _menu = result.data.filter(item => item.MenuID === MainMenuId)[0]
            sessionStorage.removeItem('MainMenu')
            mainMenu = _menu || result.data[0]
          } else {
            mainMenu = result.data[0]
          }
          this.setState({
            menulist: result.data.map((item, index) => {
              item.id = index
              item.text = item.MenuName
              if (item.PageParam) {
                try {
                  item.PageParam = JSON.parse(item.PageParam)
                } catch (e) {
                  item.PageParam = {OpenType: 'menu', linkUrl: ''}
                }
              } else {
                item.PageParam = {OpenType: 'menu', linkUrl: ''}
              }
              return item
            }),
            systems: result.Systems.filter(sys => sys.LinkUrl1 && sys.AppKey !== window.GLOB.appkey)
          })
        } else if (result) {
          notification.error({
            top: 92,
            message: result.message,
            duration: 15
          })
        }
        resolve(mainMenu)
      })
    })
    let _mainMenu = await promiseMenu
    if (_mainMenu) {
      this.props.modifyMainMenu(_mainMenu)
    }
    let _role = await promiseRole
    this.props.initActionPermission(_role.permRoles, _role.permAction)
  }
  reload = () => {
@@ -280,6 +327,36 @@
      this.loadmenu()
      this.props.modifyMainMenu('')
      this.props.resetEditState(state)
    }
    if (state && this.props.sysRoles.length === 0 && this.props.permFuncField.length === 0) {
      Api.getSystemConfig({func: 'sPC_Get_Roles_sModular'}).then(res => {
        if (res.status) {
          let _permFuncField = []
          let _sysRoles = []
          if (res.Roles && res.Roles.length > 0) {
            _sysRoles = res.Roles.map(role => {
              return {
                uuid: Utils.getuuid(),
                value: role.RoleID,
                text: role.RoleName
              }
            })
          }
          if (res.sModular && res.sModular.length > 0) {
            res.sModular.forEach(field => {
              if (field.ModularNo) {
                _permFuncField.push(field.ModularNo)
              }
            })
            _permFuncField = _permFuncField.sort()
          }
          this.props.initPermission(_sysRoles, _permFuncField)
        }
      })
    }
  }
@@ -496,6 +573,7 @@
    editState: state.editState,
    editLevel: state.editLevel,
    permAction: state.permAction,
    sysRoles: state.sysRoles,
    permFuncField: state.permFuncField
  }
}
@@ -506,7 +584,8 @@
    modifyMainMenu: (selectmenu) => dispatch(modifyMainMenu(selectmenu)),
    resetEditState: (state) => dispatch(resetEditState(state)),
    resetEditLevel: (level) => dispatch(resetEditLevel(level)),
    initPermission: (permRoles, permAction, permFuncField) => dispatch(initPermission(permRoles, permAction, permFuncField)),
    initActionPermission: (permRoles, permAction) => dispatch(initActionPermission(permRoles, permAction)),
    initPermission: (sysRoles, permFuncField) => dispatch(initPermission(sysRoles, permFuncField)),
    initMenuPermission: (permMenus) => dispatch(initMenuPermission(permMenus)),
    resetState: () => dispatch(resetState()),
    resetDebug: () => dispatch(resetDebug()),