# 人才测评系统 — 画面地图 > 版本: 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 全按钮测试。