vben-layout.ts 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. import type {
  2. ContentCompactType,
  3. LayoutHeaderModeType,
  4. LayoutType,
  5. ThemeModeType,
  6. } from '@vben-core/typings';
  7. interface VbenLayoutProps {
  8. /**
  9. * 内容区域定宽
  10. * @default 'wide'
  11. */
  12. contentCompact?: ContentCompactType;
  13. /**
  14. * 定宽布局宽度
  15. * @default 1200
  16. */
  17. contentCompactWidth?: number;
  18. /**
  19. * padding
  20. * @default 16
  21. */
  22. contentPadding?: number;
  23. /**
  24. * paddingBottom
  25. * @default 16
  26. */
  27. contentPaddingBottom?: number;
  28. /**
  29. * paddingLeft
  30. * @default 16
  31. */
  32. contentPaddingLeft?: number;
  33. /**
  34. * paddingRight
  35. * @default 16
  36. */
  37. contentPaddingRight?: number;
  38. /**
  39. * paddingTop
  40. * @default 16
  41. */
  42. contentPaddingTop?: number;
  43. /**
  44. * footer背景颜色
  45. * @default #fff
  46. */
  47. footerBackgroundColor?: string;
  48. /**
  49. * footer 是否可见
  50. * @default false
  51. */
  52. footerEnable?: boolean;
  53. /**
  54. * footer 是否固定
  55. * @default true
  56. */
  57. footerFixed?: boolean;
  58. /**
  59. * footer 高度
  60. * @default 32
  61. */
  62. footerHeight?: number;
  63. /**
  64. * 背景颜色
  65. * @default #fff
  66. */
  67. headerBackgroundColor?: string;
  68. /**
  69. * header高度
  70. * @default 48
  71. */
  72. headerHeight?: number;
  73. /**
  74. * header高度增加高度
  75. * 在顶部存在导航时,额外加高header高度
  76. * @default 10
  77. */
  78. headerHeightOffset?: number;
  79. /**
  80. * 顶栏是否隐藏
  81. * @default false
  82. */
  83. headerHidden?: boolean;
  84. /**
  85. * header 显示模式
  86. * @default 'fixed'
  87. */
  88. headerMode?: LayoutHeaderModeType;
  89. /**
  90. * 是否显示header切换侧边栏按钮
  91. * @default
  92. */
  93. headerToggleSidebarButton?: boolean;
  94. /**
  95. * header是否显示
  96. * @default true
  97. */
  98. headerVisible?: boolean;
  99. /**
  100. * 是否移动端显示
  101. * @default false
  102. */
  103. isMobile?: boolean;
  104. /**
  105. * 布局方式
  106. * sidebar-nav 侧边菜单布局
  107. * header-nav 顶部菜单布局
  108. * mixed-nav 侧边&顶部菜单布局
  109. * sidebar-mixed-nav 侧边混合菜单布局
  110. * full-content 全屏内容布局
  111. * @default sidebar-nav
  112. */
  113. layout?: LayoutType;
  114. /**
  115. * 侧边菜单折叠宽度
  116. * @default 48
  117. */
  118. sideCollapseWidth?: number;
  119. /**
  120. * 侧边菜单折叠状态
  121. * @default false
  122. */
  123. sidebarCollapse?: boolean;
  124. /**
  125. * 侧边菜单是否折叠时,是否显示title
  126. * @default true
  127. */
  128. sidebarCollapseShowTitle?: boolean;
  129. /**
  130. * 侧边栏是否可见
  131. * @default true
  132. */
  133. sidebarEnable?: boolean;
  134. /**
  135. * 侧边栏是否隐藏
  136. * @default false
  137. */
  138. sidebarHidden?: boolean;
  139. /**
  140. * 混合侧边栏宽度
  141. * @default 80
  142. */
  143. sidebarMixedWidth?: number;
  144. /**
  145. * 侧边栏是否半深色
  146. * @default false
  147. */
  148. sidebarSemiDark?: boolean;
  149. /**
  150. * 侧边栏
  151. * @default dark
  152. */
  153. sidebarTheme?: ThemeModeType;
  154. /**
  155. * 侧边栏宽度
  156. * @default 210
  157. */
  158. sidebarWidth?: number;
  159. /**
  160. * footer背景颜色
  161. * @default #fff
  162. */
  163. tabbarBackgroundColor?: string;
  164. /**
  165. * tab是否可见
  166. * @default true
  167. */
  168. tabbarEnable?: boolean;
  169. /**
  170. * tab高度
  171. * @default 30
  172. */
  173. tabbarHeight?: number;
  174. /**
  175. * zIndex
  176. * @default 100
  177. */
  178. zIndex?: number;
  179. }
  180. export type { VbenLayoutProps };