breadcrumb.vue 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <script setup lang="ts">
  2. import type { SelectListItem } from '@vben/types';
  3. import { computed } from 'vue';
  4. import { $t } from '@vben/locales';
  5. import SwitchItem from '../switch-item.vue';
  6. import ToggleItem from '../toggle-item.vue';
  7. defineOptions({
  8. name: 'PreferenceBreadcrumbConfig',
  9. });
  10. const props = defineProps<{ disabled?: boolean }>();
  11. const breadcrumbEnable = defineModel<boolean>('breadcrumbEnable');
  12. const breadcrumbShowIcon = defineModel<boolean>('breadcrumbShowIcon');
  13. const breadcrumbStyleType = defineModel<string>('breadcrumbStyleType');
  14. const breadcrumbShowHome = defineModel<boolean>('breadcrumbShowHome');
  15. const breadcrumbHideOnlyOne = defineModel<boolean>('breadcrumbHideOnlyOne');
  16. const typeItems: SelectListItem[] = [
  17. { label: $t('preference.normal'), value: 'normal' },
  18. { label: $t('preference.breadcrumb-background'), value: 'background' },
  19. ];
  20. const disableItem = computed(() => {
  21. return !breadcrumbEnable.value || props.disabled;
  22. });
  23. </script>
  24. <template>
  25. <SwitchItem v-model="breadcrumbEnable" :disabled="disabled">
  26. {{ $t('preference.breadcrumb-enable') }}
  27. </SwitchItem>
  28. <SwitchItem v-model="breadcrumbHideOnlyOne" :disabled="disableItem">
  29. {{ $t('preference.breadcrumb-hide-only-one') }}
  30. </SwitchItem>
  31. <SwitchItem v-model="breadcrumbShowHome" :disabled="disableItem">
  32. {{ $t('preference.breadcrumb-home') }}
  33. </SwitchItem>
  34. <SwitchItem v-model="breadcrumbShowIcon" :disabled="disableItem">
  35. {{ $t('preference.breadcrumb-icon') }}
  36. </SwitchItem>
  37. <ToggleItem
  38. v-model="breadcrumbStyleType"
  39. :items="typeItems"
  40. :disabled="disableItem"
  41. >
  42. {{ $t('preference.breadcrumb-style') }}
  43. </ToggleItem>
  44. </template>