diff --git a/src/components/Layout/Menu.js b/src/components/Layout/Menu.js index 4d9ad6a..015c27f 100644 --- a/src/components/Layout/Menu.js +++ b/src/components/Layout/Menu.js @@ -5,6 +5,9 @@ import { Link } from 'react-router-dom' import { arrayToTree, queryArray } from 'utils' import pathToRegexp from 'path-to-regexp' +const { SubMenu } = Menu +let openKeysFlag = false + const Menus = ({ siderFold, darkTheme, navOpenKeys, changeOpenKeys, menu, location, }) => { @@ -20,7 +23,7 @@ const Menus = ({ levelMap[item.id] = item.mpid } return ( - {item.icon && } @@ -28,7 +31,7 @@ const Menus = ({ } > {getMenus(item.children, siderFoldN)} - + ) } return ( @@ -62,6 +65,7 @@ const Menus = ({ } const onOpenChange = (openKeys) => { + if (navOpenKeys.length) changeOpenKeys([]), openKeysFlag = true const latestOpenKey = openKeys.find(key => !navOpenKeys.includes(key)) const latestCloseKey = navOpenKeys.find(key => !openKeys.includes(key)) let nextOpenKeys = [] @@ -85,6 +89,7 @@ const Menus = ({ let defaultSelectedKeys for (let item of menu) { if (item.route && pathToRegexp(item.route).exec(location.pathname)) { + if (!navOpenKeys.length && item.mpid && !openKeysFlag) changeOpenKeys([String(item.mpid)]) currentMenu = item break }