fix
Some checks failed
Deploy / deploy (build, debian, 22, /root/OJDeploy/data/clientnext) (push) Has been cancelled
Deploy / deploy (build:staging, school, 8822, /root/OJ/data/dist) (push) Has been cancelled

This commit is contained in:
2026-04-27 03:56:16 -06:00
parent 0ca1a142a4
commit f4b9f34ec8

View File

@@ -3,6 +3,7 @@ import { Exercise, ExerciseMcqData } from "utils/types"
const props = defineProps<{ exercise: Exercise }>() const props = defineProps<{ exercise: Exercise }>()
const data = computed(() => props.exercise.data as ExerciseMcqData) const data = computed(() => props.exercise.data as ExerciseMcqData)
const isSingle = computed(() => data.value.answer.length === 1)
const selected = ref<Set<number>>(new Set()) const selected = ref<Set<number>>(new Set())
const correct = ref(false) const correct = ref(false)
@@ -12,8 +13,13 @@ const partial = ref(false)
function select(idx: number) { function select(idx: number) {
if (correct.value) return if (correct.value) return
const s = new Set(selected.value) const s = new Set(selected.value)
if (isSingle.value) {
s.clear()
if (!selected.value.has(idx)) s.add(idx)
} else {
if (s.has(idx)) s.delete(idx) if (s.has(idx)) s.delete(idx)
else s.add(idx) else s.add(idx)
}
selected.value = s selected.value = s
wrong.value = false wrong.value = false
partial.value = false partial.value = false
@@ -30,6 +36,7 @@ function submit() {
wrong.value = false wrong.value = false
partial.value = false partial.value = false
} else { } else {
selected.value = new Set()
const hasIntersection = [...sel].some((v) => answer.has(v)) const hasIntersection = [...sel].some((v) => answer.has(v))
if (hasIntersection) { if (hasIntersection) {
partial.value = true partial.value = true
@@ -62,9 +69,9 @@ function optionType(idx: number): "default" | "primary" | "success" {
> >
<template #header> <template #header>
<n-space align="center" :size="8"> <n-space align="center" :size="8">
<n-tag type="success" size="small" :bordered="false" <n-tag type="success" size="small" :bordered="false">
>练一练 · 多选题</n-tag 练一练 · {{ isSingle ? "单选题" : "多选题" }}
> </n-tag>
</n-space> </n-space>
</template> </template>