成绩明细历史记录:按提交年月日分类,每个分类标记最高分

新增 DataService::dayKeyOf(),日期键一律用服务端本地时区计算(避免 UTC 导致东八区零点前后错一天);aggregateByStudent 为 attempts_list 每项附加 day/day_best/day_count,expandAttempts 透传。

弹窗按天分组渲染分组行(日期 + 共N次 + 最高X分),组内新到旧;当日最高标签仅在当天有多次提交时显示,避免单次日每行都挂标签。

修复:submit_ts=0(时间未知)的记录原本被误标为第1次(升序排序 idx=1 但展示在末尾),现显示 -;未知时间统一归入「未知时间」组。

aggregate 单测 17 -> 33(跨天归属/日内次数/每日最高/未知时间组/时区边界 00:30 与 23:30);全量 148 项全绿。
This commit is contained in:
2026-09-14 07:28:02 +08:00
parent eb5d06d392
commit 555f500dc7
4 changed files with 186 additions and 31 deletions
+5
View File
@@ -393,6 +393,11 @@ td.att { font-weight: 700; color: var(--text-2); }
.tag-att { background: #e8eefc; color: #3457c9; cursor: pointer; }
.tag-new { background: var(--ok-weak); color: var(--ok); }
.tag-best { background: #fff1dc; color: #b26a06; }
/* 当日最高(历史成绩按天分组后,组内最高分) */
.tag-day { background: var(--primary-weak); color: var(--primary-2); }
/* 历史成绩弹窗:按提交日期分组的分组行 */
tr.att-day > td { background: var(--border-2); font-weight: 600; color: var(--text-2); }
tr.att-day > td .att-day-sub { margin-left: 8px; font-weight: 400; font-size: 12px; color: var(--text-3); }
/* 多次刷题:成员榜可点击行 */
tr.clickable { cursor: pointer; }