tabbar.vue 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <script setup lang="ts">
  2. import type { SelectOption } from '@vben/types';
  3. import { computed } from 'vue';
  4. import { $t } from '@vben/locales';
  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 tabbarDraggable = defineModel<boolean>('tabbarDraggable');
  15. const tabbarWheelable = defineModel<boolean>('tabbarWheelable');
  16. const tabbarStyleType = defineModel<string>('tabbarStyleType');
  17. const tabbarShowMore = defineModel<boolean>('tabbarShowMore');
  18. const tabbarShowMaximize = defineModel<boolean>('tabbarShowMaximize');
  19. const styleItems = computed((): SelectOption[] => [
  20. {
  21. label: $t('preferences.tabbar.styleType.chrome'),
  22. value: 'chrome',
  23. },
  24. {
  25. label: $t('preferences.tabbar.styleType.plain'),
  26. value: 'plain',
  27. },
  28. {
  29. label: $t('preferences.tabbar.styleType.card'),
  30. value: 'card',
  31. },
  32. {
  33. label: $t('preferences.tabbar.styleType.brisk'),
  34. value: 'brisk',
  35. },
  36. ]);
  37. </script>
  38. <template>
  39. <SwitchItem v-model="tabbarEnable" :disabled="disabled">
  40. {{ $t('preferences.tabbar.enable') }}
  41. </SwitchItem>
  42. <SwitchItem v-model="tabbarPersist" :disabled="!tabbarEnable">
  43. {{ $t('preferences.tabbar.persist') }}
  44. </SwitchItem>
  45. <SwitchItem v-model="tabbarDraggable" :disabled="!tabbarEnable">
  46. {{ $t('preferences.tabbar.draggable') }}
  47. </SwitchItem>
  48. <SwitchItem
  49. v-model="tabbarWheelable"
  50. :disabled="!tabbarEnable"
  51. :tip="$t('preferences.tabbar.wheelableTip')"
  52. >
  53. {{ $t('preferences.tabbar.wheelable') }}
  54. </SwitchItem>
  55. <SwitchItem v-model="tabbarShowIcon" :disabled="!tabbarEnable">
  56. {{ $t('preferences.tabbar.icon') }}
  57. </SwitchItem>
  58. <SwitchItem v-model="tabbarShowMore" :disabled="!tabbarEnable">
  59. {{ $t('preferences.tabbar.showMore') }}
  60. </SwitchItem>
  61. <SwitchItem v-model="tabbarShowMaximize" :disabled="!tabbarEnable">
  62. {{ $t('preferences.tabbar.showMaximize') }}
  63. </SwitchItem>
  64. <SelectItem v-model="tabbarStyleType" :items="styleItems">
  65. {{ $t('preferences.tabbar.styleType.title') }}
  66. </SelectItem>
  67. </template>