英语语法模块 v2:接入参考语法体系,中文为主,家长可编辑,全部可学

- 内容底座改为你提供的语法体系(入门/基础/进阶 69 知识点,中文讲解 +
  中英对照例句 + 六步教学法),整体更适合小学生
- 内容存库(grammar_point),家长中心新增"编辑英语课程"可改标题/目标/
  课文,保存即时生效
- 取消顺序解锁,所有课程可直接学习,通过测验即点亮
- 测验引擎支持 选择/判断/填空/连词成句/连线 五种题型,达标自动联动
  当日英语打卡

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
jacobxu666
2026-08-03 22:53:10 +08:00
co-authored by Claude Opus 4.8
parent 6ed4d5a61e
commit f98a21672d
36 changed files with 2379 additions and 4002 deletions
+4 -4
View File
@@ -8,8 +8,7 @@ import { SESSION_COOKIE, getSessionUser } from "@/lib/auth";
import { daysAgo, todayStr } from "@/lib/dates";
import { ensureDay } from "@/lib/tasks";
import { streakOf } from "@/lib/streak";
import { passedSet } from "@/lib/grammar";
import { TOTAL } from "@/content/grammar";
import { passedCount, totalPoints } from "@/lib/grammar";
import { ParentDashboard, type DevicesData, type OverviewData, type TemplatesData } from "./dashboard";
const SHANGHAI = { timeZone: "Asia/Shanghai" } as const;
@@ -29,6 +28,7 @@ export default async function ParentPage() {
const today = todayStr();
const weekDates = Array.from({ length: 7 }, (_, i) => daysAgo(i)); // 今天在前
const gTotal = await totalPoints();
// ===== 今日概览 =====
const overview: OverviewData = { kids: [] };
@@ -36,7 +36,7 @@ export default async function ParentPage() {
await ensureDay(kid.id, today); // 家长先看时也要生成今天的快照
const [streak, gDone, rows] = await Promise.all([
streakOf(kid.id),
passedSet(kid.id).then((s) => s.size),
passedCount(kid.id),
db
.select({
id: taskInstances.id,
@@ -67,7 +67,7 @@ export default async function ParentPage() {
total: todayTasks.length,
done: todayTasks.filter((t) => t.status === "done").length,
},
grammar: { done: gDone, total: TOTAL },
grammar: { done: gDone, total: gTotal },
week,
});
}