From ecf3ad202a851caa39660ddfaa16e1bf16565b2e Mon Sep 17 00:00:00 2001 From: surprise <15810472099@163.com> Date: 星期一, 30 十月 2023 13:51:38 +0800 Subject: [PATCH] 图层管理修改 --- src/views/layer/layerManage.vue | 177 +++++++++++++++++++++++++++++------------------------------ 1 files changed, 87 insertions(+), 90 deletions(-) diff --git a/src/views/layer/layerManage.vue b/src/views/layer/layerManage.vue index 478ba9d..651d215 100644 --- a/src/views/layer/layerManage.vue +++ b/src/views/layer/layerManage.vue @@ -190,38 +190,29 @@ // for (var i in keys) { // checkedKeys.push(keys[i]); // } - + var keys = estreeRef.value.getCheckedKeys(); var val = treeData.value[0].children; for (var i = 0; i < val.length; i++) { if (val[i].id == data.id) { val.splice(i, 1); } } - var keys = estreeRef.value.getCheckedKeys(); - if (val.length <= 0 && keys.indexOf(data.id) > -1) { - - keys.splice(keys.indexOf(data.id), 1); - estreeRef.value.setCheckedKeys(keys, true); - } - // nextTick(() => { - // var str = JSON.parse(std) - // console.log(str) - // var layerIds = []; - // if (str.indexOf(data.id) > -1) { - // str.splice(str.indexOf(data.id), 1); - // } - // if (str.indexOf(str.value) > -1) { - // str.splice(str.indexOf(str.value), 1); - // } - // for (var i in str) { - // var val = estreeRef.value.getNode(str[i]).data; - // if (val.isLayer == 1) { - // layerIds.push(str[i]); - // } - // } - // estreeRef.value.setCheckedKeys(layerIds, true); - // }); + var std = []; + for (var i in keys) { + var layer_res = estreeRef.value.getNode(checkedKeys[i]).data; + if(layer_res.shpType && layer_res.shpType == 'temporaryLayer'){ + std.push(checkedKeys[i]); + }else if(layer_res.isLayer == 1){ + std.push(checkedKeys[i]); + } + } + estreeRef.value.setCheckedKeys([], true); + console.log(data.id); + nextTick(() => { + console.log(std); + estreeRef.value.setCheckedKeys(std, true); + }); } else if (res == 3) { let son = estreeRef.value.getCheckedKeys(); if (son.indexOf(data.id) < 0) { @@ -234,63 +225,58 @@ const handleCheckChange = (data, checked) => { layerAttributeIsshow.value = false; layerDetailIsshow.value = false; - let isCheck = checked.checkedKeys.indexOf(data.id) > -1; - nextTick(() => { - let son = estreeRef.value.getCheckedNodes(); - store.commit("SET_CHECKLAYER", son); - }); - if (isCheck) { - if (data.isLayer == 0) { - let son = estreeRef.value.getCheckedNodes().reverse(); - for (var i in son) { - var layerArr = son[i]; - layerArr.checked = true; - if (layerArr.shpType && layerArr.shpType == "temporaryLayer") { - //涓存椂鍥惧眰娣诲姞 - temporaryTool.addTemporaryTool(layerArr); + // let isCheck = checked.checkedKeys.indexOf(data.id) > -1; + + let son = estreeRef.value.getCheckedNodes(); + store.commit("SET_CHECKLAYER", son); + temporaryTool.removeTemporaryLayerAll(); + server.delLayerAll(); + var alphaGroup = []; + var idGroup = []; + for (var i in server.layerList) { + const layerData = server.layerList[i]; + if (layerData.layerData && layerData.id != server.wmsLayerId) { + alphaGroup.push(layerData.layerData.alpha); + idGroup.push(layerData.layerData.id); + } + } + server.delLayerAll(); + + var setGeoWms = []; + var geoUrl = null; + var layerTreeDate = estreeRef.value.getCheckedNodes().reverse(); + for (var i in layerTreeDate) { + var layerArr = layerTreeDate[i]; + if (layerArr.shpType && layerArr.shpType == "temporaryLayer") { + temporaryTool.addTemporaryTool(layerArr); + } else { + if (layerArr.isLayer == 1) { + if (layerArr.category == 2 && layerArr.type == 3) { + if (layerArr.tab != "moon:geo_mappable_unit") { + var id = layerArr.id; + if (idGroup.indexOf(id) > -1) { + var alpha = alphaGroup[idGroup.indexOf(id)]; + if (alpha == 1) { + setGeoWms.push(layerArr.tab); + geoUrl = layerArr.url; + } else { + server.setAddGeoWmsLayer(layerArr, alpha); + } + } else { + setGeoWms.push(layerArr.tab); + geoUrl = layerArr.url; + } + } } else { server.addTreeData(layerArr); } } - } else { - if (data.shpType && data.shpType == "temporaryLayer") { - //涓存椂鍥惧眰娣诲姞 - temporaryTool.addTemporaryTool(data); - } else { - let son = estreeRef.value.getCheckedNodes().reverse(); - for (var i in son) { - var layerArr = son[i]; - layerArr.checked = true; - if (layerArr.shpType && layerArr.shpType == "temporaryLayer") { - //涓存椂鍥惧眰娣诲姞 - } else { - server.addTreeData(layerArr); - } - } - } - } - } else { - if (data.isLayer == 0) { - var layers = getCheckedLayerChildren(data); - - // 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 (setGeoWms.length > 0) { + server.addGeoServerMmsLayers(setGeoWms, geoUrl); + } + menuTool.setImageLayerChange(); }; const setVisiable = (treeNode, checked) => { @@ -363,13 +349,13 @@ forFn(item); } else { if (ids.indexOf(item.id) > -1) { - temp.push(item.id); + temp.push(item); } } }); } else { if (ids.indexOf(data.id) > -1) { - temp.push(data.id); + temp.push(data); } } }; @@ -448,24 +434,29 @@ // }); // treeData = handleTree(menuOption, "id", "pid", "children"); }; + const setRestLayerData = () => { let son = estreeRef.value.getCheckedNodes().reverse(); + + var setGeoWms = []; + var geoUrl = null; for (var i in son) { var layerArr = son[i]; + console.log(layerArr.isLayer); layerArr.checked = true; if (layerArr.category == 2 && layerArr.type == 3) { if (layerArr.tab != "moon:geo_mappable_unit") { - // setGeoWms.push(layerArr.tab); - // url = layerArr.url; - server.addTreeData(layerArr); + setGeoWms.push(layerArr.tab); + geoUrl = layerArr.url; + // server.addTreeData(layerArr); } } else { server.addTreeData(layerArr); } } - // if (setGeoWms.length > 0) { - // server.addGeoServerMmsLayers(setGeoWms, url); - // } + if (setGeoWms.length > 0) { + server.addGeoServerMmsLayers(setGeoWms, geoUrl); + } store.commit("SET_CHECKLAYER", son); }; const getLayer = async () => { @@ -561,20 +552,26 @@ name: res.cnName, wkt: JSON.stringify(res), }; + var checkedKeys = estreeRef.value.getCheckedKeys(); 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; + nextTick(() => { - var checkedKeys = estreeRef.value.getCheckedKeys(); - if (checkedKeys.indexOf(temporary.value) > -1) { - checkedKeys.splice(checkedKeys.indexOf(temporary.value), 1); + var std = [res.id]; + for (var i in checkedKeys) { + var layer_res = estreeRef.value.getNode(checkedKeys[i]).data; + if(layer_res.shpType && layer_res.shpType == 'temporaryLayer'){ + std.push(checkedKeys[i]); + }else if(layer_res.isLayer == 1){ + std.push(checkedKeys[i]); + } } - checkedKeys.push(id); - estreeRef.value.setCheckedKeys(checkedKeys, true); + estreeRef.value.setCheckedKeys([], true); + estreeRef.value.setCheckedKeys(std, true); temporaryTool.addTemporaryTool(res); }); }; -- Gitblit v1.9.3