From 6995a96cc2380db13bb2295de107294258ae4c63 Mon Sep 17 00:00:00 2001 From: WX <1377869194@qq.com> Date: 星期一, 04 九月 2023 17:49:08 +0800 Subject: [PATCH] Merge branch 'master' of http://192.168.20.92:8888/r/PM20230220027_Web --- src/views/baseMapSwitching/baseMapSwitching.vue | 10 src/views/query/SpatialQuery.vue | 4 src/views/menus.vue | 134 +++++++++- src/views/search/search.vue | 38 ++- src/assets/js/Map/olMap.js | 20 + src/utils/auth.js | 7 src/views/export/exportMap.vue | 13 src/assets/js/Map/rightServer.js | 48 ++++ src/components/mouseMove.vue | 18 - src/components/thematicMap/thematicMap.vue | 4 src/views/Map/mapView.vue | 10 src/views/layer/doubleLayer.vue | 46 +++ src/components/topBtn.vue | 6 src/views/export/exportList.vue | 13 src/assets/img/图层 18.png | 0 src/views/layer/attributeList.vue | 2 src/views/layer/layerSet.vue | 246 ++++++++++++++----- src/views/Index.vue | 3 src/store/index.ts | 8 src/views/login.vue | 10 src/views/layer/layerDetail.vue | 2 src/assets/js/Map/menuTool.js | 12 + src/views/plotting/plotting.vue | 17 + src/views/layer/layerManage.vue | 8 src/App.vue | 6 25 files changed, 518 insertions(+), 167 deletions(-) diff --git a/src/App.vue b/src/App.vue index 88c7e4c..9226795 100644 --- a/src/App.vue +++ b/src/App.vue @@ -11,9 +11,13 @@ defineEmits, } from "vue"; import router from "./router"; - +import store from "@/store"; onMounted(() => { // router.push("/Login"); + var val = window.sessionStorage.getItem("Admin-Token"); + if (val) { + store.state.uname = JSON.parse(val).uname; + } }); </script> diff --git "a/src/assets/img/\345\233\276\345\261\202 18.png" "b/src/assets/img/\345\233\276\345\261\202 18.png" new file mode 100644 index 0000000..250588b --- /dev/null +++ "b/src/assets/img/\345\233\276\345\261\202 18.png" Binary files differ diff --git a/src/assets/js/Map/menuTool.js b/src/assets/js/Map/menuTool.js index 4e5d98e..66dfe8e 100644 --- a/src/assets/js/Map/menuTool.js +++ b/src/assets/js/Map/menuTool.js @@ -309,6 +309,7 @@ case "l3": //鍦ㄧ嚎鍒跺浘 store.state.isShowMap = true; this.setThematicMap(); + break; case "l4": store.state.isShowMap = true; @@ -323,11 +324,17 @@ }, thematicTools(res) { switch (res.id) { + case "t1": + store.state.setLayerManager = !store.state.setLayerManager; + break; case "t2": this.createSimpleGraphic("rectangle", "square"); break; case "t3": this.delRectangle(); + break; + case "t4": + store.state.setExportList = !store.state.setExportList break; } }, @@ -360,6 +367,9 @@ var north1 = ss[3]; var south1 = ss[1]; var geometry = Cesium.Rectangle.fromDegrees(west1, south1, east1, north1); + + + Viewer.camera.setView({ destination: Cesium.Rectangle.fromDegrees(west, south, east, north), }); @@ -387,6 +397,7 @@ // var handle = new SmartEarth.Cesium.ScreenSpaceEventHandler( // earthCtrl.viewer.scene.canvas // ); + }, //鍧愭爣瀹氫綅 @@ -422,6 +433,7 @@ window.rightViewer.scene.skyAtmosphere.show = false; const compass = document.getElementsByClassName("bottom_btn")[0]; compass.style.right = "calc(50% + 70px)"; + compass.style.positions = "absolute"; store.state.doubleMap = true; setTimeout(() => { window.functionGetLayer({ diff --git a/src/assets/js/Map/olMap.js b/src/assets/js/Map/olMap.js index 696d1e5..5b90955 100644 --- a/src/assets/js/Map/olMap.js +++ b/src/assets/js/Map/olMap.js @@ -196,7 +196,27 @@ }); if (this.map) { this.map.addLayer(this.Layer); + var that = this; + window.olMap = this.map; + window.layer = this.Layer + setTimeout(() => { + that.getLayersExtent(); + }, 1000) + // this.Layer.getSource().on('addfeature', function () { + // this.map.getView().fit(this.Layer.getSource().getExtent()); + // }); + + } }, + getLayersExtent() { + // 缂╂斁鑷冲浘灞傝寖鍥� + + this.map.getView().fit(this.Layer.renderer_.renderedExtent_); + + + + } + }; export default olMap; diff --git a/src/assets/js/Map/rightServer.js b/src/assets/js/Map/rightServer.js index 4c85743..d5e9a48 100644 --- a/src/assets/js/Map/rightServer.js +++ b/src/assets/js/Map/rightServer.js @@ -353,5 +353,53 @@ let img_layer = window.rightViewer.imageryLayers.addImageryProvider(layer); this.layerList.push({ id: res.id, layerData: img_layer, type: "wmts" }); }, + addGeoServerMmsLayers(layer, url) { + var that = this + var getFeatureInfoFormat = new SmartEarth.Cesium.GetFeatureInfoFormat("html", null, function (html) { + that.getFeatureInfo(html) + }); + let wmslayer = new SmartEarth.Cesium.WebMapServiceImageryProvider({ + url: url, + layers: layer.toString(), + getFeatureInfoParameters: { info_format: 'text/html' }, + enablePickFeatures: true, + getFeatureInfoFormats: [getFeatureInfoFormat], + parameters: { + transparent: true, + format: "image/png", + srs: "EPSG:104903", + styles: "", + }, + tileWidth: 512, + tileHeight: 512, + }); + wmslayer.name = `Wms_Layer_geo`; + let img_layer = window.rightViewer.imageryLayers.addImageryProvider(wmslayer); + this.layerList.push({ id: 1001011, layerData: img_layer, type: "wmts" }); + }, + + delLayerAll() { + this.layerList.forEach((e, i) => { + switch (e.type) { + case "wmts": + window.rightViewer.imageryLayers.remove(e.layerData); + break; + case "tms": + window.rightViewer.imageryLayers.remove(e.layerData); + break; + case "dem": + window.rightViewer.terrainProvider = new Cesium.EllipsoidTerrainProvider( + {} + ); + break; + case "tileset": + window.rightViewer.scene.primitives.remove(e.layerData) + break; + } + this.layerList.splice(i, 1); + }); + + }, + }; export default rightServer; diff --git a/src/components/mouseMove.vue b/src/components/mouseMove.vue index 0e06feb..0d2f2cc 100644 --- a/src/components/mouseMove.vue +++ b/src/components/mouseMove.vue @@ -141,7 +141,7 @@ // 褰撳墠楂樺害 let height = Viewer.camera.positionCartographic.height; heightlevel = getLevel(height); - console.log(heightlevel); + if (heightlevel == 6) { gridDel(); grid(5); @@ -178,7 +178,7 @@ // ]) // ); // } - // console.log(ps); + // let polylineGeometry = new Cesium.PolylineGeometry({ // positions: ps, // width: 5, @@ -203,16 +203,6 @@ const grid = (degree) => { const entities = Viewer.entities; for (let longitude = -180; longitude <= 180; longitude += degree) { - console.log( - Cesium.Cartesian3.fromDegreesArray([ - longitude, - -90, - longitude, - 0, - longitude, - 90, - ]) - ); let text = ""; if (longitude === 0) { text = "0"; @@ -260,7 +250,7 @@ if (lat === 0) { text = ""; } - // console.log(lat, "---lat"); + let obj = entities.add({ position: Cesium.Cartesian3.fromDegrees(0, lat), polyline: { @@ -291,7 +281,7 @@ }); entitiesObj.latLine.push(obj); } - console.log(entitiesObj); + // 鎶楅敮榻� if (Cesium.FeatureDetection.supportsImageRenderingPixelated()) { //鍒ゆ柇鏄惁鏀寔鍥惧儚娓叉煋鍍忕礌鍖栧鐞� diff --git a/src/components/thematicMap/thematicMap.vue b/src/components/thematicMap/thematicMap.vue index 3e54481..cdce51a 100644 --- a/src/components/thematicMap/thematicMap.vue +++ b/src/components/thematicMap/thematicMap.vue @@ -56,11 +56,9 @@ <style lang="less" scoped> .top_btn { - position: absolute; - top: 23px; - right: 0px; display: flex; cursor: pointer; + .menu_Box { margin-right: 104px; display: flex; diff --git a/src/components/topBtn.vue b/src/components/topBtn.vue index 8b4b9f4..6676c4e 100644 --- a/src/components/topBtn.vue +++ b/src/components/topBtn.vue @@ -121,9 +121,9 @@ <style lang="less" scoped> .top_btn { - position: absolute; - top: 23px; - right: 0px; + // position: absolute; + // top: 23px; + // right: 0px; display: flex; cursor: pointer; z-index: 30; diff --git a/src/store/index.ts b/src/store/index.ts index a362c16..bc1b009 100644 --- a/src/store/index.ts +++ b/src/store/index.ts @@ -30,6 +30,8 @@ restLayer: false, isShowMap: true, spatialTitle: null, + setExportList: false, + setLayerManager: false, }, mutations: { //鑾峰彇鐧诲綍Code @@ -44,7 +46,11 @@ }, SET_TOKEN(state, token) { state.token = token; - setToken(token); + var obj = { + token: token, + uname: state.uname, + }; + setToken(JSON.stringify(obj)); }, SET_CHECKLAYER(state, layers) { state.chekNowLayers = layers; diff --git a/src/utils/auth.js b/src/utils/auth.js index bff89e4..ea1ceff 100644 --- a/src/utils/auth.js +++ b/src/utils/auth.js @@ -2,10 +2,15 @@ export function getToken() { // console.log(window.sessionStorage.getItem(TokenKey)); - return window.sessionStorage.getItem(TokenKey); + var val = window.sessionStorage.getItem(TokenKey) + if (val) { + return JSON.parse(val).token; + } + return val; } export function setToken(token) { + debugger return window.sessionStorage.setItem(TokenKey, token); } diff --git a/src/views/Index.vue b/src/views/Index.vue index 989f3cf..79a3ce4 100644 --- a/src/views/Index.vue +++ b/src/views/Index.vue @@ -5,6 +5,7 @@ v-if="layerExportshow" @SETexportMap="SETexportMap" ></export-map> + <export-list v-if="store.state.setExportList"></export-list> <menus></menus> <bottom-btn v-if="store.state.isShowMap"></bottom-btn> <mouse-move v-if="store.state.isShowMap"></mouse-move> @@ -57,6 +58,8 @@ import mapclock from "@/views/mapClock/index.vue"; //鐭㈤噺鏁版嵁淇℃伅寮圭獥 import detailsQuery from "@/views/query/detailsQuery.vue"; +//鍑哄浘鍒楄〃 +import exportList from "./export/exportList.vue"; import router from "@/router"; import { useStore } from "vuex"; // 寮曞叆useStore 鏂规硶 diff --git a/src/views/Map/mapView.vue b/src/views/Map/mapView.vue index 4f9cfd1..122a5ce 100644 --- a/src/views/Map/mapView.vue +++ b/src/views/Map/mapView.vue @@ -1,9 +1,7 @@ <template> - <div - id="cesiumContainer" - class="cesiumContainer" - > - + <div class="MapViewBox"> + <div id="cesiumContainer"> + </div> </div> </template> @@ -35,7 +33,7 @@ </script> <style lang="less" scoped> -.cesiumContainer { +.MapViewBox { width: 100%; height: 100%; margin: 0; diff --git a/src/views/baseMapSwitching/baseMapSwitching.vue b/src/views/baseMapSwitching/baseMapSwitching.vue index 62cfd66..6abcbf8 100644 --- a/src/views/baseMapSwitching/baseMapSwitching.vue +++ b/src/views/baseMapSwitching/baseMapSwitching.vue @@ -2,7 +2,10 @@ <div class="baseMapSwitching"> <div class="baseMapSwitchingTitle"> <div class="tileLeft"> - <div class="titleImg"> + <div + class="titleImg" + @click="setCloseBaseMap" + > <ArrowLeft /> </div> <div class="titleLable">鎶曞奖鍥惧眰绠$悊</div> @@ -42,10 +45,10 @@ import projection from "@/assets/js/Map/projectionServer"; import olMap from "@/assets/js/Map/olMap"; +const emits = defineEmits(["setCloseBaseMap"]); let list = ref([]); const activceIndex = ref(); const setProjectionLayerChange = (res) => { - console.log(res); let projection = { code: "", extent: [], @@ -86,6 +89,9 @@ // } }; getProjectionLayer(); +const setCloseBaseMap = () => { + emits("setCloseBaseMap", false); +}; </script> <style lang="less" scoped> diff --git a/src/views/export/exportList.vue b/src/views/export/exportList.vue index 0d23c8b..7f12222 100644 --- a/src/views/export/exportList.vue +++ b/src/views/export/exportList.vue @@ -25,8 +25,13 @@ defineEmits, } from "vue"; import { User, Lock } from "@element-plus/icons-vue"; +import { useStore } from "vuex"; // 寮曞叆useStore 鏂规硶 + +const store = useStore(); // 璇ユ柟娉曠敤浜庤繑鍥瀞tore 瀹炰緥 const emits = defineEmits(["SETspatialClose"]); -const setSpatialClose = () => {}; +const setSpatialClose = () => { + store.state.setExportList = false; +}; </script> <style lang="less" scoped> @@ -35,11 +40,11 @@ height: 400px; display: flex; position: absolute; - bottom: 5%; - right: 5%; + bottom: 10px; + right: 50px; background: rgba(7, 8, 14, 0.8); border: 1px solid #d6e4ff; - z-index: 10; + z-index: 50; box-shadow: inset 0px 10px 40px 10px rgba(38, 47, 71, 1); .exportTitle { padding: 10px; diff --git a/src/views/export/exportMap.vue b/src/views/export/exportMap.vue index a98663b..24de1f8 100644 --- a/src/views/export/exportMap.vue +++ b/src/views/export/exportMap.vue @@ -113,7 +113,6 @@ </div> </div> </template> - <script lang="ts" setup> import store from "@/store"; import { @@ -139,7 +138,6 @@ // window.Viewer.scene.render(); const myCanvas = window.Viewer.scene.canvas; var res = canvas2image.convertToImage(myCanvas, "869", "783", "png"); - debugger; url.value = res.src; }; onMounted((res) => { @@ -184,7 +182,7 @@ overflow: auto; .contentTitle { - font-size: 20px; + font-size: 16px; font-family: Source Han Sans CN; font-weight: 300; color: #ffffff; @@ -221,6 +219,8 @@ margin-top: 9px; margin-left: 16px; margin-right: 9px; + font-size: 16px; + font-family: Source Han Sans CN; } } .menuButton { @@ -228,6 +228,7 @@ display: flex; justify-content: center; align-items: center; + .el-button { height: 37px; background: rgba(104, 156, 255, 0.2); @@ -248,13 +249,13 @@ .menuTitle { width: calc(100% - 30px); - height: 42px; - background: #0e151f; - font-size: 24px; + background: #0e151f; + font-size: 18px; font-family: Source Han Sans CN; font-weight: 400; color: #ffffff; + padding: 10px; padding-left: 28px; } ::-webkit-scrollbar { diff --git a/src/views/layer/attributeList.vue b/src/views/layer/attributeList.vue index 410bc80..1ede907 100644 --- a/src/views/layer/attributeList.vue +++ b/src/views/layer/attributeList.vue @@ -304,7 +304,6 @@ value: std[i], }); } - debugger; condOption.value = str; formSql.value.type = std[0]; }; @@ -323,7 +322,6 @@ watch( () => props.layerData, (nVal, oVal) => { - // console.log("鍊煎彂鐢熶簡鍙樻洿", nVal, oVal); startQueryData(); }, { deep: true } diff --git a/src/views/layer/doubleLayer.vue b/src/views/layer/doubleLayer.vue index 26535af..186343f 100644 --- a/src/views/layer/doubleLayer.vue +++ b/src/views/layer/doubleLayer.vue @@ -148,10 +148,29 @@ let isCheck = checked.checkedKeys.indexOf(data.id) > -1; // this.setVisiable(data, isCheck); - let son = estreeRef.value.getCheckedNodes(); + let son = estreeRef.value.getCheckedNodes().reverse(); + rightServer.delLayerAll(); + + 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") { + setGeoWms.push(layerArr.tab); + url = layerArr.url; + } + } else { + rightServer.addTreeData(layerArr); + } + } + if (setGeoWms.length > 0) { + rightServer.addGeoServerMmsLayers(setGeoWms.reverse(), url); + } store.commit("SET_CHECKLAYER", son); - setVisiable(data, isCheck); + //setVisiable(data, isCheck); // server.addLayer(layerArr, isCheck); }; @@ -170,7 +189,7 @@ } if (!treeNode.isAdd) { - rightServer.addTreeData(treeNode); + //rightServer.addTreeData(treeNode); return; } }; @@ -191,7 +210,6 @@ if (res == 2) { layerAttributeIsshow.value = true; - debugger; store.state.tab = e; } else { if (!e.checked) { @@ -270,13 +288,29 @@ } }); DefaultId.value = std; - //娣诲姞榛樿閫変腑鍥惧眰 layerListData.value = dt.result; defaultLayer(dt.result); + + var setGeoWms = []; + var url = null; + for (var i in dt.result) { + var layer = dt.result[i]; + if (layer.category == 2 && layer.type == 3) { + if (layer.tab != "moon:geo_mappable_unit") { + setGeoWms.push(layer.tab); + url = layer.url; + } + } else { + rightServer.addTreeData(layer); + } + } + if (setGeoWms.length > 0) { + rightServer.addGeoServerMmsLayers(setGeoWms.reverse(), url); + } + nextTick(() => { let son = estreeRef.value.getCheckedNodes(); - store.commit("SET_CHECKLAYER", son); }); } diff --git a/src/views/layer/layerDetail.vue b/src/views/layer/layerDetail.vue index cc5b43c..21f4da0 100644 --- a/src/views/layer/layerDetail.vue +++ b/src/views/layer/layerDetail.vue @@ -195,7 +195,7 @@ // let aa = stretchOptions[index]; // let value = aa.value; // if (brand === value) { - // console.log(select.value.$el.children); + // select.value.$el.children[0].children[0].setAttribute( // "style", // "background:url(" + diff --git a/src/views/layer/layerManage.vue b/src/views/layer/layerManage.vue index ac879e4..647fa23 100644 --- a/src/views/layer/layerManage.vue +++ b/src/views/layer/layerManage.vue @@ -108,7 +108,7 @@ import { ElMessage } from "element-plus"; const store = useStore(); // 璇ユ柟娉曠敤浜庤繑鍥瀞tore 瀹炰緥 const stretchValue = ref(""); - +const emits = defineEmits(["setCloseLayer"]); let estreeRef = ref(); const setLayer = ref(); const transparence = ref(0); @@ -126,7 +126,7 @@ const layerObjData = ref(null); // 褰撳墠閫変腑鐨勮妭鐐� id const selectedNodeId = ref(null as any); //鍋氱被鍨嬫柇瑷�澶勭悊 -const emits = defineEmits(["setCloseLayer"]); + //榛樿閫変腑id const DefaultId = ref([]); //鍥惧眰璁剧疆寮规 @@ -138,6 +138,7 @@ layerSetIsshow.value = res; }; const setCloseLayer = () => { + store.state.setLayerManager = false; emits("setCloseLayer", false); }; //閫夋嫨鍥惧眰 @@ -166,7 +167,6 @@ } } if (setGeoWms.length > 0) { - console.log(setGeoWms); server.addGeoServerMmsLayers(setGeoWms.reverse(), url); } store.commit("SET_CHECKLAYER", son); @@ -311,7 +311,6 @@ } } if (setGeoWms.length > 0) { - console.log(setGeoWms); server.addGeoServerMmsLayers(setGeoWms.reverse(), url); } //; @@ -350,6 +349,7 @@ }, { deep: true } ); + // getLayer(); onMounted(() => { window.setLayer = getLayer; diff --git a/src/views/layer/layerSet.vue b/src/views/layer/layerSet.vue index c5555e7..adf4b63 100644 --- a/src/views/layer/layerSet.vue +++ b/src/views/layer/layerSet.vue @@ -3,7 +3,10 @@ <div class="layerBox"> <div class="layerTitle"> <div class="tileLeft"> - <div class="titleImg" @click="editState"> + <div + class="titleImg" + @click="editState" + > <ArrowLeft /> </div> <div class="titleLable">鍥惧眰缂栬緫</div> @@ -19,57 +22,78 @@ :expand-on-click-node="false" @node-click="handleNodeClick" ref="treeRef" + style="font-size: 16px;" /> </div> </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="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> + <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"> + <el-form + :model="formInline" + label-width="120px" + > <el-form-item label="鍥惧眰绫诲瀷"> - <el-select style="width: 100%" v-model="formInline.isLayer"> - <el-option label="鍥惧眰缁�" value="0"></el-option> - <el-option label="鍥惧眰" value="1"></el-option> + <el-select + style="width: 100%" + v-model="formInline.isLayer" + > + <el-option + label="鍥惧眰缁�" + value="0" + ></el-option> + <el-option + label="鍥惧眰" + value="1" + ></el-option> </el-select> </el-form-item> <!-- 鏈嶅姟璧勬簮--> - <el-form-item v-show="formInline.isLayer == 1" label="鏈嶅姟璧勬簮"> + <el-form-item + v-show="formInline.isLayer == 1" + label="鏈嶅姟璧勬簮" + > <el-button size="small" class="serviceButton" @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="鍥惧眰鍚嶇О"> @@ -79,7 +103,10 @@ /> </el-form-item> <!-- 鏈嶅姟绫诲埆 --> - <el-form-item v-show="formInline.isLayer == 1" label="鏈嶅姟绫诲埆"> + <el-form-item + v-show="formInline.isLayer == 1" + label="鏈嶅姟绫诲埆" + > <el-select style="width: 100%" v-model="formInline.category" @@ -94,7 +121,10 @@ </el-option> </el-select> </el-form-item> - <el-form-item label="琛ㄥ悕绉�" v-show="formInline.category == 2"> + <el-form-item + label="琛ㄥ悕绉�" + v-show="formInline.category == 2" + > <el-input v-model="formInline.tab" placeholder="璇疯緭鍏ヨ〃鍚嶇О" @@ -102,7 +132,10 @@ /> </el-form-item> <!-- 鏁版嵁绫诲瀷 --> - <el-form-item v-show="formInline.isLayer == 1" label="鏁版嵁绫诲瀷"> + <el-form-item + v-show="formInline.isLayer == 1" + label="鏁版嵁绫诲瀷" + > <el-select style="width: 100%" v-model="formInline.data" @@ -119,7 +152,10 @@ </el-select> </el-form-item> <!-- 鏁版嵁绫诲瀷 --> - <el-form-item v-show="formInline.isLayer == 1" label="鏈嶅姟绫诲瀷"> + <el-form-item + v-show="formInline.isLayer == 1" + label="鏈嶅姟绫诲瀷" + > <el-select style="width: 100%" v-model="formInline.type" @@ -135,7 +171,10 @@ </el-select> </el-form-item> - <el-form-item label="鏈嶅姟鍦板潃" v-show="formInline.isLayer == 1"> + <el-form-item + label="鏈嶅姟鍦板潃" + v-show="formInline.isLayer == 1" + > <el-input v-model="formInline.serviceUrl" placeholder="璇疯緭鍏ユ湇鍔″湴鍧�" @@ -144,40 +183,63 @@ </el-form-item> <el-form-item> <div class="btnstyle editBtn"> - <el-button type="primary" @click="onSubmit">纭畾</el-button> - <el-button class="delbtn" @click="updateRest">鍙栨秷</el-button> + <el-button + type="primary" + @click="onSubmit" + >纭畾</el-button> + <el-button + class="delbtn" + @click="updateRest" + >鍙栨秷</el-button> </div> </el-form-item> </el-form> </div> </div> - <el-dialog title="鏂板" v-model="dialogVisible" width="50%"> + <el-dialog + title="鏂板" + v-model="dialogVisible" + width="50%" + > <div style="width: 100%; max-height: 63vh; overflow-y: auto"> - <el-form :model="insertData" label-width="120px"> + <el-form + :model="insertData" + label-width="120px" + > <el-form-item label="鍥惧眰绫诲瀷"> - <el-select style="width: 100%" v-model="insertData.isLayer"> - <el-option label="鍥惧眰缁�" value="0"></el-option> - <el-option label="鍥惧眰" value="1"></el-option> + <el-select + style="width: 100%" + v-model="insertData.isLayer" + > + <el-option + label="鍥惧眰缁�" + value="0" + ></el-option> + <el-option + label="鍥惧眰" + value="1" + ></el-option> </el-select> </el-form-item> <!-- 鏈嶅姟璧勬簮--> - <el-form-item v-show="insertData.isLayer == 1" label="鏈嶅姟璧勬簮"> + <el-form-item + v-show="insertData.isLayer == 1" + label="鏈嶅姟璧勬簮" + > <el-button size="small" class="serviceButton" @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="鍥惧眰鍚嶇О"> @@ -187,7 +249,10 @@ /> </el-form-item> <!-- 鏈嶅姟绫诲埆 --> - <el-form-item v-show="insertData.isLayer == 1" label="鏈嶅姟绫诲埆"> + <el-form-item + v-show="insertData.isLayer == 1" + label="鏈嶅姟绫诲埆" + > <el-select style="width: 100%" v-model="insertData.category" @@ -202,7 +267,10 @@ </el-option> </el-select> </el-form-item> - <el-form-item label="琛ㄥ悕绉�" v-show="insertData.category == 2"> + <el-form-item + label="琛ㄥ悕绉�" + v-show="insertData.category == 2" + > <el-input v-model="insertData.tab" placeholder="璇疯緭鍏ヨ〃鍚嶇О" @@ -210,7 +278,10 @@ /> </el-form-item> <!-- 鏁版嵁绫诲瀷 --> - <el-form-item v-show="insertData.isLayer == 1" label="鏁版嵁绫诲瀷"> + <el-form-item + v-show="insertData.isLayer == 1" + label="鏁版嵁绫诲瀷" + > <el-select style="width: 100%" v-model="insertData.data" @@ -227,7 +298,10 @@ </el-select> </el-form-item> <!-- 鏁版嵁绫诲瀷 --> - <el-form-item v-show="insertData.isLayer == 1" label="鏈嶅姟绫诲瀷"> + <el-form-item + v-show="insertData.isLayer == 1" + label="鏈嶅姟绫诲瀷" + > <el-select style="width: 100%" v-model="insertData.type" @@ -243,7 +317,10 @@ </el-select> </el-form-item> - <el-form-item label="鏈嶅姟鍦板潃" v-show="insertData.isLayer == 1"> + <el-form-item + label="鏈嶅姟鍦板潃" + v-show="insertData.isLayer == 1" + > <el-input v-model="insertData.serviceUrl" placeholder="璇疯緭鍏ユ湇鍔″湴鍧�" @@ -252,44 +329,61 @@ </el-form-item> <el-form-item> <div class="btnstyle editBtn"> - <el-button type="primary" size="small" @click="added()" - >纭畾</el-button - > + <el-button + type="primary" + size="small" + @click="added()" + >纭畾</el-button> <el-button class="delbtn" type="info" size="small" @click="submitCancel()" - >鍙栨秷</el-button - > + >鍙栨秷</el-button> </div> </el-form-item> </el-form> </div> </el-dialog> - <el-dialog v-model="dialogService" width="50%" :show-close="false"> + <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> - <el-input size="small" v-model="listData.name"> + <el-input + size="small" + v-model="listData.name" + > <template #suffix> <el-icon class="el-input__icon el-icon-search" @click="setServiceQuery" - ><search - /></el-icon> + > + <search /> + </el-icon> </template> </el-input> </div> <div class="btnstyle"> - <el-button type="info" size="small" @click="setServiceRest"> + <el-button + type="info" + size="small" + @click="setServiceRest" + > 閲嶇疆 </el-button> - <el-button type="primary" size="small" @click="setServiceConfirm"> + <el-button + type="primary" + size="small" + @click="setServiceConfirm" + > 纭 </el-button> <el-button @@ -302,15 +396,26 @@ </el-button> </div> </div> - <el-table ref="multipleTable" :data="tableData" @select="selectChange"> - <el-table-column type="selection" width="55"> </el-table-column> + <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 align="center" prop="cnName" label="璧勬簮鍚嶇О" /> + <el-table-column + align="center" + prop="cnName" + label="璧勬簮鍚嶇О" + /> <el-table-column align="center" @@ -325,7 +430,10 @@ :formatter="setResType" /> </el-table> - <div class="pagination_box" style="margin-top: 15px"> + <div + class="pagination_box" + style="margin-top: 15px" + > <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" @@ -685,9 +793,7 @@ data: Tree, checked: boolean, indeterminate: boolean -) => { - console.log(data, checked, indeterminate); -}; +) => {}; const onSubmit = () => { if (!checkedStaste) { return ElMessage.warning("璇峰厛鐐瑰嚮閫変腑鐩稿簲鍥惧眰"); @@ -700,9 +806,6 @@ copyNode.nextSibling = { ...node.nextSibling }; copyNode.parent = { ...node.parent }; - // console.log(1111111111111, copyNode.previousSibling); - // console.log(2222222222222, copyNode.nextSibling); - // console.log(3333333333333, copyNode.parent); if (Object.keys(copyNode.previousSibling).length !== 0) { // 鍒犻櫎鍘熷厛鐨刵ode treeRef.value.remove(node.data); @@ -735,8 +838,6 @@ // 澶勭悊鑺傜偣鐐瑰嚮浜嬩欢 function handleNodeClick(data: any) { - console.log(data); - if (data.id === selectedNodeId.value) { // 濡傛灉褰撳墠鑺傜偣宸茬粡閫変腑锛屽垯鍙栨秷閫変腑 selectedNodeId.value = null; @@ -937,7 +1038,7 @@ align-items: center; .titleLable { - font-size: 24px; + font-size: 18px; font-family: Source Han Sans CN; font-weight: 400; color: #ffffff; @@ -957,6 +1058,11 @@ height: 92%; overflow: auto; } + + /deep/.el-tree-node__content { + font-size: 16px; + } + .layerContent::-webkit-scrollbar { width: 8px; } diff --git a/src/views/login.vue b/src/views/login.vue index 85a51bd..c0a8d36 100644 --- a/src/views/login.vue +++ b/src/views/login.vue @@ -64,9 +64,7 @@ /> </el-form-item> <el-form-item prop="verify"> - <div - style="display: flex; justify-content: space-between; width: 100%" - > + <div style="display: flex; justify-content: space-between; width: 100%"> <el-input placeholder="璇疯緭鍏ラ獙璇佺爜锛堝拷鐣ュぇ灏忓啓锛�" v-model="ruleForm.verify" @@ -80,8 +78,7 @@ type="primary" class="nobr loginbtn btnbox" @click="submitForm(ruleFormRef)" - >鐧诲綍</el-button - > + >鐧诲綍</el-button> </el-form-item> </el-form> </div> @@ -156,11 +153,9 @@ formEl.validate((valid) => { if (valid) { - console.log("submit!"); setLogin(); } else { emitter.emit("handleDraw", true); - console.log("erro submit!"); return false; } }); @@ -172,6 +167,7 @@ }; sign_login(data).then((res) => { if (res.code != 200) return; + store.commit("SET_UNAME", res.result.uname); store.commit("SET_TOKEN", res.result.token); router.push("/"); diff --git a/src/views/menus.vue b/src/views/menus.vue index 32a610a..99684b7 100644 --- a/src/views/menus.vue +++ b/src/views/menus.vue @@ -1,10 +1,21 @@ <template> - <div class="menus" v-show="fullScreen"> + <div + class="menus" + v-show="fullScreen" + > <div class="logo_box"> - <img src="../assets/img/logo.png" alt="" class="logo" /> + <img + src="../assets/img/logo.png" + alt="" + class="logo" + /> <div class="logo_name"> <h3>鏈堢悆澶ф暟鎹湴鐞嗙┖闂村垎鏋愬睍绀哄钩鍙�</h3> - <img src="../assets/img/logob.png" alt="" class="logo_name_b" /> + <img + src="../assets/img/logob.png" + alt="" + class="logo_name_b" + /> </div> </div> <div class="menus_box"> @@ -29,27 +40,41 @@ </div> </div> </div> - <div class="content_box" v-show="fullScreen"> + <div + class="content_box" + v-show="fullScreen" + > <div v-show="checkMenuFlag == 'l1'" style="position: relative; display: flex" > - <layer-manage @setCloseLayer="setCloseLayer"> </layer-manage> + </div> - <div v-show="checkMenuFlag == 'l2'"> - <plotting> </plotting> + <div + style="position: relative; display: flex" + v-show="store.state.setLayerManager" + > + <layer-manage @setCloseLayer="setCloseLayer"></layer-manage> + </div> + + <div + style="position: relative; display: flex" + v-show="checkMenuFlag == 'l2'" + > + <plotting @setCloseplotting="setCloseplotting"> </plotting> </div> <div v-show="checkMenuFlag == 'l5'"> - <baseMapSwitching> </baseMapSwitching> + <baseMapSwitching @setCloseBaseMap="setCloseBaseMap"> </baseMapSwitching> </div> <search v-if="thematicMapBtnState"> </search> </div> - <top-btn v-show="fullScreen" v-if="thematicMapBtnState"></top-btn> - - <thematic-map v-show="!thematicMapBtnState"></thematic-map> - <div class="fullScreen_btn" v-show="!fullScreen" @click="screen"></div> + <div + class="fullScreen_btn" + v-show="!fullScreen" + @click="screen" + ></div> <div v-show="store.state.doubleMenu" class="setDobuleMap" @@ -63,6 +88,31 @@ > <double-layer></double-layer> </div> + <div style="display: flex; position: absolute; z-index: 30; top: 23px; right: 23px;"> + <thematic-map v-show="!thematicMapBtnState"></thematic-map> + <top-btn + v-show="fullScreen" + v-if="thematicMapBtnState" + ></top-btn> + <div> + <div + class="setUserLogo" + @click="setLogMeu =!setLogMeu" + > + <div class="setUserImage"></div> + <div class="setUserTitle"> {{store.state.uname}} </div> + </div> + <div + v-show="setLogMeu" + class="setLogContent" + @click="setUserLogOut" + > + 閫�鍑� + </div> + </div> + + </div> + </template> <script lang="ts" setup> @@ -92,15 +142,23 @@ import baseMapSwitching from "@/views/baseMapSwitching/baseMapSwitching.vue"; //鍒嗗睆鑿滃崟 import doubleLayer from "@/views/layer/doubleLayer.vue"; +import { removeToken } from "@/utils/auth"; import store from "@/store"; +//Router +import router from "@/router"; const menuOptions = ref([]); const checkMenuFlag = ref(""); let fullScreen = ref(true); let thematicMapState = ref(true); let thematicMapBtnState = ref(true); +const setLogMeu = ref(false); const setDoubleScreenMap = () => { store.state.doubleMenu = false; store.state.doubleMap = true; +}; +const setUserLogOut = () => { + removeToken(); + router.push("/Login"); }; const setDobuleCloseLayer = () => { store.state.doubleMenu = true; @@ -109,10 +167,8 @@ const setShowMapChange = (res) => { switch (res.id) { case "15": - debugger; break; default: - debugger; break; } // store.state.isShowMap = res; @@ -122,11 +178,10 @@ // fullScreen.value = !fullScreen.value; screen(); } - if (res.id == "l3") { thematicMapState.value = false; thematicMapBtnState.value = false; - } else { + } else if (res.id != "11") { thematicMapState.value = true; thematicMapBtnState.value = true; } @@ -136,10 +191,23 @@ checkMenuFlag.value = res.id; menuTool.leftTools(res); } + if (res.id == "l1") { + store.state.setLayerManager = !store.state.setLayerManager; + } else { + store.state.setLayerManager = false; + } }; const setCloseLayer = (res) => { + store.state.setLayerManager = false; +}; +const setCloseplotting = (res) => { checkMenuFlag.value = null; }; + +const setCloseBaseMap = (res) => { + checkMenuFlag.value = null; +}; + // 鍒囨崲娴忚鍣ㄥ叏灞� const screen = () => { fullScreen.value = !fullScreen.value; @@ -171,7 +239,6 @@ if (!isFullScreen()) { if (!fullScreen.value) { fullScreen.value = !fullScreen.value; - console.log(fullScreen.value); } } }); @@ -279,4 +346,37 @@ background-size: 100% 100%; cursor: pointer; } +.setUserLogo { + height: 46px; + + display: flex; + .setUserImage { + width: 46px; + height: 46px; + background: url("../assets/img/鍥惧眰 18.png") no-repeat center; + background-size: 100% 100%; + cursor: pointer; + } + .setUserTitle { + height: 100%; + align-items: center; + display: flex; + font-size: 15px; + font-family: Microsoft YaHei; + font-weight: 400; + color: #d6e4ff; + margin-left: 10px; + } +} +.setLogContent { + width: calc(100% - 10px); + padding: 5px; + background: rgba(7, 8, 14, 0.8); + box-shadow: inset 0px 10px 40px 10px rgba(38, 47, 71, 1); + margin-top: 10px; + font-size: 14px; + font-family: Microsoft YaHei; + font-weight: 400; + color: #d6e4ff; +} </style> diff --git a/src/views/plotting/plotting.vue b/src/views/plotting/plotting.vue index ebf2e59..0833867 100644 --- a/src/views/plotting/plotting.vue +++ b/src/views/plotting/plotting.vue @@ -5,7 +5,10 @@ > <div class="plottingTitle"> <div class="tileLeft"> - <div class="titleImg"> + <div + class="titleImg" + @click="setCloseplotting" + > <ArrowLeft /> </div> <div class="titleLable">鏍囩粯鏌ヨ</div> @@ -52,6 +55,7 @@ defineProps, defineEmits, } from "vue"; +const emits = defineEmits(["setCloseplotting"]); let list = ref([ { name: "Path #9", @@ -69,6 +73,9 @@ icon: "m.png", }, ]); +const setCloseplotting = () => { + emits("setCloseplotting", false); +}; </script> <style lang="less" scoped> @@ -78,7 +85,7 @@ background: rgba(7, 8, 14, 0.8); box-shadow: inset 0px 10px 40px 10px rgba(38, 47, 71, 1); z-index: 40; - position: absolute; + .plottingTitle { width: calc(100% - 27px); height: 42px; @@ -96,7 +103,7 @@ align-items: center; .titleLable { - font-size: 24px; + font-size: 18px; font-family: Source Han Sans CN; font-weight: 400; color: #ffffff; @@ -114,7 +121,7 @@ margin-top: 3px; .plotting_content_title { - font-size: 20px; + font-size: 16px; font-weight: 300; color: #ffffff; } @@ -183,7 +190,7 @@ height: 27px; } span { - font-size: 16px; + font-size: 14px; font-weight: 300; color: #ffffff; margin-left: 10px; diff --git a/src/views/query/SpatialQuery.vue b/src/views/query/SpatialQuery.vue index 9a6cb27..efe40e0 100644 --- a/src/views/query/SpatialQuery.vue +++ b/src/views/query/SpatialQuery.vue @@ -349,14 +349,14 @@ if (!formEl) return; formEl.validate((valid) => { if (valid) { - console.log("submit!"); + if (multipleSelection.value.length <= 0) { ElMessage.error("璇烽�夋嫨瑕佷笅杞界殑琛�"); } else { setDownLoadFrom(); } } else { - console.log("erro submit!"); + return false; } }); diff --git a/src/views/search/search.vue b/src/views/search/search.vue index a65c2c3..dafb57a 100644 --- a/src/views/search/search.vue +++ b/src/views/search/search.vue @@ -7,20 +7,37 @@ placeholder="璇疯緭鍏ュ湴鍚�" > <template #suffix> - <el-icon title="娓呴櫎" @click="setSearchClose" class="el-input__icon"> + <el-icon + title="娓呴櫎" + @click="setSearchClose" + class="el-input__icon" + > <Close /> </el-icon> </template> <template #prefix> - <el-icon @click="setSearchClick" title="鏌ヨ" class="el-input__icon"> + <el-icon + @click="setSearchClick" + title="鏌ヨ" + class="el-input__icon" + > <search /> </el-icon> </template> </el-input> </div> - <div v-if="searchFLag" class="search_content"> - <el-collapse v-model="activeNames" @change="handleChange"> - <el-collapse-item title="鏌ヨ缁撴灉" name="1"> + <div + v-if="searchFLag" + class="search_content" + > + <el-collapse + v-model="activeNames" + @change="handleChange" + > + <el-collapse-item + title="鏌ヨ缁撴灉" + name="1" + > <div class="search_content_text">鎬绘煡璇㈢粨鏋�:{{ listData.count }}</div> <div class="search_content_text paging"> 鎬婚〉鏁帮細{{ listData.page }} @@ -109,12 +126,8 @@ pageSize: 10, }); const imageLabel = null; -const NumhandleChange = (value: number) => { - console.log(value); -}; -const handleChange = (val: string[]) => { - console.log(val); -}; +const NumhandleChange = (value: number) => {}; +const handleChange = (val: string[]) => {}; const setPoitCannel = () => { imageLabel.deleteObject(); imageLabel = null; @@ -185,7 +198,7 @@ filter: "name like '" + searchValue.value + "'", pageIndex: listData.value.pageIndex, pageSize: listData.value.pageSize, - name: "lunarplacenane", + name: "lunarplacename", hasGeom: 1, }; const data = await dataQuery_selectByPage(obj); @@ -221,6 +234,7 @@ width: 243px; // background: rgba(7, 8, 14, 0.8); border-radius: 4px; + z-index: 40px; .el-collapse, /deep/ .el-collapse-item__wrap { border: 0; -- Gitblit v1.9.3