| | |
| | | </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'; |
| | |
| | | } |
| | | }); |
| | | |
| | | onUnmounted(() => { |
| | | removeLayer(); |
| | | }); |
| | | |
| | | watch(showSceneList, (nV, oV) => { |
| | | if (nV && props.showMarks) { |
| | | drawMarks(nV); |
| | | } else { |
| | | if (layer != undefined) { |
| | | MapUtil.removeViews(layer); |
| | | layer = undefined; |
| | | } |
| | | removeLayer(); |
| | | } |
| | | }); |
| | | |
| | |
| | | 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) => { |