header.vue 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. <script setup lang="ts">
  2. import type { LayoutHeaderModeType, SelectListItem } from '@vben/types';
  3. import { $t } from '@vben/locales';
  4. import SelectItem from '../select-item.vue';
  5. import SwitchItem from '../switch-item.vue';
  6. defineOptions({
  7. name: 'PreferenceBreadcrumbConfig',
  8. });
  9. defineProps<{ disabled: boolean }>();
  10. const headerEnable = defineModel<boolean>('headerEnable');
  11. const headerMode = defineModel<LayoutHeaderModeType>('headerMode');
  12. const localeItems: SelectListItem[] = [
  13. {
  14. label: $t('preferences.header-mode-static'),
  15. value: 'static',
  16. },
  17. {
  18. label: $t('preferences.header-mode-fixed'),
  19. value: 'fixed',
  20. },
  21. {
  22. label: $t('preferences.header-mode-auto'),
  23. value: 'auto',
  24. },
  25. {
  26. label: $t('preferences.header-mode-auto-scroll'),
  27. value: 'auto-scroll',
  28. },
  29. ];
  30. </script>
  31. <template>
  32. <SwitchItem v-model="headerEnable" :disabled="disabled">
  33. {{ $t('preferences.header-visible') }}
  34. </SwitchItem>
  35. <SelectItem
  36. v-model="headerMode"
  37. :disabled="!headerEnable"
  38. :items="localeItems"
  39. >
  40. {{ $t('preferences.mode') }}
  41. </SelectItem>
  42. </template>