From b238a26e852eabcaae2bf5498729d9c2ca21d828 Mon Sep 17 00:00:00 2001 From: Your Name Date: Sun, 18 Jan 2026 15:39:34 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=9C=BA=E6=99=AF=E8=A3=82=E5=8F=98?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E4=BF=9D=E7=95=99=E9=A1=B6=E9=83=A8=E5=B7=A5?= =?UTF-8?q?=E5=85=B7=E6=A0=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 修改 ImageAnnotator 布局,使顶部工具栏在场景裂变模式下始终可见 - 将 SceneFusionView 嵌入到工具栏下方的工作区 - 隐藏 SceneFusionView 自带的顶部标题栏 - 优化场景裂变按钮的交互逻辑 --- components/image-annotator.tsx | 80 ++++++++++++++++++-------------- components/scene-fusion-view.tsx | 6 ++- 2 files changed, 50 insertions(+), 36 deletions(-) diff --git a/components/image-annotator.tsx b/components/image-annotator.tsx index 4ad2de11d..988e8df24 100644 --- a/components/image-annotator.tsx +++ b/components/image-annotator.tsx @@ -1216,15 +1216,7 @@ export function ImageAnnotator({ imageUrl, onConfirm, onCancel, initialResizeMod className="fixed inset-0 z-[9999] flex items-center justify-center bg-background" onClick={onCancel} > - {showSceneFusion ? ( -
e.stopPropagation()} - > - setShowSceneFusion(false)} /> -
- ) : ( - /* 弹窗容器 - 全屏显示 */ + {/* 弹窗容器 - 全屏显示 */}
e.stopPropagation()} @@ -1254,7 +1246,7 @@ export function ImageAnnotator({ imageUrl, onConfirm, onCancel, initialResizeMod variant="ghost" size="sm" onClick={handleRemoveBackground} - disabled={isRemovingBg || isEnhancing || isExtending || isResizeMode || showAngleEditDialog || !image} + disabled={isRemovingBg || isEnhancing || isExtending || isResizeMode || showAngleEditDialog || showSceneFusion || !image} title="移除背景(抠图)" > @@ -1264,7 +1256,7 @@ export function ImageAnnotator({ imageUrl, onConfirm, onCancel, initialResizeMod variant="ghost" size="sm" onClick={handleEnhance} - disabled={isEnhancing || isRemovingBg || isExtending || isResizeMode || showAngleEditDialog || !image} + disabled={isEnhancing || isRemovingBg || isExtending || isResizeMode || showAngleEditDialog || showSceneFusion || !image} title="图片变清晰" > @@ -1274,7 +1266,7 @@ export function ImageAnnotator({ imageUrl, onConfirm, onCancel, initialResizeMod variant="ghost" size="sm" onClick={handleExtend} - disabled={isExtending || isRemovingBg || isEnhancing || isResizeMode || showAngleEditDialog || !image} + disabled={isExtending || isRemovingBg || isEnhancing || isResizeMode || showAngleEditDialog || showSceneFusion || !image} title="图像拓展" > @@ -1284,7 +1276,7 @@ export function ImageAnnotator({ imageUrl, onConfirm, onCancel, initialResizeMod variant="ghost" size="sm" onClick={handleResize} - disabled={isResizeMode || isRemovingBg || isEnhancing || isExtending || showAngleEditDialog || !image} + disabled={isResizeMode || isRemovingBg || isEnhancing || isExtending || showAngleEditDialog || showSceneFusion || !image} title="尺寸调整" > @@ -1294,45 +1286,64 @@ export function ImageAnnotator({ imageUrl, onConfirm, onCancel, initialResizeMod variant="ghost" size="sm" onClick={handleAngleEdit} - disabled={showAngleEditDialog || isRemovingBg || isEnhancing || isExtending || isResizeMode || !image} + disabled={showAngleEditDialog || isRemovingBg || isEnhancing || isExtending || isResizeMode || showSceneFusion || !image} title="角度调整" > 角度调整 - - + {!showSceneFusion && ( + <> + + + + )} - + {!showSceneFusion && ( + + )}
- {/* 工具选择栏 / 尺寸调整工具栏 */} - {isResizeMode ? ( - /* 尺寸调整模式下显示尺寸调整工具栏 */ -
+ {showSceneFusion ? ( +
+ setShowSceneFusion(false)} /> +
+ ) : ( + <> + {/* 工具选择栏 / 尺寸调整工具栏 */} + {isResizeMode ? ( + /* 尺寸调整模式下显示尺寸调整工具栏 */ +
{/* 比例选择和尺寸输入在同一行 */}
{/* 比例选择 */} @@ -1708,8 +1719,9 @@ export function ImageAnnotator({ imageUrl, onConfirm, onCancel, initialResizeMod )}
+ + )}
- )} {/* 文字输入弹窗 */} {textPosition && ( diff --git a/components/scene-fusion-view.tsx b/components/scene-fusion-view.tsx index 29a4e4575..516672056 100644 --- a/components/scene-fusion-view.tsx +++ b/components/scene-fusion-view.tsx @@ -304,7 +304,8 @@ export function SceneFusionView({ onBack }: SceneFusionViewProps) { return (
- {/* 顶部标题栏 */} + {/* 顶部标题栏 - 已在外部显示,此处隐藏 */ + /*
+ */}
{/* 左侧:输入区域 */}