HeaderMenu.vue 1.9 KB

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