diff --git a/apps/web/src/oj/submission/components/SubmissionPane.vue b/apps/web/src/oj/submission/components/SubmissionPane.vue index caec23b..52272de 100644 --- a/apps/web/src/oj/submission/components/SubmissionPane.vue +++ b/apps/web/src/oj/submission/components/SubmissionPane.vue @@ -210,12 +210,27 @@ function caseColor(result: number) { } const canRejudge = computed(() => props.teacher && !props.contest) -const moreOptions = computed(() => [ - { label: "复制回到题目", key: "problem" }, - ...(shown.value?.language !== "SQL" ? [{ label: "复制到自测猫", key: "cat" }] : []), -]) +/** + * 老师的「⋯」:复制两项 + 重新判题。重判不常用、点错了会真的重判,所以不放在外面当最显眼的 + * 那个按钮。代码还没拉下来时只有重判一项 —— 代码拉不下来的那条,恰恰可能要重判 + */ +const moreOptions = computed(() => { + const copy = shown.value + ? [ + { label: "复制回到题目", key: "problem" }, + ...(shown.value.language !== "SQL" ? [{ label: "复制到自测猫", key: "cat" }] : []), + ] + : [] + if (!canRejudge.value) return copy + return [ + ...copy, + ...(copy.length ? [{ type: "divider", key: "divider" }] : []), + { label: "重新判题", key: "rejudge" }, + ] +}) function handleMore(key: string) { + if (key === "rejudge") return emit("rejudge", props.row.id) if (!shown.value) return if (key === "problem") copyToProblem(shown.value) else copyToCat(shown.value) @@ -285,46 +300,50 @@ function openStandalone() { 题单 {{ row.problemSet.title }}
- -