]> acesimba.cloud Git - words.git/commit
feat: 学习日历显示每日实际学习时长(各次学习时段之和, 不含间隔)
authorroot <root@localhost.localdomain>
Tue, 18 Aug 2026 15:22:50 +0000 (23:22 +0800)
committerroot <root@localhost.localdomain>
Tue, 18 Aug 2026 15:22:50 +0000 (23:22 +0800)
commitf9b8b14c9afffbb32032bd093c63f65ee6701240
tree600d2ab736080b2a870995345d1d1322139043fc
parente1cb648dbf420c609398f2f1a9819ae59246909b
feat: 学习日历显示每日实际学习时长(各次学习时段之和, 不含间隔)

- 改为方案B: 记录每次学习的真实起止时长并按时长求和
- 前端 StudyMode/TestMode: 进入时记录 sessionStartRef, 完成时计算 durationSec 传入 putProgress
- db.putProgress 增加 duration_sec 字段; sync push/pull 携带 duration_sec(双向同步)
- 后端 SyncEvent/ProgressUpdate 增加 duration_sec; sync/push 写入, sync/pull 返回
- /api/calendar 改为按日 SUM(duration_sec) 得实际学习分钟(替代之前的跨度算法)
- 日历离线降级同样按本地 duration_sec 求和; 日期左侧"N分钟"徽标不变
- 历史记录 duration_sec 多为0, 故旧日期不显示时长, 仅新学习的日期开始累计
backend/main.py
frontend/src/components/StudyCalendar.js
frontend/src/components/StudyMode.js
frontend/src/components/TestMode.js
frontend/src/db.js
frontend/src/sync.js