From dc9f3d4a4f4415f198108d4673361a6ba4f5bcd3 Mon Sep 17 00:00:00 2001 From: bighuixiang <472705331@qq.com> Date: Thu, 24 Jul 2025 21:45:47 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BC=98=E5=8C=96=E6=A0=85=E6=A0=BC?= =?UTF-8?q?=E5=8C=96=E5=91=BD=E4=BB=A4=EF=BC=8C=E6=94=AF=E6=8C=81=E7=88=B6?= =?UTF-8?q?=E5=9B=BE=E5=B1=82=E5=8F=8A=E5=85=B6=E5=AD=90=E5=9B=BE=E5=B1=82?= =?UTF-8?q?=E7=9A=84=E6=A0=85=E6=A0=BC=E5=8C=96=EF=BC=8C=E5=B9=B6=E6=94=B9?= =?UTF-8?q?=E8=BF=9B=E5=8A=A0=E8=BD=BD=E6=8F=90=E7=A4=BA=E7=9A=84=E7=AE=A1?= =?UTF-8?q?=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../commands/RasterizeLayerCommand.js | 7 +++++ .../CanvasEditor/managers/ToolManager.js | 26 +++++++++---------- 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/src/component/Canvas/CanvasEditor/commands/RasterizeLayerCommand.js b/src/component/Canvas/CanvasEditor/commands/RasterizeLayerCommand.js index 6c58116e..d6869cac 100644 --- a/src/component/Canvas/CanvasEditor/commands/RasterizeLayerCommand.js +++ b/src/component/Canvas/CanvasEditor/commands/RasterizeLayerCommand.js @@ -45,6 +45,13 @@ export class RasterizeLayerCommand extends Command { ); this.layer = layer; this.parentLayer = parent; + + // 新增:如果有父图层,则栅格化父图层及其所有子图层 + if (this.parentLayer) { + this.layer = this.parentLayer; + this.layerId = this.parentLayer.id; + } + this.isGroupLayer = this.layer?.children && this.layer.children.length > 0; if (!this.layer) { diff --git a/src/component/Canvas/CanvasEditor/managers/ToolManager.js b/src/component/Canvas/CanvasEditor/managers/ToolManager.js index aa357dd6..baa16f93 100644 --- a/src/component/Canvas/CanvasEditor/managers/ToolManager.js +++ b/src/component/Canvas/CanvasEditor/managers/ToolManager.js @@ -795,18 +795,17 @@ export class ToolManager { */ async _rasterizeLayerForLiquify(layerId) { if (!this.commandManager || !this.layerManager) return; + // 显示加载Modal + const loadingModal = Modal.info({ + title: "正在栅格化", + content: "正在栅格化图层,请稍候...", + okButtonProps: { style: { display: "none" } }, + centered: true, + closable: false, + maskClosable: false, + }); try { - // 显示加载Modal - const loadingModal = Modal.info({ - title: "正在栅格化", - content: "正在栅格化图层,请稍候...", - okButtonProps: { style: { display: "none" } }, - centered: true, - closable: false, - maskClosable: false, - }); - // 创建栅格化命令 const rasterizeCommand = new RasterizeLayerCommand({ canvas: this.canvas, @@ -819,9 +818,6 @@ export class ToolManager { // 执行命令 const result = await this.commandManager.execute(rasterizeCommand); - // 关闭加载Modal - loadingModal.destroy(); - if (result) { // 栅格化成功,启动液化 message.success("图层已成功栅格化,可以进行液化操作"); @@ -837,12 +833,16 @@ export class ToolManager { } } catch (error) { console.error("栅格化图层失败:", error); + Modal.error({ title: "栅格化错误", content: `栅格化失败:${error.message}`, okText: "确定", centered: true, }); + } finally { + // 关闭加载Modal + loadingModal.destroy(); } }