浏览代码

tab、菜单对应判断

zhouna 3 年之前
父节点
当前提交
5ec19c4d8b
共有 2 个文件被更改,包括 15 次插入3 次删除
  1. 1 1
      src/components/AHeader/index.js
  2. 14 2
      src/components/AMenu/index.js

+ 1 - 1
src/components/AHeader/index.js

@@ -15,7 +15,7 @@ class AHeader extends Component{
         const menu = (
             <Menu>
                 <Menu.Item key="0">
-                    <a href="https://www.antgroup.com">个人中心</a>
+                    <a href="https://www.antgroup.com">修改密码</a>
                 </Menu.Item>
                 <Menu.Divider/>
                 <Menu.Item key="3">退出</Menu.Item>

+ 14 - 2
src/components/AMenu/index.js

@@ -1,6 +1,6 @@
 import {Menu} from 'antd';
 import { useDispatch,useSelector } from 'react-redux'
-import { add } from '../../store/reducers/tabPanes'
+import { add,active } from '../../store/reducers/tabPanes'
 import OrgManager from "../OrgManager";
 import RoleManager from "../RoleManager";
 import UserManager from "../UserManager"
@@ -17,11 +17,22 @@ const pageMap = {
 
 function AMenu (){
         const dispatch = useDispatch();
+        //当前选中的菜单
         const activeTab = useSelector(state => {
             return state.tabPanes.activeTab
         });
+        //已打开的tabs
+        const panes = useSelector(state => {
+            return state.tabPanes.panes
+        });
+        //切换菜单、增加tab
         function changeMenu(val){
-            console.log(val)
+            const item = panes.find((it)=>it.key===val.key);
+            console.log(item);
+            if(item){   //已存在当前tab,则定位即可不增加
+                dispatch(active(val.key));
+                return;
+            }
             dispatch(
                 add({ title: val.key, content: pageMap[val.key]||<OrgManager />, key:val.key },)
             )
@@ -30,6 +41,7 @@ function AMenu (){
             <Menu
                 defaultSelectedKeys={['组织管理']}
                 defaultOpenKeys={['权限管理']}
+                selectedKeys={activeTab}
                 mode="inline"
                 onClick={changeMenu}
             >