feat: 07 创作者中心批 5(前端页面所需的菜单、隐藏路由与详情字段)
为什么:创作者中心的四个页面要挂到后台菜单里,但「作品编辑」是详情页(/creator-center/dramas/:id), 不能出现在侧边栏。当前菜单体系只下发 visible=1 的行、且 meta 里没有 hidden 字段,直接加会导致 "要么侧边栏多出一条无意义菜单,要么详情页路由根本不存在(点编辑就 404)"。所以先把这套补上: - MenuVO.Meta 增加 hidden;MenuService 把 visible=0 翻译成 meta.hidden, 并让路由下发不再过滤 visible(隐藏项仍要注册路由,侧边栏由前端按 meta.hidden 过滤) - sql/data-phase1.sql 补创作者中心菜单 26-30(目录 + 我的作品 + 隐藏的作品编辑 + 收费配置 + 数据看板), 创作者角色与超管各授权这 5 条;创作者角色**没有任何运营后台菜单** - CreatorCenterDramaVO 补 subtitle/genre/description/trailerUrl/language:编辑页要回填这些字段, 之前详情接口只给列表用的那几个字段 - docs/api-phase1.md:07 行改「已实现」,2.10 补四个页面清单与菜单隔离说明
This commit is contained in:
1 parent
b0fea1d237
commit
a635de7111
6 files changed
+70
-4
No files matched your search
+5
-2
@@ -74,9 +74,10 @@ public class MenuService {
|
||||
}
|
||||
|
||||
private List<Menu> listEnabled() {
|
||||
// 只按 status 过滤:visible=0 的菜单(例如"作品编辑"这类详情页)也要下发给前端注册路由,
|
||||
// 否则详情页点进去会 404。侧边栏由前端按 meta.hidden 过滤,不会把隐藏项露出来。
|
||||
return menuMapper.selectList(Wrappers.<Menu>lambdaQuery()
|
||||
.eq(Menu::getStatus, 1)
|
||||
.eq(Menu::getVisible, 1)
|
||||
.orderByAsc(Menu::getSort));
|
||||
}
|
||||
|
||||
@@ -122,7 +123,9 @@ public class MenuService {
|
||||
menu.getTitle(),
|
||||
menu.getIcon().isEmpty() ? null : menu.getIcon(),
|
||||
menu.getAlwaysShow() != null && menu.getAlwaysShow() == 1 ? Boolean.TRUE : null,
|
||||
menu.getAffix() != null && menu.getAffix() == 1 ? Boolean.TRUE : null));
|
||||
menu.getAffix() != null && menu.getAffix() == 1 ? Boolean.TRUE : null,
|
||||
// 详情页这类路由要注册但不能出现在侧边栏:visible=0 → meta.hidden
|
||||
menu.getVisible() != null && menu.getVisible() == 0 ? Boolean.TRUE : null));
|
||||
nodes.put(menu.getId(), vo);
|
||||
}
|
||||
List<MenuVO> roots = new ArrayList<>();
|
||||
|
||||
@@ -36,5 +36,7 @@ public class MenuVO {
|
||||
private String icon;
|
||||
private Boolean alwaysShow;
|
||||
private Boolean affix;
|
||||
/** visible=0 的菜单:路由要注册(详情页靠它),但不进侧边栏 */
|
||||
private Boolean hidden;
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user