refactor: 项目管理菜单改造为下拉导航组
- 新增 SidebarNavGroup 组件支持可展开导航组 - 路由从 /console/projects 调整为 /console/project/* - 成员管理页面独立为子菜单 - 新增权限配置、技能配置占位页面 - URL 驱动展开状态,刷新保持 - 更新 README.md 和 specs
This commit is contained in:
@@ -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` 组件渲染
|
||||
|
||||
53
openspec/specs/project-management-nav/spec.md
Normal file
53
openspec/specs/project-management-nav/spec.md
Normal 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** "技能配置"子菜单项显示激活状态
|
||||
Reference in New Issue
Block a user