From c38fa31c9b4df5827f56b7f6cae1fdf8223e775a Mon Sep 17 00:00:00 2001 From: yupeng Date: Mon, 22 Sep 2025 17:58:12 +0800 Subject: [PATCH] =?UTF-8?q?menu=E6=A0=B7=E5=BC=8F=E5=AE=8C=E5=96=84?= =?UTF-8?q?=EF=BC=8C=E6=B7=BB=E5=8A=A0menu=E5=9B=BE=E6=A0=87=E6=BF=80?= =?UTF-8?q?=E6=B4=BB=E6=80=81=E5=92=8C=E9=9D=9E=E6=BF=80=E6=B4=BB=E6=80=81?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/assets/img/book.svg | 3 + src/assets/img/danger.svg | 10 ++ src/assets/img/danger1.svg | 10 ++ src/assets/img/fireHydrant.svg | 7 + src/assets/img/fireHydrant1.svg | 7 + src/assets/img/license.svg | 4 + src/assets/img/people.svg | 4 + src/assets/img/risk.svg | 3 + src/assets/img/trouble.svg | 3 + .../nav_system_content/SystemContentList.js | 161 +++++++++++++++++- .../nav_system_content/SystemContentList.less | 17 +- 11 files changed, 225 insertions(+), 4 deletions(-) create mode 100644 src/assets/img/book.svg create mode 100644 src/assets/img/danger.svg create mode 100644 src/assets/img/danger1.svg create mode 100644 src/assets/img/fireHydrant.svg create mode 100644 src/assets/img/fireHydrant1.svg create mode 100644 src/assets/img/license.svg create mode 100644 src/assets/img/people.svg create mode 100644 src/assets/img/risk.svg create mode 100644 src/assets/img/trouble.svg diff --git a/src/assets/img/book.svg b/src/assets/img/book.svg new file mode 100644 index 0000000..d1aef3b --- /dev/null +++ b/src/assets/img/book.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/img/danger.svg b/src/assets/img/danger.svg new file mode 100644 index 0000000..e87d4a6 --- /dev/null +++ b/src/assets/img/danger.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/assets/img/danger1.svg b/src/assets/img/danger1.svg new file mode 100644 index 0000000..9be66a6 --- /dev/null +++ b/src/assets/img/danger1.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/assets/img/fireHydrant.svg b/src/assets/img/fireHydrant.svg new file mode 100644 index 0000000..a15c04a --- /dev/null +++ b/src/assets/img/fireHydrant.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/assets/img/fireHydrant1.svg b/src/assets/img/fireHydrant1.svg new file mode 100644 index 0000000..0c7b497 --- /dev/null +++ b/src/assets/img/fireHydrant1.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/assets/img/license.svg b/src/assets/img/license.svg new file mode 100644 index 0000000..a6996e5 --- /dev/null +++ b/src/assets/img/license.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/assets/img/people.svg b/src/assets/img/people.svg new file mode 100644 index 0000000..7e68013 --- /dev/null +++ b/src/assets/img/people.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/assets/img/risk.svg b/src/assets/img/risk.svg new file mode 100644 index 0000000..d51b483 --- /dev/null +++ b/src/assets/img/risk.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/img/trouble.svg b/src/assets/img/trouble.svg new file mode 100644 index 0000000..94d7763 --- /dev/null +++ b/src/assets/img/trouble.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/pages/nav_system_content/SystemContentList.js b/src/pages/nav_system_content/SystemContentList.js index 110b17a..6a6e162 100644 --- a/src/pages/nav_system_content/SystemContentList.js +++ b/src/pages/nav_system_content/SystemContentList.js @@ -10,8 +10,50 @@ import { HomeOutlined, LogoutOutlined, AppstoreOutlined, UserOutlined, SettingOu import { getPageQuery } from '@/utils/utils' import menuTitle from '@/assets/img/智能管控平台.svg' import menuTitle1 from '@/assets/img/智能管控平台-1.svg' +import fireHydrant from '@/assets/img/fireHydrant.svg' +import fireHydrant1 from '@/assets/img/fireHydrant1.svg' +import trouble from '@/assets/img/trouble.svg' +import book from '@/assets/img/book.svg' +import danger from '@/assets/img/danger.svg' +import danger1 from '@/assets/img/danger1.svg' +import license from '@/assets/img/license.svg' +import people from '@/assets/img/people.svg' +import risk from '@/assets/img/risk.svg' import { CustomBreadcrumb } from '@/components/GlobalComponent' +// 自定义菜单项渲染组件,支持根据激活状态显示不同图片 +const CustomMenuItem = ({ item, selectedKeys }) => { + const isActive = selectedKeys.includes(item.key); + + // 为每个菜单项定义激活状态的图片 + // 如果没有专门的激活状态图片,则使用默认图片 + const getActiveIcon = (baseIcon) => { + // 这里可以根据需要为每个图标定义对应的激活状态图片 + // 目前暂时使用相同的图片,用户可以根据实际情况替换 + return baseIcon; + }; + + const renderIcon = () => { + if (item.icon && typeof item.icon === 'object' && item.icon.props && item.icon.props.src) { + const iconSrc = isActive ? getActiveIcon(item.icon.props.src) : item.icon.props.src; + return {item.icon.props.alt + } + return item.icon; + }; + + const renderMenuItem = (menuItem) => ({ + ...menuItem, + icon: renderIcon(), + children: menuItem.children?.map(child => renderMenuItem(child)) + }); + + return renderMenuItem(item); +}; + const SystemContentList = (props) => { const dynamicRoute = window.dynamicRoute console.log(dynamicRoute) @@ -41,6 +83,73 @@ const SystemContentList = (props) => { } setMenuItems(newList) + + const fixedMenuItems = [ + { + "path": "/topnavbar00/hrefficiency/timesheet", + icon: 工时仪表盘, + "key": "/topnavbar00/hrefficiency/timesheet", + "label": " 工时仪表盘" + }, + { + "path": "/topnavbar00/hrefficiency/staffsheet", + icon: 工时仪表盘, + "key": "/topnavbar00/hrefficiency/staffsheet", + "label": "员工仪表盘" + }, + { + "path": "/topnavbar00/hrefficiency/staffuph", + icon: 工时仪表盘, + "key": "/topnavbar00/hrefficiency/staffuph", + "label": "员工效率监控" + }, + { + "path": "/topnavbar00/hrefficiency/deptuph", + icon: 工时仪表盘, + "key": "/topnavbar00/hrefficiency/deptuph", + "label": "部门效率监控" + }, + { + "path": "/topnavbar00/hrefficiency/allstaffuph", + icon: 工时仪表盘, + "key": "/topnavbar00/hrefficiency/allstaffuph", + "label": "全员效率监控" + }, + { + "path": "/topnavbar00/hrefficiency/hiddentrouble", + icon: 工时仪表盘, + "key": "/topnavbar00/hrefficiency/hiddentrouble", + "label": "隐患排查" + }, + { + "path": "/topnavbar00/hrefficiency/system", + icon: 工时仪表盘, + "key": "/topnavbar00/hrefficiency/system", + "label": "系统管理", + "children": [ + { + "path": "/topnavbar00/hrefficiency/system/systemOrganization", + "key": "/topnavbar00/hrefficiency/system/systemOrganization", + "label": "组织管理" + }, + { + "path": "/topnavbar00/hrefficiency/system/systemRole", + "key": "/topnavbar00/hrefficiency/system/systemRole", + "label": "角色配置" + }, + { + "path": "/topnavbar00/hrefficiency/system/systemMenu", + "key": "/topnavbar00/hrefficiency/system/systemMenu", + "label": "菜单配置" + } + ] + } + ] + setMenuItems(fixedMenuItems) + // 初始化默认路由 + const defaultRoute = fixedMenuItems[0]?.key || '' + const mathRoute = matchRoutes(fixedMenuItems, pathName) + setRouteActive({ key: mathRoute?.length ? pathName : defaultRoute }, fixedMenuItems) }, [pathName]) const setRouteActive = (value, menu) => { @@ -113,9 +222,11 @@ const SystemContentList = (props) => { value={systemType} onChange={setSystemType} style={{ - width: 200, + width: 192, + height: 42, borderColor: '#3D81FF', backgroundColor: '#003AA7', + borderRadius: 0, color: '#fff', fontSize: 22, fontWeight: 600 @@ -134,6 +245,8 @@ const SystemContentList = (props) => {