diff --git a/src/apis/scene/type.ts b/src/apis/scene/type.ts index b4bc47d..ab8a604 100644 --- a/src/apis/scene/type.ts +++ b/src/apis/scene/type.ts @@ -25,6 +25,10 @@ export interface StandardScene { routes?: Array; // 标准线路信息 areas?: Array; // 标准区域信息 blocks?: Array<[number, number]>; // 障碍点集合 + header?: { + width: number; + height: number; + }; // 场景头部信息 } export interface StandardScenePoint { id: string; diff --git a/src/services/editor.service.ts b/src/services/editor.service.ts index e8986f5..33c03e3 100644 --- a/src/services/editor.service.ts +++ b/src/services/editor.service.ts @@ -52,7 +52,11 @@ export class EditorService extends Meta2d { scene.robotGroups = [detail.group]; scene.robots = detail.robots; } - const { robotGroups, robots, points, routes, areas } = scene; + const { robotGroups, robots, points, routes, areas, header } = scene; + + // 保存header字段 + this.#originalSceneData = { header }; + this.open(); this.setState(editable); this.#loadRobots(robotGroups, robots); @@ -74,7 +78,9 @@ export class EditorService extends Meta2d { routes: this.routes.value.map((v) => this.#mapSceneRoute(v)).filter((v) => !isNil(v)), areas: this.areas.value.map((v) => this.#mapSceneArea(v)).filter((v) => !isNil(v)), blocks: [], + header: this.#originalSceneData?.header, // 保留header字段 }; + return JSON.stringify(scene); } @@ -365,6 +371,9 @@ export class EditorService extends Meta2d { } //#endregion + /** 保存header字段 */ + #originalSceneData?: { header?: { width: number; height: number } }; + /** 画布变化事件流,用于触发响应式数据更新 */ readonly #change$$ = new Subject();