feat: 更新考试相关页面,添加刷新功能,修改考试状态显示
- 注:当前代码还存在bug:查看结果暂出现错误。 - 在 SubjectSelectionPage 页面中添加刷新按钮,允许用户手动刷新考试任务列表。 - 修改 UserTaskPage 页面,重构考试任务为答题记录,更新数据结构和状态显示。 - 在 AdminDashboardPage、UserManagePage、UserRecordsPage 等管理页面中添加考试状态显示,使用不同颜色区分状态(不及格、合格、优秀)。 - 在 ResultPage 中显示考试状态,确保用户能够清晰了解考试结果。 - 添加约束,确保单次考试试卷中题目不可重复出现,并记录相关规范。 - 添加评分状态约束,根据得分占比自动计算考试状态,并在结果页面显示。
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
# Proposal: Add No Duplicate Questions Constraint
|
||||
|
||||
## Problem
|
||||
用户发现在单次考试试卷中会出现重复的题目,这违反了考试的基本原则。
|
||||
|
||||
## Solution
|
||||
在 openspec 中添加约束,确保单次考试试卷中题目不可重复出现。
|
||||
|
||||
## Impact
|
||||
- 需要修改 `api/models/examSubject.ts` 中的 `generateQuizQuestions` 方法
|
||||
- 确保在生成试卷时,已选择的题目不会被重复选择
|
||||
- 需要在 openspec 中记录此约束
|
||||
|
||||
## Tasks
|
||||
- [ ] 在 openspec 中添加约束规范
|
||||
- [ ] 修复 examSubject.ts 中数量模式下的题目重复问题
|
||||
- [ ] 验证修复后的代码逻辑
|
||||
@@ -0,0 +1,22 @@
|
||||
## ADDED Requirements
|
||||
|
||||
### Requirement: No Duplicate Questions in Single Exam
|
||||
系统 MUST 确保单次考试试卷中不可重复出现同一道题目。
|
||||
|
||||
#### Scenario: Generate exam paper
|
||||
- **GIVEN** 考试科目配置了题型比例和题目类别比例
|
||||
- **WHEN** 系统生成考试试卷时
|
||||
- **THEN** 系统 MUST 确保每道题目在试卷中只出现一次
|
||||
- **AND** 系统 MUST 在选择题目时过滤掉已选择的题目
|
||||
|
||||
#### Scenario: Random question selection
|
||||
- **GIVEN** 系统需要从题库中随机选择题目
|
||||
- **WHEN** 已选择题目集合中已包含某道题目
|
||||
- **THEN** 系统 MUST 不再选择该题目
|
||||
- **AND** 系统 MUST 继续选择其他未选中的题目
|
||||
|
||||
#### Scenario: Insufficient unique questions
|
||||
- **GIVEN** 题库中满足条件的题目数量少于试卷需要的题目数量
|
||||
- **WHEN** 系统尝试生成试卷
|
||||
- **THEN** 系统 MUST 抛出错误提示题库题目不足
|
||||
- **AND** 系统 MUST 不生成包含重复题目的试卷
|
||||
@@ -0,0 +1,6 @@
|
||||
# Tasks: Add No Duplicate Questions Constraint
|
||||
|
||||
## Tasks
|
||||
- [x] 在 openspec 中添加约束规范
|
||||
- [ ] 修复 examSubject.ts 中数量模式下的题目重复问题
|
||||
- [ ] 验证修复后的代码逻辑
|
||||
21
openspec/changes/add-scoring-status-constraint/proposal.md
Normal file
21
openspec/changes/add-scoring-status-constraint/proposal.md
Normal file
@@ -0,0 +1,21 @@
|
||||
# Proposal: Add Scoring Status Constraint
|
||||
|
||||
## Problem
|
||||
用户完成考试后,系统只显示得分,但没有显示考试状态的等级评定。用户需要根据得分占比了解考试是否及格、合格或优秀。
|
||||
|
||||
## Solution
|
||||
在 openspec 中添加评分状态约束,根据得分占比自动计算考试状态:
|
||||
- 得分占比 < 60%:不及格
|
||||
- 得分占比 ≥ 60% 且 < 80%:合格
|
||||
- 得分占比 ≥ 80%:优秀
|
||||
|
||||
## Impact
|
||||
- 需要修改 `api/models/quiz.ts` 添加状态字段和计算逻辑
|
||||
- 需要修改 `src/pages/ResultPage.tsx` 显示考试状态
|
||||
- 需要在 openspec 中记录此约束
|
||||
|
||||
## Tasks
|
||||
- [ ] 在 openspec 中添加评分状态约束规范
|
||||
- [ ] 修改 quiz.ts 模型添加状态字段和计算逻辑
|
||||
- [ ] 修改 ResultPage.tsx 显示考试状态
|
||||
- [ ] 修改其他相关页面以显示考试状态
|
||||
@@ -0,0 +1,29 @@
|
||||
## ADDED Requirements
|
||||
|
||||
### Requirement: Scoring Status Based on Score Percentage
|
||||
系统 MUST 根据得分占比自动计算考试状态等级。
|
||||
|
||||
#### Scenario: Calculate scoring status for failed exam
|
||||
- **GIVEN** 用户完成考试并获得得分
|
||||
- **WHEN** 得分占比小于 60%
|
||||
- **THEN** 系统 MUST 将考试状态标记为"不及格"
|
||||
- **AND** 系统 MUST 在结果页面显示"不及格"状态
|
||||
|
||||
#### Scenario: Calculate scoring status for qualified exam
|
||||
- **GIVEN** 用户完成考试并获得得分
|
||||
- **WHEN** 得分占比大于等于 60% 且小于 80%
|
||||
- **THEN** 系统 MUST 将考试状态标记为"合格"
|
||||
- **AND** 系统 MUST 在结果页面显示"合格"状态
|
||||
|
||||
#### Scenario: Calculate scoring status for excellent exam
|
||||
- **GIVEN** 用户完成考试并获得得分
|
||||
- **WHEN** 得分占比大于等于 80%
|
||||
- **THEN** 系统 MUST 将考试状态标记为"优秀"
|
||||
- **AND** 系统 MUST 在结果页面显示"优秀"状态
|
||||
|
||||
#### Scenario: Display scoring status in result page
|
||||
- **GIVEN** 用户查看考试结果页面
|
||||
- **WHEN** 页面加载完成
|
||||
- **THEN** 系统 MUST 显示考试得分
|
||||
- **AND** 系统 MUST 显示考试状态(不及格/合格/优秀)
|
||||
- **AND** 系统 MUST 根据状态使用不同的颜色或样式进行区分
|
||||
7
openspec/changes/add-scoring-status-constraint/tasks.md
Normal file
7
openspec/changes/add-scoring-status-constraint/tasks.md
Normal file
@@ -0,0 +1,7 @@
|
||||
# Tasks: Add Scoring Status Constraint
|
||||
|
||||
## Tasks
|
||||
- [x] 在 openspec 中添加评分状态约束规范
|
||||
- [ ] 修改 quiz.ts 模型添加状态字段和计算逻辑
|
||||
- [ ] 修改 ResultPage.tsx 显示考试状态
|
||||
- [ ] 修改其他相关页面以显示考试状态
|
||||
Reference in New Issue
Block a user