From 9a61e46d96536f3299e57f7259ae1c9972256ec6 Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期二, 30 九月 2025 09:42:09 +0800
Subject: [PATCH] 1. 隐藏未完成的账户匹配页面 2. 根据第三方新的接口文档修改接口url地址
---
src/components/map/SceneMap.vue | 91 ++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 80 insertions(+), 11 deletions(-)
diff --git a/src/components/map/SceneMap.vue b/src/components/map/SceneMap.vue
index fe296bd..3abe4c6 100644
--- a/src/components/map/SceneMap.vue
+++ b/src/components/map/SceneMap.vue
@@ -9,11 +9,30 @@
></FYOptionScene>
<slot name="left-top"></slot>
</el-row>
+ <!-- <el-row class="right-wrap">
+ <el-col :span="4">
+ <el-button>close</el-button>
+ </el-col>
+ <el-col :span="20">
+
+ </el-col>
+ </el-row> -->
+ <el-scrollbar class="right-wrap">
+ <div v-for="s in selectedSceneList" :key="s.guid">
+ <el-checkbox
+ v-model="s._checked"
+ :label="s.name"
+ @change="handleChange(s)"
+ />
+ <!-- <el-text>{{ s.name }}</el-text> -->
+ </div>
+ </el-scrollbar>
</template>
<script setup>
-import { ref, watch } from 'vue';
+import { ref, watch, computed } from 'vue';
import { map, onMapMounted } from '@/utils/map/index';
import marks from '@/utils/map/marks';
+import mapUtil from '@/utils/map/util';
import { sceneIcon } from '@/assets/scene-icon';
const props = defineProps({
// 鍦烘櫙鐐逛綅淇℃伅
@@ -25,13 +44,24 @@
const scenetype = ref();
+const selectedSceneList = computed(() => {
+ return props.data.filter((v) => {
+ v._checked = true;
+ return (
+ scenetype.value == undefined ||
+ scenetype.value.value == null ||
+ v.typeid + '' == scenetype.value.value
+ );
+ });
+});
+
watch(
() => props.data,
(nV, oV) => {
if (nV != oV) {
clearSceneMarks();
createSceneMarks();
- filterMarkViews();
+ filterMarkViews(true);
}
},
{ immediate: true }
@@ -40,9 +70,21 @@
watch(scenetype, (nV, oV) => {
if (nV != oV) {
clearSceneMarks();
- filterMarkViews();
+ filterMarkViews(true);
}
});
+
+function handleChange(scene) {
+ const mv = markViewList.find((v) => {
+ return scene.guid == v.getExtData().guid;
+ });
+ if (scene._checked) {
+ map.add(mv);
+ } else {
+ map.remove(mv);
+ }
+ // filterMarkViews();
+}
function createSceneMarks() {
onMapMounted(() => {
@@ -64,15 +106,15 @@
content: ''
// direction: 'bottom'
});
- _extData._show = false
- ev.target.setExtData(_extData)
+ _extData._show = false;
+ ev.target.setExtData(_extData);
} else {
ev.target.setLabel({
content: _extData.name
// direction: 'bottom'
});
- _extData._show = true
- ev.target.setExtData(_extData)
+ _extData._show = true;
+ ev.target.setExtData(_extData);
}
});
allMarkViews.push(mark);
@@ -83,8 +125,11 @@
/**
* 绛涢�夋墍閫夌被鍨嬬殑鍦烘櫙
*/
-function filterMarkViews() {
+function filterMarkViews(setFitView) {
onMapMounted(() => {
+ if (markViewList.length > 0) {
+ map.remove(markViewList);
+ }
if (scenetype.value == undefined) {
markViewList = allMarkViews;
} else {
@@ -95,10 +140,23 @@
);
});
}
+ markViewList = markViewList.filter((v) => {
+ const _index = selectedSceneList.value.findIndex((s) => {
+ return s.guid == v.getExtData().guid && s._checked;
+ });
+ return _index != -1;
+ });
map.add(markViewList);
- setTimeout(() => {
- map.setFitView(markViewList);
- }, 1000);
+ if (setFitView) {
+ setTimeout(() => {
+ map.setFitView(markViewList);
+ // const list = markViewList.map((v) => {
+ // const _extData = v.getExtData();
+ // return [_extData.longitude, _extData.latitude];
+ // });
+ // mapUtil.setBound(list);
+ }, 1000);
+ }
});
}
@@ -116,4 +174,15 @@
left: 0;
top: 0;
}
+.right-wrap {
+ position: absolute;
+ right: 0px;
+ bottom: 0;
+ height: 50%;
+ background-color: white;
+ border-radius: 4px;
+ padding: 2px 8px;
+ max-width: 300px;
+ box-shadow: var(--el-box-shadow);
+}
</style>
--
Gitblit v1.9.3