king
2019-12-16 c0930736f5b5955efecdac4c0ca85957d4f7b574
src/components/sidemenu/index.jsx
@@ -3,7 +3,7 @@
import PropTypes from 'prop-types'
import {connect} from 'react-redux'
import { is, fromJS } from 'immutable'
import { Menu, Icon } from 'antd'
import { Menu, Icon, notification } from 'antd'
import asyncComponent from '@/utils/asyncComponent'
import {modifyTabview, resetEditLevel} from '@/store/action'
import zhCN from '@/locales/zh-CN/header.js'
@@ -25,12 +25,12 @@
  }
  state = {
    dict: (!localStorage.getItem('lang') || localStorage.getItem('lang') === 'zh-CN') ? zhCN : enUS,
    mainMenuList: null, // 一级菜单,编辑调整上级菜单时获取
    subMenulist: null, // 二级菜单
    editMenu: null, // 编辑三级菜单时设置
    rootSubmenuKeys: null,
    createThirdMenu: false,
    dict: (!localStorage.getItem('lang') || localStorage.getItem('lang') === 'zh-CN') ? zhCN : enUS,
    openKeys: null,
    preview: null
  }
@@ -38,17 +38,39 @@
  async loadsubmenu (menu) {
    let result = await Api.getSystemConfig({func: 'sPC_Get_FunMenu', ParentID: menu.MenuID})
    if (result.status) {
      if (result.data.length === 0) { // 查询菜单为空
        this.setState({
          subMenulist: [],
          rootSubmenuKeys: [],
          openKeys: [],
          editMenu: null
        })
        return
      }
      let param = sessionStorage.getItem('view_param') // 是否为打开新页面
      let msg = sessionStorage.getItem('UserID') + '&' + sessionStorage.getItem('SessionUid') + '&' + sessionStorage.getItem('LoginUID')
      let submenuindex = 0 // 展开二级菜单索引
      let tabindex = null // 打开的tab页
      let submenuId = '' // 展开二级菜单ID
      let tabId = '' // 打开的tab页id
      if (param) {
        param = param.split('&')
        submenuindex = parseInt(param[1])
        tabindex = parseInt(param[2])
        submenuId = param[1]
        let submenu = result.data.filter(item => item.ParentID === submenuId)[0]
        if (!submenu) {
          submenuId = ''
        } else {
          tabId = param[2]
          let tabmenu = submenu.FunMenu.filter(item => item.MenuID === tabId)[0]
          if (!tabmenu) {
            submenuId = ''
            tabId = ''
          }
        }
        sessionStorage.removeItem('view_param')
      }
      let parentID = result.data[submenuindex] ? result.data[submenuindex].ParentID : '' // 展开二级菜单ID
      let parentID = submenuId ? submenuId : result.data[0].ParentID // 展开二级菜单ID
      let menulist = result.data.map((item, i) => {
        let _smenu = {}
@@ -63,7 +85,7 @@
        if (item.FunMenu) {
          _smenu.children = item.FunMenu.map((child, n) => {
            let _tmenu = {}
            let _msg = window.btoa(menu.MenuID + '&' + i + '&' + n + '&' + msg) // 待完善
            let _msg = window.btoa(menu.MenuID + '&' + _smenu.MenuID + '&' + child.MenuID + '&' + msg) // 待完善
            _tmenu.src = '#/main/' + _msg
            if (child.LinkUrl === 'CommonTable') {
              _tmenu.type = 'CommonTable'
@@ -100,30 +122,24 @@
      this.setState({
        subMenulist: menulist,
        rootSubmenuKeys: result.data.map(item => item.ParentID),
        openKeys: (this.props.collapse || !parentID) ? [] : [parentID],
        openKeys: this.props.collapse ? [] : [parentID],
        editMenu: this.props.editLevel === 'level3' && menulist.filter(menu => menu.MenuID === this.state.editMenu.MenuID)[0]
      })
      if (tabId) {
        let _menu = menulist.filter(menu => menu.MenuID === submenuId)[0]
        let opentab = _menu && _menu.children.filter(tab => tab.MenuID === tabId)[0]
      if (tabindex !== null) {
        let opentab = result.data[submenuindex].children[tabindex]
        if (opentab) {
        opentab.selected = true
        this.props.modifyTabview([opentab])
      }
      // this.props.modifyTabview([{
      //   Action: 'Index',
      //   Icon: 'Content/icons/L32X32/RoleM.png',
      //   LinkUrl: 'bda/rdt?pageno=rolemenus&MenuNo=RoleMenuM',
      //   MenuID: 'MMenu14002DBD0010',
      //   MenuName: '角色权限分配',
      //   MenuNo: 'RoleMenuM',
      //   Ot: '空',
      //   PageParam: '',
      //   SortSub: '720',
      //   id: 3,
      //   selected: true,
      //   type: 'RoleManage'
      // }])
      }
    } else {
      notification.warning({
        top: 92,
        message: result.message,
        duration: 10
      })
    }
  }
@@ -143,6 +159,7 @@
      })
      menu.selected = true
      tabs.push(menu)
      this.props.modifyTabview(tabs)
      e.preventDefault()
    }