From 8831b13bdf426f4bf2d476880cea47b097297e2b Mon Sep 17 00:00:00 2001 From: xudan Date: Sun, 22 Jun 2025 00:47:28 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E5=9C=BA=E6=99=AF?= =?UTF-8?q?=E5=A4=B4=E9=83=A8=E4=BF=A1=E6=81=AF=E5=AD=97=E6=AE=B5=EF=BC=8C?= =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=9C=BA=E6=99=AF=E6=95=B0=E6=8D=AE=E4=BF=9D?= =?UTF-8?q?=E5=AD=98=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/apis/scene/type.ts | 4 ++++ src/services/editor.service.ts | 11 ++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) 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();