login-top-menus.vue 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. <template>
  2. <div class="fx-row fx-bet-cen bg-white pl60 pr60" style="height:80px;">
  3. <el-image :src="`${$imgBase}index/login/icon_logo_medium@2x.png`" fit="contain"
  4. style="width: 124px;"></el-image>
  5. <div class="fx-row fx-end-cen fx-1 menus-container">
  6. <el-link v-for="(item,idx) in routers" :key="idx" @click="handleMenuClick(item)" class="f16 f-fff"
  7. :underline="false">
  8. <svg-icon :icon-class="item.meta.icon" style="margin-right:5px"/>
  9. {{ item.meta.title }}
  10. </el-link>
  11. </div>
  12. </div>
  13. </template>
  14. <script>
  15. import loginCheckMixin from '@/views/index/blocks/index-login-interceptor-mixin'
  16. import { mapActions, mapGetters } from 'vuex'
  17. export default {
  18. mixins: [loginCheckMixin],
  19. name: 'login-top-menus',
  20. computed: {
  21. ...mapGetters(['topbarRouters']),
  22. routers() {
  23. return this.topbarRouters.filter(r => !r.hidden)
  24. }
  25. },
  26. methods: {
  27. ...mapActions(['AccessDeepMenu']),
  28. async handleMenuClick(item) {
  29. await this.loginCheck()
  30. this.AccessDeepMenu(item)
  31. }
  32. }
  33. }
  34. </script>
  35. <style scoped>
  36. .menus-container .el-link + .el-link {
  37. margin-left: 30px;
  38. }
  39. </style>