From 16eb4bd55a4fd61ddd7a171b1a07378c45d1665b Mon Sep 17 00:00:00 2001 From: riku <risaku@163.com> Date: 星期四, 05 六月 2025 13:59:28 +0800 Subject: [PATCH] 动态溯源(待完成) --- src/components/scene/SceneTable.vue | 25 ++++++++++++++----------- 1 files changed, 14 insertions(+), 11 deletions(-) diff --git a/src/components/scene/SceneTable.vue b/src/components/scene/SceneTable.vue index a587167..2333209 100644 --- a/src/components/scene/SceneTable.vue +++ b/src/components/scene/SceneTable.vue @@ -49,7 +49,7 @@ </el-table> </template> <script setup> -import { ref, computed, watch } from 'vue'; +import { ref, computed, watch, onUnmounted } from 'vue'; import { sceneTypes, sceneIcon } from '@/constant/scene-types'; import MapUtil from '@/utils/map/util'; import marks from '@/utils/map/marks'; @@ -86,14 +86,15 @@ } }); +onUnmounted(() => { + removeLayer(); +}); + watch(showSceneList, (nV, oV) => { if (nV && props.showMarks) { drawMarks(nV); } else { - if (layer != undefined) { - MapUtil.removeViews(layer); - layer = undefined; - } + removeLayer(); } }); @@ -103,19 +104,21 @@ if (showSceneList.value && nV) { drawMarks(showSceneList.value); } else { - if (layer != undefined) { - MapUtil.removeViews(layer); - layer = undefined; - } + removeLayer(); } - } + }, + { immediate: true } ); -function drawMarks(sceneList) { +function removeLayer() { if (layer != undefined) { MapUtil.removeViews(layer); layer = undefined; } +} + +function drawMarks(sceneList) { + removeLayer(); if (sceneList.length != 0) { const icons = []; sceneList.forEach((s) => { -- Gitblit v1.9.3