riku
2025-06-12 a3b2d94cbfb9bea819346a1b738237f72819a833
src/components/scene/SceneTable.vue
@@ -29,6 +29,7 @@
        <div>{{ parseInt(row.length) + '米' }}</div>
      </template>
    </el-table-column>
    <slot></slot>
    <!-- <el-table-column
      prop="districtName"
      label="区县"
@@ -49,7 +50,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 +87,15 @@
  }
});
onUnmounted(() => {
  removeLayer();
});
watch(showSceneList, (nV, oV) => {
  if (nV && props.showMarks) {
    drawMarks(nV);
  } else {
    if (layer != undefined) {
      MapUtil.removeViews(layer);
      layer = undefined;
    }
    removeLayer();
  }
});
@@ -103,20 +105,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) => {