diff --git a/src/admin/problem/components/TestcaseGenerator.vue b/src/admin/problem/components/TestcaseGenerator.vue index d3a33f5..2d556cd 100644 --- a/src/admin/problem/components/TestcaseGenerator.vue +++ b/src/admin/problem/components/TestcaseGenerator.vue @@ -29,15 +29,18 @@ const files = ref( const selectedLanguage = ref("Python3") +// 始终显示所有语言,不管有没有答案代码 const availableLanguages = computed(() => - props.answers - .filter((a) => a.code.trim()) - .map((a) => ({ label: a.language, value: a.language })), + props.answers.map((a) => ({ label: a.language, value: a.language })), ) -const hasAnswerCode = computed(() => availableLanguages.value.length > 0) +// 当前选中语言是否有答案代码(用于控制"先运行"按钮) +const hasAnswerCode = computed(() => { + const answer = props.answers.find((a) => a.language === selectedLanguage.value) + return !!answer?.code.trim() +}) -// 当可用语言列表变化时,确保 selectedLanguage 始终指向一个有效值 +// 当语言列表变化时,确保 selectedLanguage 始终指向一个有效值 watch( availableLanguages, (langs) => { @@ -144,17 +147,14 @@ async function upload() { style="width: 120px" :options="availableLanguages" v-model:value="selectedLanguage" - :disabled="!hasAnswerCode" - placeholder="无答案" /> - 清空 - +1 - +5 + 清空 + +1 + +5