AppSidebar.vue 650B

12345678910111213141516171819202122232425262728293031323334
  1. <script setup>
  2. import AppSubSidebar from '@/components/AppSubSidebar.vue'
  3. defineProps({
  4. model: Array,
  5. })
  6. const emits = defineEmits(['menuitem-click'])
  7. const onKeyDown = (event) => {
  8. const nodeElement = event.target
  9. if (event.code === 'Enter' || event.code === 'Space') {
  10. nodeElement.click()
  11. event.preventDefault()
  12. }
  13. }
  14. const onMenuItemClick = (event) => {
  15. emits('menuitem-click', event)
  16. }
  17. </script>
  18. <template>
  19. <div class="layout-menu-container">
  20. <AppSubSidebar
  21. class="layout-menu"
  22. :items="model"
  23. :root="true"
  24. @keydown="onKeyDown"
  25. @menuitem-click="onMenuItemClick"
  26. />
  27. </div>
  28. </template>