HeaderMenu.vue 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <template>
  2. <nav id="header-menu">
  3. <!-- <span v-if="!corpusLoaded" class="loading">Loading ...</span> -->
  4. <ul>
  5. <li>
  6. <span v-if="!corpusLoaded" class="loading">Loading ...</span>
  7. <router-link v-else to="/corpus">Corpus</router-link>
  8. </li>
  9. <li class="has-submenu" :class="{ opened: indexOpened }">
  10. <!-- tabindex="-1" -->
  11. <span
  12. @click.prevent="onClickIndex"
  13. @keyup.enter="onClickIndex"
  14. >
  15. Index
  16. </span>
  17. <ul>
  18. <li><router-link to="/nominum">Personnes</router-link></li>
  19. <li><router-link to="/locorum">Lieux</router-link></li>
  20. <li><router-link to="/operum">Œuvres</router-link></li>
  21. </ul>
  22. </li>
  23. <li><router-link to="/bibliographie">Bibliographie</router-link></li>
  24. <li><a href="#">Blog</a></li>
  25. <li>
  26. <a href="#" class="mdi mdi-login-variant" title="connexion">
  27. <span class="visualy-hidden">connexion</span>
  28. </a>
  29. </li>
  30. </ul>
  31. </nav>
  32. </template>
  33. <script>
  34. import { mapState } from 'vuex'
  35. export default {
  36. name: 'HeaderMenu',
  37. data: () => ({
  38. indexOpened: false
  39. }),
  40. computed: {
  41. ...mapState({
  42. corpusLoaded: state => state.Corpus.corpusLoaded
  43. })
  44. },
  45. watch: {
  46. $route (n, o) {
  47. console.log('route changed')
  48. this.indexOpened = false
  49. }
  50. },
  51. methods: {
  52. onClickIndex (e) {
  53. console.log('onClickIndex')
  54. this.indexOpened = !this.indexOpened
  55. }
  56. }
  57. }
  58. </script>
  59. <style lang="scss" scoped>
  60. </style>