|
@@ -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>
|