From 82987ffd541b2b14785ca6c96affcfc68ba44412 Mon Sep 17 00:00:00 2001 From: yuetsh <517252939@qq.com> Date: Mon, 25 May 2026 22:40:24 -0600 Subject: [PATCH] update --- .../problem/components/AstRulesEditor.vue | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/admin/problem/components/AstRulesEditor.vue b/src/admin/problem/components/AstRulesEditor.vue index 0277304..aaf9a3a 100644 --- a/src/admin/problem/components/AstRulesEditor.vue +++ b/src/admin/problem/components/AstRulesEditor.vue @@ -4,6 +4,7 @@ import type { LANGUAGE } from "utils/types" interface AstRule { engine: string target?: string + label?: string min?: number max?: number message: string @@ -111,9 +112,17 @@ function updateRules(lang: string, rules: AstRule[]) { emit("update:modelValue", Object.keys(current).length > 0 ? current : null) } +function getTargetLabel(engine: string, target: string): string | undefined { + if (isNodeEngine(engine)) + return (NODE_TARGET_OPTIONS.find((o) => o.value === target) as any)?.label + if (isOperatorEngine(engine)) + return (OPERATOR_TARGET_OPTIONS.find((o) => o.value === target) as any)?.label + return undefined +} + function addRule(lang: string) { const rules = [...getRulesForLang(lang)] - rules.push({ engine: "must_exist_node", target: "for_loop", message: "" }) + rules.push({ engine: "must_exist_node", target: "for_loop", label: "for 循环", message: "" }) updateRules(lang, rules) } @@ -129,13 +138,16 @@ function updateRule(lang: string, index: number, field: string, value: any) { if (field === "engine") { rule.engine = value - if (isNodeEngine(value)) rule.target = "for_loop" - else if (isOperatorEngine(value)) rule.target = "+" - else rule.target = "" + if (isNodeEngine(value)) { rule.target = "for_loop"; rule.label = "for 循环" } + else if (isOperatorEngine(value)) { rule.target = "+"; rule.label = "+" } + else { rule.target = ""; delete rule.label } delete rule.min delete rule.max } else if (field === "target") { rule.target = value + const lbl = getTargetLabel(rule.engine, value) + if (lbl) rule.label = lbl + else delete rule.label } else if (field === "min") { if (value === null || value === undefined) delete rule.min else rule.min = value