feat: update StartTask component and add documentation

This commit is contained in:
developer
2026-07-19 16:58:04 +08:00
parent c08c247271
commit e44301e1d5
2 changed files with 652 additions and 2 deletions
+22 -2
View File
@@ -7,6 +7,7 @@ import { useTimer } from "@/components/composables/useTimer";
import {
continueSession,
endSession,
getSessionDetail,
pauseSession,
startOrContinueStudySession,
} from "@/api/studySessions";
@@ -269,7 +270,10 @@ const toDate = (value: unknown): Date | null => {
}
if (typeof value === "string") {
const normalized = value.includes("T") ? value : value.replace(" ", "T");
// 去掉末尾的 'Z':后端 LocalDateTime 无时区,序列化时不应带 Z
// (旧版序列化器曾错误添加字面量 Z,此处做兼容处理)
const clean = value.endsWith("Z") ? value.slice(0, -1) : value;
const normalized = clean.includes("T") ? clean : clean.replace(" ", "T");
const date = new Date(normalized);
return Number.isNaN(date.getTime()) ? null : date;
}
@@ -338,7 +342,23 @@ const stopTimer = async () => {
const res = await pauseSession(taskInfo.value.sessionNum);
if (res.code === 200) {
ElMessage.success("任务暂停");
taskInfo.value.sessionState = "PAUSED";
// 重新获取会话数据,同步后端计算后的时间字段
try {
const detail = await getSessionDetail(taskInfo.value.sessionNum);
if (detail?.data) {
const d = detail.data;
taskInfo.value.sessionState = d.sessionState ?? "PAUSED";
taskInfo.value.actualTime = d.actualTime ?? 0;
taskInfo.value.effectiveTime = d.effectiveTime ?? 0;
taskInfo.value.effectivenessRatio = d.effectivenessRatio ?? 0;
taskInfo.value.startTime = d.startTime ?? taskInfo.value.startTime;
taskInfo.value.endTime = d.endTime ?? "";
taskInfo.value.lastStartTime = d.lastStartTime ?? "";
taskInfo.value.pointerPosition = d.pointerPosition ?? 0;
}
} catch {
taskInfo.value.sessionState = "PAUSED";
}
}
clear();
clearBreakState();