feat: Sider 子菜单上收页内 Tab(管理控制台/模板配置台,issue #131)

- MODULES 注册表支持 children:管理控制台(模型管理/知识库管理/告警确认/
  审计查询)、模板配置台(点位导入/模型超参/驾驶舱编排/版本发布)
- Sider 渲染 AntD Menu.SubMenu 风格可展开子菜单,当前页自动展开、
  子项按 URL hash 高亮(如 admin/#models)
- 页内 #tabs 自动隐藏,改由子菜单经 hash 驱动切换;页内 Tab 点击回写
  hash,URL 可分享直达子页;各页面业务逻辑零改动
This commit is contained in:
2026-08-05 14:40:15 +08:00
parent 3a1cccc0c6
commit 2f6b329745
3 changed files with 165 additions and 27 deletions
+42 -1
View File
@@ -143,7 +143,48 @@ body {
color: #fff;
}
.pro-menu-icon { font-size: 16px; flex-shrink: 0; width: 20px; text-align: center; }
.pro-menu-text { overflow: hidden; text-overflow: ellipsis; }
.pro-menu-text { overflow: hidden; text-overflow: ellipsis; flex: 1; }
/* ---- SubMenu(模块子菜单,AntD Menu.SubMenu 风格) ----------------------- */
.pro-submenu-arrow {
font-size: 12px;
color: rgba(255, 255, 255, 0.45);
transition: transform 0.2s;
padding: 4px;
flex-shrink: 0;
}
.pro-submenu.open .pro-submenu-arrow { transform: rotate(90deg); }
.pro-submenu-items {
display: none;
background: #000c17; /* AntD 深色菜单子层底色 */
border-radius: var(--ant-radius);
margin: 0 8px 4px;
padding: 4px 0;
}
.pro-submenu.open .pro-submenu-items { display: block; }
.pro-subitem {
display: block;
height: 34px;
line-height: 34px;
padding: 0 12px 0 42px; /* 对齐父级文字(icon 20 + gap 10 + padding 12) */
margin: 2px 4px;
border-radius: 4px;
color: rgba(255, 255, 255, 0.65);
text-decoration: none;
font-size: 13px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
transition: background 0.2s, color 0.2s;
}
.pro-subitem:hover { color: #fff; }
.pro-subitem.active {
background: var(--ant-primary);
color: #fff;
}
/* 父项在自身页面但未选子项时:不高亮整行,仅文字变白提示(AntD 语义) */
.pro-submenu-title.active { background: none; color: #fff; }
.pro-tabs-hidden { display: none !important; }
.pro-sider-trigger {
flex-shrink: 0;
height: 40px;