From efd67911c905fd337f767a483fee65d394a5bcce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BE=B7=E5=AE=87?= Date: Fri, 4 Sep 2026 18:06:03 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E5=8F=96=E5=B7=A5=E4=BD=9C=E6=B5=81?= =?UTF-8?q?=E5=AE=8C=E6=88=90=E7=8A=B6=E6=80=81=E4=B8=8A=E6=8A=A5=E9=80=BB?= =?UTF-8?q?=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 统一成功与失败分支的提示拼接、状态更新和终态通知 保持三个工作流步骤现有消息与状态行为不变 --- .../src/view/ui-editor/useUiEditorPage.ts | 77 +++++++++---------- 1 file changed, 35 insertions(+), 42 deletions(-) diff --git a/apps/ai-game-creator-shell/src/view/ui-editor/useUiEditorPage.ts b/apps/ai-game-creator-shell/src/view/ui-editor/useUiEditorPage.ts index 6a7eefab2..2263bedc6 100644 --- a/apps/ai-game-creator-shell/src/view/ui-editor/useUiEditorPage.ts +++ b/apps/ai-game-creator-shell/src/view/ui-editor/useUiEditorPage.ts @@ -258,6 +258,17 @@ export function useUiEditorSession( const [completionNotice, setCompletionNotice] = useState(null); + function reportWorkflowCompletion( + step: UiEditorStepId, + outcome: WorkflowCompletionNotice['outcome'], + rawMessage: string, + setStatus: (message: string) => void, + ) { + const message = appendWorkflowCheckPrompt(rawMessage); + setStatus(message); + setCompletionNotice({ step, outcome, message }); + } + useEffect(() => { setActiveStep(initialStep); setFurthestStepIndex(normalizedInitialFurthestStepIndex); @@ -974,26 +985,20 @@ export function useUiEditorSession( ); editor.replaceState(applyUiDesignSuggestions(snapshot, suggestions)); setHasSuggested(true); - const message = appendWorkflowCheckPrompt( + reportWorkflowCompletion( + 'reference-analysis', + 'success', `参考图分析完成:已应用 ${suggestions.length} 条参考图语义建议`, + setSuggestionStatus, ); - setSuggestionStatus(message); - setCompletionNotice({ - step: 'reference-analysis', - outcome: 'success', - message, - }); }); } catch (cause) { - const message = appendWorkflowCheckPrompt( + reportWorkflowCompletion( + 'reference-analysis', + 'failure', cause instanceof Error ? cause.message : String(cause), + setSuggestionStatus, ); - setSuggestionStatus(message); - setCompletionNotice({ - step: 'reference-analysis', - outcome: 'failure', - message, - }); } finally { setIsSuggesting(false); } @@ -1018,26 +1023,20 @@ export function useUiEditorSession( nextState.ui_trees, 'layout_status', ); - const message = appendWorkflowCheckPrompt( + reportWorkflowCompletion( + 'structure-recognition', + 'success', `界面结构识别完成:已替换 ${result.ui_trees.length} 棵界面树,待检查 ${overview.needsAttention} 项(必须修复 ${overview.blocked} 项)`, + setRecognitionStatus, ); - setRecognitionStatus(message); - setCompletionNotice({ - step: 'structure-recognition', - outcome: 'success', - message, - }); }); } catch (cause) { - const message = appendWorkflowCheckPrompt( + reportWorkflowCompletion( + 'structure-recognition', + 'failure', cause instanceof Error ? cause.message : String(cause), + setRecognitionStatus, ); - setRecognitionStatus(message); - setCompletionNotice({ - step: 'structure-recognition', - outcome: 'failure', - message, - }); } finally { setIsRecognizing(false); } @@ -1092,27 +1091,21 @@ export function useUiEditorSession( history: index < batches.length - 1 ? 'skip' : 'record', }); } - const message = appendWorkflowCheckPrompt( + reportWorkflowCompletion( + 'visual-binding', + 'success', `视觉素材绑定完成:已处理 ${batches.length}/${batches.length} 个批次`, + setBindingStatus, ); - setBindingStatus(message); setHasBound(true); - setCompletionNotice({ - step: 'visual-binding', - outcome: 'success', - message, - }); }); } catch (cause) { - const message = appendWorkflowCheckPrompt( + reportWorkflowCompletion( + 'visual-binding', + 'failure', cause instanceof Error ? cause.message : String(cause), + setBindingStatus, ); - setBindingStatus(message); - setCompletionNotice({ - step: 'visual-binding', - outcome: 'failure', - message, - }); } finally { setIsBinding(false); }