forked from hangshuo652/aurak
docs: 人才测评系统画面地图 — 7个画面/4个路由/10个测试脚本
画面清单: 1. 考核评估 /assessment — 答题/结果/证书/历史 2. 评估统计 /assessment-stats — 统计/雷达/趋势 3. 题库管理 /question-banks — 列表/详情/CRUD/AI生成/审核 4. 设置-测评模板 /settings — 模板/维度/P2配置 涵盖: 前端组件/后端API/路由/服务/测试脚本映射 发现: AssessmentStatsView + AssessmentTemplateManager 两个画面无测试覆盖 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,199 @@
|
||||
# 人才测评系统 — 画面地图
|
||||
|
||||
> 版本: 2026-06-17
|
||||
> 覆盖: 所有测评相关画面、功能模块、API 端点、测试脚本
|
||||
|
||||
---
|
||||
|
||||
## 一、画面全景
|
||||
|
||||
```
|
||||
┌────────────────────────────────────────────────────────────────┐
|
||||
│ AuraK 人才测评系统画面 │
|
||||
├────────────────────────────────────────────────────────────────┤
|
||||
│ │
|
||||
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────────────┐ │
|
||||
│ │ 考核评估 │ │ 评估统计 │ │ 题库管理 │ │
|
||||
│ │ /assessment │ │ /stats │ │ /question-banks │ │
|
||||
│ ├──────────────┤ ├──────────────┤ ├──────────────────────┤ │
|
||||
│ │ 答题交互画面 │ │ 统计面板 │ │ 题库列表 │ │
|
||||
│ │ · MC选择 │ │ 雷达图展示 │ │ 题库详情/题目管理 │ │
|
||||
│ │ · 简答输入 │ │ 趋势图表 │ │ 题目CRUD弹窗 │ │
|
||||
│ │ · 追问流程 │ │ 筛选区 │ │ AI生成弹窗 │ │
|
||||
│ │ · 结果展示 │ │ │ │ 审核流程 │ │
|
||||
│ │ · 证书弹窗 │ │ │ │ 创建题库抽屉 │ │
|
||||
│ └──────────────┘ └──────────────┘ └──────────────────────┘ │
|
||||
│ │
|
||||
│ ┌────────────────────────────────────────────────────────┐ │
|
||||
│ │ 系统设置 → 测评模板 │ │
|
||||
│ │ /settings → Tab: assessment_templates │ │
|
||||
│ ├────────────────────────────────────────────────────────┤ │
|
||||
│ │ 模板创建/编辑弹窗 │ │
|
||||
│ │ 维度配置(添加/删除/权重) │ │
|
||||
│ │ 基本设置(题数/时间/及格分/P2字段) │ │
|
||||
│ └────────────────────────────────────────────────────────┘ │
|
||||
│ │
|
||||
└────────────────────────────────────────────────────────────────┘
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 二、画面清单
|
||||
|
||||
### 2.1 考核评估 `/assessment`
|
||||
|
||||
| 画面 | 文件名 | 功能 |
|
||||
|:----|--------|------|
|
||||
| **考核首页** | `AssessmentView.tsx` | 选择模板 → 开始评估 |
|
||||
| **答题交互** | `AssessmentView.tsx` (renderAssessment) | 选择题(选项按钮+确认)、简答题(textarea+发送)、追问流程 |
|
||||
| **进度导航** | `AssessmentView.tsx` | 题序圆点(当前蓝/标记黄/其他灰) + 🏷️标记回头按钮 |
|
||||
| **提交确认** | `AssessmentView.tsx` (submitConfirm modal) | 未答完时弹窗确认 |
|
||||
| **结果展示** | `AssessmentView.tsx` (renderCompletion) | 等级、分数、每题详情、报告 |
|
||||
| **证书弹窗** | `AssessmentView.tsx` (cert modal) | 等级、总分、维度得分、题目列表 |
|
||||
| **历史侧栏** | `AssessmentView.tsx` (右栏) | 考评历史列表 |
|
||||
| **答题回顾** | `AssessmentView.tsx` (review button) | reviewMode开启时查看答案+解析 |
|
||||
|
||||
**组件文件**: `web/components/views/AssessmentView.tsx`
|
||||
**页面入口**: `web/src/pages/workspace/AssessmentPage.tsx`
|
||||
**路由**: `Route path="assessment"`
|
||||
**服务**: `web/services/assessmentService.ts`
|
||||
|
||||
### 2.2 评估统计 `/assessment-stats`
|
||||
|
||||
| 画面 | 文件名 | 功能 |
|
||||
|:----|--------|------|
|
||||
| **统计面板** | `AssessmentStatsView.tsx` | 通过率、平均分、最高/最低分 |
|
||||
| **雷达图** | `AssessmentStatsView.tsx` | 各维度平均分 |
|
||||
| **趋势图** | `AssessmentStatsView.tsx` | 分数趋势 |
|
||||
| **筛选区** | `AssessmentStatsView.tsx` | 时间/模板/组织筛选 |
|
||||
|
||||
**组件文件**: `web/components/views/AssessmentStatsView.tsx`
|
||||
**路由**: `Route path="assessment-stats"`
|
||||
|
||||
### 2.3 题库管理 `/question-banks`
|
||||
|
||||
| 画面 | 文件名 | 功能 |
|
||||
|:----|--------|------|
|
||||
| **题库列表** | `QuestionBankView.tsx` | 题库卡片列表/搜索/筛选Tab(全部/已发布/草稿/待审核) |
|
||||
| **创建题库抽屉** | `QuestionBankView.tsx` (drawer) | 名称/描述/模板选择 → 创建提交 |
|
||||
| **题库详情** | `QuestionBankDetailView.tsx` | 题库信息/状态/统计/题目列表 |
|
||||
| **题目卡片** | `QuestionBankDetailView.tsx` | 题型/难度/维度/状态标签 + hover操作按钮 |
|
||||
| **添加/编辑题目弹窗** | `QuestionBankDetailView.tsx` | 题干/类型/难度/维度/评分要点 |
|
||||
| **AI生成弹窗** | `QuestionBankDetailView.tsx` | 生成数量设置 → AI出题 |
|
||||
| **批量审核** | `QuestionBankDetailView.tsx` | 全选/单题通过驳回/批量通过驳回 |
|
||||
| **提交审核** | `QuestionBankDetailView.tsx` | 题库状态 DRAFT→PENDING_REVIEW |
|
||||
| **发布** | `QuestionBankDetailView.tsx` | PENDING_REVIEW→PUBLISHED |
|
||||
|
||||
**组件文件**: `web/components/views/QuestionBankView.tsx`, `web/components/views/QuestionBankDetailView.tsx`
|
||||
**路由**: `Route path="question-banks"`, `Route path="question-banks/:id"`
|
||||
**服务**: `web/services/questionBankService.ts`
|
||||
|
||||
### 2.4 设置 → 测评模板 `/settings` (Tab: assessment_templates)
|
||||
|
||||
| 画面 | 文件名 | 功能 |
|
||||
|:----|--------|------|
|
||||
| **模板列表** | `SettingsView.tsx` + `AssessmentTemplateManager.tsx` | 所有模板列表 |
|
||||
| **创建/编辑模板弹窗** | `AssessmentTemplateManager.tsx` | 名称/描述/题数/时间/及格分 |
|
||||
| **维度配置** | `AssessmentTemplateManager.tsx` | 添加/删除维度 + 权重 |
|
||||
| **P2配置** | `AssessmentTemplateManager.tsx` | attemptLimit/reviewMode/shuffleQuestions/预约时段 |
|
||||
|
||||
**组件文件**: `web/components/views/AssessmentTemplateManager.tsx`
|
||||
**路由**: `Route path="settings"` (Tab: assessment_templates)
|
||||
**服务**: `web/services/templateService.ts`
|
||||
|
||||
---
|
||||
|
||||
## 三、画面关系图
|
||||
|
||||
```
|
||||
侧栏导航
|
||||
│
|
||||
├── 考核评估 ─────── AssessmentView
|
||||
│ ├── 答题交互 (MC/SA/追问)
|
||||
│ ├── 结果展示 (+ 证书弹窗)
|
||||
│ └── 历史侧栏
|
||||
│
|
||||
├── 评估统计 ─────── AssessmentStatsView
|
||||
│ ├── 统计面板
|
||||
│ ├── 雷达图
|
||||
│ └── 趋势图
|
||||
│
|
||||
├── 题库管理 ─────── QuestionBankView ──→ QuestionBankDetailView
|
||||
│ │ ├── 题目列表 (CRUD)
|
||||
│ │ ├── AI生成弹窗
|
||||
│ │ └── 审核流程
|
||||
│ └── 创建题库抽屉
|
||||
│
|
||||
└── 系统设置 ─────── SettingsView
|
||||
└── 测评模板 Tab ── AssessmentTemplateManager
|
||||
├── 模板列表
|
||||
└── 创建/编辑弹窗
|
||||
└── 维度配置
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 四、后端 API 端点对照
|
||||
|
||||
| 前端画面 | 后端 API | Controller |
|
||||
|---------|----------|-----------|
|
||||
| 考核进行 | `POST /assessment/start` → `GET /assessment/:id/state` → `POST /assessment/:id/answer` | `assessment.controller.ts` |
|
||||
| 证书 | `GET /assessment/:id/certificate` | `assessment.controller.ts` |
|
||||
| 回顾 | `GET /assessment/:id/review` | `assessment.controller.ts` |
|
||||
| 历史 | `GET /assessment/history` | `assessment.controller.ts` |
|
||||
| 统计 | `GET /assessment/stats` | `assessment.controller.ts` |
|
||||
| 模板CRUD | `POST/GET/PUT/DELETE /assessment/templates` | `template.controller.ts` |
|
||||
| 题库CRUD | `POST/GET/PUT/DELETE /question-banks` | `question-bank.controller.ts` |
|
||||
| 题目CRUD | `POST/GET/PUT/DELETE /question-banks/:bankId/items` | `question-bank.controller.ts` |
|
||||
| AI生成 | `POST /question-banks/:id/generate` | `question-bank.controller.ts` |
|
||||
| 审核 | `POST /question-banks/:id/items/batch-review` | `question-bank.controller.ts` |
|
||||
|
||||
---
|
||||
|
||||
## 五、已存在测试脚本
|
||||
|
||||
| 测试文件 | 覆盖画面 | 项数 | 通过率 |
|
||||
|---------|---------|:----:|:------:|
|
||||
| `tests/assessment.e2e.spec.ts` | 考核评估 UI | 8 | 100% ✅ |
|
||||
| `tests/full-assessment.e2e.spec.ts` | 考核全流程(API+UI) | 18 | 83% ✅(1 flaky) |
|
||||
| `tests/question-bank.e2e.spec.ts` | 题库管理全按钮 | 33 | 100% ✅ |
|
||||
| `test-assessment-smoke.mjs` | 烟雾测试(全模块) | 29 | 100% ✅ |
|
||||
| `test-e2e-assessment-full-flow.mjs` | 端到端全流程 | 29 | 100% ✅ |
|
||||
| `test-p2-advanced.mjs` | P2高级功能 | 20 | 100% ✅ |
|
||||
| `test-concurrent-assessments.mjs` | 并发考核 | 20人 | ✅ |
|
||||
| `test-multiround.mjs` | 多轮对话 | — | ✅ |
|
||||
| `test-question-distribution.mjs` | 出题分布 | — | ✅ |
|
||||
| `exam-organizer.mjs` | 考试组织场景 | — | ✅ |
|
||||
|
||||
---
|
||||
|
||||
## 六、未测试画面
|
||||
|
||||
| 画面 | 组件 | 测试覆盖 | 风险 |
|
||||
|:----|------|:--------:|:----:|
|
||||
| 评估统计 `/assessment-stats` | `AssessmentStatsView.tsx` | **❌ 无测试** | 🔴 统计面板/雷达图/趋势图 |
|
||||
| 设置→测评模板 Tab | `AssessmentTemplateManager.tsx` | **❌ 无单独测试** | 🟡 维度配置/P2字段/模板CRUD |
|
||||
|
||||
**待补充测试**: `AssessmentStatsView` 和 `AssessmentTemplateManager` 两个画面还未覆盖。
|
||||
|
||||
---
|
||||
|
||||
## 七、技术栈
|
||||
|
||||
| 层 | 技术 | 文件行数 |
|
||||
|:---|------|:--------:|
|
||||
| 前端画面 | React 19 + TypeScript + Tailwind CSS v4 | ~6,000 行 |
|
||||
| 后端 API | NestJS 11 + TypeORM | ~3,500 行 |
|
||||
| 测试 | Playwright 1.61.0 | ~3,800 行 |
|
||||
|
||||
**前端组件总行数**:
|
||||
- `AssessmentView.tsx` — ~1,100 行 (最大)
|
||||
- `QuestionBankDetailView.tsx` — ~530 行
|
||||
- `QuestionBankView.tsx` — ~380 行
|
||||
- `SettingsView.tsx`(测评部分) — ~200 行
|
||||
- `AssessmentStatsView.tsx` — ~? (待读)
|
||||
- `AssessmentTemplateManager.tsx` — ~540 行
|
||||
|
||||
---
|
||||
|
||||
> **下一步建议**: 补充评估统计画面 + 测评模板配置画面 的 Playwright 全按钮测试。
|
||||
Reference in New Issue
Block a user