菜单权限

This commit is contained in:
liamzi
2025-01-14 18:52:03 +08:00
parent 2edb91cbea
commit 34550d0517
10 changed files with 790 additions and 409 deletions

View File

@@ -1,8 +1,8 @@
import React, { useMemo } from "react";
import React, { useMemo,useEffect } from "react";
import { Layout, Menu } from "antd";
import { useNavigate, useLocation } from "react-router-dom";
import { useTheme } from "@/contexts/ThemeContext";
import { getMenuItems } from "@/utils/menuUtils";
import { getMenuItems } from "@/utils/menuUtils";
import { Logo } from "@/components/Layout/Logo";
import { useAuth } from "@/contexts/AuthContext";
@@ -14,12 +14,13 @@ const Sidebar = ({ collapsed }) => {
const { isDarkMode } = useTheme();
const { user } = useAuth();
const menuItems = useMemo(() => {
if (!user?.id) return [];
const { adminRole: role } = user;
return getMenuItems(role);
const menuClient = useMemo(() => {
if (!user?.id||user.menukeys?.length===0) return [];
return getMenuItems(user?.menukeys || []);
}, [user]);
useEffect(()=>{
console.log(menuClient,'menuClient');
},[menuClient])
const defaultOpenKeys = useMemo(() => {
const pathSegments = location.pathname.split("/").filter(Boolean);
return pathSegments.reduce((acc, _, index) => {
@@ -29,7 +30,6 @@ const Sidebar = ({ collapsed }) => {
}, []);
}, [location.pathname]);
// Handle menu item click
const handleMenuClick = ({ key }) => {
navigate(key);
};
@@ -41,8 +41,8 @@ const Sidebar = ({ collapsed }) => {
collapsed={collapsed}
theme={isDarkMode ? "dark" : "light"}
width={256}
collapsedWidth={80} // 添加这个属性
className={`app-sidebar ${collapsed ? "collapsed" : ""}`} // 添加collapsed类名
collapsedWidth={80}
className={`app-sidebar ${collapsed ? "collapsed" : ""}`}
>
<Logo collapsed={collapsed} isDarkMode={isDarkMode} />
<Menu
@@ -50,7 +50,7 @@ const Sidebar = ({ collapsed }) => {
mode="inline"
selectedKeys={[location.pathname]}
defaultOpenKeys={defaultOpenKeys}
items={menuItems}
items={menuClient}
onClick={handleMenuClick}
/>
</Sider>