画布问题更改

This commit is contained in:
李志鹏
2026-01-30 13:47:38 +08:00
parent 8f0a56965f
commit 62e7f34c98
3 changed files with 17 additions and 14 deletions

View File

@@ -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);

View File

@@ -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",

View File

@@ -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