navigation.vue 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. <script setup lang="ts">
  2. import type { SelectListItem } from '@vben/types';
  3. import { $t } from '@vben-core/locales';
  4. import SwitchItem from '../switch-item.vue';
  5. import ToggleItem from '../toggle-item.vue';
  6. defineOptions({
  7. name: 'PreferenceNavigationConfig',
  8. });
  9. defineProps<{ disabled?: boolean; disabledNavigationSplit?: boolean }>();
  10. const navigationStyleType = defineModel<string>('navigationStyleType');
  11. const navigationSplit = defineModel<boolean>('navigationSplit');
  12. const navigationAccordion = defineModel<boolean>('navigationAccordion');
  13. const stylesItems: SelectListItem[] = [
  14. { label: $t('preferences.rounded'), value: 'rounded' },
  15. { label: $t('preferences.plain'), value: 'plain' },
  16. ];
  17. </script>
  18. <template>
  19. <ToggleItem
  20. v-model="navigationStyleType"
  21. :disabled="disabled"
  22. :items="stylesItems"
  23. >
  24. {{ $t('preferences.navigation-menu.style') }}
  25. </ToggleItem>
  26. <SwitchItem
  27. v-model="navigationSplit"
  28. :disabled="disabledNavigationSplit || disabled"
  29. >
  30. {{ $t('preferences.navigation-menu.split') }}
  31. <template #tip>
  32. {{ $t('preferences.navigation-menu.split-tip') }}
  33. </template>
  34. </SwitchItem>
  35. <SwitchItem v-model="navigationAccordion" :disabled="disabled">
  36. {{ $t('preferences.navigation-menu.accordion') }}
  37. </SwitchItem>
  38. </template>