From 60f523486f4e42d1fc6b56db4fc454c6cdee280e Mon Sep 17 00:00:00 2001 From: myjustify <1406023741@qq.com> Date: Fri, 2 Jun 2023 08:50:17 +0000 Subject: [PATCH 1/2] =?UTF-8?q?fix:=20polyline=20props=E5=8F=98=E6=88=90?= =?UTF-8?q?=E7=A9=BA=E6=95=B0=E7=BB=84=E6=97=B6=E6=89=8B=E5=8A=A8=E6=B8=85?= =?UTF-8?q?=E9=99=A4polyline?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/components/overlay/polyline/index.vue | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/components/overlay/polyline/index.vue b/packages/components/overlay/polyline/index.vue index 9f5f792e..cac8c921 100644 --- a/packages/components/overlay/polyline/index.vue +++ b/packages/components/overlay/polyline/index.vue @@ -133,7 +133,11 @@ watch( () => props.path, callWhenDifferentValue((n) => { - polyline ? setPath(n) : init() + polyline + ? n.length + ? setPath(n) + : map.removeOverlay(polyline) + : init() }), { deep: true From fe37570bbb91e879cdb5d8fbe4747a54a5a31d18 Mon Sep 17 00:00:00 2001 From: yue1123 <2572468699@qq.com> Date: Sat, 3 Jun 2023 22:20:49 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix:=20=E7=A9=BA=20path=20=E6=B8=85?= =?UTF-8?q?=E9=99=A4=E8=A6=86=E7=9B=96=E7=89=A9=E5=B9=B6=E7=BD=AE=E4=B8=BA?= =?UTF-8?q?=20null,=20=E4=B8=8B=E4=B8=80=E6=AC=A1=E4=B8=8D=E4=B8=BA?= =?UTF-8?q?=E7=A9=BA=E6=97=B6=E6=97=A0=E6=B3=95=E6=AD=A3=E7=A1=AE=E6=98=BE?= =?UTF-8?q?=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/overlay/polyline/index.vue | 36 +++++++++++-------- 1 file changed, 22 insertions(+), 14 deletions(-) diff --git a/packages/components/overlay/polyline/index.vue b/packages/components/overlay/polyline/index.vue index cac8c921..c551355c 100644 --- a/packages/components/overlay/polyline/index.vue +++ b/packages/components/overlay/polyline/index.vue @@ -92,8 +92,12 @@ 'lineupdate' ]) const { ready } = useLifeCycle() - let polyline: BMapGL.Polyline + let polyline: BMapGL.Polyline | null useBaseMapEffect((map: BMapGL.Map) => { + const clear = () => { + polyline && map.removeOverlay(polyline) + polyline = null + } const init = () => { if (!props.path || !props.path.length) return __DEV__ && warn('Polyline props path is required or not empty array') @@ -133,11 +137,11 @@ watch( () => props.path, callWhenDifferentValue((n) => { - polyline - ? n.length - ? setPath(n) - : map.removeOverlay(polyline) - : init() + if (polyline) { + n.length ? setPath(n) : clear() + } else { + init() + } }), { deep: true @@ -150,7 +154,7 @@ watch(() => props.enableMassClear, setMassClear) watch(() => props.enableEditing, setEditing) - return () => map.removeOverlay(polyline) + return clear }) provide('getOverlayInstance', () => polyline) @@ -160,26 +164,30 @@ } function setPath(path: Point[]) { - polyline.setPath(pathPointsToMapPoints(path)) + polyline && polyline.setPath(pathPointsToMapPoints(path)) } function setStrokeColor(color: string): void { - polyline.setStrokeColor(color) + polyline && polyline.setStrokeColor(color) } function setStrokeOpacity(opacity: number): void { - polyline.setStrokeOpacity(opacity) + polyline && polyline.setStrokeOpacity(opacity) } function setStrokeWeight(weight: number): void { - polyline.setStrokeWeight(weight) + polyline && polyline.setStrokeWeight(weight) } function setStrokeStyle(style: StrokeStyle): void { - polyline.setStrokeStyle(style) + polyline && polyline.setStrokeStyle(style) } function setMassClear(enableMassClear: boolean): void { - enableMassClear ? polyline!.enableMassClear() : polyline!.disableMassClear() + if (polyline) { + enableMassClear ? polyline!.enableMassClear() : polyline!.disableMassClear() + } } function setEditing(enableEditing: boolean): void { - enableEditing ? polyline!.enableEditing() : polyline!.disableEditing() + if (polyline) { + enableEditing ? polyline!.enableEditing() : polyline!.disableEditing() + } } defineOptions({ name: 'BPolyline'