| | |
| | | <template> |
| | | <div class="navbar"> |
| | | <hamburger id="hamburger-container" :is-active="sidebar.opened" class="hamburger-container" @toggleClick="toggleSideBar" /> |
| | | |
| | | <breadcrumb id="breadcrumb-container" class="breadcrumb-container" v-if="!topNav"/> |
| | | <top-nav id="topmenu-container" class="topmenu-container" v-if="topNav"/> |
| | | |
| | | <div class="right-menu"> |
| | | <template v-if="device!=='mobile'"> |
| | | <search id="header-search" class="right-menu-item" /> |
| | | |
| | | <el-tooltip content="源码地址" effect="dark" placement="bottom"> |
| | | <ruo-yi-git id="ruoyi-git" class="right-menu-item hover-effect" /> |
| | | <div class="ruoyi-logo"> |
| | | <img src="@/assets/logo/logo.png" alt="" /> |
| | | <span>射洪项目管理系统</span> |
| | | </div> |
| | | <div class="right-menu flex align-center"> |
| | | <template> |
| | | <search-menu ref="searchMenuRef" /> |
| | | <el-tooltip content="搜索" effect="dark" placement="bottom"> |
| | | <div |
| | | class="right-menu-item hover-effect" |
| | | @click="openSearchMenu" |
| | | > |
| | | <svg-icon |
| | | class-name="search-icon" |
| | | icon-class="search" |
| | | /> |
| | | </div> |
| | | </el-tooltip> |
| | | |
| | | <el-tooltip content="文档地址" effect="dark" placement="bottom"> |
| | | <ruo-yi-doc id="ruoyi-doc" class="right-menu-item hover-effect" /> |
| | | </el-tooltip> |
| | | |
| | | <screenfull id="screenfull" class="right-menu-item hover-effect" /> |
| | | |
| | | <el-tooltip content="布局大小" effect="dark" placement="bottom"> |
| | | <size-select id="size-select" class="right-menu-item hover-effect" /> |
| | | </el-tooltip> |
| | | |
| | | <!-- 消息 --> |
| | | <el-tooltip content="消息" effect="dark" placement="bottom"> |
| | | <div class="right-menu-item hover-effect"> |
| | | <el-popover |
| | | placement="bottom" |
| | | trigger="click" |
| | | transition="el-zoom-in-top" |
| | | :width="300" |
| | | :persistent="false" |
| | | > |
| | | <template #reference> |
| | | <el-badge |
| | | :value="newNotice > 0 ? newNotice : ''" |
| | | :max="99" |
| | | > |
| | | <svg-icon icon-class="message" /> |
| | | </el-badge> |
| | | </template> |
| | | |
| | | <el-dropdown class="avatar-container right-menu-item hover-effect" trigger="click"> |
| | | <template #default> |
| | | <notice></notice> |
| | | </template> |
| | | </el-popover> |
| | | </div> |
| | | </el-tooltip> |
| | | <el-tooltip content="全屏" effect="dark" placement="bottom"> |
| | | <screenfull |
| | | id="screenfull" |
| | | class="right-menu-item hover-effect" |
| | | /> |
| | | </el-tooltip> |
| | | </template> |
| | | <div class="avatar-container"> |
| | | <el-dropdown |
| | | class="avatar-container right-menu-item hover-effect" |
| | | trigger="click" |
| | | > |
| | | <div class="avatar-wrapper"> |
| | | <img :src="avatar" class="user-avatar"> |
| | | <img :src="avatar" class="user-avatar" /> |
| | | <i class="el-icon-caret-bottom" /> |
| | | </div> |
| | | <el-dropdown-menu slot="dropdown"> |
| | | <router-link to="/user/profile"> |
| | | <el-dropdown-item>个人中心</el-dropdown-item> |
| | | </router-link> |
| | | <el-dropdown-item @click.native="setting = true"> |
| | | <span>布局设置</span> |
| | | </el-dropdown-item> |
| | | <el-dropdown-item divided @click.native="logout"> |
| | | <span>退出登录</span> |
| | | </el-dropdown-item> |
| | | </el-dropdown-menu> |
| | | </el-dropdown> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | |
| | | import Search from '@/components/HeaderSearch' |
| | | import RuoYiGit from '@/components/RuoYi/Git' |
| | | import RuoYiDoc from '@/components/RuoYi/Doc' |
| | | import SearchMenu from './TopBar/search.vue'; |
| | | import Notice from './Notice/index.vue'; |
| | | |
| | | export default { |
| | | data() { |
| | | return { |
| | | newNotice: 0 |
| | | } |
| | | }, |
| | | components: { |
| | | Breadcrumb, |
| | | TopNav, |
| | |
| | | SizeSelect, |
| | | Search, |
| | | RuoYiGit, |
| | | RuoYiDoc |
| | | RuoYiDoc, |
| | | SearchMenu, |
| | | Notice |
| | | }, |
| | | computed: { |
| | | ...mapGetters([ |
| | |
| | | location.href = '/index'; |
| | | }) |
| | | }).catch(() => {}); |
| | | } |
| | | }, |
| | | openSearchMenu() { |
| | | this.searchMenuRef.value?.openSearch(); |
| | | }, |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | ::v-deep.el-select .el-input__wrapper { |
| | | height: 30px; |
| | | } |
| | | |
| | | ::v-deep .el-badge__content.is-fixed { |
| | | top: 12px; |
| | | } |
| | | |
| | | .flex { |
| | | display: flex; |
| | | } |
| | | |
| | | .align-center { |
| | | align-items: center; |
| | | } |
| | | |
| | | .ruoyi-logo { |
| | | float: left; |
| | | line-height: 54px; |
| | | font-weight: 400; |
| | | font-size: 24px; |
| | | font-style: italic; |
| | | font-family: PangMenZhengDao; |
| | | // color: #ffffff; |
| | | // width: 220px; |
| | | display: flex; |
| | | align-items: center; |
| | | > img { |
| | | margin: 0 10px 0 21px; |
| | | } |
| | | > div { |
| | | margin: 0 0 0 21px; |
| | | } |
| | | .down { |
| | | margin-top: 22px; |
| | | color: #ffffff; |
| | | } |
| | | } |
| | | .navbar { |
| | | height: 50px; |
| | | overflow: hidden; |
| | | position: relative; |
| | | background: #fff; |
| | | box-shadow: 0 1px 4px rgba(0,21,41,.08); |
| | | //background: #fff; |
| | | box-shadow: 0 1px 4px rgba(0, 21, 41, 0.08); |
| | | |
| | | .hamburger-container { |
| | | line-height: 46px; |
| | | height: 100%; |
| | | float: left; |
| | | cursor: pointer; |
| | | transition: background .3s; |
| | | transition: background 0.3s; |
| | | -webkit-tap-highlight-color:transparent; |
| | | |
| | | &:hover { |
| | | background: rgba(0, 0, 0, .025) |
| | | background: rgba(0, 0, 0, 0.025); |
| | | } |
| | | } |
| | | |
| | |
| | | float: right; |
| | | height: 100%; |
| | | line-height: 50px; |
| | | display: flex; |
| | | |
| | | &:focus { |
| | | outline: none; |
| | |
| | | |
| | | &.hover-effect { |
| | | cursor: pointer; |
| | | transition: background .3s; |
| | | transition: background 0.3s; |
| | | |
| | | &:hover { |
| | | background: rgba(0, 0, 0, .025) |
| | | background: rgba(0, 0, 0, 0.025); |
| | | } |
| | | } |
| | | } |
| | | |
| | | .avatar-container { |
| | | margin-right: 30px; |
| | | margin-right: 40px; |
| | | margin-top: 10px; |
| | | |
| | | .avatar-wrapper { |
| | | margin-top: 5px; |
| | |
| | | width: 40px; |
| | | height: 40px; |
| | | border-radius: 10px; |
| | | margin-top: 10px; |
| | | } |
| | | |
| | | .el-icon-caret-bottom { |
| | | i { |
| | | cursor: pointer; |
| | | position: absolute; |
| | | right: -20px; |