From e5e65bb50cbfb973f98191993ab559767eff7a53 Mon Sep 17 00:00:00 2001 From: suerprisePlus <15810472099@163.com> Date: 星期二, 30 七月 2024 17:06:34 +0800 Subject: [PATCH] 页面添加(知识图谱,数据统计,数据分析,站点管理) --- src/views/visual/mapView/layerManager.vue | 105 ++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 101 insertions(+), 4 deletions(-) diff --git a/src/views/visual/mapView/layerManager.vue b/src/views/visual/mapView/layerManager.vue index 2da6706..5ce9395 100644 --- a/src/views/visual/mapView/layerManager.vue +++ b/src/views/visual/mapView/layerManager.vue @@ -1,23 +1,42 @@ <template> - <Popup ref="pop" top="20px" left="calc(100% - 600px)" :title="title" @close="close(true)" width="300px" @cancel="close(false)"> - <el-tree></el-tree> + <Popup ref="pop" top="20px" left="calc(100% - 600px)" :title="title" @close="close(true)" width="300px" + @cancel="close(false)"> + + <div class="layerBox"> + <el-tree show-checkbox :data="treeData" ref="tree" node-key="id" :default-checked-keys="defaultLayer" + @check-change="handleCheckChange" :props="defaultProps"></el-tree> + </div> </Popup> </template> <script> import Popup from '@/components/Tool/Popup.vue'; +import store from "@/store"; +import mapServer from '@/assets/js/mapSdk/mapServe'; + export default { name: 'layerManager', components: { Popup }, + computed: { + getlayerTree() { + return store.getters.getlayerTree + } + }, data() { return { title: '鍥惧眰绠$悊', + defaultProps: { + children: 'children', + label: 'cnName' + }, + treeData: [], + defaultLayer: [], + ids: [], }; }, methods: { // 鍏抽棴寮圭獥 close(isCloseBtn, removeLayer = true) { - // removeLayer && this.removeImageLayer(); // 閲嶇疆data鍊� Object.assign(this.$data, this.$options.data()); !isCloseBtn && this.$refs.pop.close(); @@ -26,9 +45,87 @@ open() { this.close(true); this.$refs.pop.open(); + this.$nextTick(() => { + this.setLayerStart(); + }) + }, + setLayerStart() { + if (store.getters && store.getters.layerTree) { + this.defaultLayer = store.getters.defaultLayer; + this.ids = this.defaultLayer; + this.treeData = store.getters.layerTree + } + + }, + handleCheckChange(data, checked, indeterminate) { + const checkIds = this.$refs.tree.getCheckedKeys() + if (this.ids === checkIds) return + this.ids.map(o => { + if (checkIds.indexOf(o) < 0) { + const obj = this.$refs.tree.getNode(o); + console.log(obj.checked); + if (obj.checked) { + mapServer.addLayer(obj.data) + } else { + mapServer.removeLayer(obj.data) + } + } + }) + + checkIds.map(n => { + if (this.ids.indexOf(n) < 0) { + const obj = this.$refs.tree.getNode(n); + if (obj.checked) { + mapServer.addLayer(obj.data) + } else { + mapServer.removeLayer(obj.data) + } + } + }) + + + + this.$store.dispatch('mapLayers/changeLayerTree', this.treeData) + const ids = this.$refs.tree.getCheckedKeys() + this.ids = ids; + this.$store.dispatch('mapLayers/changeDefaultLayer', ids) + }, + setServerLayerChange(data, checked) { + if (checked) { + mapServer.addLayer(data) + } else { + mapServer.removeLayer(data) + } + + }, + getNodeList(list, checked) { + list.map(item => { + if (item.type == 1) { + if (item.children && item.children.length > 0) { + this.getNodeList(item.children) + } + } else { + this.setServerLayerChange(item, checked) + } + }) }, }, + + }; </script> -<style></style> +<style lang="scss" scoped> +.layerBox { + height: 680px; + + ::v-deep.el-tree { + background: transparent !important; + + .el-tree-node__content:hover { + color: #409EFF; + } + } + +} +</style> -- Gitblit v1.9.3