|  | @@ -0,0 +1,310 @@
 | 
											
												
													
														|  | 
 |  | +<script setup>
 | 
											
												
													
														|  | 
 |  | +	/**
 | 
											
												
													
														|  | 
 |  | +	 * element-plus字体
 | 
											
												
													
														|  | 
 |  | +	 */
 | 
											
												
													
														|  | 
 |  | +	import {
 | 
											
												
													
														|  | 
 |  | +		ArrowDown
 | 
											
												
													
														|  | 
 |  | +	}
 | 
											
												
													
														|  | 
 |  | +	from '@element-plus/icons-vue';
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +	/* 
 | 
											
												
													
														|  | 
 |  | +	 *全屏方法引入
 | 
											
												
													
														|  | 
 |  | +	 */
 | 
											
												
													
														|  | 
 |  | +	import screenfull from "screenfull";
 | 
											
												
													
														|  | 
 |  | +</script>
 | 
											
												
													
														|  | 
 |  | +<template>
 | 
											
												
													
														|  | 
 |  | +	<div class="header">
 | 
											
												
													
														|  | 
 |  | +		<!-- logo标题 -->
 | 
											
												
													
														|  | 
 |  | +		<div style="line-height: 70rem;font-size: 20px;padding-left:10rem;color:#fff;">{{appName}}</div>
 | 
											
												
													
														|  | 
 |  | +		<!-- 导航菜单 -->
 | 
											
												
													
														|  | 
 |  | +		<div>
 | 
											
												
													
														|  | 
 |  | +			<el-menu :default-active="activeIndex" mode="horizontal" ellipsis="false" background-color="rgb(16,96,210)" text-color="#fff" active-text-color="#fff">
 | 
											
												
													
														|  | 
 |  | +				<el-menu-item index="0">
 | 
											
												
													
														|  | 
 |  | +					<router-link to="/map3d">三维地图</router-link>
 | 
											
												
													
														|  | 
 |  | +				</el-menu-item>
 | 
											
												
													
														|  | 
 |  | +				<el-menu-item index="1">
 | 
											
												
													
														|  | 
 |  | +					<router-link to="/transiton">动画效果</router-link>
 | 
											
												
													
														|  | 
 |  | +				</el-menu-item>
 | 
											
												
													
														|  | 
 |  | +			</el-menu>
 | 
											
												
													
														|  | 
 |  | +		</div>
 | 
											
												
													
														|  | 
 |  | +		<!-- 用户信息 -->
 | 
											
												
													
														|  | 
 |  | +		<div style="color:#fff;">
 | 
											
												
													
														|  | 
 |  | +			<ul>
 | 
											
												
													
														|  | 
 |  | +				<li @click="fullscreen()">
 | 
											
												
													
														|  | 
 |  | +					<i :class="isfullscreen == '全屏'? 'iconfont icon-quanping': 'iconfont icon-cancel-full-screen'"></i>
 | 
											
												
													
														|  | 
 |  | +					{{ isfullscreen }}
 | 
											
												
													
														|  | 
 |  | +				</li>
 | 
											
												
													
														|  | 
 |  | +				<li>
 | 
											
												
													
														|  | 
 |  | +					<el-dropdown size="medium">
 | 
											
												
													
														|  | 
 |  | +						<div class="avatar-wrapper">
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +							<el-avatar shape="circle" style="width: 30rem;height:30rem;">
 | 
											
												
													
														|  | 
 |  | +								<img src="@/assets/images/logo.ico" />
 | 
											
												
													
														|  | 
 |  | +							</el-avatar>
 | 
											
												
													
														|  | 
 |  | +							<span style="font-size: 16rem;">{{ userName }}</span>
 | 
											
												
													
														|  | 
 |  | +							<el-icon>
 | 
											
												
													
														|  | 
 |  | +								<ArrowDown />
 | 
											
												
													
														|  | 
 |  | +							</el-icon>
 | 
											
												
													
														|  | 
 |  | +						</div>
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +						<template #dropdown>
 | 
											
												
													
														|  | 
 |  | +							<span slot="slot" class="text"></span>
 | 
											
												
													
														|  | 
 |  | +							<el-dropdown-menu>
 | 
											
												
													
														|  | 
 |  | +								<el-dropdown-item command="logout" divided @click="logout">退出登录</el-dropdown-item>
 | 
											
												
													
														|  | 
 |  | +							</el-dropdown-menu>
 | 
											
												
													
														|  | 
 |  | +						</template>
 | 
											
												
													
														|  | 
 |  | +					</el-dropdown>
 | 
											
												
													
														|  | 
 |  | +				</li>
 | 
											
												
													
														|  | 
 |  | +			</ul>
 | 
											
												
													
														|  | 
 |  | +		</div>
 | 
											
												
													
														|  | 
 |  | +	</div>
 | 
											
												
													
														|  | 
 |  | +</template>
 | 
											
												
													
														|  | 
 |  | +<script>
 | 
											
												
													
														|  | 
 |  | +	let store = undefined
 | 
											
												
													
														|  | 
 |  | +	export default {
 | 
											
												
													
														|  | 
 |  | +		/* 数据 */
 | 
											
												
													
														|  | 
 |  | +		data() {
 | 
											
												
													
														|  | 
 |  | +			return {
 | 
											
												
													
														|  | 
 |  | +				appName: '金田智慧产业应用事业部基础框架SDK',
 | 
											
												
													
														|  | 
 |  | +				userName: '管理员',
 | 
											
												
													
														|  | 
 |  | +				activeIndex: "0",
 | 
											
												
													
														|  | 
 |  | +				isfullscreen: '全屏', //控制是否全屏
 | 
											
												
													
														|  | 
 |  | +			}
 | 
											
												
													
														|  | 
 |  | +		},
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +		/* 方法 */
 | 
											
												
													
														|  | 
 |  | +		methods: {
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +			//全屏或退出全屏事件
 | 
											
												
													
														|  | 
 |  | +			fullscreen() {
 | 
											
												
													
														|  | 
 |  | +				screenfull.toggle();
 | 
											
												
													
														|  | 
 |  | +				if (!screenfull.isEnabled) {
 | 
											
												
													
														|  | 
 |  | +					this.$Message.error("该浏览器不支持全屏功能");
 | 
											
												
													
														|  | 
 |  | +				}
 | 
											
												
													
														|  | 
 |  | +				if (this.isfullscreen == '全屏') {
 | 
											
												
													
														|  | 
 |  | +					this.isfullscreen = '退出全屏'
 | 
											
												
													
														|  | 
 |  | +				} else {
 | 
											
												
													
														|  | 
 |  | +					this.isfullscreen = '全屏'
 | 
											
												
													
														|  | 
 |  | +				}
 | 
											
												
													
														|  | 
 |  | +			},
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +			//全屏
 | 
											
												
													
														|  | 
 |  | +			fullele() {
 | 
											
												
													
														|  | 
 |  | +				return (
 | 
											
												
													
														|  | 
 |  | +					document.fullscreenElement ||
 | 
											
												
													
														|  | 
 |  | +					document.webkitFullscreenElement ||
 | 
											
												
													
														|  | 
 |  | +					document.msFullscreenElement ||
 | 
											
												
													
														|  | 
 |  | +					document.mozFullScreenElement ||
 | 
											
												
													
														|  | 
 |  | +					null
 | 
											
												
													
														|  | 
 |  | +				);
 | 
											
												
													
														|  | 
 |  | +			},
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +			//判断是否全屏
 | 
											
												
													
														|  | 
 |  | +			isFullScreen() {
 | 
											
												
													
														|  | 
 |  | +				return !!(document.webkitIsFullScreen || this.fullele());
 | 
											
												
													
														|  | 
 |  | +			},
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +			// 全屏事件
 | 
											
												
													
														|  | 
 |  | +			handleFullScreen() {
 | 
											
												
													
														|  | 
 |  | +				let element = document.documentElement;
 | 
											
												
													
														|  | 
 |  | +				// 判断是否已经是全屏
 | 
											
												
													
														|  | 
 |  | +				// 如果是全屏,退出
 | 
											
												
													
														|  | 
 |  | +				if (this.isfullscreen) {
 | 
											
												
													
														|  | 
 |  | +					if (document.exitFullscreen) {
 | 
											
												
													
														|  | 
 |  | +						document.exitFullscreen();
 | 
											
												
													
														|  | 
 |  | +					} else if (document.webkitCancelFullScreen) {
 | 
											
												
													
														|  | 
 |  | +						document.webkitCancelFullScreen();
 | 
											
												
													
														|  | 
 |  | +					} else if (document.mozCancelFullScreen) {
 | 
											
												
													
														|  | 
 |  | +						document.mozCancelFullScreen();
 | 
											
												
													
														|  | 
 |  | +					} else if (document.msExitFullscreen) {
 | 
											
												
													
														|  | 
 |  | +						document.msExitFullscreen();
 | 
											
												
													
														|  | 
 |  | +					}
 | 
											
												
													
														|  | 
 |  | +					console.log('已还原!');
 | 
											
												
													
														|  | 
 |  | +				} else { // 否则,进入全屏
 | 
											
												
													
														|  | 
 |  | +					if (element.requestFullscreen) {
 | 
											
												
													
														|  | 
 |  | +						element.requestFullscreen();
 | 
											
												
													
														|  | 
 |  | +					} else if (element.webkitRequestFullScreen) {
 | 
											
												
													
														|  | 
 |  | +						element.webkitRequestFullScreen();
 | 
											
												
													
														|  | 
 |  | +					} else if (element.mozRequestFullScreen) {
 | 
											
												
													
														|  | 
 |  | +						element.mozRequestFullScreen();
 | 
											
												
													
														|  | 
 |  | +					} else if (element.msRequestFullscreen) {
 | 
											
												
													
														|  | 
 |  | +						// IE11
 | 
											
												
													
														|  | 
 |  | +						element.msRequestFullscreen();
 | 
											
												
													
														|  | 
 |  | +					}
 | 
											
												
													
														|  | 
 |  | +					console.log('已全屏!');
 | 
											
												
													
														|  | 
 |  | +				}
 | 
											
												
													
														|  | 
 |  | +				// 改变当前全屏状态
 | 
											
												
													
														|  | 
 |  | +				this.isfullscreen = !this.isfullscreen;
 | 
											
												
													
														|  | 
 |  | +			}
 | 
											
												
													
														|  | 
 |  | +		},
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +		mounted() {
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +			let that = this
 | 
											
												
													
														|  | 
 |  | +			window.addEventListener('resize', function() {
 | 
											
												
													
														|  | 
 |  | +				if (!that.isFullScreen()) {
 | 
											
												
													
														|  | 
 |  | +					// 非全屏状态
 | 
											
												
													
														|  | 
 |  | +					//业务逻辑
 | 
											
												
													
														|  | 
 |  | +					that.isfullscreen = '全屏'
 | 
											
												
													
														|  | 
 |  | +				}
 | 
											
												
													
														|  | 
 |  | +			});
 | 
											
												
													
														|  | 
 |  | +		}
 | 
											
												
													
														|  | 
 |  | +	}
 | 
											
												
													
														|  | 
 |  | +</script>
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +<style lang="scss" scoped>
 | 
											
												
													
														|  | 
 |  | +	$fontColor: #fff;
 | 
											
												
													
														|  | 
 |  | +	$fullsize: calc(100% - 0rem);
 | 
											
												
													
														|  | 
 |  | +	$header-title-bg: rgba(16, 96, 210, 0.3) 0rem no-repeat;
 | 
											
												
													
														|  | 
 |  | +	$header-title: url(@/assets/images/header/header-1.webp) 0rem no-repeat;
 | 
											
												
													
														|  | 
 |  | +	$header-bg: rgba(16, 96, 210, 0.3) 0rem no-repeat;
 | 
											
												
													
														|  | 
 |  | +	$header-bg-color: linear-gradient(100deg,
 | 
											
												
													
														|  | 
 |  | +		rgb(16, 96, 210) 30%,
 | 
											
												
													
														|  | 
 |  | +		rgb(16, 106, 250) 70%);
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +	::v-deep .el-popper__arrow::before {
 | 
											
												
													
														|  | 
 |  | +		background: rgba(5, 45, 115, 0.8) !important;
 | 
											
												
													
														|  | 
 |  | +	}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +	.text::before {
 | 
											
												
													
														|  | 
 |  | +		position: absolute;
 | 
											
												
													
														|  | 
 |  | +		width: 0rem;
 | 
											
												
													
														|  | 
 |  | +		height: 0rem;
 | 
											
												
													
														|  | 
 |  | +		left: calc(50% - 5rem);
 | 
											
												
													
														|  | 
 |  | +		top: -5rem;
 | 
											
												
													
														|  | 
 |  | +		content: "";
 | 
											
												
													
														|  | 
 |  | +		transform: rotate(45deg);
 | 
											
												
													
														|  | 
 |  | +		z-index: 10;
 | 
											
												
													
														|  | 
 |  | +		box-sizing: border-box;
 | 
											
												
													
														|  | 
 |  | +		border-bottom: 5rem solid transparent;
 | 
											
												
													
														|  | 
 |  | +		border-right: 5rem solid transparent;
 | 
											
												
													
														|  | 
 |  | +		border-top: 5rem solid rgba(5, 45, 115, 0.8);
 | 
											
												
													
														|  | 
 |  | +		border-left: 5rem solid rgba(5, 45, 115, 0.8);
 | 
											
												
													
														|  | 
 |  | +		// background: rgba(5, 45, 115, .8) !important;
 | 
											
												
													
														|  | 
 |  | +	}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +	.el-dropdown-menu {
 | 
											
												
													
														|  | 
 |  | +		background-color: rgba(5, 45, 115, 0.8) !important;
 | 
											
												
													
														|  | 
 |  | +	}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +	::v-deep .el-dropdown-menu__item {
 | 
											
												
													
														|  | 
 |  | +		color: #fff !important;
 | 
											
												
													
														|  | 
 |  | +	}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +	::v-deep .el-dropdown-menu__item--divided {
 | 
											
												
													
														|  | 
 |  | +		border: 0 !important;
 | 
											
												
													
														|  | 
 |  | +	}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +	::v-deep .el-dropdown-menu__item:hover {
 | 
											
												
													
														|  | 
 |  | +		color: rgb(255, 255, 255) !important;
 | 
											
												
													
														|  | 
 |  | +		background-color: rgba(255, 255, 255, 0.3) !important;
 | 
											
												
													
														|  | 
 |  | +	}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +	//routerlink下划线
 | 
											
												
													
														|  | 
 |  | +	a {
 | 
											
												
													
														|  | 
 |  | +		text-decoration: none;
 | 
											
												
													
														|  | 
 |  | +		color: #000;
 | 
											
												
													
														|  | 
 |  | +	}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +	.header {
 | 
											
												
													
														|  | 
 |  | +		display: flex;
 | 
											
												
													
														|  | 
 |  | +		width: $fullsize;
 | 
											
												
													
														|  | 
 |  | +		height: 70rem;
 | 
											
												
													
														|  | 
 |  | +		// background: $header-title, $header-title-bg, $header-bg, $header-bg-color;
 | 
											
												
													
														|  | 
 |  | +		background-color: rgba(5, 45, 115, 0.3) !important;
 | 
											
												
													
														|  | 
 |  | +		background-size: 470rem 70rem, 700rem 70rem, 100% 70rem, 100% 70rem;
 | 
											
												
													
														|  | 
 |  | +		background-repeat: no-repeat;
 | 
											
												
													
														|  | 
 |  | +		user-select: none;
 | 
											
												
													
														|  | 
 |  | +		position: absolute;
 | 
											
												
													
														|  | 
 |  | +		z-index: 999;
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +		&>div:nth-child(1) {
 | 
											
												
													
														|  | 
 |  | +			width: 470rem;
 | 
											
												
													
														|  | 
 |  | +			height: $fullsize;
 | 
											
												
													
														|  | 
 |  | +		}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +		&>div:nth-child(2) {
 | 
											
												
													
														|  | 
 |  | +			width: calc(100% - 590rem);
 | 
											
												
													
														|  | 
 |  | +			height: calc(100% - 0rem);
 | 
											
												
													
														|  | 
 |  | +			padding-left: 100rem;
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +			& ul li {
 | 
											
												
													
														|  | 
 |  | +				font-weight: bolder;
 | 
											
												
													
														|  | 
 |  | +				font-size: 15rem;
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +				&:hover {
 | 
											
												
													
														|  | 
 |  | +					color: rgb(110, 210, 255) !important;
 | 
											
												
													
														|  | 
 |  | +					transform: scale(1.03);
 | 
											
												
													
														|  | 
 |  | +				}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +				& i {
 | 
											
												
													
														|  | 
 |  | +					padding-right: 5rem;
 | 
											
												
													
														|  | 
 |  | +				}
 | 
											
												
													
														|  | 
 |  | +			}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +			.el-menu {
 | 
											
												
													
														|  | 
 |  | +				border: 0;
 | 
											
												
													
														|  | 
 |  | +				height: 70rem;
 | 
											
												
													
														|  | 
 |  | +				background-color: transparent;
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +				.el-menu-item {
 | 
											
												
													
														|  | 
 |  | +					background-color: transparent;
 | 
											
												
													
														|  | 
 |  | +					transition: all 0.5s;
 | 
											
												
													
														|  | 
 |  | +				}
 | 
											
												
													
														|  | 
 |  | +			}
 | 
											
												
													
														|  | 
 |  | +		}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +		&>div:nth-child(3) {
 | 
											
												
													
														|  | 
 |  | +			position: absolute;
 | 
											
												
													
														|  | 
 |  | +			height: 70rem;
 | 
											
												
													
														|  | 
 |  | +			right: 0rem;
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +			& ul {
 | 
											
												
													
														|  | 
 |  | +				margin: 0rem;
 | 
											
												
													
														|  | 
 |  | +				color: rgb(255, 255, 255);
 | 
											
												
													
														|  | 
 |  | +				display: block;
 | 
											
												
													
														|  | 
 |  | +				overflow: hidden;
 | 
											
												
													
														|  | 
 |  | +				white-space: nowrap; //处理块元素中的空白符和换行符的,这个属性保证图片不换行
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +				& li {
 | 
											
												
													
														|  | 
 |  | +					list-style: none;
 | 
											
												
													
														|  | 
 |  | +					display: inline-block; //使li对象显示为一行
 | 
											
												
													
														|  | 
 |  | +					padding: 0rem 15rem;
 | 
											
												
													
														|  | 
 |  | +					height: 70rem;
 | 
											
												
													
														|  | 
 |  | +					line-height: 70rem;
 | 
											
												
													
														|  | 
 |  | +					cursor: pointer;
 | 
											
												
													
														|  | 
 |  | +					color: rgb(255, 255, 255);
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +					&:hover {
 | 
											
												
													
														|  | 
 |  | +						color: rgb(110, 210, 255);
 | 
											
												
													
														|  | 
 |  | +						transition: all 0.5s;
 | 
											
												
													
														|  | 
 |  | +					}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +					& i {
 | 
											
												
													
														|  | 
 |  | +						padding-right: 10rem;
 | 
											
												
													
														|  | 
 |  | +					}
 | 
											
												
													
														|  | 
 |  | +				}
 | 
											
												
													
														|  | 
 |  | +			}
 | 
											
												
													
														|  | 
 |  | +		}
 | 
											
												
													
														|  | 
 |  | +	}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +	.el-avatar>img {
 | 
											
												
													
														|  | 
 |  | +		width: 30rem;
 | 
											
												
													
														|  | 
 |  | +		height: 30rem;
 | 
											
												
													
														|  | 
 |  | +	}
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +	.avatar-wrapper {
 | 
											
												
													
														|  | 
 |  | +		display: flex;
 | 
											
												
													
														|  | 
 |  | +		align-items: center;
 | 
											
												
													
														|  | 
 |  | +		white-space: nowrap;
 | 
											
												
													
														|  | 
 |  | +		cursor: pointer;
 | 
											
												
													
														|  | 
 |  | +		color: $fontColor;
 | 
											
												
													
														|  | 
 |  | +		height: 70rem;
 | 
											
												
													
														|  | 
 |  | +		line-height: 70rem;
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  | 
 |  | +		.el-avatar {
 | 
											
												
													
														|  | 
 |  | +			--el-avatar-bg-color: #ffffff;
 | 
											
												
													
														|  | 
 |  | +			margin: 0rem 10rem !important;
 | 
											
												
													
														|  | 
 |  | +		}
 | 
											
												
													
														|  | 
 |  | +	}
 | 
											
												
													
														|  | 
 |  | +</style>
 |