fix(aiot): 前端过滤 visible=false 的菜单项

在 fetchUserInfo 中对后端返回的菜单做递归过滤,
移除 visible=false 的菜单项,确保隐藏菜单不会显示。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-09 11:29:01 +08:00
parent f78eaa2ae1
commit 649d9e2a76

View File

@@ -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;
}