From c0930736f5b5955efecdac4c0ca85957d4f7b574 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期一, 16 十二月 2019 22:55:17 +0800 Subject: [PATCH] 2019-12-16 --- src/components/sidemenu/index.jsx | 79 ++++++++++++++++++++++++--------------- 1 files changed, 48 insertions(+), 31 deletions(-) diff --git a/src/components/sidemenu/index.jsx b/src/components/sidemenu/index.jsx index 43397f7..d0b092b 100644 --- a/src/components/sidemenu/index.jsx +++ b/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 = { - mainMenuList: null, // 涓�绾ц彍鍗曪紝缂栬緫璋冩暣涓婄骇鑿滃崟鏃惰幏鍙� - subMenulist: null, // 浜岀骇鑿滃崟 - editMenu: null, // 缂栬緫涓夌骇鑿滃崟鏃惰缃� + 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 // 鎵撳紑鐨則ab椤� + let submenuId = '' // 灞曞紑浜岀骇鑿滃崟ID + let tabId = '' // 鎵撳紑鐨則ab椤礽d + 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] - opentab.selected = true - this.props.modifyTabview([opentab]) + 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() } -- Gitblit v1.8.0