diff --git a/src/component/Canvas/CanvasEditor/commands/LayerCommands.js b/src/component/Canvas/CanvasEditor/commands/LayerCommands.js index 339fe361..88f9afb1 100644 --- a/src/component/Canvas/CanvasEditor/commands/LayerCommands.js +++ b/src/component/Canvas/CanvasEditor/commands/LayerCommands.js @@ -280,8 +280,13 @@ export class PasteLayerCommand extends Command { isCut: undefined, serializedObjects: undefined, }; - - if (this.insertIndex !== undefined && this.insertIndex !== null) { + if(this.newLayer.isPrintTrims){ + this.layers.value.forEach((layer) => { + if (layer.isPrintTrimsGroup) { + layer.children.push(this.newLayer); + } + }) + }else if (this.insertIndex !== undefined && this.insertIndex !== null) { this.layers.value.splice(this.insertIndex, 0, this.newLayer); } else { this.layers.value.push(this.newLayer); diff --git a/src/component/Canvas/CanvasEditor/managers/CanvasManager.js b/src/component/Canvas/CanvasEditor/managers/CanvasManager.js index d203608b..f9e4e2b7 100644 --- a/src/component/Canvas/CanvasEditor/managers/CanvasManager.js +++ b/src/component/Canvas/CanvasEditor/managers/CanvasManager.js @@ -870,9 +870,9 @@ backgroundObject.scaleY,'CanvasManager resetCanvasSizeByFixedLayer') return layerObjectByLayerId; } - getObjectsByIds(ids){ + getObjectsByIdOrLayerId(ids){ const objects = this.canvas.getObjects().filter((obj) => { - return ids.includes(obj.id); + return ids.includes(obj.id) || ids.includes(obj.layerId); }); return objects; } @@ -1149,7 +1149,7 @@ backgroundObject.scaleY,'CanvasManager resetCanvasSizeByFixedLayer') const glayer = this.layerManager.getLayerById(SpecialLayerId.SPECIAL_GROUP); if(!glayer) return Promise.reject("印花和元素图层组不存在"); const ids = glayer.children.map((v) => v.id); - const objects = this.getObjectsByIds(ids); + const objects = this.getObjectsByIdOrLayerId(ids); const fixedLayerObj = this.getFixedLayerObject(); if(!fixedLayerObj) return Promise.reject("固定图层不存在"); const flWidth = fixedLayerObj.width @@ -1161,7 +1161,8 @@ backgroundObject.scaleY,'CanvasManager resetCanvasSizeByFixedLayer') const prints = []; const trims = []; objects.forEach((v) => { - const sourceData = glayer.children.find((v_) => v_.id === v.id)?.metadata?.sourceData; + const label = glayer.children.find((v_) => (v_.id === v.layerId || v_.id === v.id)); + const sourceData = label?.metadata?.sourceData; if(!sourceData) return; const obj = { ifSingle: typeof v.fill === "string", diff --git a/src/component/Canvas/CanvasEditor/managers/LayerManager.js b/src/component/Canvas/CanvasEditor/managers/LayerManager.js index 4b23403f..b0935346 100644 --- a/src/component/Canvas/CanvasEditor/managers/LayerManager.js +++ b/src/component/Canvas/CanvasEditor/managers/LayerManager.js @@ -1750,7 +1750,7 @@ export class LayerManager { layer.serializedObjects = layer.fabricObjects .map((obj) => { if (typeof obj.toObject === "function") { - return obj.toObject(["id", "layerId", "layerName"]); + return obj.toObject(["id", "layerId", "layerName", "fill_"]); } return null; }) @@ -1763,7 +1763,7 @@ export class LayerManager { if (layer.fabricObject) { layer.serializedBackgroundObject = typeof layer.fabricObject.toObject === "function" - ? layer.fabricObject.toObject(["id", "layerId", "layerName"]) + ? layer.fabricObject.toObject(["id", "layerId", "layerName", "fill_"]) : null; delete layer.fabricObject; @@ -1793,7 +1793,7 @@ export class LayerManager { return layer.fabricObjects .map((obj) => { const { object } = findObjectById(this.canvas, obj.id); - if (object) return object.toObject(["id", "layerId", "layerName"]); + if (object) return object.toObject(["id", "layerId", "layerName", "fill_"]); return false; }) .filter(Boolean); @@ -1839,6 +1839,7 @@ export class LayerManager { // 存储到剪贴板 this.clipboardData = layerCopy; + console.log("复制图层:", layerCopy); const input = document.createElement("input"); input.value = "aida_copy_canvas_layer: " + layer.name; document.body.appendChild(input); @@ -1884,7 +1885,7 @@ export class LayerManager { layerCopy.serializedObjects = layer.fabricObjects .map((obj) => typeof obj.toObject === "function" - ? obj.toObject(["id", "layerId", "layerName"]) + ? obj.toObject(["id", "layerId", "layerName", "fill_"]) : null ) .filter(Boolean); @@ -1935,10 +1936,6 @@ export class LayerManager { return this.clipboardData; } - /** - * 粘贴图层 - * @returns {string} 新创建的图层ID - */ /** * 粘贴图层 * @returns {string} 新创建的图层ID