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