king
2020-11-02 880a41a2135d944169d94028f19344ca66b673a0
src/components/sidemenu/index.jsx
@@ -1,7 +1,7 @@
import React, {Component} from 'react'
import { withRouter } from 'react-router-dom'
import PropTypes from 'prop-types'
import {connect} from 'react-redux'
import { connect } from 'react-redux'
import { is, fromJS } from 'immutable'
import { Menu, Icon, notification } from 'antd'
@@ -70,9 +70,16 @@
      let SubMenuId = sessionStorage.getItem('SubMenu')   // 是否为打开新页面
      let ThirdMenuId = sessionStorage.getItem('ThirdMenu') // 是否为打开新页面
      let msg = sessionStorage.getItem('UserID') + '&ld=' + sessionStorage.getItem('LoginUID') + '&un=' + sessionStorage.getItem('User_Name') + '&mlogo=' + window.GLOB.mainlogo + '&mstyle=' + window.GLOB.style
      let submenuId = '' // 展开二级菜单ID
      let tabId = '' // 打开的tab页id
      let msg = {
        UserID: sessionStorage.getItem('UserID'),
        LoginUID: sessionStorage.getItem('LoginUID'),
        User_Name: sessionStorage.getItem('User_Name'),
        mainlogo: window.GLOB.mainlogo,
        mstyle: window.GLOB.style,
        MainMenu: menu.MenuID
      }
      
      if (SubMenuId && ThirdMenuId) {
        submenuId = SubMenuId
@@ -110,11 +117,9 @@
        if (item.FunMenu) {
          _smenu.children = item.FunMenu.map(child => {
            let _tmenu = {
              ParentId: item.ParentID
              ParentId: item.ParentID,
              OpenType: 'newtab'
            }
            // 打开新页面链接
            _tmenu.src = '#/paramsmain/' + window.btoa('mm=' + menu.MenuID + '&sm=' + _smenu.MenuID + '&tm=' + child.MenuID + '&ud=' + msg)
            if (child.LinkUrl === 'CommonTable') {
              _tmenu.type = 'CommonTable'
@@ -133,8 +138,33 @@
                _tmenu.PageParam = {OpenType: 'newtab'}
              }
              _tmenu.type = _tmenu.PageParam.Template || _tmenu.type
              _tmenu.OpenType = _tmenu.PageParam.OpenType
            }
            if (_tmenu.type === 'NewPage') {
              _tmenu.src = _tmenu.PageParam.url
              if (this.props.memberLevel < 20) { // 会员等级大于等于20时,有编辑权限
                _tmenu.forbidden = true
              }
              if (_tmenu.src.indexOf('paramsmain/') > -1) {
                try {
                  let _url = _tmenu.src.split('paramsmain/')[0] + 'paramsmain/'
                  let _param = JSON.parse(window.decodeURIComponent(window.atob(_tmenu.src.split('paramsmain/')[1])))
                  _param.UserID = sessionStorage.getItem('UserID')
                  _param.LoginUID = sessionStorage.getItem('LoginUID')
                  _param.User_Name = sessionStorage.getItem('User_Name')
                  _tmenu.src = _url + window.btoa(window.encodeURIComponent(JSON.stringify(_param)))
                } catch {
                  console.warn('菜单参数解析错误!')
                }
              }
            } else {
              _tmenu.LinkUrl = child.LinkUrl
              // 打开新页面链接
              _tmenu.src = '#/paramsmain/' + window.btoa(window.encodeURIComponent(JSON.stringify({
                ...msg,
                SubMenu: _smenu.MenuID,
                ThirdMenu: child.MenuID
              })))
            }
            _tmenu.id = child.MenuID
@@ -142,7 +172,6 @@
            _tmenu.MenuNo = child.MenuNo
            _tmenu.MenuName = child.MenuName
            _tmenu.text = child.MenuName
            _tmenu.OpenType = _tmenu.PageParam ? _tmenu.PageParam.OpenType : 'newtab'
            return _tmenu
          })
        }
@@ -159,6 +188,20 @@
        let _menu = menulist.filter(menu => menu.MenuID === submenuId)[0]
        let opentab = _menu && _menu.children.filter(tab => tab.MenuID === tabId)[0]
        if (opentab) {
          if (sessionStorage.getItem('MenuParam')) {
            try {
              let thParam = JSON.parse(sessionStorage.getItem('MenuParam'))
              if (tabId === thParam.ThirdMenu) {
                delete thParam.ThirdMenu
                opentab.param = thParam
              }
            } catch {
              console.warn('菜单参数解析错误!')
            }
            sessionStorage.removeItem('MenuParam')
          }
          opentab.selected = true
          let home = this.props.tabviews[0]
          home.selected = false
@@ -207,6 +250,9 @@
    let menu = JSON.parse(e.target.dataset.item)
    if (menu.OpenType === 'newpage') {
      e.preventDefault()
      window.open(menu.src)
    } else if (menu.OpenType === 'NewPage') {
      e.preventDefault()
      window.open(menu.src)
    } else if (menu.OpenType === 'blank') {
@@ -360,6 +406,7 @@
    collapse: state.collapse,
    isiframe: state.isiframe,
    mainMenu: state.selectedMainMenu,
    memberLevel: state.memberLevel,
    editState: state.editState,
    editLevel: state.editLevel
  }