diff --git a/src/services/editor.service.ts b/src/services/editor.service.ts index 2af6310..263532e 100644 --- a/src/services/editor.service.ts +++ b/src/services/editor.service.ts @@ -11,6 +11,7 @@ import { type Point, type Rect, } from '@api/map'; +import { DOOR_AREA_TYPE } from '@api/map/door-area'; import type { RobotGroup, RobotInfo, RobotLabel } from '@api/robot'; import type { GroupSceneDetail, @@ -1291,6 +1292,26 @@ export class EditorService extends Meta2d { case 'point': this.delete(this.getLines(pen), true, false); break; + case 'area': + // 删除门区域时,清空绑定路段的设备ID + if (pen.area?.type === DOOR_AREA_TYPE && pen.area?.routes) { + pen.area.routes.forEach((routeId: string) => { + const routePen = this.getPenById(routeId) as MapPen | undefined; + if (routePen?.route?.deviceId) { + // 清空路段的设备ID + const updatedRoute = { ...routePen.route }; + delete updatedRoute.deviceId; + this.setValue( + { + id: routeId, + route: updatedRoute + }, + { render: true, history: true, doEvent: false } + ); + } + }); + } + break; default: break; }