From 5f9743efe0b7fa0f6fb561e38f6d0a3e11723e5e Mon Sep 17 00:00:00 2001 From: yuetsh <517252939@qq.com> Date: Tue, 29 Sep 2026 23:56:43 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E6=8F=90=E4=BA=A4=E5=88=97=E8=A1=A8):=20?= =?UTF-8?q?=E5=8F=B3=E6=A0=8F=E5=90=8D=E5=AD=97=E6=97=81=E5=A4=9A=E4=B8=80?= =?UTF-8?q?=E4=B8=AA=E3=80=8C=E5=8F=AA=E7=9C=8B=E8=BF=99=E4=B8=AA=E7=8F=AD?= =?UTF-8?q?=E3=80=8D=EF=BC=8C=E4=B8=8D=E5=9C=A8=E7=8F=AD=E7=BA=A7=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E9=87=8C=E7=9A=84=E8=80=81=E7=8F=AD=E4=B9=9F=E8=83=BD?= =?UTF-8?q?=E7=AD=9B=E5=87=BA=E6=9D=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 5.5 --- apps/api/src/routes/submission.ts | 3 +++ .../submission/components/SubmissionPane.vue | 21 ++++++++++++++++++- apps/web/src/oj/submission/list.vue | 12 +++++++++++ packages/contract/src/submission.ts | 6 ++++++ 4 files changed, 41 insertions(+), 1 deletion(-) diff --git a/apps/api/src/routes/submission.ts b/apps/api/src/routes/submission.ts index c03fe6c..4c838f9 100644 --- a/apps/api/src/routes/submission.ts +++ b/apps/api/src/routes/submission.ts @@ -316,6 +316,7 @@ const submissionListColumns = { * 已删号的学生 user 表里没有行,退回冻结的那份(否则整列空着)。 */ username: sql`coalesce(${schema.user.username}, ${schema.submission.username})`, + className: schema.user.className, result: schema.submission.result, language: schema.submission.language, statisticInfo: schema.submission.statisticInfo, @@ -574,6 +575,7 @@ submissionRoutes.get("/submissions", optionalAuth, async (c) => { createTime: submission.createTime, userId: submission.userId, username: submission.username, + className: submission.className || null, result: submission.result, language: submission.language, statisticInfo: asRecord(submission.statisticInfo), @@ -649,6 +651,7 @@ submissionRoutes.get( createTime: submission.createTime, userId: submission.userId, username: submission.username, + className: submission.className || null, result: submission.result, language: submission.language, statisticInfo: asRecord(submission.statisticInfo), diff --git a/apps/web/src/oj/submission/components/SubmissionPane.vue b/apps/web/src/oj/submission/components/SubmissionPane.vue index 0d54e05..caec23b 100644 --- a/apps/web/src/oj/submission/components/SubmissionPane.vue +++ b/apps/web/src/oj/submission/components/SubmissionPane.vue @@ -19,7 +19,7 @@ import { import type { Submission, SubmissionListItem } from "utils/types" import { useCopySubmission } from "../composables/copySubmission" import { useTone } from "../composables/tone" -import { submissionTimeText } from "../utils" +import { classLabel, submissionTimeText } from "../utils" import CodeView from "./CodeView.vue" import StatusPill from "./StatusPill.vue" import UserName from "./UserName.vue" @@ -34,6 +34,8 @@ const props = defineProps<{ teacher: boolean /** 在比赛的提交列表里(不能重判,题目链接走比赛) */ contest: boolean + /** 列表现在筛的班级:已经在筛这个班就不再给「只看这个班」 */ + className?: string /** 右下角的「本页第 i / n 条」 */ position: { index: number; count: number } | null /** 手机上的整屏详情:头部折行、不提方向键 */ @@ -42,6 +44,7 @@ const props = defineProps<{ const emit = defineEmits<{ filterUser: [username: string] + filterClass: [className: string] filterProblem: [displayId: string] openProblem: [row: SubmissionListItem] rejudge: [id: string] @@ -243,6 +246,16 @@ function openStandalone() { > + + ·