refactor: 项目管理菜单改造为下拉导航组

- 新增 SidebarNavGroup 组件支持可展开导航组
- 路由从 /console/projects 调整为 /console/project/*
- 成员管理页面独立为子菜单
- 新增权限配置、技能配置占位页面
- URL 驱动展开状态,刷新保持
- 更新 README.md 和 specs
This commit is contained in:
2026-03-30 14:11:31 +08:00
parent ea81a714bb
commit 4f2faa3e8d
12 changed files with 278 additions and 19 deletions

View File

@@ -182,3 +182,33 @@
#### Scenario: 页面样式文件内容结构
- **WHEN** 查看页面样式文件
- **THEN** 该文件包含页面特定的布局、组件、状态等样式,使用清晰的注释分节
### Requirement: 可展开导航组组件
系统 SHALL 提供可展开的导航组组件 `SidebarNavGroup`,用于组织多个相关导航项。
#### Scenario: 导航组基本结构
- **WHEN** 开发者需要创建可展开的导航组
- **THEN** 系统 SHALL 提供 `SidebarNavGroup` 组件
- **AND** 组件接受 `icon``label``children` 属性
- **AND** 组件内部使用 `SidebarNavItem` 渲染子菜单项
#### Scenario: 导航组头部交互
- **WHEN** 用户点击导航组头部
- **THEN** 系统切换展开/收起状态
- **AND** 头部显示展开/收起箭头图标
#### Scenario: 导航组样式
- **WHEN** 导航组渲染时
- **THEN** 系统 SHALL 提供以下 BEM 类名:
- `.nav-group` 容器类
- `.nav-group__header` 头部类
- `.nav-group__icon` 图标类
- `.nav-group__label` 标签类
- `.nav-group__arrow` 箭头类
- `.nav-group__children` 子菜单容器类
- `.nav-group--expanded` 展开状态修饰符
#### Scenario: 子菜单项缩进
- **WHEN** 导航组展开显示子菜单
- **THEN** 子菜单项相对于父级有左侧缩进
- **AND** 子菜单项使用 `SidebarNavItem` 组件渲染

View File

@@ -0,0 +1,53 @@
# Capability: 项目管理导航
## Purpose
项目管理导航提供工作台侧边栏中项目管理功能的下拉导航组,包含成员管理、权限配置、技能配置等子菜单入口,支持 URL 驱动的展开状态。
## Requirements
### Requirement: 项目管理下拉导航组
系统 SHALL 提供可展开的项目管理导航组,包含成员管理、权限配置、技能配置三个子菜单入口。
#### Scenario: 默认收起状态
- **WHEN** 用户访问非项目管理相关页面(如聊天、技能市场)
- **THEN** 项目管理导航组显示为收起状态
- **AND** 仅显示项目管理的图标和标签
#### Scenario: URL 驱动自动展开
- **WHEN** 用户访问 `/console/project/members``/console/project/permissions``/console/project/skills` 及其子路径
- **THEN** 项目管理导航组自动展开
- **AND** 显示三个子菜单项:成员管理、权限配置、技能配置
- **AND** 当前访问的子菜单项高亮
#### Scenario: 点击头部展开收起
- **WHEN** 用户点击项目管理导航组的头部区域
- **THEN** 切换展开/收起状态
#### Scenario: 子菜单项导航
- **WHEN** 用户点击"成员管理"子菜单项
- **THEN** 导航至 `/console/project/members`
- **WHEN** 用户点击"权限配置"子菜单项
- **THEN** 导航至 `/console/project/permissions`
- **WHEN** 用户点击"技能配置"子菜单项
- **THEN** 导航至 `/console/project/skills`
#### Scenario: 页面刷新保持展开状态
- **WHEN** 用户在项目管理子页面刷新浏览器
- **THEN** 项目管理导航组保持展开状态
- **AND** 当前子菜单项保持高亮
### Requirement: 项目管理子菜单高亮
系统 SHALL 在导航组中高亮当前访问的子菜单项。
#### Scenario: 成员管理高亮
- **WHEN** 用户访问 `/console/project/members` 或其子路径(如 `/console/project/members/add`
- **THEN** "成员管理"子菜单项显示激活状态
#### Scenario: 权限配置高亮
- **WHEN** 用户访问 `/console/project/permissions`
- **THEN** "权限配置"子菜单项显示激活状态
#### Scenario: 技能配置高亮
- **WHEN** 用户访问 `/console/project/skills`
- **THEN** "技能配置"子菜单项显示激活状态