From 3f179a607a22b3adac639c406f9e86c064429ac9 Mon Sep 17 00:00:00 2001 From: HouYunFei <1844025705@qq.com> Date: Thu, 16 Jul 2026 13:21:25 +0800 Subject: [PATCH] feat(panorama): enhance 3D panorama node with AI generation support and unified interaction toggle --- CHANGELOG.md | 5 +- plugins/canvas/html/package.json | 2 +- plugins/canvas/html/src/index.tsx | 32 +- plugins/canvas/panorama/package.json | 2 +- plugins/canvas/panorama/src/index.tsx | 355 +++++++++++++----- plugins/canvas/sdk/src/types.ts | 90 ++++- .../canvas/canvas-node-prompt-panel.tsx | 5 +- web/src/components/canvas/canvas-node.tsx | 6 + web/src/lib/canvas/plugin-node-context.ts | 3 + web/src/pages/canvas/project.tsx | 125 +++++- web/src/types/canvas-plugin.ts | 41 ++ web/src/types/canvas.ts | 1 + 12 files changed, 547 insertions(+), 120 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c060bff..53c9c70 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,10 @@ ## Unreleased -+ [优化] 优化节点插件SDK及HTML节点插件交互。 ++ [新增] 插件 SDK 扩展:AI 生成能力、面板控制能力。 ++ [优化] 3D 全景(1.1.0)支持上传与 AI 生成并升级查看器; ++ [优化] HTML 节点(1.2.0)迁移到统一交互开关; ++ [修复] 修复插件版本号显示不更新,插件面板新增可升级绿点提醒。 ## v0.8.0 - 2026-07-15 diff --git a/plugins/canvas/html/package.json b/plugins/canvas/html/package.json index 89f1f9e..ada8929 100644 --- a/plugins/canvas/html/package.json +++ b/plugins/canvas/html/package.json @@ -1,6 +1,6 @@ { "name": "canvas-plugin-html", - "version": "1.1.0", + "version": "1.2.0", "private": true, "type": "module", "description": "Infinite Canvas HTML 节点插件", diff --git a/plugins/canvas/html/src/index.tsx b/plugins/canvas/html/src/index.tsx index 1700511..7abd5ac 100644 --- a/plugins/canvas/html/src/index.tsx +++ b/plugins/canvas/html/src/index.tsx @@ -62,7 +62,6 @@ function HtmlEditor({ ctx, value }: { ctx: CanvasNodeContentProps["ctx"]; value: function HtmlContent({ ctx }: CanvasNodeContentProps) { const value = ctx.node.metadata?.content || ""; const editing = Boolean(ctx.node.metadata?.editing); - const interactive = Boolean(ctx.node.metadata?.interactive); const upstreamText = useMemo( () => ctx @@ -87,15 +86,15 @@ function HtmlContent({ ctx }: CanvasNodeContentProps) { ); } - // 预览态:iframe 仅在「节点已选中 + 开启交互」时接收鼠标;否则穿透,保证首次点击能选中节点、弹出工具条。 - const liveIframe = interactive && ctx.isSelected; + // 预览态:iframe 的鼠标交互由宿主「交互 ⇄ 移动」开关统一控制(见 interactionToggle), + // 这里无需再手动做 pointer-events 穿透。data-canvas-no-zoom 保证交互时滚动作用于页面而非缩放画布。 return ( -
+