From 4867ac0db2e48fac8e595ad78836cb2e92e3ca79 Mon Sep 17 00:00:00 2001 From: surprise <15810472099@163.com> Date: 星期三, 18 十月 2023 15:22:13 +0800 Subject: [PATCH] 临时图层管理,在线制图 --- src/views/layer/layerManage.vue | 143 ++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 116 insertions(+), 27 deletions(-) diff --git a/src/views/layer/layerManage.vue b/src/views/layer/layerManage.vue index b5be958..7d5b0c9 100644 --- a/src/views/layer/layerManage.vue +++ b/src/views/layer/layerManage.vue @@ -74,10 +74,11 @@ import attributeList from "./attributeList"; import layerDetail from "./layerDetail"; import { useStore } from "vuex"; // 寮曞叆useStore 鏂规硶 -import { perms_selectLayers } from "@/api/api"; +import { perms_selectLayers, mark_selectByPageAndCount, mark_insert, mark_deletes, mark_update } from "@/api/api"; import server from "@/assets/js/Map/server"; import { ElMessage } from "element-plus"; import temporaryTool from "@/assets/js/Map/temporaryTools"; +import json from "@/assets/js/colorValue"; const store = useStore(); // 璇ユ柟娉曠敤浜庤繑鍥瀞tore 瀹炰緥 const stretchValue = ref(""); const emits = defineEmits(["setCloseLayer"]); @@ -114,7 +115,7 @@ emits("setCloseLayer", false); }; const temporary = ref(new Date().getTime()); -const clickdTemporary = (res, data) => { +const clickdTemporary = async (res, data) => { if (res == 1) { if (store.state.editTemporaryId) { var id = store.state.editTemporaryId; @@ -128,6 +129,10 @@ sgworld.Creator.SimpleGraphic.SimpleGraphicObj.push(data.id); sgworld.Creator.SimpleGraphic.edit(true, { editProp: false }); } else if (res == 2) { + var layerId = [] + layerId.push(data.sid) + const data1 = await mark_deletes({ ids: layerId.toString() }) + if (data1.code != 200) return temporaryTool.removeTemporaryLayer(data); var keys = estreeRef.value.getCheckedKeys(); const checkedKeys = []; @@ -153,32 +158,84 @@ const handleCheckChange = (data, checked) => { layerAttributeIsshow.value = false; layerDetailIsshow.value = false; - let isCheck = checked.checkedKeys.indexOf(data.id) > -1; if (isCheck) { let son = estreeRef.value.getCheckedNodes().reverse(); - var setGeoWms = []; - var url = null; for (var i in son) { var layerArr = son[i]; layerArr.checked = true; - if (layerArr.category == 2 && layerArr.type == 3) { - - if (layerArr.tab != "moon:geo_mappable_unit") { - - server.addTreeData(layerArr) - } + if (layerArr.shpType && layerArr.shpType == 'temporaryLayer') {//涓存椂鍥惧眰娣诲姞 + temporaryTool.addTemporaryTool(layerArr); } else { server.addTreeData(layerArr); } } - - store.commit("SET_CHECKLAYER", son); } else { - server.delLayer(data.id) + if (data.isLayer == 0) { + var layers = data.children; + for (var i in layers) { + if (layers[i].shpType && layers[i].shpType == 'temporaryLayer') {//涓存椂鍥惧眰娣诲姞 + temporaryTool.removeTemporaryLayer(layers[i]); + } else { + server.delLayer(layers[i].id) + } + } + } else { + if (data.shpType && data.shpType == 'temporaryLayer') {//涓存椂鍥惧眰娣诲姞 + temporaryTool.removeTemporaryLayer(data); + } else { + server.delLayer(data.id) + } + } + } + + + + //鍒ゆ柇鏄惁涓虹埗绾� + // if (data.isLayer == 0) {//涓虹埗绾� + + // let son = estreeRef.value.getCheckedNodes().reverse(); + // for(var i in ) + + + + + // } else {//涓哄瓙绾� + + // } + + + // + // if (data.shpType && data.shpType == 'temporaryLayer') { + // if (isCheck) { + // temporaryTool.addTemporaryTool(data); + // } else if(!isCheck) { + // temporaryTool.removeTemporaryLayer(data); + // } + // } else { + // if (isCheck) { + // let son = estreeRef.value.getCheckedNodes().reverse(); + // for (var i in son) { + // var layerArr = son[i]; + // layerArr.checked = true; + // if (layerArr.category == 2 && layerArr.type == 3) { + + // if (layerArr.tab != "moon:geo_mappable_unit") { + + // server.addTreeData(layerArr) + // } + // } else { + // server.addTreeData(layerArr); + // } + // } + // store.commit("SET_CHECKLAYER", son); + // } else { + // + // } + // } }; const setVisiable = (treeNode, checked) => { if (checked !== undefined) { @@ -224,10 +281,6 @@ if (layerId.length <= 0) { return ElMessage.error("璇峰厛鍕鹃�夊浘灞�"); } - - // layerDetailIsshow.value = true; - // store.state.tab = e; - } else { var val = estreeRef.value!.getCheckedKeys(false); if (val.indexOf(e.id) > -1) { @@ -305,10 +358,6 @@ }; const setRestLayerData = () => { let son = estreeRef.value.getCheckedNodes().reverse(); - // server.delLayerAll(); - - var setGeoWms = []; - var url = null; for (var i in son) { var layerArr = son[i]; layerArr.checked = true; @@ -335,7 +384,19 @@ treeData.value = setTreeData(dt.result).sort(function (a, b) { return a.orderNum - b.orderNum; }); - + const comperLayer = await mark_selectByPageAndCount({ + pageIndex: 1, + pageSize: 100000, + name: null, + }) + var children = []; + if (comperLayer.code == 200 && comperLayer.result) { + for (var i in comperLayer.result) { + var slayer = JSON.parse(comperLayer.result[i].wkt); + slayer.sid = comperLayer.result[i].id; + children.push(slayer) + } + } treeData.value.unshift({ cnName: "涓存椂鍥惧眰", level: 1, @@ -344,7 +405,7 @@ type: 6, id: temporary.value, isTemporaryLayer: true, - children: [], + children: children, }); var std = []; @@ -414,8 +475,16 @@ return father.pid == 0; // 杩斿洖涓�绾ц彍鍗� }); } -const addTemporaryLayer = (res) => { +const addTemporaryLayer = async (res) => { + var obj = { + id: res.id, + name: res.cnName, + wkt: JSON.stringify(res) + } + const data = await mark_insert(obj); + if (data.code != 200 || !data.result) return store.state.temporaryLayer = null; + res.sid = data.result; treeData.value[0].children.push(res); var id = res.id; @@ -437,7 +506,7 @@ for (var i = 0; i < val.length; i++) { if (val[i].id == id) { val[i].cnName = res; - treeData.value = [...treeData.value]; + setEditLayerChange(val[i]) } } defaultExpanded.value = [treeData.value[0].id]; @@ -445,13 +514,33 @@ const editTemporaryBackById = (res) => { var obj = temporaryTool.getEntityObj(res); var val = treeData.value[0].children; + var checkedKeys = estreeRef.value.getCheckedKeys(); + if (checkedKeys.indexOf(temporary.value) > -1) { + checkedKeys.splice(checkedKeys.indexOf(temporary.value), 1) + } for (var i = 0; i < val.length; i++) { if (val[i].id == res) { + obj.sid = val[i].sid; val[i] = obj; - treeData.value = [...treeData.value]; + setEditLayerChange(obj) } } + nextTick(() => { + + + estreeRef.value.setCheckedKeys(checkedKeys, true); + + }); }; +const setEditLayerChange = async (res) => { + var obj = { + id: res.sid, + name: res.cnName, + wkt: JSON.stringify(res) + } + const data = await mark_update(obj) + if (data.code != 200) return +} watch( () => store.state.restLayer, (nVal, oVal) => { -- Gitblit v1.9.3