tabbar.vue 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <script setup lang="ts">
  2. import { computed } from 'vue';
  3. import { $t } from '@vben-core/locales';
  4. import { SelectOption } from '@vben-core/typings';
  5. import SelectItem from '../select-item.vue';
  6. import SwitchItem from '../switch-item.vue';
  7. defineOptions({
  8. name: 'PreferenceTabsConfig',
  9. });
  10. defineProps<{ disabled?: boolean }>();
  11. const tabbarEnable = defineModel<boolean>('tabbarEnable');
  12. const tabbarShowIcon = defineModel<boolean>('tabbarShowIcon');
  13. const tabbarPersist = defineModel<boolean>('tabbarPersist');
  14. const tabbarDragable = defineModel<boolean>('tabbarDragable');
  15. const tabbarStyleType = defineModel<string>('tabbarStyleType');
  16. const styleItems = computed((): SelectOption[] => [
  17. {
  18. label: $t('preferences.tabbar.styleType.chrome'),
  19. value: 'chrome',
  20. },
  21. {
  22. label: $t('preferences.tabbar.styleType.plain'),
  23. value: 'plain',
  24. },
  25. {
  26. label: $t('preferences.tabbar.styleType.card'),
  27. value: 'card',
  28. },
  29. {
  30. label: $t('preferences.tabbar.styleType.brisk'),
  31. value: 'brisk',
  32. },
  33. ]);
  34. </script>
  35. <template>
  36. <SwitchItem v-model="tabbarEnable" :disabled="disabled">
  37. {{ $t('preferences.tabbar.enable') }}
  38. </SwitchItem>
  39. <SwitchItem v-model="tabbarShowIcon" :disabled="!tabbarEnable">
  40. {{ $t('preferences.tabbar.icon') }}
  41. </SwitchItem>
  42. <SwitchItem v-model="tabbarPersist" :disabled="!tabbarEnable">
  43. {{ $t('preferences.tabbar.persist') }}
  44. </SwitchItem>
  45. <SwitchItem v-model="tabbarDragable" :disabled="!tabbarEnable">
  46. {{ $t('preferences.tabbar.dragable') }}
  47. </SwitchItem>
  48. <SelectItem v-model="tabbarStyleType" :items="styleItems">
  49. {{ $t('preferences.tabbar.styleType.title') }}
  50. </SelectItem>
  51. </template>