feat: 补全管理台功能 - 总览指标、搜索筛选、编辑模式、删除确认、全局日志查询
This commit is contained in:
@@ -7,15 +7,16 @@
|
||||
## Requirements
|
||||
|
||||
### Requirement: 统一数据访问接口
|
||||
系统 SHALL 提供 api 服务对象,包含按功能模块划分的数据访问方法,作为所有数据访问的统一入口。
|
||||
数据访问层 SHALL 提供按功能模块划分的数据访问方法,所有数据获取通过 API 层进行。所有数据获取通过 API 层进行,便于未来对接后端服务。API 层为纯函数,返回静态数据或对静态数据的引用,不涉及网络请求。
|
||||
|
||||
#### Scenario: api.user 模块提供用户信息访问
|
||||
- **WHEN** 调用 api.user.getInfo()
|
||||
- **THEN** 系统返回用户信息对象(包含 name、avatar、role 等字段)
|
||||
|
||||
#### Scenario: api.skills 模块提供技能数据访问
|
||||
- **WHEN** 调用 api.skills.list()
|
||||
- **THEN** 系统返回所有技能列表数组
|
||||
#### Scenario: 技能数据访问
|
||||
- **WHEN** 调用 `api.skills.list()`
|
||||
- **THEN** 返回技能列表数据
|
||||
- **AND** 返回类型为数组,每个元素包含技能基本信息(id, name, description, category, author, icon, usageCount, rating, subscribed)
|
||||
|
||||
#### Scenario: api.skills 支持按 ID 查询单个技能
|
||||
- **WHEN** 调用 api.skills.getById(skillId)
|
||||
@@ -29,9 +30,17 @@
|
||||
- **WHEN** 调用 api.conversations.getScene(sceneName)
|
||||
- **THEN** 系统返回对应场景的 HTML 内容字符串
|
||||
|
||||
#### Scenario: api.logs 模块支持筛选查询
|
||||
- **WHEN** 调用 api.logs.list(filters)
|
||||
- **THEN** 系统根据 filters 参数(用户、类型、状态)筛选并返回日志列表
|
||||
#### Scenario: 日志数据访问
|
||||
- **WHEN** 调用 `api.logs.list()` 或 `api.logs.filter({ user, type, status })`
|
||||
- **THEN** 返回日志列表或筛选后的日志列表
|
||||
|
||||
#### Scenario: 定时任务数据访问
|
||||
- **WHEN** 调用 `api.tasks.list()` 或 `api.tasks.getById(id)`
|
||||
- **THEN** 返回任务列表或单个任务详情
|
||||
|
||||
#### Scenario: 项目成员数据访问
|
||||
- **WHEN** 调用 `api.members.list()` 或 `api.members.getById(id)`
|
||||
- **THEN** 返回成员列表或单个成员信息
|
||||
|
||||
### Requirement: 数据层与静态文件分离
|
||||
系统 SHALL 将数据访问逻辑与静态数据文件分离,便于后续对接真实 API。
|
||||
@@ -47,3 +56,26 @@
|
||||
#### Scenario: API 层提供一致的返回格式
|
||||
- **WHEN** 调用 API 层方法
|
||||
- **THEN** 系统返回符合约定格式的数据(如对象、数组),无论底层存储格式如何
|
||||
|
||||
### Requirement: 管理台数据 API
|
||||
数据访问层 SHALL 提供管理台相关的数据访问方法,覆盖总览、部门、用户、项目、全局日志。
|
||||
|
||||
#### Scenario: 总览数据访问
|
||||
- **WHEN** 调用 `api.admin.getOverview()`
|
||||
- **THEN** 返回总览数据对象,包含用户总数、部门数量、项目数量、今日调用次数、异常事项列表、最近操作日志
|
||||
|
||||
#### Scenario: 部门数据访问
|
||||
- **WHEN** 调用 `api.admin.departments.list()` 或 `api.admin.departments.getById(id)`
|
||||
- **THEN** 返回部门列表或单个部门信息
|
||||
|
||||
#### Scenario: 用户数据访问
|
||||
- **WHEN** 调用 `api.admin.users.list()` 或 `api.admin.users.getById(id)`
|
||||
- **THEN** 返回用户列表或单个用户信息
|
||||
|
||||
#### Scenario: 项目数据访问
|
||||
- **WHEN** 调用 `api.admin.projects.list()` 或 `api.admin.projects.getById(id)`
|
||||
- **THEN** 返回项目列表或单个项目信息
|
||||
|
||||
#### Scenario: 全局日志数据访问
|
||||
- **WHEN** 调用 `api.admin.logs.list()` 或 `api.admin.logs.filter(filters)`
|
||||
- **THEN** 返回全局日志列表或筛选后的日志列表
|
||||
|
||||
Reference in New Issue
Block a user