DESKTOP-GBVU60Q\dell 2 år sedan
förälder
incheckning
1a199b9630

+ 10 - 10
src/router/index.js

@@ -30,20 +30,20 @@ export const constantRoutes = [
 	{
 		path: '/home',
 		component: () => import('/src/views/Main/MainView.vue'),
-		children: [{
-				path: 'Map3d',
-				name: 'Map3d',
-				component: () => import('../views/Map3d/Map3DMain.vue'),
-				meta: {
-					keepAlive: true // 需要缓存
-				}
-			}, {
+		children: [ {
 				path: 'table',//一张图
 				name: 'table',
 				component: () => import('../views/Table/Table.vue'),
 				meta: {
 					keepAlive: false // 不需要缓存
 				}
+			},{
+				path: 'Map3d',
+				name: 'Map3d',
+				component: () => import('../views/Map3d/Map3DMain.vue'),
+				meta: {
+					keepAlive: false // 需要缓存
+				}
 			}, {
 				path: 'echarts',
 				name: 'echarts',
@@ -61,9 +61,9 @@ export const constantRoutes = [
 			}, {
 				path: '',
 				name: 'map',
-				component: () => import('../views/Map3d/Map3DMain.vue'),
+				component: () => import('../views/Table/Table.vue'),
 				meta: {
-					keepAlive: true // 需要缓存
+					keepAlive: false // 需要缓存
 				}
 			}
 

+ 1 - 1
src/store/index.ts

@@ -22,7 +22,7 @@ export const Store = defineStore({
 			keepAlives: ['Map3DMain'],//控制加载缓存页面
 			userport: '',
 			jt3d: {},//地图实例
-			isflyto:false
+			tabID:"",//保存头部选中
 		}
 	},
 	getters: {

+ 21 - 18
src/views/Login/Login.vue

@@ -103,9 +103,9 @@
 				// 		ElMessage.error('账号或密码输入错误!')
 				// 	}
 				// })
-				
-				
-				
+
+
+
 				this.storageAndgoTo()
 			},
 
@@ -119,7 +119,7 @@
 				// }).then(res => {
 				// 	//存储用户ID
 				// 	let _this = this
-				// 	console.log(res)
+				// 	console.log('打印',res)
 				// 	store.roleId = res.data[0].roleid
 				// 	console.log(store.roleId)
 				// 	if (
@@ -138,16 +138,16 @@
 
 				// })
 				if (
-						window.navigator.userAgent.match(
-							/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i
-						)
-					) {
-						store.userport = 'APP'
-					} else {
-						store.userport = 'PC'
-					}
-					store.roleId = 2
-				
+					window.navigator.userAgent.match(
+						/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i
+					)
+				) {
+					store.userport = 'APP'
+				} else {
+					store.userport = 'PC'
+				}
+				store.roleId = 1 
+
 				this.$router.replace({
 					path: '/home'
 				})
@@ -188,24 +188,27 @@
 	::v-deep .el-input__wrapper {
 		padding-left: 56rem !important;
 	}
+
 	::v-deep .is-checked .el-switch__core .el-switch__action {
 		margin-left: calc(-1rem - 14rem);
 	}
+
 	el-switch {
 		margin: 3rem 0rem;
 		width: 36rem !important;
 	}
+
 	::v-deep .el-switch__core .el-switch__action {
 		width: 16rem !important;
 		height: 16rem !important;
 	}
-	
-	
+
+
 	::v-deep .el-switch__core .el-switch__action {
 		top: 1rem;
 	}
-	
-	
+
+
 	::v-deep .el-switch__core {
 		width: 40rem !important;
 		height: 20rem !important;

+ 3 - 0
src/views/Main/MainView.vue

@@ -3,6 +3,7 @@
 	import modifyModule from './components/modifyPassword.vue';
 	import ZhHeader from "./components/ZhHeader.vue";
 	import map3d from './components/map.vue';
+	import basicLayer from './components/basicLayer.vue';
 	import {
 		provide
 	} from "vue";
@@ -17,6 +18,8 @@
 		<!-- <JtHeader @handleSelect="handleSelect" /> -->
 		<ZhHeader></ZhHeader>
 		<map3d @onload="jtMap3DOnload" ref="refMap3d" class="map3d" />
+		<!-- 底图组件 -->
+		<basicLayer v-if="mapLoaded" style="display: none;" ref="basicLayers"></basicLayer>
 		<!-- 控制路由页面是否缓存 -->
 		<router-view v-slot="{ Component }" v-if="mapLoaded">
 			<keep-alive>

+ 36 - 5
src/views/Main/components/ZhHeader.vue

@@ -1,12 +1,22 @@
+<script setup>
+	import {
+		Store
+	} from '@/store/index'
+	store = Store()
+</script>
 <template>
 	<!-- 标题logo-->
+	
 	<div class="header">
+		
 		<router-link to="/home/Map3d">
 			<div :class="[ggTitle?'GgTitle':'GgXzTitle']" @click="slideTitle('GgTitle')"></div>
 		</router-link>
+		
 		<router-link to="/home/table">
 			<div :class="[yztTitle?'YztTitle':'YztXzTitle']" @click="slideTitle('YztTitle')"></div>
 		</router-link>
+		
 		<router-link to="/home/test">
 			<div :class="[sqTitle?'SqTitle':'SqXzTitle']" @click="slideTitle('SqTitle')"></div>
 		</router-link>
@@ -24,7 +34,8 @@
 <script>
 	import DataTime from "../../Map3d/components/DataTime.vue";
 	import weather from "../../Map3d/components/weather.vue"
-
+	let store = undefined;
+	
 	export default {
 		name: "ZhHeader",
 		components: {
@@ -33,9 +44,9 @@
 		},
 		data() {
 			return {
-				yztTitle: true,
+				yztTitle: false,
 				sqTitle: true,
-				ggTitle: false,
+				ggTitle: true,
 				ywTitle: true
 			}
 		},
@@ -46,30 +57,50 @@
 					this.sqTitle = true;
 					this.ggTitle = true;
 					this.ywTitle = true;
+					
+					setTimeout(res=>{
+						store.tabID = 'YztTitle'
+					})
+					console.log('IDDDD',store.tabID)
 				}
 				if (val == 'SqTitle') {
 					this.sqTitle = false;
 					this.yztTitle = true;
 					this.ggTitle = true;
 					this.ywTitle = true;
+					setTimeout(res=>{
+						store.tabID = 'SqTitle'
+					})
+					
+					console.log('IDDDD',store.tabID)
 				}
 				if (val == 'GgTitle') {
 					this.ggTitle = false;
 					this.yztTitle = true;
 					this.sqTitle = true;
 					this.ywTitle = true;
+					
+					setTimeout(res=>{
+						store.tabID = 'GgTitle'
+					})
+					console.log('IDDDD',store.tabID)
 				}
 				if (val == 'YwTitle') {
 					this.ywTitle = false;
 					this.yztTitle = true;
 					this.sqTitle = true;
 					this.ggTitle = true;
+					store.tabID = 'YwTitle'
+					console.log('IDDDD',store.tabID)
 				}
-
-
 			}
 
 		},
+		created(){
+			console.log('IDDDD',store.tabID)
+			let val = store.tabID
+			this.slideTitle(val)
+		}
 	}
 </script>
 

+ 2 - 2
src/views/Map3d/components/basicLayer.vue → src/views/Main/components/basicLayer.vue

@@ -274,10 +274,10 @@
 			let roleId = store.roleId
 			_self.$http.get('/getTableList', {
 				tableName: 'base_sys_role_atlas',
-				sqlWhere: '"roleId"' + " = '" + roleId + "'",
+				sqlWhere: '"roleId"' + " = '" + 2 + "'",
 				orderByField: ''
 			}).then(res => {
-				_self.roleName = '"atlasType"' + "= '底图'" +" and "+ '"roleId"' + " ='" + roleId + "'"
+				_self.roleName = '"atlasType"' + "= '底图'" +" and "+ '"roleId"' + " ='" + 2 + "'"
 				_self.addBaseLayer();
 			})
 		}

+ 44 - 44
src/views/Main/components/map.vue

@@ -15,18 +15,18 @@
 
 	let jt3d = undefined;
 	export default {
-		watch: {
-			isflyto: {
-				handler(newVal, oldVal) {
-					console.log('监听', newVal, oldVal)
-					if (newVal) {
-						this.flyto()
-					}
-				},
-				immediate: true,
-				deep: true // 可以深度检测到 person 对象的属性值的变化
-			}
-		},
+		// watch: {
+		// 	isflyto: {
+		// 		handler(newVal, oldVal) {
+		// 			console.log('监听', newVal, oldVal)
+		// 			if (newVal) {
+		// 				this.flyto()
+		// 			}
+		// 		},
+		// 		immediate: true,
+		// 		deep: true // 可以深度检测到 person 对象的属性值的变化
+		// 	}
+		// },
 
 		/* 数据 */
 		data() {
@@ -207,11 +207,11 @@
 			 * 创建大球
 			 */
 			initMap3d(el) {
-
+				
 				jt3d = new this.jt3dSDK.jtMap3d({
 					container: el,
 				});
-
+				
 				jt3d.statusBar.show = true;
 
 				jt3d.layer = new this.jt3dSDK.layer(jt3d._viewer);
@@ -269,8 +269,8 @@
 				jt3d.PolygonObject = new this.jt3dSDK.PolygonObject(jt3d._viewer);
 
 				window["viewer"] = jt3d._viewer;
-				window["viewer"].scene.terrainExaggeration = 100;
-
+				// window["viewer"].scene.terrainExaggeration = 100;
+				
 				//显示帧率
 				window["viewer"].scene.debugShowFramesPerSecond = true;
 			},
@@ -340,34 +340,34 @@
 		},
 
 		mounted() {
-			let that = this
-			that.entity1 = new Cesium.Entity({
-				name: "add billboard",
-				//位置
-				position: Cesium.Cartesian3.fromDegrees(120.623, 36.9157, 100),
-				//图片标签
-				billboard: {
-					image: 'jt3dSDK/imgs/jijing1.png',
-					horizontalOrigin: Cesium.HorizontalOrigin.CENTER, //水平
-					verticalOrigin: Cesium.VerticalOrigin.BOTTOM, //垂直位置
-					// scale: billboard.scale, //尺寸
-					// pixelOffset: new Cesium.Cartesian2(0, billboard.pixelOffset),
-					disableDepthTestDistance: Number.POSITIVE_INFINITY,
-					scale: 0.2,
-					scaleByDistance: new Cesium.NearFarScalar(1.5e2, 1, 2400,
-						1
-					) //按距离缩放,即距离大于180米时,图标不显示  Cesium.NearFarScalar(near, nearValue, far, farValue)相机范围的下界。相机范围下界的值。相机范围的上限。该值位于摄像机范围的上界。
-				}
-			});
-			setInterval(res => {
-				this.isflyto = store.isflyto
-				if (this.isflyto) {
-					setTimeout(res => {
-						this.isflyto = false
-						store.isflyto = false
-					})
-				}
-			}, 1000)
+			// let that = this
+			// that.entity1 = new Cesium.Entity({
+			// 	name: "add billboard",
+			// 	//位置
+			// 	position: Cesium.Cartesian3.fromDegrees(120.623, 36.9157, 100),
+			// 	//图片标签
+			// 	billboard: {
+			// 		image: 'jt3dSDK/imgs/jijing1.png',
+			// 		horizontalOrigin: Cesium.HorizontalOrigin.CENTER, //水平
+			// 		verticalOrigin: Cesium.VerticalOrigin.BOTTOM, //垂直位置
+			// 		// scale: billboard.scale, //尺寸
+			// 		// pixelOffset: new Cesium.Cartesian2(0, billboard.pixelOffset),
+			// 		disableDepthTestDistance: Number.POSITIVE_INFINITY,
+			// 		scale: 0.2,
+			// 		scaleByDistance: new Cesium.NearFarScalar(1.5e2, 1, 2400,
+			// 			1
+			// 		) //按距离缩放,即距离大于180米时,图标不显示  Cesium.NearFarScalar(near, nearValue, far, farValue)相机范围的下界。相机范围下界的值。相机范围的上限。该值位于摄像机范围的上界。
+			// 	}
+			// });
+			// setInterval(res => {
+			// 	this.isflyto = store.isflyto
+			// 	if (this.isflyto) {
+			// 		setTimeout(res => {
+			// 			this.isflyto = false
+			// 			store.isflyto = false
+			// 		})
+			// 	}
+			// }, 1000)
 
 			this.init("cesiumContainer");
 			// if (store.userport == 'APP') {

+ 1 - 42
src/views/Map3d/Map3DMain.vue

@@ -6,46 +6,6 @@
 	import {
 		defineAsyncComponent
 	} from 'vue';
-	// const TrackRoam = defineAsyncComponent(() => import('./components/TrackRoam.vue'));
-	// const ImageLayerSplit = defineAsyncComponent(() => import('./components/ImageLayerSplit.vue'));
-	// const ViewerSplitScreen = defineAsyncComponent(() => import('./components/ViewerSplitScreen.vue'));
-	// const viewerlabel = defineAsyncComponent(() => import('./components/viewerlabel.vue'));
-	// const printmap = defineAsyncComponent(() => import('./components/printmap.vue'));
-	// const dialogEdit = defineAsyncComponent(() => import('./components/drawEdit.vue'));
-	// const queryResult = defineAsyncComponent(() => import('./components/queryResult.vue'));
-	// const analysisSpace = defineAsyncComponent(() => import('./components/analysis-space.vue'));
-	// const analysisTerrain = defineAsyncComponent(() => import('./components/analysis-terrain.vue'));
-	// const analysisData = defineAsyncComponent(() => import('./components/analysis-data.vue'));
-	// const layer = defineAsyncComponent(() => import('./components/layer.vue'));
-	// const measure = defineAsyncComponent(() => import('./components/measure.vue'));
-	// const queryGraphics = defineAsyncComponent(() => import('./components/query-graphics.vue'));
-	// const SpecialEffects = defineAsyncComponent(() => import('./components/special-effects.vue'));
-	// const coordsTool = defineAsyncComponent(() => import('./components/coordsTool.vue'));
-	// const basicLayer = defineAsyncComponent(() => import('./components/basicLayer.vue'));
-	const queryKeyword = defineAsyncComponent(() => import('./components/query-keyword.vue'));
-	// const toolbars = defineAsyncComponent(() => import('./components/toolbars.vue'));
-	// const map3d = defineAsyncComponent(() => import('./components/map.vue'));
-	// import map3d from './components/map.vue';
-	// import queryKeyword from './components/query-keyword.vue';
-
-	import toolbars from './components/toolbars.vue';
-	import layer from './components/layer.vue';
-	import measure from './components/measure.vue';
-	import queryGraphics from './components/query-graphics.vue';
-	import SpecialEffects from './components/special-effects.vue';
-	import coordsTool from './components/coordsTool.vue';
-	import basicLayer from './components/basicLayer.vue'
-	import analysisSpace from './components/analysis-space.vue';
-	import analysisTerrain from './components/analysis-terrain.vue';
-	import analysisData from './components/analysis-data.vue';
-	import mapNavigate from './components/mapNavigate.vue';
-	import TrackRoam from './components/TrackRoam.vue';
-	import ImageLayerSplit from './components/ImageLayerSplit.vue';
-	import ViewerSplitScreen from './components/ViewerSplitScreen.vue';
-	import viewerlabel from './components/viewerlabel.vue';
-	import printmap from './components/printmap.vue';
-	import dialogEdit from "./components/drawEdit.vue";
-	import queryResult from "./components/queryResult.vue";
 	import ggsbtj from "./components/ggsbtj.vue";
 	import ysltj from "./components/ysltj.vue";
 	import sbyxjc from "./components/sbyxjc.vue";
@@ -79,8 +39,7 @@
 
 		<!-- 地图加载完成后,在加载其他组件 -->
 
-		<!-- 底图组件 -->
-		<basicLayer v-show="showbasicLayer" ref="basicLayers"></basicLayer>
+		
 
 		<!-- 弹出框组件,tabs组件测试 -->
 		<jt-popup title="地区导航" ref="refmapNavigate" :isEmit="true" @closeJTPopup="closeMapNavigate">

+ 36 - 0
src/views/Map3d/components/sbyxjc.vue

@@ -111,6 +111,42 @@
 			flyto(num) {
 				store.isflyto = true
 				console.log(store.isflyto)
+				let PointObject = new this.jt3dSDK.PointObject(window.viewer);
+				PointObject.addPoint([120.623, 36.9157,1800]).then(res1 => {
+					var LocateUtil = new this.jt3dSDK.LocateUtil(window["viewer"]);
+					LocateUtil.flyToEntity(res1).then(res2 => {
+						console.log('定位成功')
+					})
+				})
+				// let that = this
+				// that.entity1 = new Cesium.Entity({
+				// 	name: "add billboard",
+				// 	//位置
+				// 	position: Cesium.Cartesian3.fromDegrees(120.623, 36.9157, 100),
+				// 	//图片标签
+				// 	billboard: {
+				// 		image: 'jt3dSDK/imgs/jijing1.png',
+				// 		horizontalOrigin: Cesium.HorizontalOrigin.CENTER, //水平
+				// 		verticalOrigin: Cesium.VerticalOrigin.BOTTOM, //垂直位置
+				// 		// scale: billboard.scale, //尺寸
+				// 		// pixelOffset: new Cesium.Cartesian2(0, billboard.pixelOffset),
+				// 		disableDepthTestDistance: Number.POSITIVE_INFINITY,
+				// 		scale: 0.2,
+				// 		scaleByDistance: new Cesium.NearFarScalar(1.5e2, 1, 2400,
+				// 			1
+				// 		) //按距离缩放,即距离大于180米时,图标不显示  Cesium.NearFarScalar(near, nearValue, far, farValue)相机范围的下界。相机范围下界的值。相机范围的上限。该值位于摄像机范围的上界。
+				// 	}
+				// });
+				// let flytopromise = window.viewer.flyTo(that.entity1, {
+				// 	duration: 5.0,
+				// 	maximumHeight: 1500
+				// })
+				// flytopromise.then(res => {
+				// 	console.log('定位结束' + res)
+				// })
+				// var entity = jt3d._viewer.entities.add(that.entity1, {
+				// 	// range: 1000
+				// });
 				// let terrainProvider = jt3d._viewer.terrainProvider;
 				// //异步函数
 				// let lon = 116.30

+ 2 - 0
src/views/Table/Table.vue

@@ -6,10 +6,12 @@
 	import spdgc from "./components/spdgc.vue"; 
 	import zksb from "./components/zksb.vue"; 
 	import dsnl from "./components/dsnl.vue"; 
+	
 
 </script>
 
 <template>
+	
 	<jt-popup2 title="项目基本信息" ref="BasicInfor">
 		<BasicInfor></BasicInfor>
 	</jt-popup2>