|
@@ -1,10 +1,15 @@
|
|
-import { Menu } from 'antd';
|
|
|
|
|
|
+import { Menu,message } from 'antd';
|
|
|
|
+import { useState,useEffect } from 'react';
|
|
import { useDispatch, useSelector } from 'react-redux'
|
|
import { useDispatch, useSelector } from 'react-redux'
|
|
-import { add, active } from '../../store/reducers/tabPanes'
|
|
|
|
|
|
+import { add, active } from '@reducers/tabPanes'
|
|
import OrgManager from "../OrgManager";
|
|
import OrgManager from "../OrgManager";
|
|
import RoleManager from "../RoleManager";
|
|
import RoleManager from "../RoleManager";
|
|
-import UserManager from "../UserManager"
|
|
|
|
-import DataManager from "../DataManager"
|
|
|
|
|
|
+import UserManager from "../UserManager";
|
|
|
|
+import DataManager from "../DataManager";
|
|
|
|
+import NullPage from "../NullPage";
|
|
|
|
+import apiObj from '@api/index';
|
|
|
|
+
|
|
|
|
+const { xPost,api } = apiObj;
|
|
const { SubMenu } = Menu;
|
|
const { SubMenu } = Menu;
|
|
const propTypes = {};
|
|
const propTypes = {};
|
|
const defaultProps = {};
|
|
const defaultProps = {};
|
|
@@ -17,44 +22,68 @@ const pageMap = {
|
|
}
|
|
}
|
|
|
|
|
|
function AMenu() {
|
|
function AMenu() {
|
|
|
|
+ const [menuList,setMenuList] = useState([]);
|
|
const dispatch = useDispatch();
|
|
const dispatch = useDispatch();
|
|
//当前选中的菜单
|
|
//当前选中的菜单
|
|
- const activeTab = useSelector(state => {
|
|
|
|
- return state.tabPanes.activeTab
|
|
|
|
- });
|
|
|
|
- //已打开的tabs
|
|
|
|
- const panes = useSelector(state => {
|
|
|
|
- return state.tabPanes.panes
|
|
|
|
|
|
+ const {activeTab ,panes} = useSelector(state => {
|
|
|
|
+ return state.tabPanes;
|
|
});
|
|
});
|
|
//切换菜单、增加tab
|
|
//切换菜单、增加tab
|
|
function changeMenu(val) {
|
|
function changeMenu(val) {
|
|
- const item = panes.find((it) => it.key === val.key);
|
|
|
|
|
|
+ const idName = val.key.split("-");
|
|
|
|
+ const item = panes.find((it) => it.key === idName[0]);
|
|
//console.log(item);
|
|
//console.log(item);
|
|
if (item) { //已存在当前tab,则定位即可不增加
|
|
if (item) { //已存在当前tab,则定位即可不增加
|
|
- dispatch(active(val.key));
|
|
|
|
|
|
+ dispatch(active(idName[0]));
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
dispatch(
|
|
dispatch(
|
|
- add({ title: val.key, content: pageMap[val.key] || <OrgManager />, key: val.key })
|
|
|
|
|
|
+ add({ title: idName[0], content: pageMap[idName[0]] || <NullPage />, key: idName[0] })
|
|
)
|
|
)
|
|
}
|
|
}
|
|
|
|
+ //获取菜单数据
|
|
|
|
+ function getUserMenus(){
|
|
|
|
+ xPost(api.getUserShowMemuTree).then((res)=>{
|
|
|
|
+ if(res.data.code===200){
|
|
|
|
+ const data = res.data.data;
|
|
|
|
+ const menuData = data.showMenuInfo;
|
|
|
|
+ setMenuList(menuData);
|
|
|
|
+ }else{
|
|
|
|
+ message.error(res.data.msg||'获取菜单失败');
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ function getSubMenu(data){
|
|
|
|
+ return data.map((it)=>{
|
|
|
|
+ if(it.menuType==='1'){
|
|
|
|
+ return (
|
|
|
|
+ <Menu.Item key={it.menuName}>{it.menuName}</Menu.Item>
|
|
|
|
+ )
|
|
|
|
+ }else if(it.menuType==='0'){
|
|
|
|
+ return (
|
|
|
|
+ <SubMenu key={it.menuId} title={it.menuName}>
|
|
|
|
+ {getSubMenu(it.children)}
|
|
|
|
+ </SubMenu>
|
|
|
|
+ )
|
|
|
|
+ }else{
|
|
|
|
+ return ''
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ useEffect(()=>{
|
|
|
|
+ getUserMenus();
|
|
|
|
+ },[]);
|
|
return (
|
|
return (
|
|
<Menu
|
|
<Menu
|
|
- defaultSelectedKeys={['组织管理']}
|
|
|
|
- defaultOpenKeys={['权限管理']}
|
|
|
|
|
|
+ /*defaultSelectedKeys={['组织管理']}
|
|
|
|
+ defaultOpenKeys={[menuList[0].menuId]}*/
|
|
selectedKeys={activeTab}
|
|
selectedKeys={activeTab}
|
|
mode="inline"
|
|
mode="inline"
|
|
onClick={changeMenu}
|
|
onClick={changeMenu}
|
|
>
|
|
>
|
|
- <SubMenu key="权限管理" title="权限管理">
|
|
|
|
- <Menu.Item key="组织管理">组织管理</Menu.Item>
|
|
|
|
- <Menu.Item key="角色管理">角色管理</Menu.Item>
|
|
|
|
- <Menu.Item key="用户管理">用户管理</Menu.Item>
|
|
|
|
- <Menu.Item key="数据权限">数据权限</Menu.Item>
|
|
|
|
- </SubMenu>
|
|
|
|
- <SubMenu key="系统管理" title="系统管理">
|
|
|
|
- <Menu.Item key="功能管理">功能管理</Menu.Item>
|
|
|
|
- </SubMenu>
|
|
|
|
|
|
+ {
|
|
|
|
+ getSubMenu(menuList)
|
|
|
|
+ }
|
|
</Menu>
|
|
</Menu>
|
|
)
|
|
)
|
|
}
|
|
}
|