feat: add AST_CHECK_FAILED status and update result display

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-25 20:47:46 -06:00
parent 8e2fcceb8f
commit 18fc65f2ce
4 changed files with 17 additions and 3 deletions

View File

@@ -40,6 +40,10 @@ const msg = computed(() => {
msg += "请仔细检查,看看代码的格式是不是写错了!\n\n"
}
if (result === SubmissionStatus.ast_check_failed) {
msg += "你的答案是正确的,但是代码结构不符合要求:\n\n"
}
if (props.submission.statistic_info?.err_info) {
msg += props.submission.statistic_info.err_info
}
@@ -53,6 +57,7 @@ const showAIHint = computed(() => {
return (
problemStore.failCount >= 3 &&
props.submission.result !== SubmissionStatus.accepted &&
props.submission.result !== SubmissionStatus.ast_check_failed &&
props.submission.result !== SubmissionStatus.pending &&
props.submission.result !== SubmissionStatus.judging &&
props.submission.result !== SubmissionStatus.submitting
@@ -108,6 +113,7 @@ const infoTable = computed(() => {
// AC、编译错误、运行时错误不显示测试用例表格
if (
result === SubmissionStatus.accepted ||
result === SubmissionStatus.ast_check_failed ||
result === SubmissionStatus.compile_error ||
result === SubmissionStatus.runtime_error
) {

View File

@@ -149,7 +149,7 @@ watch(
result === SubmissionStatus.submitting
)
return
if (result !== SubmissionStatus.accepted) {
if (result !== SubmissionStatus.accepted && result !== SubmissionStatus.ast_check_failed) {
problemStore.incrementFailCount()
}
},
@@ -159,7 +159,7 @@ watch(
watch(
() => submission.value?.result,
async (result) => {
if (result !== SubmissionStatus.accepted) return
if (result !== SubmissionStatus.accepted && result !== SubmissionStatus.ast_check_failed) return
// 1. 刷新题目状态
problem.value!.my_status = 0
@@ -173,6 +173,8 @@ watch(
)
}
if (result !== SubmissionStatus.accepted) return
// 3. 放烟花
celebrate()

View File

@@ -12,6 +12,7 @@ export enum SubmissionStatus {
judging = 7,
partial_accepted = 8,
submitting = 9,
ast_check_failed = 10,
}
export enum ContestStatus {
@@ -80,6 +81,10 @@ export const JUDGE_STATUS: {
name: "正在提交",
type: "info",
},
"10": {
name: "代码检查未通过",
type: "warning",
},
}
export const CONTEST_STATUS: {

View File

@@ -65,7 +65,7 @@ export type LANGUAGE =
export type LANGUAGE_SHOW_LABEL =
(typeof LANGUAGE_SHOW_VALUE)[keyof typeof LANGUAGE_SHOW_VALUE]
export type SUBMISSION_RESULT = -2 | -1 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
export type SUBMISSION_RESULT = -2 | -1 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10
export type ProblemStatus = "passed" | "failed" | "not_test"
@@ -137,6 +137,7 @@ export interface Problem {
flowchart_data?: Record<string, any>
flowchart_hint?: string
show_flowchart?: boolean
ast_rules?: { [key: string]: { engine: string; target?: string; min?: number; max?: number; message: string }[] } | null
}
export type AdminProblem = Problem & AlterProblem