From 77f9937b32f67f5b7d5476b0a1db19956702c0c8 Mon Sep 17 00:00:00 2001 From: Surpriseplus <845948745@qq.com> Date: 星期二, 10 十月 2023 09:45:34 +0800 Subject: [PATCH] 代码更新 --- src/views/layer/layerManage.vue | 133 ++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 128 insertions(+), 5 deletions(-) diff --git a/src/views/layer/layerManage.vue b/src/views/layer/layerManage.vue index b2ce6d9..d1a12d9 100644 --- a/src/views/layer/layerManage.vue +++ b/src/views/layer/layerManage.vue @@ -27,6 +27,7 @@ :highlight-current="false" :current-node-key="selectedNodeId" :data="treeData" + :default-expanded-keys="defaultExpanded" :expand-on-click-node="false" show-checkbox @check="handleCheckChange" @@ -45,7 +46,7 @@ </span> --> <span class="button" - v-if="data.isLayer == 1" + v-if="!data.isTemporaryLayer" > <el-dropdown trigger="click"> <span class="el-dropdown-link"> @@ -55,11 +56,27 @@ </span> <template #dropdown> <el-dropdown-menu> - <el-dropdown-item @click.native="clickdropdown(1, data)">璇︾粏</el-dropdown-item> <el-dropdown-item - v-if="data.type == 3" + v-if="data.type != 6 && data.isLayer ==1" + @click.native="clickdropdown(1, data)" + >璇︾粏</el-dropdown-item> + <el-dropdown-item v-if="data.type == 6 && data.isLayer ==1">鍒犻櫎</el-dropdown-item> + <el-dropdown-item + v-if="data.type == 3 && data.isLayer ==1" @click.native="clickdropdown(2, data)" >灞炴��</el-dropdown-item> + <el-dropdown-item + v-if="data.isLayer ==0" + @click.native="clickdropdown(3, data)" + >閫忔槑搴�</el-dropdown-item> + <el-dropdown-item + v-if="data.shpType =='temporaryLayer'" + @click.native="clickdTemporary(1, data)" + >缂栬緫</el-dropdown-item> + <el-dropdown-item + v-if="data.shpType =='temporaryLayer'" + @click.native="clickdTemporary(2, data)" + >鍒犻櫎</el-dropdown-item> </el-dropdown-menu> </template> </el-dropdown> @@ -106,6 +123,7 @@ import { perms_selectLayers } from "@/api/api"; import server from "@/assets/js/Map/server"; import { ElMessage } from "element-plus"; +import temporaryTool from "@/assets/js/Map/temporaryTools"; const store = useStore(); // 璇ユ柟娉曠敤浜庤繑鍥瀞tore 瀹炰緥 const stretchValue = ref(""); const emits = defineEmits(["setCloseLayer"]); @@ -115,7 +133,7 @@ var treeData = ref([]); var layerListData = ref([]); let menuOption = reactive([]); - +const defaultExpanded = ref([]); const layerSetIsshow = ref(false); const layerAttributeIsshow = ref(false); const layerDetailIsshow = ref(false); @@ -141,13 +159,45 @@ store.state.setLayerManager = false; emits("setCloseLayer", false); }; +const clickdTemporary = (res, data) => { + if (res == 1) { + if (store.state.editTemporaryId) { + var id = store.state.editTemporaryId; + var edit_id = sgworld.Creator.SimpleGraphic.SimpleGraphicObj.indexOf(id); + if (edit_id > -1) { + sgworld.Creator.SimpleGraphic.SimpleGraphicObj.splice(edit_id, 1); + store.state.editTemporaryId = null; + } + } + store.state.editTemporaryId = data.id; + sgworld.Creator.SimpleGraphic.SimpleGraphicObj.push(data.id); + sgworld.Creator.SimpleGraphic.edit(true, { editProp: false }); + } else if (res == 2) { + temporaryTool.removeTemporaryLayer(data); + + var checkedKeys = estreeRef.value.getCheckedKeys(); + if (checkedKeys.indexOf(data.id) > -1) { + var index_id = checkedKeys.indexOf(data.id); + var std = checkedKeys.slice(index_id, 1); + + estreeRef.value.setCheckedKeys(std, true); + } + var val = treeData.value[0].children; + + for (var i = 0; i < val.length; i++) { + if (val[i].id == data.id) { + val.splice(i, 1); + treeData.value = [...treeData.value]; + } + } + } +}; //閫夋嫨鍥惧眰 const handleCheckChange = (data, checked) => { layerAttributeIsshow.value = false; layerDetailIsshow.value = false; let isCheck = checked.checkedKeys.indexOf(data.id) > -1; - // this.setVisiable(data, isCheck); let son = estreeRef.value.getCheckedNodes().reverse(); server.delLayerAll(); @@ -212,6 +262,7 @@ if (res == 2) { layerAttributeIsshow.value = true; store.state.tab = e; + } else if (res == 3) { } else { var val = estreeRef.value!.getCheckedKeys(false); if (val.indexOf(e.id) > -1) { @@ -300,6 +351,18 @@ treeData.value = setTreeData(dt.result).sort(function (a, b) { return a.orderNum - b.orderNum; }); + + treeData.value.unshift({ + cnName: "涓存椂鍥惧眰", + level: 1, + pid: 0, + isLayer: 0, + type: 6, + id: new Date().getTime(), + isTemporaryLayer: true, + children: [], + }); + var std = []; var terrainId = null; var adLayer = []; @@ -366,7 +429,40 @@ return father.pid == 0; // 杩斿洖涓�绾ц彍鍗� }); } +const addTemporaryLayer = (res) => { + store.state.temporaryLayer = null; + treeData.value[0].children.push(res); + var id = res.id; + nextTick(() => { + var checkedKeys = estreeRef.value.getCheckedKeys(); + checkedKeys.push(id); + estreeRef.value.setCheckedKeys(checkedKeys, true); + temporaryTool.addTemporaryTool(res); + }); +}; +const editTemporaryLayerName = (res) => { + if (!store.state.editTemporaryId) return; + var id = store.state.editTemporaryId; + var val = treeData.value[0].children; + for (var i = 0; i < val.length; i++) { + if (val[i].id == id) { + val[i].cnName = res; + treeData.value = [...treeData.value]; + } + } + defaultExpanded.value = [treeData.value[0].id]; +}; +const editTemporaryBackById = (res) => { + var obj = temporaryTool.getEntityObj(res); + var val = treeData.value[0].children; + for (var i = 0; i < val.length; i++) { + if (val[i].id == res) { + val[i] = obj; + treeData.value = [...treeData.value]; + } + } +}; watch( () => store.state.restLayer, (nVal, oVal) => { @@ -376,6 +472,33 @@ }, { deep: true } ); +watch( + () => store.state.temporaryLayer, + (nVal, oVal) => { + if (nVal) { + addTemporaryLayer(nVal); + } + }, + { deep: true } +); +watch( + () => store.state.editTemporarName, + (nVal, oVal) => { + if (nVal) { + editTemporaryLayerName(nVal); + } + }, + { deep: true } +); +watch( + () => store.state.editTemporaryback, + (nVal, oVal) => { + if (nVal) { + editTemporaryBackById(nVal); + } + }, + { deep: true } +); onMounted(() => { window.setLayer = getLayer; -- Gitblit v1.9.3