feat: 补全管理台功能 - 总览指标、搜索筛选、编辑模式、删除确认、全局日志查询

This commit is contained in:
2026-03-20 12:42:25 +08:00
parent 181cf09ad2
commit 0473a68dc2
19 changed files with 962 additions and 143 deletions

View File

@@ -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** 返回全局日志列表或筛选后的日志列表