From bf42ef43fccdf3d3486eec84ad4073b0c7650aba Mon Sep 17 00:00:00 2001 From: riku <risaku@163.com> Date: 星期三, 13 八月 2025 17:35:37 +0800 Subject: [PATCH] 新增场景信息文件导入功能 --- src/components/map/SceneMap.vue | 56 +++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 37 insertions(+), 19 deletions(-) diff --git a/src/components/map/SceneMap.vue b/src/components/map/SceneMap.vue index e301ec3..3abe4c6 100644 --- a/src/components/map/SceneMap.vue +++ b/src/components/map/SceneMap.vue @@ -9,12 +9,20 @@ ></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" + @change="handleChange(s)" /> <!-- <el-text>{{ s.name }}</el-text> --> </div> @@ -53,7 +61,7 @@ if (nV != oV) { clearSceneMarks(); createSceneMarks(); - filterMarkViews(); + filterMarkViews(true); } }, { immediate: true } @@ -62,14 +70,20 @@ watch(scenetype, (nV, oV) => { if (nV != oV) { clearSceneMarks(); - filterMarkViews(); + filterMarkViews(true); } }); -function handleChange(value) { - console.log(value); - - filterMarkViews(); +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() { @@ -111,8 +125,11 @@ /** * 绛涢�夋墍閫夌被鍨嬬殑鍦烘櫙 */ -function filterMarkViews() { +function filterMarkViews(setFitView) { onMapMounted(() => { + if (markViewList.length > 0) { + map.remove(markViewList); + } if (scenetype.value == undefined) { markViewList = allMarkViews; } else { @@ -125,21 +142,21 @@ } markViewList = markViewList.filter((v) => { const _index = selectedSceneList.value.findIndex((s) => { - console.log(s.guid, v.getExtData().guid); - - s.guid == v.getExtData().guid; + return s.guid == v.getExtData().guid && s._checked; }); return _index != -1; }); map.add(markViewList); - setTimeout(() => { - map.setFitView(markViewList); - // const list = markViewList.map((v) => { - // const _extData = v.getExtData(); - // return [_extData.longitude, _extData.latitude]; - // }); - // mapUtil.setBound(list); - }, 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); + } }); } @@ -166,5 +183,6 @@ border-radius: 4px; padding: 2px 8px; max-width: 300px; + box-shadow: var(--el-box-shadow); } </style> -- Gitblit v1.9.3