tabbar.vue 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. <script setup lang="ts">
  2. import { computed } from 'vue';
  3. import { $t } from '@vben/locales';
  4. import { SelectOption } from '@vben/types';
  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 tabbarShowMore = defineModel<boolean>('tabbarShowMore');
  17. const tabbarShowRefresh = defineModel<boolean>('tabbarShowRefresh');
  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="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. <SwitchItem v-model="tabbarShowIcon" :disabled="!tabbarEnable">
  52. {{ $t('preferences.tabbar.icon') }}
  53. </SwitchItem>
  54. <SwitchItem v-model="tabbarShowMore" :disabled="!tabbarEnable">
  55. {{ $t('preferences.tabbar.showMore') }}
  56. </SwitchItem>
  57. <SwitchItem v-model="tabbarShowRefresh" :disabled="!tabbarEnable">
  58. {{ $t('preferences.tabbar.showRefresh') }}
  59. </SwitchItem>
  60. <SwitchItem v-model="tabbarShowMaximize" :disabled="!tabbarEnable">
  61. {{ $t('preferences.tabbar.showMaximize') }}
  62. </SwitchItem>
  63. </template>