From 5a9828d9466e0ae7d57c255b6c5f4dfe4999ddcc Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期一, 28 十月 2024 15:29:41 +0800
Subject: [PATCH] #
---
zy-acs-flow/src/layout/MyMenu.jsx | 50 +++++++++++++++++++++++++++++++++-----------------
1 files changed, 33 insertions(+), 17 deletions(-)
diff --git a/zy-acs-flow/src/layout/MyMenu.jsx b/zy-acs-flow/src/layout/MyMenu.jsx
index b996e97..a36567a 100644
--- a/zy-acs-flow/src/layout/MyMenu.jsx
+++ b/zy-acs-flow/src/layout/MyMenu.jsx
@@ -12,12 +12,12 @@
import SubMenu from './SubMenu';
import SettingsIcon from '@mui/icons-material/Settings';
import DashboardIcon from '@mui/icons-material/Dashboard';
-import DehazeIcon from '@mui/icons-material/Dehaze';
+import HorizontalRuleIcon from '@mui/icons-material/HorizontalRule';
import PersonIcon from '@mui/icons-material/Person';
import * as Icons from '@mui/icons-material';
const getIconComponent = (iconStr) => {
- return Icons[iconStr] || DehazeIcon;
+ return Icons[iconStr] || HorizontalRuleIcon;
};
export const MyMenu = ({ dense = false }) => {
@@ -28,12 +28,24 @@
const { isPending, permissions } = usePermissions();
useEffect(() => {
+ // default open sub menu
+ const defaultExpandMenu = ["menu.warehouse", "menu.dispatcher", "menu.equipment"];
+ permissions?.forEach(item => {
+ if (defaultExpandMenu.includes(item.name)) {
+ setState(state => ({ ...state, [item.route]: true }));
+ }
+ });
+ }, [permissions]);
+
+ useEffect(() => {
+ // expand this parent menu
const currentPath = location.pathname;
const parentRoutes = findParentRoutes(currentPath, permissions)
for (const parentRoute of parentRoutes) {
setState(state => ({ ...state, [parentRoute]: true }));
}
- }, [location.pathname, permissions]);
+
+ }, [location.pathname]);
const handleToggle = (menu) => {
setState(state => ({ ...state, [menu]: !state[menu] }));
@@ -41,7 +53,9 @@
const getIcon = (iconStr) => {
const IconComponent = getIconComponent(iconStr);
- return <IconComponent />;
+ if (IconComponent) {
+ return <IconComponent />;
+ }
};
const generateMenu = (permissions) => {
@@ -60,19 +74,21 @@
</SubMenu>
);
} else {
- return (
- <MenuItemLink
- key={node.id}
- to={node.component} // correspond to Resource.name
- state={{ _scrollToTop: true }}
- // primaryText={translate(`resources.orders.name`, {
- // smart_count: 2,
- // })}
- primaryText={node.name}
- leftIcon={getIcon(node.icon)}
- dense={dense}
- />
- );
+ if (node.component) {
+ return (
+ <MenuItemLink
+ key={node.id}
+ to={node.component} // correspond to Resource.name
+ state={{ _scrollToTop: true }}
+ // primaryText={translate(`resources.orders.name`, {
+ // smart_count: 2,
+ // })}
+ primaryText={node.name}
+ leftIcon={getIcon(node.icon)}
+ dense={dense}
+ />
+ );
+ }
}
});
};
--
Gitblit v1.9.1