feat(课堂看板): 「这节课的题」旁边多一个语言下拉,布置 C 的作业学生打开题目编辑器就是 C
Deploy / deploy (push) Canceled after 0s

默认是这个班上一次布置选的语言。学生那边首页、题号下拉、题目页课堂条都写上「C语言」;
打开这节课的题时编辑器自动切过去,每道题只切一次,学生自己再换就按他的。提交列表的
「这节课」连语言一起筛。

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
xuyueandClaude Opus 5.5 committed 2026-09-30 09:54:21 +08:00
1 parent a18e129f4c
commit 773d15b033
7 files changed
+93 -14

No files matched your search

+12 -3
View File
@@ -1,5 +1,6 @@
import { defineStore } from "pinia"
import { getClassActivity } from "oj/api"
import { LANGUAGE_SHOW_VALUE } from "utils/constants"
import type { ClassActivity, ClassActivityProblem } from "utils/types"
/** 同一节课里来回换题不用每次都重拉;过了这么久再进题目页就重拉一次 */
@@ -74,10 +75,18 @@ export const useLessonStore = defineStore("lesson", () => {
return { total: list.length, next: rest[0] ?? null, remaining: rest.length }
}
/** 老师布置的叫「老师布置的题」,推断出来的叫「这节课的题」 */
/** 老师布置时选的语言,给界面写「C语言」;没选(推断出来的课、以前布置的)为空 */
const languageText = computed(() => {
const language = activity.value?.language
return language ? LANGUAGE_SHOW_VALUE[language] : ""
})
/** 老师布置的叫「老师布置的题」(选了语言带上语言),推断出来的叫「这节课的题」 */
const label = computed(() =>
activity.value?.source === "teacher" ? "老师布置的题" : "这节课的题",
activity.value?.source === "teacher"
? `老师布置的题${languageText.value ? ` · ${languageText.value}` : ""}`
: "这节课的题",
)
return { activity, label, load, markAccepted, includes, nextAfter }
return { activity, label, languageText, load, markAccepted, includes, nextAfter }
})