index.js 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. import { Menu } from 'antd';
  2. import { useDispatch, useSelector } from 'react-redux'
  3. import { add, active } from '../../store/reducers/tabPanes'
  4. import OrgManager from "../OrgManager";
  5. import RoleManager from "../RoleManager";
  6. import UserManager from "../UserManager"
  7. import DataManager from "../DataManager"
  8. import InpaManager from "../InpaManager"
  9. const { SubMenu } = Menu;
  10. const propTypes = {};
  11. const defaultProps = {};
  12. const pageMap = {
  13. '组织管理': <OrgManager />,
  14. '角色管理': <RoleManager />,
  15. '用户管理': <UserManager />,
  16. '数据权限': <DataManager />,
  17. '病区管理': <InpaManager />
  18. }
  19. function AMenu() {
  20. const dispatch = useDispatch();
  21. //当前选中的菜单
  22. const activeTab = useSelector(state => {
  23. return state.tabPanes.activeTab
  24. });
  25. //已打开的tabs
  26. const panes = useSelector(state => {
  27. return state.tabPanes.panes
  28. });
  29. //切换菜单、增加tab
  30. function changeMenu(val) {
  31. const item = panes.find((it) => it.key === val.key);
  32. //console.log(item);
  33. if (item) { //已存在当前tab,则定位即可不增加
  34. dispatch(active(val.key));
  35. return;
  36. }
  37. dispatch(
  38. add({ title: val.key, content: pageMap[val.key] || <OrgManager />, key: val.key })
  39. )
  40. }
  41. return (
  42. <Menu
  43. defaultSelectedKeys={['组织管理']}
  44. defaultOpenKeys={['权限管理']}
  45. selectedKeys={activeTab}
  46. mode="inline"
  47. onClick={changeMenu}
  48. >
  49. <SubMenu key="权限管理" title="权限管理">
  50. <Menu.Item key="组织管理">组织管理</Menu.Item>
  51. <Menu.Item key="病区管理">病区管理</Menu.Item>
  52. <Menu.Item key="角色管理">角色管理</Menu.Item>
  53. <Menu.Item key="用户管理">用户管理</Menu.Item>
  54. <Menu.Item key="数据权限">数据权限</Menu.Item>
  55. </SubMenu>
  56. <SubMenu key="系统管理" title="系统管理">
  57. <Menu.Item key="功能管理">功能管理</Menu.Item>
  58. </SubMenu>
  59. </Menu>
  60. )
  61. }
  62. AMenu.propTypes = propTypes;
  63. AMenu.defaultProps = defaultProps;
  64. export default AMenu;