From 76e80c9d175c2215de910d822156f0f857b2a589 Mon Sep 17 00:00:00 2001 From: Cmen <1176967590@qq.com> Date: Sat, 12 Mar 2022 11:31:17 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E9=80=89=E4=B8=AD=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/images/marker2.png | Bin 0 -> 4471 bytes src/map/MapEditor.ts | 6 +++++- src/store/actions/index.ts | 11 +++++++---- 3 files changed, 12 insertions(+), 5 deletions(-) create mode 100644 public/images/marker2.png diff --git a/public/images/marker2.png b/public/images/marker2.png new file mode 100644 index 0000000000000000000000000000000000000000..abb8c1c8d8b78fa1ed9c94cf778108b4870ddec7 GIT binary patch literal 4471 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 JPDHLkV1h=9gi-(i literal 0 HcmV?d00001 diff --git a/src/map/MapEditor.ts b/src/map/MapEditor.ts index 035b7bf..3b4c49b 100644 --- a/src/map/MapEditor.ts +++ b/src/map/MapEditor.ts @@ -268,7 +268,11 @@ export class MapEditor extends Emitter implements IMapEditor { _updateOverlayProps(id: string, selected = false) { const { type, target } = this.getOverlay(id); if (type === OverlayTypes.Point) { - target.setOptions({ draggable: selected }); + const marker = target as AMap.Marker; + marker.setOptions({ + draggable: selected, + }); + marker.setIcon(`/images/marker${selected ? "2" : ""}.png`); } else { target.setOptions(selected ? SelectedOptions : getOverlayOptions(type)); } diff --git a/src/store/actions/index.ts b/src/store/actions/index.ts index 001c9f3..5ba1fdf 100644 --- a/src/store/actions/index.ts +++ b/src/store/actions/index.ts @@ -52,7 +52,8 @@ export class EditorAction { // 创建覆盖物结束 this.mapEditor.on(EventTypes.FinishEditOverlay, (overlay: IOverlay) => { this.dispatch(StoreAction.finishEditOverlay(overlay)); - this.selectOverlay(overlay.id); + // 创建或者编辑结束继续选中, 编辑选中保留不取消选中 + this.selectOverlay(overlay.id, false); }); } @@ -96,11 +97,13 @@ export class EditorAction { }); } - selectOverlay(id: string) { + selectOverlay(id: string, reset = true) { const { selectedIds } = this.store.getState(); if (selectedIds.indexOf(id) >= 0) { - this.mapEditor?.selectOverlays(); - this.dispatch(StoreAction.selectOverlay()); + if (reset) { + this.mapEditor?.selectOverlays(); + this.dispatch(StoreAction.selectOverlay()); + } } else { this.mapEditor?.selectOverlays([id]); this.dispatch(StoreAction.selectOverlay(id));