From b977242dc786b691644ea2e57b84fc635386a18c Mon Sep 17 00:00:00 2001 From: Your Name Date: Tue, 17 Mar 2026 20:52:44 +0800 Subject: [PATCH] feat: show workflow material picker in mode stage --- app/canvas/[id]/page.tsx | 42 +++-- components/agents/AgentPresetPanel.tsx | 150 +++++++++++++++++- .../agents/AgentWorkflowMaterialPicker.tsx | 28 +++- .../AgentWorkflowMaterialSelectionPanel.tsx | 8 + components/canvas/CanvasChatPanel.tsx | 34 ---- 5 files changed, 205 insertions(+), 57 deletions(-) diff --git a/app/canvas/[id]/page.tsx b/app/canvas/[id]/page.tsx index f7a446b63..4944316e0 100644 --- a/app/canvas/[id]/page.tsx +++ b/app/canvas/[id]/page.tsx @@ -62,6 +62,7 @@ import { AgentWorkflowPanel, type AgentWorkflowInputs, } from "@/components/agents/AgentWorkflowPanel"; +import { AgentWorkflowMaterialSelectionPanel } from "@/components/agents/AgentWorkflowMaterialSelectionPanel"; import { AgentPresetPanel } from "@/components/agents/AgentPresetPanel"; import { CanvasWorkspace } from "@/components/canvas"; import { CanvasChatPanel } from "@/components/canvas/CanvasChatPanel"; @@ -966,7 +967,7 @@ export default function CanvasEditorPage({ params }: PageProps) { 生图模式
- 先选择生图模式,右侧再搜索 SKU / SPU 选图,并自动进入对应图片槽位。 + 先在本页选择生图模式,再使用上方 SKU / SPU 取图,右侧会自动进入对应图片槽位。
第 2 步 / 2 步 @@ -988,17 +989,30 @@ export default function CanvasEditorPage({ params }: PageProps) {
) : null} -
- +
+
+ + +
@@ -1014,10 +1028,6 @@ export default function CanvasEditorPage({ params }: PageProps) { selectedAgentPresetId={isAgentFeatureEnabled ? selectedAgentPresetId : null} chatScope="agent" workflowContext={workflowContext} - workflowInputs={workflowInputs} - onWorkflowInputsChange={setWorkflowInputs} - workflowMaterials={workflowMaterials} - onWorkflowMaterialsChange={setWorkflowMaterials} /> diff --git a/components/agents/AgentPresetPanel.tsx b/components/agents/AgentPresetPanel.tsx index 57070aff5..ad93118db 100644 --- a/components/agents/AgentPresetPanel.tsx +++ b/components/agents/AgentPresetPanel.tsx @@ -25,6 +25,7 @@ interface AgentPresetPanelProps { selectedPresetId?: string | null; onSelectPreset: (presetId: string | null) => void; embedded?: boolean; + layout?: "fill" | "inline"; title?: string; description?: string; searchPlaceholder?: string; @@ -36,6 +37,7 @@ export function AgentPresetPanel({ selectedPresetId, onSelectPreset, embedded = false, + layout = "fill", title = "智能体", description = "选择智能体后,右侧对话框会按其要求显示上传槽位", searchPlaceholder = "搜索智能体", @@ -164,7 +166,8 @@ export function AgentPresetPanel({ <>
@@ -191,7 +194,148 @@ export function AgentPresetPanel({ />
- + {layout === "fill" ? ( + +
+
+
+
{publicTitle}
+
+ + + + +
+
+ {isLoading ? ( +
+ +
+ ) : filteredPublicPresets.length > 0 ? ( +
+ {filteredPublicPresets.map((preset) => ( + + ))} +
+ ) : ( +
+ 暂无公共智能体 +
+ )} +
+ +
+
{privateTitle}
+ {isLoading ? null : filteredPrivatePresets.length > 0 ? ( +
+ {filteredPrivatePresets.map((preset) => ( + + ))} +
+ ) : ( +
+ 还没有私有智能体,先新建一个吧 +
+ )} +
+
+
+ ) : (
@@ -330,7 +474,7 @@ export function AgentPresetPanel({ )}
-
+ )} onValueChange(event.target.value)} placeholder={placeholder} + disabled={disabled} onKeyDown={(event) => { if (event.key === "Enter") { event.preventDefault(); + if (disabled) return; onSearch(); } }} /> -