feat(结果): 判完之后测试点一格一格亮起来,错的那格写着第几组
Deploy / deploy (push) Canceled after 0s

借小丑牌结算时一张张牌亮起来:结果里每组测试点一个方块,从左往右依次亮,
对的绿、错的红并写组号,不到 1 秒亮完,提示和按钮亮完才出来,全对时亮完再放烟花。
大字和「通过几个」判完马上就有;只播刚交的那条,刷新、看旧提交、系统减少动画都直接全亮。
提交详情多给每组对没对(只有对错,不带数据),比赛照旧不给。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
xuyueandClaude Opus 5.5 committed 2026-10-26 09:56:32 +08:00
1 parent 1a173f75d7
commit 36b3cd6b21
8 files changed
+375 -144

No files matched your search

+6 -2
View File
@@ -372,8 +372,12 @@ function caseSummary(submission: typeof schema.submission.$inferSelect) {
if (submission.contestId !== null || submission.language === "SQL") return null
const data = asRecord(submission.info).data
if (!Array.isArray(data) || data.length === 0) return null
const passed = data.filter((item) => asRecord(item).result === JudgeStatus.ACCEPTED).length
return { passed, total: data.length }
// 判题时已经按组号排过(judge/run.ts),这里再排一次:老数据不一定是排好的
const results = data
.map((item) => asRecord(item))
.sort((a, b) => Number(a.test_case) - Number(b.test_case))
.map((item) => item.result === JudgeStatus.ACCEPTED)
return { passed: results.filter(Boolean).length, total: results.length, results }
}
/** 列表行的 caseSummary:SQL 里数好的两个数,为 null 的情形和详情一致(SQL 题、没有逐点结果) */