feat: 添加场景头部信息字段,优化场景数据保存逻辑

This commit is contained in:
xudan 2025-06-22 00:47:28 +08:00
parent 88f258a985
commit 8831b13bdf
2 changed files with 14 additions and 1 deletions

View File

@ -25,6 +25,10 @@ export interface StandardScene {
routes?: Array<StandardSceneRoute>; // 标准线路信息
areas?: Array<StandardSceneArea>; // 标准区域信息
blocks?: Array<[number, number]>; // 障碍点集合
header?: {
width: number;
height: number;
}; // 场景头部信息
}
export interface StandardScenePoint {
id: string;

View File

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