Header.vue 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <template>
  2. <div id="Header">
  3. <el-row>
  4. <el-col :span="24" class="main">
  5. <el-col :span="24" class="main header">
  6. <el-col :span="24" class="one">
  7. <el-col :span="12" class="left">
  8. <span>
  9. <i v-if="!collapse" class="el-icon-s-fold"></i>
  10. <i v-else class="el-icon-s-unfold"></i>
  11. </span>
  12. <span>{{ siteInfo.zhTitle }}-管理中心</span>
  13. </el-col>
  14. <el-col :span="12" class="right">
  15. <span>
  16. <el-icon><UserFilled /></el-icon>
  17. {{ user && user._id ? user.nick_name : '游客' }}
  18. </span>
  19. <el-button type="danger" size="small" @click="logout">退出登录</el-button>
  20. </el-col>
  21. </el-col>
  22. </el-col>
  23. </el-col>
  24. </el-row>
  25. </div>
  26. </template>
  27. <script setup>
  28. import { siteInfo } from '@/layout/site'
  29. import { UserStore } from '@/store/user'
  30. const userStore = UserStore()
  31. const user = computed(() => userStore.user)
  32. let collapse = ref(false)
  33. const route = useRoute()
  34. // 退出登录
  35. const logout = () => {
  36. localStorage.removeItem('token')
  37. route.to('/login')
  38. }
  39. </script>
  40. <style scoped lang="scss">
  41. .main {
  42. background-color: #242f42;
  43. .one {
  44. height: 60px;
  45. border-bottom: 1px solid #f1f1f1;
  46. padding: 0 10px;
  47. display: flex;
  48. .left {
  49. line-height: 60px;
  50. span {
  51. display: inline-block;
  52. margin: 0 10px;
  53. font-size: 22px;
  54. color: #ffffff;
  55. font-weight: bold;
  56. font-family: cursive;
  57. }
  58. }
  59. .right {
  60. text-align: right;
  61. padding: 16px 0;
  62. span {
  63. padding: 0 8px;
  64. color: #ffffff;
  65. position: relative;
  66. top: 1px;
  67. }
  68. .el-icon {
  69. top: 2px;
  70. }
  71. }
  72. }
  73. }
  74. </style>