From d84f4074f8771a5f9a7d2965ae0c72dc7516bfb6 Mon Sep 17 00:00:00 2001 From: lintsinghua Date: Tue, 9 Dec 2025 23:27:53 +0800 Subject: [PATCH] feat(audit): auto-select default rule sets and prompt templates MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Auto-select default rule set on dialog load, fallback to first item if no default exists - Auto-select default prompt template on dialog load, fallback to first item if no default exists - Remove empty option from rule set and prompt template selectors - Update placeholder text from "默认规则" to "选择规则集" and "默认提示词" to "选择提示词模板" - Add visual indicator "(默认)" badge to default items in dropdown lists - Update label text from "提示词" to "提示词模板" for clarity - Add ruleSets and promptTemplates to useEffect dependency array to maintain default selections on dialog reopen - Improve UX by ensuring users always have a valid selection without manual intervention --- .../src/components/audit/CreateTaskDialog.tsx | 35 +++++++++++++------ 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/frontend/src/components/audit/CreateTaskDialog.tsx b/frontend/src/components/audit/CreateTaskDialog.tsx index 2a0e69b..99c9834 100644 --- a/frontend/src/components/audit/CreateTaskDialog.tsx +++ b/frontend/src/components/audit/CreateTaskDialog.tsx @@ -146,6 +146,20 @@ export default function CreateTaskDialog({ ]); setRuleSets(rulesRes.items); setPromptTemplates(promptsRes.items); + // 自动选中默认规则集 + const defaultRuleSet = rulesRes.items.find((r: AuditRuleSet) => r.is_default); + if (defaultRuleSet) { + setSelectedRuleSetId(defaultRuleSet.id); + } else if (rulesRes.items.length > 0) { + setSelectedRuleSetId(rulesRes.items[0].id); + } + // 自动选中默认提示词模板 + const defaultPrompt = promptsRes.items.find((p: PromptTemplate) => p.is_default); + if (defaultPrompt) { + setSelectedPromptTemplateId(defaultPrompt.id); + } else if (promptsRes.items.length > 0) { + setSelectedPromptTemplateId(promptsRes.items[0].id); + } } catch (error) { console.error("加载规则集和提示词失败:", error); } @@ -161,11 +175,14 @@ export default function CreateTaskDialog({ } setSearchTerm(""); setShowAdvanced(false); - setSelectedRuleSetId(""); - setSelectedPromptTemplateId(""); + // 重新加载时保持默认选中 + const defaultRuleSet = ruleSets.find(r => r.is_default); + setSelectedRuleSetId(defaultRuleSet?.id || ruleSets[0]?.id || ""); + const defaultPrompt = promptTemplates.find(p => p.is_default); + setSelectedPromptTemplateId(defaultPrompt?.id || promptTemplates[0]?.id || ""); zipState.reset(); } - }, [open, preselectedProjectId]); + }, [open, preselectedProjectId, ruleSets, promptTemplates]); @@ -380,29 +397,27 @@ export default function CreateTaskDialog({
- +