micro-header.vue 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. <template>
  2. <div class="micro-header">
  3. <div class="fixed-box">
  4. <div class="header-content">
  5. <div class="left">
  6. <img class="logo" @click="toUrl('home')" v-if="basicSet.set" :src="basicSet.set.logo_src" alt="">
  7. </div>
  8. <div class="right">
  9. <el-button size="small" class="btn-login btn-default" v-if="showPublish" @click="toUrl('microRelease')"><i class="iconfont icon-life-game-plus"></i><span>发布</span>
  10. </el-button>
  11. <el-button size="small" plain class="btn-video" @click="toUrl('microHome-microIndex')"><span>微社区</span>
  12. </el-button>
  13. <el-button size="small" class="btn-login btn-default" v-if="!basicSet.is_login"
  14. @click="toUrl('login',{select: '1'})"><span>登录</span>
  15. </el-button>
  16. <div class="member-box" v-if="basicSet.is_login">
  17. <img :src="basicSet.user_info ? basicSet.user_info.avatar : ''" alt="">
  18. <p>{{basicSet.user_info ? basicSet.user_info.nickname : ''}}</p>
  19. </div>
  20. </div>
  21. </div>
  22. </div>
  23. </div>
  24. </template>
  25. <script>
  26. import {mapState} from 'vuex'
  27. export default {
  28. name: "MHeader",
  29. props: {
  30. showPublish: {
  31. type: Boolean,
  32. default: false
  33. }
  34. },
  35. data() {
  36. return {
  37. }
  38. },
  39. computed: {
  40. ...mapState(['basicSet', 'videoBasicSet',]),
  41. },
  42. mounted() {},
  43. methods: {
  44. toUrl(url, params, query) {
  45. if (url == 'login') {
  46. sessionStorage.setItem("yz_redirect", document.location.href);
  47. }
  48. this.$router.push(this.fun.getUrl(url, params, query));
  49. },
  50. }
  51. };
  52. </script>
  53. <style lang="scss" rel="stylesheet/scss" scoped>
  54. .micro-header {
  55. min-width: 1200px;
  56. height: 60px;
  57. padding: 4px;
  58. box-sizing: border-box;
  59. }
  60. .fixed-box {
  61. z-index: 999;
  62. position: fixed;
  63. top: 0;
  64. left: 0;
  65. width: 100%;
  66. background-color: #ffffff;
  67. }
  68. .header-content {
  69. padding: 0 30px;
  70. height: 60px;
  71. margin: 0 auto;
  72. display: flex;
  73. justify-content: space-between;
  74. align-items: center;
  75. .left {
  76. display: flex;
  77. align-items: center;
  78. position: relative;
  79. .logo {
  80. cursor: pointer;
  81. width: 220px;
  82. height: 32px;
  83. }
  84. }
  85. .right {
  86. display: flex;
  87. align-items: center;
  88. .btn-default {
  89. border: none;
  90. color: #ffffff;
  91. }
  92. .iconfont {
  93. font-size: 12px;
  94. }
  95. .btn-login {
  96. background-color: #3a75f4;
  97. }
  98. .btn-video {
  99. margin-right: 20px;
  100. color: var(--color);
  101. border: 1px solid var(--color);
  102. }
  103. }
  104. }
  105. .member-box {
  106. display: flex;
  107. align-items: center;
  108. img {
  109. margin-right: 6px;
  110. width: 28px;
  111. height: 28px;
  112. border-radius: 50%;
  113. }
  114. p {
  115. font-weight: bold;
  116. }
  117. }
  118. </style>