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() { > + + ·