From a48baddcc32078dfcd14b965b01f3cc3d59e7713 Mon Sep 17 00:00:00 2001 From: yuetsh <517252939@qq.com> Date: Tue, 19 May 2026 03:58:24 -0600 Subject: [PATCH] fix: guard reset during run and use stable key for file list --- src/admin/problem/components/TestcaseGenerator.vue | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/admin/problem/components/TestcaseGenerator.vue b/src/admin/problem/components/TestcaseGenerator.vue index a0f2b73..6e548f9 100644 --- a/src/admin/problem/components/TestcaseGenerator.vue +++ b/src/admin/problem/components/TestcaseGenerator.vue @@ -5,6 +5,7 @@ import { createTestSubmission } from "utils/judge" import { uploadTestcases } from "../../api" interface FileEntry { + id: number in: string out: string error: boolean @@ -21,8 +22,9 @@ const emit = defineEmits<{ const message = useMessage() +let nextId = 0 const files = ref( - Array.from({ length: 5 }, () => ({ in: "", out: "", error: false })), + Array.from({ length: 5 }, () => ({ id: nextId++, in: "", out: "", error: false })), ) const selectedLanguage = ref("Python3") @@ -59,11 +61,11 @@ const canUpload = computed( ) function reset() { - files.value = Array.from({ length: 5 }, () => ({ in: "", out: "", error: false })) + files.value = Array.from({ length: 5 }, () => ({ id: nextId++, in: "", out: "", error: false })) } function add(n: number) { - files.value.push(...Array.from({ length: n }, () => ({ in: "", out: "", error: false }))) + files.value.push(...Array.from({ length: n }, () => ({ id: nextId++, in: "", out: "", error: false }))) } function remove(index: number) { @@ -144,7 +146,7 @@ async function upload() { :disabled="!hasAnswerCode" placeholder="无答案" /> - 清空 + 清空 +1 +5 @@ -176,7 +178,7 @@ async function upload() {