Compare commits

...

2 Commits

Author SHA1 Message Date
Stev_Wang
c962fac20e chore: 📌 细微调整 2026-01-04 11:18:00 +08:00
Stev_Wang
b2ca0d86f2 chore: 📌 细节调整 2026-01-03 21:07:04 +08:00
2 changed files with 19 additions and 5 deletions

View File

@@ -28,8 +28,13 @@ const AdminLayout = () => {
const { message } = App.useApp();
const { themeMode, toggleTheme } = useThemeStore();
// 跟踪用户是否手动修改过 openKeys
const [userInteracted, setUserInteracted] = useState(false);
// 用户手动设置的 openKeys
const [userOpenKeys, setUserOpenKeys] = useState<string[]>([]);
// 根据当前路径计算应该展开的菜单
const openKeys = useMemo(() => {
const defaultOpenKeys = useMemo(() => {
const path = location.pathname;
if (path.startsWith('/admin/users')) {
return ['user'];
@@ -37,6 +42,17 @@ const AdminLayout = () => {
return [];
}, [location.pathname]);
// 最终使用的 openKeys如果用户手动修改过使用用户的设置否则使用默认值
const openKeys = useMemo(() => {
return userInteracted ? userOpenKeys : defaultOpenKeys;
}, [userInteracted, userOpenKeys, defaultOpenKeys]);
// 处理菜单展开/收起
const handleOpenChange = (keys: string[]) => {
setUserInteracted(true);
setUserOpenKeys(keys);
};
const handleLogout = async () => {
try {
await adminAuthService.logout();
@@ -97,6 +113,7 @@ const AdminLayout = () => {
mode="inline"
selectedKeys={[location.pathname]}
openKeys={openKeys}
onOpenChange={handleOpenChange}
items={menuItems}
onClick={({ key }) => navigate(key)}
/>

View File

@@ -35,9 +35,6 @@ export const lightTheme: ThemeConfig = {
itemColor: 'rgba(0, 0, 0, 0.65)', // 菜单项文字颜色(亮色)
itemSelectedColor: '#1890ff', // 菜单激活文字颜色(亮色)
itemHoverColor: '#1890ff', // 菜单悬停文字颜色(亮色)
itemSelectedStyle: {
boxShadow: 'none', // 去除菜单激活项的阴影
},
},
},
};
@@ -85,4 +82,4 @@ export const getThemeByMode = (mode: ThemeMode): ThemeConfig => {
};
// 默认主题配置(向后兼容)
export const appTheme: ThemeConfig = darkTheme;
export const appTheme: ThemeConfig = lightTheme;