From 880a41a2135d944169d94028f19344ca66b673a0 Mon Sep 17 00:00:00 2001 From: king <18310653075@163.com> Date: 星期一, 02 十一月 2020 18:23:45 +0800 Subject: [PATCH] 2020-11-02 --- src/components/sidemenu/index.jsx | 63 +++++++++++++++++++++++++++---- 1 files changed, 55 insertions(+), 8 deletions(-) diff --git a/src/components/sidemenu/index.jsx b/src/components/sidemenu/index.jsx index dc61f5d..cc6e57c 100644 --- a/src/components/sidemenu/index.jsx +++ b/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 = '' // 鎵撳紑鐨則ab椤礽d + 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('鑿滃崟鍙傛暟瑙f瀽閿欒锛�') + } + } } 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('鑿滃崟鍙傛暟瑙f瀽閿欒锛�') + } + 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 } -- Gitblit v1.8.0