<template> <div class="navbar-con"> <div class="navbar"> <div class="logo"> <img :src="require('@/image/logo.png')" alt="" /> </div> <div class="backdrop"> <Breadcrumb /> </div> <div class="right-menu"> <div class="dataView d-center pointer" @click="handleDataView">大屏展示</div> <el-dropdown class="avatar-container right-menu-item hover-effect" trigger="hover" @command="handleCommand"> <div class="avatar-wrapper"> <span style="padding-right:10px">{{ name }}</span> <img :src="avatar + '?imageView2/1/w/80/h/80'" class="user-avatar" /> </div> <el-dropdown-menu slot="dropdown"> <el-dropdown-item command="a">个人中心</el-dropdown-item> <el-dropdown-item command="b">退出</el-dropdown-item> </el-dropdown-menu> </el-dropdown> </div> </div> </div> </template> <script> import { mapGetters } from 'vuex' import Breadcrumb from './Breadcrumb' import defaultSettings from '@/settings' export default { components: { Breadcrumb }, computed: { ...mapGetters(['sidebar', 'avatar', 'name']) }, data () { return { title: defaultSettings.title } }, methods: { handleDataView () { const { href } = this.$router.resolve('/dataView'); window.open(href, '_blank'); }, themeChange (val) { this.$store.dispatch('app/updateTheme', val) }, handleCommand (command) { if (command == 'a') { } else { } } } } </script> <style lang="scss" scoped> .navbar-con { position: relative; .logo { color: #fff; font-size: 26px; font-weight: 700; } } .dataView { color: #fff; width: 120px; height: 32px; background: url('../../image/dp.png'); background-size: cover; margin-right: 20px; } .NoticeBar { position: absolute; bottom: 0; } .el-dropdown-menu { padding: 0 !important; border: 1px solid #EBEEF5; box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.12); border-radius: 4px 0 0 4px 4px; .el-dropdown-menu__item { text-align: center; margin-top: 0 !important; font-size: 14px; font-family: PingFangSC-Regular, PingFang SC; font-weight: 400; color: #4A4A4A; width: 140px; height: 36px; line-height: 36px; } .el-dropdown-menu__item:nth-child(6) { border-top: 1px solid #EBEEF5; } .popper__arrow { top: -11px !important; left: 110px !important; transform: rotate(0deg) scale(2); } .el-dropdown-menu__item:not(.is-disabled):hover, .el-dropdown-menu__item:focus { background: #F6F7F9; color: #4A4A4A; } } .navbar { height: $headerHeight; overflow: hidden; position: relative; // background: linear-gradient(270deg, #148CEE 0%, #1870E3 100%); //默认颜色 // box-shadow: 0 1px 0px rgba(0, 21, 41, 0.08); background: #0D1230; display: flex; align-items: center; padding-right: 20px; justify-content: space-between; margin-bottom: 10px; .header-logo { width: 300px; } .backdrop { flex: 1; width: 60%; background-size: 100% 100%; height: $headerHeight; display: flex; align-items: center; } .hamburger-container { line-height: 43px; height: 100%; float: left; cursor: pointer; transition: background 0.3s; -webkit-tap-highlight-color: transparent; &:hover { background: rgba(0, 0, 0, 0.025); } } .breadcrumb-container { float: left; } .right-menu { float: right; height: 100%; line-height: 50px; display: flex; align-items: center; .function { margin: 0 15px; cursor: pointer; } .shutdown { font-size: 20px; margin-left: 15px; cursor: pointer; } .organization-item { margin-right: 40px; margin-top: -40px !important; } .item { margin-right: 40px; margin-top: -20px; line-height: 18.4px; cursor: pointer; position: relative; .item-box { position: absolute; top: -5px; left: 3px; width: 100%; min-width: 25px; height: 25px; cursor: pointer; z-index: 100; } } &:focus { outline: none; } .right-menu-item { display: inline-block; height: 100%; font-size: 18px; color: #fff; vertical-align: text-bottom; &.hover-effect { cursor: pointer; transition: background 0.3s; display: flex; align-items: center; &:hover { background: rgba(0, 0, 0, 0.025); } } } .avatar-wrapper { position: relative; display: flex; height: 40px; align-items: center; .user-avatar { cursor: pointer; width: 35px; height: 35px; border-radius: 50%; } .el-icon-caret-bottom { cursor: pointer; position: absolute; right: -15px; top: 17px; font-size: 12px; } } } } </style>