diff --git a/src/component/Canvas/CanvasEditor/index.vue b/src/component/Canvas/CanvasEditor/index.vue index f08f38ad..80748145 100644 --- a/src/component/Canvas/CanvasEditor/index.vue +++ b/src/component/Canvas/CanvasEditor/index.vue @@ -509,9 +509,10 @@ onMounted(async () => { let trailingTimeout = null; observer = new ResizeObserver((entries) => { clearTimeout(trailingTimeout); - trailingTimeout = setTimeout(() => { - optimizeCanvasRendering(canvasManager.canvas, ()=> handleWindowResize()); - }, 1000); + trailingTimeout = setTimeout(async () => { + if(canvasManager.awaitCanvasRun) await canvasManager.awaitCanvasRun(); + handleWindowResize() + }, 100); }); observer.observe(canvasContainerRef.value); // 使用window的resize事件代替ResizeObserver diff --git a/src/component/Canvas/CanvasEditor/managers/CanvasManager.js b/src/component/Canvas/CanvasEditor/managers/CanvasManager.js index 07651777..312add1a 100644 --- a/src/component/Canvas/CanvasEditor/managers/CanvasManager.js +++ b/src/component/Canvas/CanvasEditor/managers/CanvasManager.js @@ -73,6 +73,7 @@ export class CanvasManager { this.partManager = options.partManager || null; this.props = options.props || {}; this.emit = options.emit || (() => {}); + this.awaitCanvasRun = null; // 初始化画布 this.initializeCanvas(); } @@ -1487,6 +1488,8 @@ backgroundObject.scaleY,'CanvasManager resetCanvasSizeByFixedLayer') */ async createOtherLayers(otherData, isUpdate = false) { if (!otherData) return console.warn("otherData 为空不需要添加"); + let resolve = ()=>{}; + this.awaitCanvasRun = ()=>(new Promise((v) => resolve = v)) const otherData_ = JSON.parse(JSON.stringify(otherData)); console.log("==========创建其他图层", otherData_); @@ -1534,6 +1537,8 @@ backgroundObject.scaleY,'CanvasManager resetCanvasSizeByFixedLayer') await this.createPrintTrimsLayers(printTrimsLayers, singleLayers); } await this.changeCanvas(); + console.log("==========创建其他图层成功"); + resolve(); } // 设置画布对象的裁剪信息