123456789101112131415161718192021222324252627282930313233343536373839 |
- <script lang="ts" setup>
- import type { MenuRecordRaw } from '@vben-core/typings';
- import { useRoute } from 'vue-router';
- import { Menu, MenuProps } from '@vben-core/menu-ui';
- import { useNavigation } from './use-navigation';
- interface Props extends MenuProps {
- collspae?: boolean;
- menus: MenuRecordRaw[];
- }
- withDefaults(defineProps<Props>(), {
- accordion: true,
- menus: () => [],
- });
- const route = useRoute();
- const { navigation } = useNavigation();
- async function handleSelect(key: string) {
- await navigation(key);
- }
- </script>
- <template>
- <Menu
- :accordion="accordion"
- :collapse="collapse"
- :default-active="route.path"
- :menus="menus"
- :rounded="rounded"
- :theme="theme"
- mode="vertical"
- @select="handleSelect"
- />
- </template>
|