fix(aiot): 前端过滤 visible=false 的菜单项
在 fetchUserInfo 中对后端返回的菜单做递归过滤, 移除 visible=false 的菜单项,确保隐藏菜单不会显示。 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -138,7 +138,18 @@ export const useAuthStore = defineStore('auth', () => {
|
||||
userStore.setUserInfo(authPermissionInfo.user);
|
||||
userStore.setUserRoles(authPermissionInfo.roles);
|
||||
// accessStore
|
||||
accessStore.setAccessMenus(authPermissionInfo.menus);
|
||||
// 过滤掉 visible=false 的菜单项(含子菜单递归过滤)
|
||||
const filterVisibleMenus = (menus: any[]): any[] => {
|
||||
return menus
|
||||
.filter((menu) => menu.visible !== false)
|
||||
.map((menu) => ({
|
||||
...menu,
|
||||
children: menu.children
|
||||
? filterVisibleMenus(menu.children)
|
||||
: undefined,
|
||||
}));
|
||||
};
|
||||
accessStore.setAccessMenus(filterVisibleMenus(authPermissionInfo.menus));
|
||||
accessStore.setAccessCodes(authPermissionInfo.permissions);
|
||||
return authPermissionInfo;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user