fix(system): 修复转码设置菜单误下发导致前端白屏

This commit is contained in:
Zhou Weidong committed 2026-11-09 10:32:46 +08:00
1 parent 3df66c2f4c
commit a36276051d
3 files changed
+28 -9

No files matched your search

@@ -137,15 +137,22 @@ public class MenuService {
List<MenuVO> roots = new ArrayList<>();
for (Menu menu : menus) {
MenuVO node = nodes.get(menu.getId());
MenuVO parent = menu.getParentId() == null ? null : nodes.get(menu.getParentId());
if (parent == null) {
long parentId = menu.getParentId() == null ? 0L : menu.getParentId();
if (parentId == 0L) {
roots.add(node);
} else {
if (parent.getChildren() == null) {
parent.setChildren(new ArrayList<>());
}
parent.getChildren().add(node);
continue;
}
MenuVO parent = nodes.get(parentId);
if (parent == null) {
// 父级被权限/状态过滤掉时,不能把子菜单提升为一级路由:
// 子菜单的 routePath 是相对路径(如 transcode-settings),
// 提升后缺少前导 "/",前端注册动态路由会报错并白屏。
continue;
}
if (parent.getChildren() == null) {
parent.setChildren(new ArrayList<>());
}
parent.getChildren().add(node);
}
return roots;
}