diff --git a/app/checkin-client.tsx b/app/checkin-client.tsx index 3bed7f4..07f9190 100644 --- a/app/checkin-client.tsx +++ b/app/checkin-client.tsx @@ -1,6 +1,5 @@ "use client"; -import Link from "next/link"; import { useEffect, useMemo, useState } from "react"; import { CalendarDays, CheckCircle2, ChevronLeft, ChevronRight, Cloud, LayoutList, Timer } from "lucide-react"; import { Checkbox } from "@/components/ui/checkbox"; @@ -35,7 +34,7 @@ export default function CheckinClient() { const toggle = (key: string, on: boolean) => void save({ ...record, doneTasks: JSON.stringify(on ? [...done, key] : done.filter(x => x !== key)) }); return
-

CET-6 · 2026

大学英语六级 · 90天打卡

从今天的一件事开始,完成比完美重要。

任务总览

{saving ? "正在云端保存…" : status}

+

CET-6 · 2026

大学英语六级 · 90天打卡

从今天的一件事开始,完成比完美重要。

任务总览

{saving ? "正在云端保存…" : status}

} value={Math.round(finished / total * 100) + "%"} label="总体完成度" detail={finished + " / " + total + " 项任务"} />} value={complete + " 天"} label="完整完成" detail="目标共 90 天" />} value={day.phase} label="当前阶段" detail="12 月 12 日笔试" />

距离六级笔试

{remaining.days}天 {remaining.hours}时 {remaining.minutes}分2026 年 12 月 12 日 09:00

CHECK-IN CALENDAR

打卡日历

{[8, 9, 10, 11].map(m => )}
{["日", "一", "二", "三", "四", "五", "六"].map(x => {x})}
{blanks.map((_, i) => )}{dates.map(date => { const idx = plan.findIndex(p => p.date === date), p = plan[idx], n = parseTasks(records[date]?.doneTasks).length, full = !!p && n === p.tasks.length, partial = !!p && n > 0 && !full; return ; })}

全部完成 进行中 点击日期即可查看并打卡

{day.phase} · {day.week}

{fmt(day.date)}

已完成 {done.length} / {day.tasks.length} 项
{day.tasks.map(t => )}

今日状态

{["专注", "平稳", "有点累", "需要调整"].map(m => )}