| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217 | 
							- <template>
 
-   <div class="navbar">
 
-     <logo v-if="showLogo" :collapse="isCollapse" />
 
-     <top-nav id="topmenu-container" class="topmenu-container" v-if="settingsStore.topNav" />
 
-     <div class="right-menu" >
 
- <!--      <template v-if="appStore.device !== 'mobile'">-->
 
- <!--        <header-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" />-->
 
- <!--        </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">-->
 
- <!--          <div class="right-menu-item hover-effect theme-switch-wrapper" @click="toggleTheme">-->
 
- <!--            <svg-icon v-if="settingsStore.isDark" icon-class="sunny" />-->
 
- <!--            <svg-icon v-if="!settingsStore.isDark" icon-class="moon" />-->
 
- <!--          </div>-->
 
- <!--        </el-tooltip>-->
 
- <!--        <el-tooltip content="布局大小" effect="dark" placement="bottom">-->
 
- <!--          <size-select id="size-select" class="right-menu-item hover-effect" />-->
 
- <!--        </el-tooltip>-->
 
- <!--      </template>-->
 
-       <div class="avatar-container">
 
-         <el-dropdown @command="handleCommand" class="right-menu-item hover-effect" trigger="click">
 
-           <div class="avatar-wrapper">
 
- <!--            <img :src="userStore.avatar" class="user-avatar" />-->
 
-             <el-icon><caret-bottom /></el-icon>
 
-           </div>
 
-           <template #dropdown>
 
-             <el-dropdown-menu>
 
-               <router-link to="/user/profile">
 
-                 <el-dropdown-item>个人中心</el-dropdown-item>
 
-               </router-link>
 
-               <el-dropdown-item command="setLayout" v-if="settingsStore.showSettings">
 
-                 <span>布局设置</span>
 
-               </el-dropdown-item>
 
-               <el-dropdown-item divided command="logout">
 
-                 <span>退出登录</span>
 
-               </el-dropdown-item>
 
-             </el-dropdown-menu>
 
-           </template>
 
-         </el-dropdown>
 
-       </div>
 
-     </div>
 
-   </div>
 
- </template>
 
- <script setup>
 
- import Logo from '@/layout/components/Sidebar/Logo'
 
- import { ElMessageBox } from 'element-plus'
 
- import Breadcrumb from '@/components/Breadcrumb'
 
- import TopNav from '@/components/TopNav'
 
- import Hamburger from '@/components/Hamburger'
 
- import Screenfull from '@/components/Screenfull'
 
- import SizeSelect from '@/components/SizeSelect'
 
- import HeaderSearch from '@/components/HeaderSearch'
 
- import RuoYiGit from '@/components/RuoYi/Git'
 
- import RuoYiDoc from '@/components/RuoYi/Doc'
 
- import useAppStore from '@/store/modules/app'
 
- import useUserStore from '@/store/modules/user'
 
- import useSettingsStore from '@/store/modules/settings'
 
- const settingsStore = useSettingsStore()
 
- const showLogo = computed(() => settingsStore.sidebarLogo);
 
- const appStore = useAppStore()
 
- const userStore = useUserStore()
 
- function toggleSideBar() {
 
-   appStore.toggleSideBar()
 
- }
 
- function handleCommand(command) {
 
-   switch (command) {
 
-     case "setLayout":
 
-       setLayout();
 
-       break;
 
-     case "logout":
 
-       logout();
 
-       break;
 
-     default:
 
-       break;
 
-   }
 
- }
 
- function logout() {
 
-   ElMessageBox.confirm('确定注销并退出系统吗?', '提示', {
 
-     confirmButtonText: '确定',
 
-     cancelButtonText: '取消',
 
-     type: 'warning'
 
-   }).then(() => {
 
-     userStore.logOut().then(() => {
 
-       location.href = '/index';
 
-     })
 
-   }).catch(() => { });
 
- }
 
- const emits = defineEmits(['setLayout'])
 
- function setLayout() {
 
-   emits('setLayout');
 
- }
 
- function toggleTheme() {
 
-   settingsStore.toggleTheme()
 
- }
 
- </script>
 
- <style lang='scss' scoped>
 
- .navbar {
 
-   height: 60px;
 
-   overflow: hidden;
 
-   position: relative;
 
-   background: #08121c;
 
-   box-shadow: 0 1px 4px rgba(0, 21, 41, 0.08);
 
-   .hamburger-container {
 
-     line-height: 46px;
 
-     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;
 
-   }
 
-   .topmenu-container {
 
-     position: absolute;
 
-     left: 0px;
 
-   }
 
-   .errLog-container {
 
-     display: inline-block;
 
-     vertical-align: top;
 
-   }
 
-   .right-menu {
 
-     float: right;
 
-     height: 100%;
 
-     line-height: 60px;
 
-     display: flex;
 
-     &:focus {
 
-       outline: none;
 
-     }
 
-     .right-menu-item {
 
-       display: inline-block;
 
-       padding: 0 8px;
 
-       height: 100%;
 
-       font-size: 18px;
 
-       color: var(--navbar-text);
 
-       vertical-align: text-bottom;
 
-       &.hover-effect {
 
-         cursor: pointer;
 
-         transition: background 0.3s;
 
-         &:hover {
 
-           background: rgba(0, 0, 0, 0.025);
 
-         }
 
-       }
 
-       &.theme-switch-wrapper {
 
-         display: flex;
 
-         align-items: center;
 
-         svg {
 
-           transition: transform 0.3s;
 
-           &:hover {
 
-             transform: scale(1.15);
 
-           }
 
-         }
 
-       }
 
-     }
 
-     .avatar-container {
 
-       margin-right: 40px;
 
-       .avatar-wrapper {
 
-         margin-top: 5px;
 
-         position: relative;
 
-         .user-avatar {
 
-           cursor: pointer;
 
-           width: 40px;
 
-           height: 40px;
 
-           border-radius: 10px;
 
-         }
 
-         i {
 
-           cursor: pointer;
 
-           position: absolute;
 
-           right: -20px;
 
-           top: 25px;
 
-           font-size: 12px;
 
-         }
 
-       }
 
-     }
 
-   }
 
- }
 
- </style>
 
 
  |