This commit is contained in:
李志鹏
2026-01-30 14:52:10 +08:00
parent 0e0eed2566
commit 811e179889
2 changed files with 14 additions and 3 deletions

View File

@@ -1468,9 +1468,12 @@ backgroundObject.scaleY,'CanvasManager resetCanvasSizeByFixedLayer')
}
/** 修复JSON数据中的ID丢失问题 */
FixJsonIdLoss(json){
const layerIds = [];
const layers = json?.layers || [];
const objects = json?.canvas?.objects || [];
layers.forEach((layer) => {
layerIds.push(layer.id);
layer.children?.forEach((child) => layerIds.push(child.id));
if(!layer.fabricObjects?.[0]?.id && !layer.fabricObject?.id){
const obj = objects?.find((o) => o.layerId === layer.id);
if(obj) {
@@ -1488,7 +1491,15 @@ backgroundObject.scaleY,'CanvasManager resetCanvasSizeByFixedLayer')
})
// 排除的对象id
const excludedObjects = [SpecialLayerId.PART_SELECTOR];
json.canvas.objects = objects.filter((v) => !excludedObjects.includes(v.id));
json.canvas.objects = objects.filter((v) => {
// 指定ID排除
if(excludedObjects.includes(v.id)) return false;
if(v.isBackground || v.isFixed) return true;
// 当前图层不存在当前对象
if(!layerIds.includes(v.layerId)) return false;
return true
});
}

View File

@@ -1961,13 +1961,13 @@ export class LayerManager {
if (this.commandManager) {
// 使用命令管理器执行命令
const result = await this.commandManager.execute(command);
// this.clipboardData = null; // 清空剪贴板数据 复制一次
this.clipboardData = null; // 清空剪贴板数据 复制一次
// 执行命令
return result;
}
const result = await command.execute();
// this.clipboardData = null; // 清空剪贴板数据 复制一次就清空,避免重复粘贴 出现 错误后也清空 总之就是清空 不用给自己找麻烦
this.clipboardData = null; // 清空剪贴板数据 复制一次就清空,避免重复粘贴 出现 错误后也清空 总之就是清空 不用给自己找麻烦
// 执行命令
return result;
}