From d04de0190c4d536eb0a069695ca6fe38e472b0b5 Mon Sep 17 00:00:00 2001 From: yanlongqi Date: Tue, 2 Dec 2025 01:01:35 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81=E7=BB=A7=E7=BB=AD=E6=9C=AA?= =?UTF-8?q?=E5=AE=8C=E6=88=90=E7=9A=84=E6=AF=8F=E6=97=A5=E4=B8=80=E7=BB=83?= =?UTF-8?q?=E7=AD=94=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 主要改动: 1. 点击每日一练前先查询是否有未完成的考试记录 2. 如果存在 in_progress 状态的记录,直接跳转继续答题 3. 如果没有未完成的记录,创建新的考试记录 4. 提升用户体验,避免重复开始考试导致进度丢失 --- web/src/pages/Home.tsx | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/web/src/pages/Home.tsx b/web/src/pages/Home.tsx index cc8cb35..ef6a6cc 100644 --- a/web/src/pages/Home.tsx +++ b/web/src/pages/Home.tsx @@ -647,7 +647,22 @@ const Home: React.FC = () => { // 检查今日每日一练是否存在 if (dailyExamRanking.exam_id) { try { - // 调用开始考试API,创建考试记录 + // 先查询该试卷是否有未完成的考试记录 + const recordListRes = await examApi.getExamRecordList(dailyExamRanking.exam_id) + if (recordListRes.success && recordListRes.data) { + // 查找状态为 in_progress 的记录 + const inProgressRecord = recordListRes.data.find( + record => record.status === 'in_progress' + ) + + if (inProgressRecord) { + // 如果有未完成的记录,继续之前的答题 + navigate(`/exam/${dailyExamRanking.exam_id}/taking/${inProgressRecord.id}`) + return + } + } + + // 如果没有未完成的记录,调用开始考试API创建新记录 const res = await examApi.startExam(dailyExamRanking.exam_id) if (res.success && res.data) { // 跳转到考试答题页面(注意路由是 /taking 不是 /take)