From f4a54f5d378fb194d4132de2668e5d85a255b8ff Mon Sep 17 00:00:00 2001 From: surprise <15810472099@163.com> Date: 星期四, 26 十月 2023 15:07:55 +0800 Subject: [PATCH] 版本更新 --- src/views/layer/layerManage.vue | 266 ++++++++++++++++++++++++++++++---------------------- 1 files changed, 153 insertions(+), 113 deletions(-) diff --git a/src/views/layer/layerManage.vue b/src/views/layer/layerManage.vue index 295f7bf..478ba9d 100644 --- a/src/views/layer/layerManage.vue +++ b/src/views/layer/layerManage.vue @@ -12,9 +12,20 @@ </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"> + <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> @@ -23,7 +34,7 @@ <a style="margin-left: 8px" @click="remove(node, data)"> Delete </a> - </span> --> + </span>--> <span class="button" v-if="!data.isTemporaryLayer"> <el-dropdown trigger="click"> <span class="el-dropdown-link"> @@ -33,19 +44,31 @@ </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" + @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-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> @@ -55,9 +78,18 @@ </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-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> @@ -76,7 +108,13 @@ 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 { + 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"; @@ -120,9 +158,9 @@ 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+"鍥惧眰娌℃湁鍕鹃��,鏃犳硶杩涜缂栬緫"); + let son = estreeRef.value.getCheckedKeys(); + if (son.indexOf(data.id) < 0) { + return ElMessage(data.cnName + "鍥惧眰娌℃湁鍕鹃��,鏃犳硶杩涜缂栬緫"); } if (store.state.editTemporaryId) { var id = store.state.editTemporaryId; @@ -135,49 +173,59 @@ store.state.editTemporaryId = data.id; sgworld.Creator.SimpleGraphic.SimpleGraphicObj.push(data.id); sgworld.Creator.SimpleGraphic.edit(true, { - editProp: false, tipText: { - ActiveText: '鐐瑰嚮婵�娲荤紪杈�' - }, enableDelete: false + 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 + 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 = []; - for (var i in keys) { - checkedKeys.push(keys[i]) - } + + // 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); } } - if (checkedKeys.indexOf(data.id) > -1) { - checkedKeys.splice(checkedKeys.indexOf(data.id), 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); } - if (checkedKeys.indexOf(temporary.value) > -1) { - checkedKeys.splice(checkedKeys.indexOf(temporary.value), 1) - } - estreeRef.value.setCheckedKeys([], true); - nextTick(() => { - var layerIds = []; - for (var i in checkedKeys) { - var val = estreeRef.value.getNode(checkedKeys[i]).data; - if (val.isLayer == 1) { - layerIds.push(checkedKeys[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+"鍥惧眰娌℃湁鍕鹃��,鏃犳硶杩涜瀹氫綅"); + // 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); } @@ -197,22 +245,24 @@ for (var i in son) { var layerArr = son[i]; layerArr.checked = true; - if (layerArr.shpType && layerArr.shpType == 'temporaryLayer') {//涓存椂鍥惧眰娣诲姞 + if (layerArr.shpType && layerArr.shpType == "temporaryLayer") { + //涓存椂鍥惧眰娣诲姞 temporaryTool.addTemporaryTool(layerArr); } else { server.addTreeData(layerArr); } } } else { - if (data.shpType && data.shpType == 'temporaryLayer') {//涓存椂鍥惧眰娣诲姞 + 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') {//涓存椂鍥惧眰娣诲姞 - + if (layerArr.shpType && layerArr.shpType == "temporaryLayer") { + //涓存椂鍥惧眰娣诲姞 } else { server.addTreeData(layerArr); } @@ -220,27 +270,26 @@ } } } else { - debugger if (data.isLayer == 0) { var layers = getCheckedLayerChildren(data); - debugger + // var layers = data.children; for (var i in layers) { - if (layers[i].shpType && layers[i].shpType == 'temporaryLayer') {//涓存椂鍥惧眰娣诲姞 + if (layers[i].shpType && layers[i].shpType == "temporaryLayer") { + //涓存椂鍥惧眰娣诲姞 temporaryTool.removeTemporaryLayer(layers[i]); } else { - server.delLayer(layers[i].id) + server.delLayer(layers[i].id); } } } else { - - if (data.shpType && data.shpType == 'temporaryLayer') {//涓存椂鍥惧眰娣诲姞 + if (data.shpType && data.shpType == "temporaryLayer") { + //涓存椂鍥惧眰娣诲姞 temporaryTool.removeTemporaryLayer(data); } else { - server.delLayer(data.id) + server.delLayer(data.id); } } - } menuTool.setImageLayerChange(); }; @@ -291,8 +340,8 @@ layerDetailIsshow.value = true; store.state.layerGroups = { id: e.id, - layerIds: layerId - } + layerIds: layerId, + }; } else { var val = estreeRef.value!.getCheckedKeys(false); if (val.indexOf(e.id) > -1) { @@ -301,33 +350,30 @@ return ElMessage.error("璇峰厛鍕鹃�夊浘灞�"); } } - }) - + }); }; const getCheckedLayerPID = (res, result) => { var temp = []; - var ids = result + var ids = result; let forFn = (data) => { if (data.children) { - data.children.forEach(item => { + data.children.forEach((item) => { if (item.children) { - forFn(item) + forFn(item); } else { if (ids.indexOf(item.id) > -1) { - temp.push(item.id) + temp.push(item.id); } } - }) + }); } else { - if (ids.indexOf(data.id) > -1) { - temp.push(data.id) + temp.push(data.id); } } + }; - } - forFn(res); return temp; }; @@ -336,30 +382,22 @@ var temp2 = []; let forFn = (data) => { if (data.children) { - data.children.forEach(item => { + data.children.forEach((item) => { if (item.children) { - forFn(item) + forFn(item); } else { - - temp2.push(item) - + temp2.push(item); } - }) + }); } else { - temp2.push(data) + temp2.push(data); } - } + }; forFn(res); return temp2; }; - - - - - const setSpatialClose = (res) => { - layerAttributeIsshow.value = res; }; const detailClose = (res) => { @@ -435,13 +473,12 @@ // 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; }); @@ -449,13 +486,13 @@ 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) + children.push(slayer); } } treeData.value.unshift({ @@ -494,7 +531,7 @@ nextTick(() => { let son = estreeRef.value.getCheckedNodes(); - setRestLayerData() + setRestLayerData(); store.commit("SET_CHECKLAYER", son); }); } @@ -522,10 +559,10 @@ var obj = { id: res.id, name: res.cnName, - wkt: JSON.stringify(res) - } + wkt: JSON.stringify(res), + }; const data = await mark_insert(obj); - if (data.code != 200 || !data.result) return + if (data.code != 200 || !data.result) return; store.state.temporaryLayer = null; res.sid = data.result; treeData.value[0].children.push(res); @@ -534,7 +571,7 @@ nextTick(() => { var checkedKeys = estreeRef.value.getCheckedKeys(); if (checkedKeys.indexOf(temporary.value) > -1) { - checkedKeys.splice(checkedKeys.indexOf(temporary.value), 1) + checkedKeys.splice(checkedKeys.indexOf(temporary.value), 1); } checkedKeys.push(id); estreeRef.value.setCheckedKeys(checkedKeys, true); @@ -549,7 +586,7 @@ for (var i = 0; i < val.length; i++) { if (val[i].id == id) { val[i].cnName = res; - setEditLayerChange(val[i]) + setEditLayerChange(val[i]); } } defaultExpanded.value = [treeData.value[0].id]; @@ -559,13 +596,13 @@ var val = treeData.value[0].children; var checkedKeys = estreeRef.value.getCheckedKeys(); if (checkedKeys.indexOf(temporary.value) > -1) { - checkedKeys.splice(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) + setEditLayerChange(obj); } } nextTick(() => { @@ -576,11 +613,11 @@ var obj = { id: res.sid, name: res.cnName, - wkt: JSON.stringify(res) - } - const data = await mark_update(obj) - if (data.code != 200) return -} + wkt: JSON.stringify(res), + }; + const data = await mark_update(obj); + if (data.code != 200) return; +}; watch( () => store.state.restLayer, (nVal, oVal) => { @@ -743,7 +780,7 @@ padding: 8px; } -/deep/ .el-tree-node:focus>.el-tree-node__content { +/deep/ .el-tree-node:focus > .el-tree-node__content { background: transparent; } @@ -761,7 +798,10 @@ } } -/deep/ .el-tree--highlight-current .el-tree-node.is-current>.el-tree-node__content { +/deep/ + .el-tree--highlight-current + .el-tree-node.is-current + > .el-tree-node__content { background: rgba(104, 156, 255, 0.5) !important; } -- Gitblit v1.9.3