+ {/* 头部 */}
+
+ }
+ onClick={() => navigate('/profile')}
+ type="text"
+ className={styles.backButton}
+ >
+ 返回
+
+
+ 错题本
+
+
+
+ {/* 统计卡片 */}
+ {stats && (
+
+
+
+ }
+ />
+
+
+ }
+ />
+
+
+
+
+
+
+ )}
+
+ {/* 操作按钮 */}
+
+ }
+ onClick={handleClear}
+ disabled={!wrongQuestions.length}
+ >
+ 清空错题本
+
+
+
+ {/* 错题列表 */}
+
+
+
+ {wrongQuestions.length === 0 ? (
+
+ ) : (
+ (
+ }
+ onClick={() => handleRedo(item.question.id)}
+ >
+ 重做
+ ,
+ !item.is_mastered && (
+ }
+ onClick={() => handleMarkMastered(item.id)}
+ >
+ 标记掌握
+
+ ),
+ ].filter(Boolean)}
+ >
+
+ 题目 {item.question.question_id || item.question.id}
+
+ {item.question.type === 'single' ? '单选' : item.question.type === 'multiple' ? '多选' : '判断'}
+
+ {item.is_mastered && 已掌握}
+ 错误 {item.wrong_count} 次
+
+ }
+ description={
+
+
{item.question.content}
+
+
+ 你的答案: {formatAnswer(item.wrong_answer, item.question.type)}
+
+
+ 正确答案: {formatAnswer(item.correct_answer, item.question.type)}
+
+
+ 最后错误时间: {new Date(item.last_wrong_time).toLocaleString()}
+
+
+
+ }
+ />
+
+ )}
+ />
+ )}
+
+
+ )
+}
+
+export default WrongQuestions
diff --git a/web/src/types/question.ts b/web/src/types/question.ts
index ebe604d..a64d289 100644
--- a/web/src/types/question.ts
+++ b/web/src/types/question.ts
@@ -45,3 +45,24 @@ export interface ApiResponse