Navbar.vue 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. <template>
  2. <div class="navbar">
  3. <div>
  4. <hamburger :is-active="sidebar.opened" class="hamburger-container" @toggleClick="toggleSideBar" />
  5. <breadcrumb class="breadcrumb-container" />
  6. </div>
  7. <div>
  8. <div class="right-menu">
  9. <span class="avatar-container" style="color: #FFFFFF; font-size: 16px;">{{ username }}</span>
  10. </div>
  11. </div>
  12. </div>
  13. </template>
  14. <script>
  15. import { mapGetters } from 'vuex'
  16. import Breadcrumb from '@/components/Breadcrumb'
  17. import Hamburger from '@/components/Hamburger'
  18. // import navbarLogo from '@/icons/rabbit-logo.gif'
  19. import { settingQueryBizTypeList } from '@/api/settingQueryBizTypeList.js'
  20. import Utils from '../../util.js'
  21. // import { logoutUrl } from '@/api/user.js'
  22. export default {
  23. components: {
  24. Breadcrumb,
  25. Hamburger
  26. },
  27. data() {
  28. return {
  29. bizOptions: [],
  30. bizShow: {
  31. id: ''
  32. }
  33. // navbarLogo: {
  34. // name: 'navbarLogo',
  35. // src: navbarLogo
  36. // }
  37. }
  38. },
  39. computed: {
  40. ...mapGetters([
  41. 'sidebar',
  42. 'avatar'
  43. ]),
  44. username() {
  45. return localStorage.getItem('realname')
  46. }
  47. },
  48. created() {
  49. this.get_bizArr()
  50. },
  51. methods: {
  52. toggleSideBar() {
  53. this.$store.dispatch('app/toggleSideBar')
  54. },
  55. // logout() {
  56. // // await this.$store.dispatch('user/logout')
  57. // // this.$router.push(`/login?redirect=${this.$route.fullPath}`)
  58. // location.href = logoutUrl
  59. // },
  60. // handleCommand(command) {
  61. // switch (command) {
  62. // case 'b':
  63. // this.logout()
  64. // break
  65. // }
  66. // },
  67. get_bizArr() {
  68. settingQueryBizTypeList({}).then(res => {
  69. this.bizOptions = res.data.list
  70. var int = Number(localStorage.getItem('key'))
  71. int === 0 ? int = '' : ''
  72. this.bizShow.id = int
  73. })
  74. },
  75. bizchnage(ele) {
  76. Utils.$emit('demo', ele)
  77. localStorage.setItem('key', ele)
  78. window.location.reload()
  79. }
  80. }
  81. }
  82. </script>
  83. <style lang="scss" scoped>
  84. .navbar {
  85. display: flex;
  86. align-items: center;
  87. justify-content: space-between;
  88. height: 80px;
  89. overflow: hidden;
  90. position: relative;
  91. background: #409EFF;
  92. box-shadow: 0 1px 4px rgba(0,21,41,.08);
  93. .hamburger-container {
  94. line-height: 46px;
  95. height: 100%;
  96. float: left;
  97. cursor: pointer;
  98. transition: background .3s;
  99. -webkit-tap-highlight-color:transparent;
  100. &:hover {
  101. background: rgba(0, 0, 0, .025)
  102. }
  103. }
  104. .breadcrumb-container {
  105. float: left;
  106. }
  107. .right-menu {
  108. // float: right;
  109. // height: 100%;
  110. // line-height: 50px;
  111. &:focus {
  112. outline: none;
  113. }
  114. .right-menu-item {
  115. display: inline-block;
  116. padding: 0 8px;
  117. height: 100%;
  118. font-size: 18px;
  119. color: #c0c8d8;
  120. vertical-align: text-bottom;
  121. &.hover-effect {
  122. cursor: pointer;
  123. transition: background .3s;
  124. &:hover {
  125. background: rgba(0, 0, 0, .025)
  126. }
  127. }
  128. }
  129. .avatar-container {
  130. margin-right: 30px;
  131. .avatar-wrapper {
  132. position: relative;
  133. .user-avatar {
  134. cursor: pointer;
  135. width: 40px;
  136. height: 40px;
  137. border-radius: 10px;
  138. }
  139. .el-icon-caret-bottom {
  140. cursor: pointer;
  141. position: absolute;
  142. right: -20px;
  143. top: 25px;
  144. font-size: 12px;
  145. }
  146. }
  147. }
  148. }
  149. }
  150. </style>