menu.vue 653 B

1234567891011121314151617181920212223242526272829303132
  1. <script setup lang="ts">
  2. import type { MenuRecordRaw } from '@vben-core/typings';
  3. import type { MenuProps } from './types';
  4. import { useForwardProps } from '@vben-core/composables';
  5. import { Menu } from './components';
  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. });
  16. const forward = useForwardProps(props);
  17. </script>
  18. <template>
  19. <Menu v-bind="forward">
  20. <template v-for="menu in menus" :key="menu.path">
  21. <SubMenu :menu="menu" />
  22. </template>
  23. </Menu>
  24. </template>