riku
2025-06-03 06eeb9b59644971d93e6dd9207ac447864e527b9
src/components/scene/SceneTable.vue
@@ -3,7 +3,6 @@
    :data="sceneList"
    table-layout="fixed"
    size="small"
    height="30vh"
    :show-overflow-tooltip="true"
    border
    row-class-name="t-row"
@@ -13,7 +12,7 @@
    @row-click="handleRowClick"
    @filter-change="handleFilterChange"
  >
    <el-table-column type="index" label="#" width="25" />
    <!-- <el-table-column type="index" label="#" width="25" /> -->
    <el-table-column
      prop="type"
      label="类型"
@@ -23,13 +22,19 @@
      :filter-method="filterHandler"
    />
    <el-table-column prop="name" label="名称" />
    <!-- <el-table-column prop="location" label="地址" /> -->
    <el-table-column
    <el-table-column prop="location" label="地址" />
    <el-table-column label="临近站点" width="65">
      <template #default="{ row }">
        <div>{{ row.closestStation.name }}</div>
        <div>{{ parseInt(row.length) + '米' }}</div>
      </template>
    </el-table-column>
    <!-- <el-table-column
      prop="districtName"
      label="区县"
      align="center"
      width="54"
    />
    /> -->
    <!-- <el-table-column label="管理" width="70" align="center">
      <template #default="{ row }">
        <el-button
@@ -50,7 +55,11 @@
import marks from '@/utils/map/marks';
const props = defineProps({
  sceneList: Array
  sceneList: Array,
  showMarks: {
    type: Boolean,
    default: true
  }
});
let layer = undefined;
@@ -78,11 +87,30 @@
});
watch(showSceneList, (nV, oV) => {
  if (nV != oV) {
  if (nV && props.showMarks) {
    drawMarks(nV);
  } else {
    if (layer != undefined) {
      MapUtil.removeViews(layer);
      layer = undefined;
    }
  }
});
watch(
  () => props.showMarks,
  (nV, oV) => {
    if (showSceneList.value && nV) {
      drawMarks(showSceneList.value);
    } else {
      if (layer != undefined) {
        MapUtil.removeViews(layer);
        layer = undefined;
      }
    }
  }
);
function drawMarks(sceneList) {
  if (layer != undefined) {
    MapUtil.removeViews(layer);