保存画布排除特殊图层
This commit is contained in:
@@ -1198,43 +1198,55 @@ export class CanvasManager {
|
||||
// this.canvas.discardActiveObject();
|
||||
this.canvas.renderAll();
|
||||
|
||||
|
||||
// 排除颜色图层和特殊组图层
|
||||
const excludedLayers = [SpecialLayerId.COLOR, SpecialLayerId.SPECIAL_GROUP];
|
||||
this.layers.value.forEach((layer) => {
|
||||
if(excludedLayers.includes(layer.id)){
|
||||
excludedLayers.push(...layer.children?.map((child) => child.id));
|
||||
}
|
||||
})
|
||||
|
||||
const canvas = this.canvas.toJSON([
|
||||
"id",
|
||||
"type",
|
||||
"layerId",
|
||||
"layerName",
|
||||
"isBackground",
|
||||
"isLocked",
|
||||
"isVisible",
|
||||
"isFixed",
|
||||
"parentId",
|
||||
"eraser",
|
||||
"eraserable",
|
||||
"erasable",
|
||||
"customType",
|
||||
"fill_",
|
||||
"scaleX",
|
||||
"scaleY",
|
||||
"top",
|
||||
"left",
|
||||
"width",
|
||||
"height",
|
||||
]);
|
||||
canvas.objects = canvas.objects.filter((v) => !excludedLayers.includes(v.layerId));
|
||||
|
||||
const simplifyLayersData = simplifyLayers(
|
||||
JSON.parse(JSON.stringify(this.layers.value))
|
||||
JSON.parse(JSON.stringify(this.layers.value)),
|
||||
excludedLayers
|
||||
);
|
||||
const data = JSON.stringify({
|
||||
canvas: this.canvas.toJSON([
|
||||
"id",
|
||||
"type",
|
||||
"layerId",
|
||||
"layerName",
|
||||
"isBackground",
|
||||
"isLocked",
|
||||
"isVisible",
|
||||
"isFixed",
|
||||
"parentId",
|
||||
"eraser",
|
||||
"eraserable",
|
||||
"erasable",
|
||||
"customType",
|
||||
"fill_",
|
||||
"scaleX",
|
||||
"scaleY",
|
||||
"top",
|
||||
"left",
|
||||
"width",
|
||||
"height",
|
||||
]),
|
||||
const data = {
|
||||
canvas,
|
||||
layers: simplifyLayersData, // 简化图层数据
|
||||
// layers: JSON.stringify(JSON.parse(JSON.stringify(this.layers.value))), // 全数据
|
||||
version: "1.0", // 添加版本信息
|
||||
timestamp: new Date().toISOString(), // 添加时间戳
|
||||
canvasWidth: this.canvasWidth.value,
|
||||
canvasHeight: this.canvasHeight.value,
|
||||
canvasColor: this.canvasColor.value,
|
||||
activeLayerId: this.layerManager?.activeLayerId?.value,
|
||||
});
|
||||
};
|
||||
console.log("获取画布JSON数据...", data);
|
||||
return data;
|
||||
return JSON.stringify(data);
|
||||
} catch (error) {
|
||||
console.error("获取画布JSON失败:", error);
|
||||
throw new Error("获取画布JSON失败");
|
||||
|
||||
Reference in New Issue
Block a user