side-nav.vue 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. <style>
  2. </style>
  3. <template>
  4. <div class="side-nav">
  5. <ul>
  6. <li v-for="item in data">
  7. <a href="">{{item.name}}</a>
  8. </li>
  9. </ul>
  10. <template v-for="(nav, key) in navs">
  11. <a
  12. href="#"
  13. @click.prevent="navState.$set(key, !navState[key] || false)"
  14. class="pure-menu-heading app__menu__label"
  15. :class="{ 'unfold': !navState[key] }"
  16. v-text="nav.group"></a>
  17. <ul
  18. class="pure-menu-list"
  19. transition="slidedown"
  20. v-show="!navState[key]"
  21. :style="{
  22. maxHeight: nav.list.length * 44 + 'px'
  23. }">
  24. <li
  25. class="pure-menu-item app__menu__item"
  26. v-for="item in nav.list"
  27. v-if="!item.disabled">
  28. <router-link
  29. class="pure-menu-link app__menu__link"
  30. active-class="active"
  31. :to="'/component' + item.path"
  32. exact
  33. v-text="item.name"></router-link>
  34. </li>
  35. </ul>
  36. </template>
  37. </div>
  38. </template>
  39. <script>
  40. export default {
  41. props: {
  42. data: Array
  43. },
  44. data() {
  45. return {
  46. highlights: [],
  47. navState: []
  48. };
  49. }
  50. };
  51. </script>