feat(挑战): 这节课做完了给「还能挑战」,挑战中编辑器顶上一条紫色的,老师看板上看得出谁在挑战
Deploy / deploy (push) Canceled after 0s

做完这节课(或题库里自己做对)之后列出还能挑战的题;去挑战后编辑器顶上写着要求,
没做到标出是哪几行,做到了写本班第几个、全站第几个。课堂看板做到的格子贴一枚紫色筹码、
在挑战的加一圈紫边,题卡片写挑战成功几人。出题页多一块「挑战」,能从做对的代码里找候选。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
xuyueandClaude Opus 5.5 committed 2026-10-26 08:52:50 +08:00
1 parent 0faf78ad8f
commit 1a173f75d7
19 files changed
+1243 -24

No files matched your search

+4 -1
View File
@@ -10,6 +10,7 @@ import type {
ProblemDifficulty,
JudgeStatus,
AstRules,
ChallengeInput,
CreateAnnouncementRequest,
ProblemLanguage,
} from "@oj2/contract"
@@ -142,8 +143,10 @@ type ExcludeKeys =
export type BlankProblem = Omit<
AdminProblem,
ExcludeKeys | "hint" | "mermaidCode" | "flowchartData"
ExcludeKeys | "hint" | "mermaidCode" | "flowchartData" | "challenges"
> & {
/** 提交的挑战:新加的不带 id,后端发(见契约 challengeInputSchema) */
challenges?: Record<string, ChallengeInput[]> | null
id?: number
// 新建比赛题时由 detail.vue 在提交前写进来
contestId?: number | null