From ecf3ad202a851caa39660ddfaa16e1bf16565b2e Mon Sep 17 00:00:00 2001 From: surprise <15810472099@163.com> Date: 星期一, 30 十月 2023 13:51:38 +0800 Subject: [PATCH] 图层管理修改 --- /dev/null | 846 -------------------------------------------- src/assets/js/Map/server.js | 9 src/views/layer/layerDetail.vue | 1 src/views/layer/layerSet.vue | 154 +------ src/assets/js/Map/temporaryTools.js | 5 src/views/layer/layerManage.vue | 94 ++-- 6 files changed, 94 insertions(+), 1,015 deletions(-) diff --git a/src/assets/js/Map/server.js b/src/assets/js/Map/server.js index e88bfd7..93827dd 100644 --- a/src/assets/js/Map/server.js +++ b/src/assets/js/Map/server.js @@ -11,10 +11,11 @@ geoUrl: null, wmsLayerId: null, addTreeData(treeNode) { - if (!treeNode.checked) { - this.delLayer(treeNode.id); - return; - } + // if (!treeNode.checked) { +// debugger + // this.delLayer(treeNode.id); + // return; + // } this.alpha = this.getResLayersAlpha(treeNode); //鍒ゆ柇鏄惁涓轰唬鐞� diff --git a/src/assets/js/Map/temporaryTools.js b/src/assets/js/Map/temporaryTools.js index 3f92aee..9cd6c93 100644 --- a/src/assets/js/Map/temporaryTools.js +++ b/src/assets/js/Map/temporaryTools.js @@ -10,10 +10,10 @@ } } }, - removeAll() { + removeTemporaryLayerAll() { var entities = window.Viewer.entities._entities._array; for (var i in entities) { - if (entities[i]._shpType == "shpType") { + if (entities[i]._shpType && entities[i]._shpType == "temporaryLayer") { window.Viewer.entities.remove(entities[i]) } } @@ -431,6 +431,7 @@ layerType: '鍩烘湰鐐�', heightReference: res.point.disableDepthTestDistance != null ? false : true, size: res.point.pixelSize._value, + } }, diff --git a/src/views/layer/layerDetail.vue b/src/views/layer/layerDetail.vue index 58fadc6..3c44c0e 100644 --- a/src/views/layer/layerDetail.vue +++ b/src/views/layer/layerDetail.vue @@ -508,6 +508,7 @@ transparence.value = parseInt(alpha * 100); } }); + releaseLayer.value = props.layerData; if (releaseLayer.value.pubid && releaseLayer.value.pubid > 0) { drawingModeShow.value = true; diff --git a/src/views/layer/layerManage copy.vue b/src/views/layer/layerManage copy.vue deleted file mode 100644 index 478ba9d..0000000 --- a/src/views/layer/layerManage copy.vue +++ /dev/null @@ -1,846 +0,0 @@ -<template> - <div v-drag class="layerBox"> - <div class="layerTitle"> - <div class="tileLeft"> - <div @click="setCloseLayer" class="titleImg"> - <ArrowLeft /> - </div> - <div class="titleLable">鍥惧眰绠$悊</div> - </div> - <div class="titleImg set" @click="layerSetBox"> - <Setting /> - </div> - </div> - <div class="layerContent"> - <el-tree - node-key="id" - :props="props" - :highlight-current="false" - :current-node-key="selectedNodeId" - :data="treeData" - :default-expanded-keys="defaultExpanded" - :expand-on-click-node="false" - show-checkbox - @check="handleCheckChange" - ref="estreeRef" - v-if="treeData.length" - :default-checked-keys="DefaultId" - > - <template #default="{ node, data }"> - <span class="custom-tree-node"> - <span class="label">{{ node.label }}</span> - <!-- <span> - <a @click="append(data)"> Append </a> - <a style="margin-left: 8px" @click="remove(node, data)"> - Delete - </a> - </span>--> - <span class="button" v-if="!data.isTemporaryLayer"> - <el-dropdown trigger="click"> - <span class="el-dropdown-link"> - <el-icon class="el-icon--right"> - <MoreFilled /> - </el-icon> - </span> - <template #dropdown> - <el-dropdown-menu> - <el-dropdown-item - 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-item - v-if="data.shpType == 'temporaryLayer'" - @click.native="clickdTemporary(3, data)" - >瀹氫綅</el-dropdown-item> - </el-dropdown-menu> - </template> - </el-dropdown> - </span> - </span> - </template> - </el-tree> - </div> - </div> - <layer-set - v-if="layerSetIsshow" - @SETstate="SETstate" - :layerTree="treeData" - @addlayer="addlayer" - @delLayer="delLayer" - ></layer-set> - <attribute-list - v-if="layerAttributeIsshow" - :layerData="layerObjData" - @spatialClose="setSpatialClose" - ></attribute-list> - <layer-detail :layerData="layerObjData" v-if="layerDetailIsshow" @detailClose="detailClose"></layer-detail> -</template> - -<script lang="ts" setup> -import { - ref, - onMounted, - onBeforeUnmount, - reactive, - defineProps, - defineEmits, - nextTick, - watch, -} from "vue"; -import layerSet from "./layerSet"; -import attributeList from "./attributeList"; -import layerDetail from "./layerDetail"; -import { useStore } from "vuex"; // 寮曞叆useStore 鏂规硶 -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"; -import menuTool from "@/assets/js/Map/menuTool"; -const store = useStore(); // 璇ユ柟娉曠敤浜庤繑鍥瀞tore 瀹炰緥 -const stretchValue = ref(""); -const emits = defineEmits(["setCloseLayer"]); -let estreeRef = ref(); -const setLayer = ref(); -const transparence = ref(0); -var treeData = ref([]); -var layerListData = ref([]); -let menuOption = reactive([]); -const defaultExpanded = ref([]); -const layerSetIsshow = ref(false); -const layerAttributeIsshow = ref(false); -const layerDetailIsshow = ref(false); -const props = { - label: "cnName", - children: "children", -}; -const layerObjData = ref(null); -// 褰撳墠閫変腑鐨勮妭鐐� id -const selectedNodeId = ref(null as any); //鍋氱被鍨嬫柇瑷�澶勭悊 - -//榛樿閫変腑id -const DefaultId = ref([]); -//鍥惧眰璁剧疆寮规 -const layerSetBox = () => { - layerSetIsshow.value = !layerSetIsshow.value; -}; -//鍏抽棴鐘舵�� -const SETstate = (res) => { - layerSetIsshow.value = res; -}; -const setCloseLayer = () => { - store.state.setLayerManager = false; - emits("setCloseLayer", false); -}; -const temporary = ref(new Date().getTime()); -const clickdTemporary = async (res, data) => { - if (res == 1) { - let son = estreeRef.value.getCheckedKeys(); - if (son.indexOf(data.id) < 0) { - return ElMessage(data.cnName + "鍥惧眰娌℃湁鍕鹃��,鏃犳硶杩涜缂栬緫"); - } - 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, - tipText: { - ActiveText: "鐐瑰嚮婵�娲荤紪杈�", - }, - enableDelete: 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); - - // estreeRef.value.setCheckedKeys(checkedKeys, true); - // for (var i in keys) { - // checkedKeys.push(keys[i]); - // } - - 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); - // }); - } else if (res == 3) { - let son = estreeRef.value.getCheckedKeys(); - if (son.indexOf(data.id) < 0) { - return ElMessage(data.cnName + "鍥惧眰娌℃湁鍕鹃��,鏃犳硶杩涜瀹氫綅"); - } - temporaryTool.locationTemporaryLayer(data); - } -}; -//閫夋嫨鍥惧眰 -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); - } 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); - } - } - } - menuTool.setImageLayerChange(); -}; -const setVisiable = (treeNode, checked) => { - if (checked !== undefined) { - treeNode.checked = checked; - } else { - treeNode.checked = !treeNode.checked; - } - - if (treeNode.children) { - treeNode.children.forEach((item) => { - setVisiable(item, treeNode.checked); - }); - return; - } - - if (!treeNode.isAdd) { - // server.addTreeData(treeNode); - return; - } -}; -const defaultLayer = (val) => { - val.forEach((e) => { - DefaultId.value.forEach((v) => { - if (e.id == v) { - setVisiable(e, true); - // return; - } - }); - }); -}; -const clickdropdown = (res, e) => { - layerAttributeIsshow.value = false; - layerDetailIsshow.value = false; - nextTick(() => { - layerObjData.value = e; - store.state.spatialTitle = e.cnName; - if (res == 2) { - layerAttributeIsshow.value = true; - store.state.tab = e; - } else if (res == 3) { - let son = estreeRef.value.getCheckedKeys(); - var layerId = getCheckedLayerPID(e, son); - if (layerId.length <= 0) { - return ElMessage.error("璇峰厛鍕鹃�夊浘灞�"); - } - layerDetailIsshow.value = true; - store.state.layerGroups = { - id: e.id, - layerIds: layerId, - }; - } else { - var val = estreeRef.value!.getCheckedKeys(false); - if (val.indexOf(e.id) > -1) { - layerDetailIsshow.value = true; - } else { - return ElMessage.error("璇峰厛鍕鹃�夊浘灞�"); - } - } - }); -}; -const getCheckedLayerPID = (res, result) => { - var temp = []; - var ids = result; - - let forFn = (data) => { - if (data.children) { - data.children.forEach((item) => { - if (item.children) { - forFn(item); - } else { - if (ids.indexOf(item.id) > -1) { - temp.push(item.id); - } - } - }); - } else { - if (ids.indexOf(data.id) > -1) { - temp.push(data.id); - } - } - }; - - forFn(res); - return temp; -}; - -const getCheckedLayerChildren = (res) => { - var temp2 = []; - let forFn = (data) => { - if (data.children) { - data.children.forEach((item) => { - if (item.children) { - forFn(item); - } else { - temp2.push(item); - } - }); - } else { - temp2.push(data); - } - }; - forFn(res); - return temp2; -}; - -const setSpatialClose = (res) => { - layerAttributeIsshow.value = res; -}; -const detailClose = (res) => { - if (res.type == 0) { - estreeRef.value.getNode(store.state.layerGroups.id).data.alpha = res.val; - } - layerDetailIsshow.value = res.flag; -}; -//缂栬緫鍥惧眰鏍� -const addlayer = (res) => { - let node; - layerListData.value.forEach((e) => { - if (e.id == res.id) { - node = estreeRef.value.getNode(e); - } - }); - // 灏嗗彉鍔ㄤ箣鍓嶇殑node澶囦唤 - let copyNode = { ...node }; - copyNode.previousSibling = { ...node.previousSibling }; - copyNode.nextSibling = { ...node.nextSibling }; - if (res.type === 1) { - // 涓婄Щ - if (node.previousSibling) { - // 鍒犻櫎鍘熷厛鐨刵ode - estreeRef.value.remove(node.data); - // 鎷垮埌copy鐨刵ode - // nodeData = CircularJSON.parse(window.sessionStorage.getItem("menuNode")); - // 澶嶅埗璇ode鍒版寚瀹氫綅缃�(鍙傛暟锛�1. 瑕佸鍔犵殑鑺傜偣鐨� data 2. 瑕佸鍔犵殑鑺傜偣鐨勫悗涓�涓妭鐐圭殑 data銆乲ey 鎴栬�� node) - - estreeRef.value.insertBefore( - copyNode.data, - copyNode.previousSibling.data - ); - // window.sessionStorage.removeItem("menuNode"); - } - } else { - // 涓嬬Щ - if (node.nextSibling) { - estreeRef.value.remove(node.data); - estreeRef.value.insertAfter(copyNode.data, copyNode.nextSibling.data); - } - } -}; -//鍒犻櫎鍥惧眰鏍� -const delLayer = (res) => { - // menuOption = menuOption.filter((item) => { - // return item.id != res; - // }); - // treeData = handleTree(menuOption, "id", "pid", "children"); -}; -const setRestLayerData = () => { - 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") { - // setGeoWms.push(layerArr.tab); - // url = layerArr.url; - server.addTreeData(layerArr); - } - } else { - server.addTreeData(layerArr); - } - } - // if (setGeoWms.length > 0) { - // server.addGeoServerMmsLayers(setGeoWms, url); - // } - store.commit("SET_CHECKLAYER", son); -}; -const getLayer = async () => { - store.state.restLayer = false; - // server.delLayerAll(); - const dt = await perms_selectLayers(); - if (dt.code == 200) { - var va_data = dt.result.filter((res) => { - if (res.isLayer == 0) { - res.alpha = 1; - } - return res; - }); - treeData.value = setTreeData(va_data).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, - pid: 0, - isLayer: 0, - type: 6, - id: temporary.value, - isTemporaryLayer: true, - children: children, - }); - - var std = []; - var terrainId = null; - var adLayer = []; - dt.result.filter((res) => { - if (res.isLayer == 1 && res.isShow == 1) { - if (res.type == 1 && res.data == 2) { - if (!terrainId) { - terrainId = res.id; - std.push(res.id); - adLayer.push(res); - } - } else { - std.push(res.id); - adLayer.push(res); - } - } - }); - DefaultId.value = std; - - //娣诲姞榛樿閫変腑鍥惧眰 - layerListData.value = dt.result; - defaultLayer(dt.result); - - nextTick(() => { - let son = estreeRef.value.getCheckedNodes(); - setRestLayerData(); - store.commit("SET_CHECKLAYER", son); - }); - } -}; - -//鏋勯�犳爲 -function setTreeData(source) { - let cloneData = JSON.parse(JSON.stringify(source)); // 瀵规簮鏁版嵁娣卞害鍏嬮殕 - return cloneData.filter((father) => { - // 寰幆鎵�鏈夐」 - let branchArr = cloneData.filter((child) => father.id == child.pid); - if (branchArr.length > 0) { - branchArr.sort(function (a, b) { - return a.orderNum - b.orderNum; - }); - } - - branchArr.length > 0 ? (father.children = branchArr) : ""; // 缁欑埗绾ф坊鍔犱竴涓猚hildren灞炴�э紝骞惰祴鍊� - // 灞炰簬鍚屼竴瀵硅薄闂锛屼緥濡傦細浠� a=b銆乧=1 锛岀劧鍚庡啀浠� b.c=c 锛� 閭d箞 a.c=b.c=c=1 锛涘悓鐞嗭紝鍚庣画浠� c.d=2 ,閭d箞 a.c.d 涔熸槸=2锛� - // 鐢辨寰幆澶氭鍚庯紝灏辫兘褰㈡垚鐩稿簲鐨勬爲褰㈡暟鎹粨鏋� - return father.pid == 0; // 杩斿洖涓�绾ц彍鍗� - }); -} -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; - - nextTick(() => { - var checkedKeys = estreeRef.value.getCheckedKeys(); - if (checkedKeys.indexOf(temporary.value) > -1) { - checkedKeys.splice(checkedKeys.indexOf(temporary.value), 1); - } - 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; - setEditLayerChange(val[i]); - } - } - defaultExpanded.value = [treeData.value[0].id]; -}; -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; - 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) => { - if (nVal) { - setRestLayerData(); - } - }, - { 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; -}); -</script> - -<style lang="less" scoped> -.layerBox { - width: 359px; - height: 680px; - background: rgba(7, 8, 14, 0.8); - box-shadow: inset 0px 10px 40px 10px rgba(38, 47, 71, 1); - z-index: 40; - - .layerTitle { - width: calc(100% - 27px); - height: 42px; - background: #0e151f; - box-shadow: 0px 0px 6px 0px #080c13, - 0px 14px 16px 0px rgba(38, 47, 71, 0.68); - display: flex; - justify-content: space-between; - padding-left: 7px; - padding-right: 20px; - color: white; - - .tileLeft { - height: 100%; - display: flex; - align-items: center; - - .titleLable { - font-size: 18px; - font-family: Source Han Sans CN; - font-weight: 400; - color: #ffffff; - } - } - - .titleImg { - width: 20px; - height: 100%; - display: flex; - align-items: center; - color: rgba(104, 156, 255, 1); - } - - .set { - cursor: pointer; - } - } - - .layerContent { - height: 625px; - padding: 0 8px; - overflow: auto; - overflow-y: auto; - } - - .layerContent::-webkit-scrollbar { - width: 8px; - } - - .layerContent::-webkit-scrollbar-thumb { - border-radius: 10px; - background: rgba(0, 0, 0, 0.2); - } - - .layerContent::-webkit-scrollbar-track { - border-radius: 0; - background: rgba(0, 0, 0, 0); - } - - .el-tree { - width: 100%; - overflow-y: auto; - } - - .layerContent .el-tree-node__content { - overflow: hidden; - } - - .layerContent .custom-tree-node { - overflow: hidden; - flex-shrink: 1; - flex-grow: 1; - display: flex; - align-items: center; - justify-content: space-between; - font-size: 16px; - padding-right: 8px; - } - - .layerContent .custom-tree-node .label { - flex-shrink: 1; - overflow: hidden; - text-overflow: ellipsis; - } - - .layerContent .custom-tree-node .button { - flex-grow: 0; - flex-shrink: 0; - } -} - -.dropdown_box { - position: relative; -} - -/deep/.el-select-dropdown__item { - font-size: 12px !important; -} - -.el-tree { - background: transparent; -} - -/deep/ .el-tree-node { - background: #0d131d; - color: #ffffff; - font-size: 20px; - font-weight: 300; - margin-top: 3px; - padding: 8px; -} - -/deep/ .el-tree-node:focus > .el-tree-node__content { - background: transparent; -} - -/deep/ .el-tree-node__content:hover { - background: #0d131d; -} - -/deep/ .el-tree-node__children { - background: #1e2a3d; - - .el-tree-node { - background: #1e2a3d; - margin-top: 0; - padding: 4px; - } -} - -/deep/ - .el-tree--highlight-current - .el-tree-node.is-current - > .el-tree-node__content { - background: rgba(104, 156, 255, 0.5) !important; -} - -.highlight { - background: rgba(104, 156, 255, 0.5) !important; -} - -// .custom-tree-node { -// flex: 1; -// display: flex; -// align-items: center; -// justify-content: space-between; -// font-size: 16px; -// padding-right: 8px; -// } - -.el-dropdown-menu { - background: rgba(7, 8, 14, 0.8); - box-shadow: inset 0px 10px 40px 10px rgba(38, 47, 71, 1); - color: #fff; - border: 0; - - /deep/ .el-dropdown-menu__item { - color: #fff; - } -} - -/deep/ .el-dropdown-menu__item:not(.is-disabled):focus { - background-color: rgba(104, 156, 255, 0.5); - - color: #fff; -} -</style> -<style> -.el-popper.is-light { - border: 1px solid rgba(7, 8, 14, 0.8) !important; -} - -.el-scrollbar { - border: 0 !important; -} -</style> diff --git a/src/views/layer/layerManage.vue b/src/views/layer/layerManage.vue index e8cef03..651d215 100644 --- a/src/views/layer/layerManage.vue +++ b/src/views/layer/layerManage.vue @@ -190,37 +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); + + 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]); + } } - - // nextTick(() => { - // var str = JSON.parse(std) - - // 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); - // }); + 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,8 +226,11 @@ layerAttributeIsshow.value = false; layerDetailIsshow.value = false; // 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) { @@ -246,34 +241,35 @@ } } server.delLayerAll(); - temporaryTool.removeAll(); + 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.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) { + 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.setAddGeoWmsLayer(layerArr, alpha); } - } else { - setGeoWms.push(layerArr.tab); - geoUrl = layerArr.url; } + } else { + server.addTreeData(layerArr); } - } else { - server.addTreeData(layerArr); } } } @@ -441,10 +437,12 @@ 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") { @@ -554,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); }); }; diff --git a/src/views/layer/layerSet.vue b/src/views/layer/layerSet.vue index aaaa892..5e44712 100644 --- a/src/views/layer/layerSet.vue +++ b/src/views/layer/layerSet.vue @@ -25,25 +25,11 @@ </div> <div class="edit_box"> <div class="edit_box_btn btnstyle"> - <el-button type="primary" :icon="Plus" @click="insertLayerData(1)" - >鏂板鍚岀骇</el-button - > - <el-button type="primary" :icon="Plus" @click="insertLayerData(2)" - >鏂板瀛愮骇</el-button - > - <el-button - type="primary" - :icon="Delete" - class="delbtn" - @click="delLayer" - >鍒犻櫎</el-button - > - <el-button type="primary" :icon="Top" @click="move(1)" - >鍚戜笂绉诲姩</el-button - > - <el-button type="primary" :icon="Bottom" @click="move(2)" - >鍚戜笅绉诲姩</el-button - > + <el-button type="primary" :icon="Plus" @click="insertLayerData(1)">鏂板鍚岀骇</el-button> + <el-button type="primary" :icon="Plus" @click="insertLayerData(2)">鏂板瀛愮骇</el-button> + <el-button type="primary" :icon="Delete" class="delbtn" @click="delLayer">鍒犻櫎</el-button> + <el-button type="primary" :icon="Top" @click="move(1)">鍚戜笂绉诲姩</el-button> + <el-button type="primary" :icon="Bottom" @click="move(2)">鍚戜笅绉诲姩</el-button> </div> <div class="edit_box_form"> <el-form :model="formInline" label-width="120px"> @@ -61,46 +47,32 @@ @click="setServiceChange('0')" key="0" :class="{ serviceActive: !serviceActive }" - >鍚�</el-button - > + >鍚�</el-button> <el-button size="small" class="serviceButton" @click="setServiceChange('1')" key="1" :class="{ serviceActive: serviceActive }" - >鏄�</el-button - > + >鏄�</el-button> </el-form-item> <el-form-item label="鍥惧眰鍚嶇О"> - <el-input - v-model="formInline.cnName" - placeholder="璇疯緭鍏ュ浘灞傚悕绉�" - /> + <el-input v-model="formInline.cnName" placeholder="璇疯緭鍏ュ浘灞傚悕绉�" /> </el-form-item> <!-- 鏈嶅姟绫诲埆 --> <el-form-item v-show="formInline.isLayer == 1" label="鏈嶅姟绫诲埆"> - <el-select - style="width: 100%" - v-model="formInline.category" - :disabled="serviceActive" - > + <el-select style="width: 100%" v-model="formInline.category" :disabled="serviceActive"> <el-option v-for="item in category_type" :key="item.value" :label="item.name" :value="item.value" - > - </el-option> + ></el-option> </el-select> </el-form-item> <el-form-item label="琛ㄥ悕绉�" v-show="formInline.category == 2"> - <el-input - v-model="formInline.tab" - placeholder="璇疯緭鍏ヨ〃鍚嶇О" - :disabled="serviceActive" - /> + <el-input v-model="formInline.tab" placeholder="璇疯緭鍏ヨ〃鍚嶇О" :disabled="serviceActive" /> </el-form-item> <!-- 鏁版嵁绫诲瀷 --> <el-form-item v-show="formInline.isLayer == 1" label="鏁版嵁绫诲瀷"> @@ -115,24 +87,18 @@ :key="item.value" :label="item.label" :value="item.value" - > - </el-option> + ></el-option> </el-select> </el-form-item> <!-- 鏁版嵁绫诲瀷 --> <el-form-item v-show="formInline.isLayer == 1" label="鏈嶅姟绫诲瀷"> - <el-select - style="width: 100%" - v-model="formInline.type" - :disabled="serviceActive" - > + <el-select style="width: 100%" v-model="formInline.type" :disabled="serviceActive"> <el-option v-for="item in dataType" :key="item.value" :label="item.label" :value="item.value" - > - </el-option> + ></el-option> </el-select> </el-form-item> @@ -169,23 +135,18 @@ @click="setInsertServiceChange('0')" key="0" :class="{ serviceActive: !insertServiceActive }" - >鍚�</el-button - > + >鍚�</el-button> <el-button size="small" class="serviceButton" @click="setInsertServiceChange('1')" key="1" :class="{ serviceActive: insertServiceActive }" - >鏄�</el-button - > + >鏄�</el-button> </el-form-item> <el-form-item label="鍥惧眰鍚嶇О"> - <el-input - v-model="insertData.cnName" - placeholder="璇疯緭鍏ュ浘灞傚悕绉�" - /> + <el-input v-model="insertData.cnName" placeholder="璇疯緭鍏ュ浘灞傚悕绉�" /> </el-form-item> <!-- 鏈嶅姟绫诲埆 --> <el-form-item v-show="insertData.isLayer == 1" label="鏈嶅姟绫诲埆"> @@ -199,8 +160,7 @@ :key="item.value" :label="item.name" :value="item.value" - > - </el-option> + ></el-option> </el-select> </el-form-item> <el-form-item label="琛ㄥ悕绉�" v-show="insertData.category == 2"> @@ -223,8 +183,7 @@ :key="item.value" :label="item.label" :value="item.value" - > - </el-option> + ></el-option> </el-select> </el-form-item> <!-- 鏁版嵁绫诲瀷 --> @@ -239,8 +198,7 @@ :key="item.value" :label="item.label" :value="item.value" - > - </el-option> + ></el-option> </el-select> </el-form-item> @@ -253,16 +211,8 @@ </el-form-item> <el-form-item> <div class="btnstyle editBtn"> - <el-button type="primary" size="small" @click="added()" - >纭畾</el-button - > - <el-button - class="delbtn" - type="info" - size="small" - @click="submitCancel()" - >鍙栨秷</el-button - > + <el-button type="primary" size="small" @click="added()">纭畾</el-button> + <el-button class="delbtn" type="info" size="small" @click="submitCancel()">鍙栨秷</el-button> </div> </el-form-item> </el-form> @@ -270,62 +220,30 @@ </el-dialog> <el-dialog v-model="dialogService" width="50%" :show-close="false"> <div style="width: 100%; max-height: 63vh; overflow-y: auto"> - <div - style="display: flex; justify-content: space-between" - class="tableForm" - > + <div style="display: flex; justify-content: space-between" class="tableForm"> <div> <el-input size="small" v-model="listData.name"> <template #suffix> - <el-icon - class="el-input__icon el-icon-search" - @click="setServiceQuery" - > + <el-icon class="el-input__icon el-icon-search" @click="setServiceQuery"> <search /> </el-icon> </template> </el-input> </div> <div class="btnstyle"> - <el-button type="info" size="small" @click="setServiceRest"> - 閲嶇疆 - </el-button> + <el-button type="info" size="small" @click="setServiceRest">閲嶇疆</el-button> - <el-button type="primary" size="small" @click="setServiceConfirm"> - 纭 - </el-button> - <el-button - type="info" - size="small" - @click="setServiceCanel" - class="delbtn" - > - 鍙栨秷 - </el-button> + <el-button type="primary" size="small" @click="setServiceConfirm">纭</el-button> + <el-button type="info" size="small" @click="setServiceCanel" class="delbtn">鍙栨秷</el-button> </div> </div> <el-table ref="multipleTable" :data="tableData" @select="selectChange"> - <el-table-column type="selection" width="55"> </el-table-column> - <el-table-column - align="center" - type="index" - label="搴忓彿" - width="70px" - /> + <el-table-column type="selection" width="55"></el-table-column> + <el-table-column align="center" type="index" label="搴忓彿" width="70px" /> <el-table-column align="center" prop="cnName" label="璧勬簮鍚嶇О" /> - <el-table-column - align="center" - prop="category" - label="鏈嶅姟绫诲瀷" - :formatter="setResCategory" - /> - <el-table-column - align="center" - prop="type" - label="鏁版嵁绫诲瀷" - :formatter="setResType" - /> + <el-table-column align="center" prop="category" label="鏈嶅姟绫诲瀷" :formatter="setResCategory" /> + <el-table-column align="center" prop="type" label="鏁版嵁绫诲瀷" :formatter="setResType" /> </el-table> <div class="pagination_box" style="margin-top: 15px"> <el-pagination @@ -336,8 +254,7 @@ :page-size="listData.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="listData.count" - > - </el-pagination> + ></el-pagination> </div> </div> </el-dialog> @@ -747,7 +664,8 @@ backUpData.value = JSON.stringify(data); // this.currentData = JSON.stringify(result) formInline.value = JSON.parse(backUpData.value); - formInline.value.isLayer = data.isLayer.toString(); + debugger; + formInline.value.isLayer = parseInt(data.isLayer) == 0 ? "0" : "1"; if (data.resid && data.resid > 0) { serviceActive.value = true; } else { @@ -774,7 +692,7 @@ id += Math.floor(Math.random() * 10); } var addObj = { - isLayer: insertData.value.isLayer.toString(), + isLayer: parseInt(insertData.value.isLayer), id: id, cnName: insertData.value.cnName, url: insertData.value.serviceUrl, @@ -784,7 +702,7 @@ tab: insertData.value.tab, //Geoserver 鍚嶇О锛� category: insertData.value.category, //鏈嶅姟绫诲埆 Geoserver , 1 GisServer 2 GeoServer 3鏁扮畝 }; - + debugger; if (addlocation == 1) { //鏂板鍚岀骇 treeRef.value.insertAfter(addObj, treeRef.value.getNode(selectedObj.value)); -- Gitblit v1.9.3