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:
Vicky committed 2026-10-15 14:47:09 +08:00
1 parent b0fea1d237
commit a635de7111
6 files changed
+70 -4

No files matched your search

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