sidebar.vue 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <script setup lang="ts">
  2. import type { LayoutType } from '@vben/types';
  3. import { $t } from '@vben/locales';
  4. import NumberFieldItem from '../number-field-item.vue';
  5. import SwitchItem from '../switch-item.vue';
  6. defineProps<{ currentLayout?: LayoutType; disabled: boolean }>();
  7. const sidebarEnable = defineModel<boolean>('sidebarEnable');
  8. const sidebarWidth = defineModel<number>('sidebarWidth');
  9. const sidebarCollapsedShowTitle = defineModel<boolean>(
  10. 'sidebarCollapsedShowTitle',
  11. );
  12. const sidebarAutoActivateChild = defineModel<boolean>(
  13. 'sidebarAutoActivateChild',
  14. );
  15. const sidebarCollapsed = defineModel<boolean>('sidebarCollapsed');
  16. const sidebarExpandOnHover = defineModel<boolean>('sidebarExpandOnHover');
  17. </script>
  18. <template>
  19. <SwitchItem v-model="sidebarEnable" :disabled="disabled">
  20. {{ $t('preferences.sidebar.visible') }}
  21. </SwitchItem>
  22. <SwitchItem v-model="sidebarCollapsed" :disabled="!sidebarEnable || disabled">
  23. {{ $t('preferences.sidebar.collapsed') }}
  24. </SwitchItem>
  25. <SwitchItem
  26. v-model="sidebarExpandOnHover"
  27. :disabled="!sidebarEnable || disabled || !sidebarCollapsed"
  28. :tip="$t('preferences.sidebar.expandOnHoverTip')"
  29. >
  30. {{ $t('preferences.sidebar.expandOnHover') }}
  31. </SwitchItem>
  32. <SwitchItem
  33. v-model="sidebarCollapsedShowTitle"
  34. :disabled="!sidebarEnable || disabled || !sidebarCollapsed"
  35. >
  36. {{ $t('preferences.sidebar.collapsedShowTitle') }}
  37. </SwitchItem>
  38. <SwitchItem
  39. v-model="sidebarAutoActivateChild"
  40. :disabled="
  41. !sidebarEnable || currentLayout !== 'sidebar-mixed-nav' || disabled
  42. "
  43. :tip="$t('preferences.sidebar.autoActivateChildTip')"
  44. >
  45. {{ $t('preferences.sidebar.autoActivateChild') }}
  46. </SwitchItem>
  47. <NumberFieldItem
  48. v-model="sidebarWidth"
  49. :disabled="!sidebarEnable || disabled"
  50. :max="320"
  51. :min="160"
  52. :step="10"
  53. >
  54. {{ $t('preferences.sidebar.width') }}
  55. </NumberFieldItem>
  56. </template>