menu.vue 791 B

12345678910111213141516171819202122232425262728293031323334353637
  1. <script setup lang="ts">
  2. import type { MenuRecordRaw } from '@vben-core/typings';
  3. import { useForwardProps } from '@vben-core/composables';
  4. import { Menu } from './components';
  5. import { MenuProps } from './interface';
  6. import SubMenu from './sub-menu.vue';
  7. interface Props extends MenuProps {
  8. menus: MenuRecordRaw[];
  9. }
  10. defineOptions({
  11. name: 'MenuView',
  12. });
  13. const props = withDefaults(defineProps<Props>(), {
  14. collapse: false,
  15. // theme: 'dark',
  16. });
  17. const forward = useForwardProps(props);
  18. // const emit = defineEmits<{
  19. // 'update:openKeys': [key: Key[]];
  20. // 'update:selectedKeys': [key: Key[]];
  21. // }>();
  22. </script>
  23. <template>
  24. <Menu v-bind="forward">
  25. <template v-for="menu in menus" :key="menu.path">
  26. <SubMenu :menu="menu" />
  27. </template>
  28. </Menu>
  29. </template>