From 5c9972315cbe64177216824ce958f86c1dcc7c22 Mon Sep 17 00:00:00 2001 From: yuetsh <517252939@qq.com> Date: Fri, 24 Apr 2026 02:04:07 -0600 Subject: [PATCH] feat: update exercise manager to support multi-answer checkboxes Co-Authored-By: Claude Sonnet 4.6 --- .../tutorial/components/ExerciseManager.vue | 26 ++++++++++++------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/src/admin/tutorial/components/ExerciseManager.vue b/src/admin/tutorial/components/ExerciseManager.vue index 9c42670..e7a0b30 100644 --- a/src/admin/tutorial/components/ExerciseManager.vue +++ b/src/admin/tutorial/components/ExerciseManager.vue @@ -24,7 +24,7 @@ const formOrder = ref(0) const mcqQuestion = ref("") const mcqOptions = ref(["", ""]) -const mcqAnswer = ref(0) +const mcqAnswer = ref([]) const sortQuestion = ref("") const sortCode = ref("") @@ -44,7 +44,7 @@ function openCreate() { formOrder.value = exercises.value.length mcqQuestion.value = "" mcqOptions.value = ["", ""] - mcqAnswer.value = 0 + mcqAnswer.value = [] sortQuestion.value = "" sortCode.value = "" fillQuestion.value = "" @@ -60,7 +60,7 @@ function openEdit(ex: Exercise) { const d = ex.data as ExerciseMcqData mcqQuestion.value = d.question mcqOptions.value = [...d.options] - mcqAnswer.value = d.answer + mcqAnswer.value = [...d.answer] } else if (ex.type === "sort") { const d = ex.data as ExerciseSortData sortQuestion.value = d.question @@ -73,6 +73,12 @@ function openEdit(ex: Exercise) { showForm.value = true } +function toggleAnswer(i: number) { + const idx = mcqAnswer.value.indexOf(i) + if (idx === -1) mcqAnswer.value.push(i) + else mcqAnswer.value.splice(idx, 1) +} + async function save() { let data: Record if (formType.value === "mcq") { @@ -218,7 +224,7 @@ function typeTagType(type: string): "success" | "info" | "warning" { placeholder="下面选项中正确是哪个?" /> - + -