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