mirror of
https://github.com/PlayEdu/backend
synced 2025-06-19 15:07:34 +08:00
Merge branch 'dev' of https://gitee.com/playeduxyz/backend into dev
This commit is contained in:
commit
49d6fdbecc
@ -89,14 +89,30 @@ export const LeftMenu: React.FC = () => {
|
|||||||
}
|
}
|
||||||
return [];
|
return [];
|
||||||
};
|
};
|
||||||
|
const openKeyMerge = (pathname: string): string[] => {
|
||||||
|
let newOpenKeys = hit(pathname);
|
||||||
|
for (let i = 0; i < openKeys.length; i++) {
|
||||||
|
let isIn = false;
|
||||||
|
for (let j = 0; j < newOpenKeys.length; j++) {
|
||||||
|
if (newOpenKeys[j] === openKeys[i]) {
|
||||||
|
isIn = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (isIn) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
newOpenKeys.push(openKeys[i]);
|
||||||
|
}
|
||||||
|
return newOpenKeys;
|
||||||
|
};
|
||||||
|
|
||||||
// 默认选中的菜单
|
|
||||||
let defaultSelectedKeys: string[] = [location.pathname];
|
|
||||||
// 默认打开的子菜单
|
|
||||||
let defaultOpenKeys: string[] = hit(location.pathname);
|
|
||||||
// 选中的菜单
|
// 选中的菜单
|
||||||
const [selectedKeys, setSelectedKeys] =
|
const [selectedKeys, setSelectedKeys] = useState<string[]>([
|
||||||
useState<string[]>(defaultSelectedKeys);
|
location.pathname,
|
||||||
|
]);
|
||||||
|
// 展开菜单
|
||||||
|
const [openKeys, setOpenKeys] = useState<string[]>(hit(location.pathname));
|
||||||
|
|
||||||
const onClick = (e: any) => {
|
const onClick = (e: any) => {
|
||||||
navigate(e.key);
|
navigate(e.key);
|
||||||
@ -104,6 +120,7 @@ export const LeftMenu: React.FC = () => {
|
|||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setSelectedKeys([location.pathname]);
|
setSelectedKeys([location.pathname]);
|
||||||
|
setOpenKeys(openKeyMerge(location.pathname));
|
||||||
}, [location.pathname]);
|
}, [location.pathname]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@ -129,14 +146,16 @@ export const LeftMenu: React.FC = () => {
|
|||||||
width: 200,
|
width: 200,
|
||||||
background: "#ffffff",
|
background: "#ffffff",
|
||||||
}}
|
}}
|
||||||
defaultSelectedKeys={defaultSelectedKeys}
|
|
||||||
defaultOpenKeys={defaultOpenKeys}
|
|
||||||
selectedKeys={selectedKeys}
|
selectedKeys={selectedKeys}
|
||||||
|
openKeys={openKeys}
|
||||||
mode="inline"
|
mode="inline"
|
||||||
items={items}
|
items={items}
|
||||||
onSelect={(data: any) => {
|
onSelect={(data: any) => {
|
||||||
setSelectedKeys(data.selectedKeys);
|
setSelectedKeys(data.selectedKeys);
|
||||||
}}
|
}}
|
||||||
|
onOpenChange={(keys: any) => {
|
||||||
|
setOpenKeys(keys);
|
||||||
|
}}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user