@jetlinks-web/components 2.0.2-2 → 2.0.2-4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (225) hide show
  1. package/es/AMap/Map.js +124 -0
  2. package/es/AMap/index.js +2 -0
  3. package/es/AMap/util.js +56 -0
  4. package/es/BadgeStatus/Badge.js +54 -0
  5. package/es/BadgeStatus/color.js +21 -0
  6. package/es/BadgeStatus/index.js +3 -0
  7. package/es/CardSelect/CardSelect.js +123 -0
  8. package/es/CardSelect/index.js +2 -0
  9. package/es/CheckButton/CheckButton.js +121 -0
  10. package/es/CheckButton/index.js +2 -0
  11. package/es/ConfigProvider/context.js +12 -0
  12. package/es/ConfigProvider/index.js +31 -0
  13. package/es/Echarts/Echarts.js +47 -0
  14. package/es/Echarts/index.js +2 -0
  15. package/es/Ellipsis/Ellipsis.js +189 -0
  16. package/es/Ellipsis/index.js +2 -0
  17. package/es/Empty/Empty.js +56 -0
  18. package/es/Empty/image.js +2 -0
  19. package/es/Empty/index.js +2 -0
  20. package/es/FullPage/FullPage.js +31 -0
  21. package/es/FullPage/index.js +2 -0
  22. package/es/Icon/icon.js +43 -0
  23. package/{src/Icon/index.ts → es/Icon/index.js} +2 -3
  24. package/es/MonacoEditor/Monaco.js +238 -0
  25. package/es/MonacoEditor/index.js +2 -0
  26. package/es/PermissionButton/index.js +117 -0
  27. package/es/ProLayout/Basic/BasicLayout.js +255 -0
  28. package/es/ProLayout/Basic/Header.js +93 -0
  29. package/es/ProLayout/PageContainer/index.js +318 -0
  30. package/es/ProLayout/PageContainer/typings.js +1 -0
  31. package/es/ProLayout/RouteContext.js +22 -0
  32. package/es/ProLayout/SiderMenu/BaseMenu.js +262 -0
  33. package/es/ProLayout/SiderMenu/SiderMenu.js +258 -0
  34. package/es/ProLayout/SiderMenu/index.js +2 -0
  35. package/es/ProLayout/SiderMenu/typings.js +1 -0
  36. package/es/ProLayout/TopHeader/index.js +155 -0
  37. package/es/ProLayout/defaultSettings.js +66 -0
  38. package/{src/ProLayout/index.ts → es/ProLayout/index.js} +4 -6
  39. package/{src → es}/ProLayout/style/default.less +4 -4
  40. package/es/ProLayout/style/index.js +1 -0
  41. package/es/ProLayout/typings.js +1 -0
  42. package/es/ProLayout/util.js +61 -0
  43. package/es/ProTable/index.js +406 -0
  44. package/es/ProTable/proTableTypes.js +11 -0
  45. package/es/ProTable/style/index.css +65 -0
  46. package/es/ProTable/style/index.js +1 -0
  47. package/es/Scrollbar/Bar.js +114 -0
  48. package/es/Scrollbar/Scrollbar.js +100 -0
  49. package/es/Scrollbar/Thumb.js +10 -0
  50. package/es/Scrollbar/constants.js +1 -0
  51. package/es/Scrollbar/index.js +2 -0
  52. package/es/Scrollbar/util.js +30 -0
  53. package/es/Search/Advanced/History.js +183 -0
  54. package/es/Search/Advanced/SaveHistory.js +153 -0
  55. package/es/Search/Advanced/index.js +520 -0
  56. package/es/Search/Item.js +497 -0
  57. package/es/Search/Search.js +249 -0
  58. package/es/Search/hooks/index.js +1 -0
  59. package/es/Search/hooks/useSearchItems.js +40 -0
  60. package/es/Search/index.js +4 -0
  61. package/es/Search/setting.js +91 -0
  62. package/es/Search/typing.js +1 -0
  63. package/es/Search/util.js +234 -0
  64. package/es/ValueItem/ValueItem.js +233 -0
  65. package/es/ValueItem/index.js +2 -0
  66. package/es/ValueItem/util.js +16 -0
  67. package/es/index.js +24 -0
  68. package/es/style/index.js +3 -0
  69. package/es/style/variable.css +0 -0
  70. package/{src → es}/style/variable.less +0 -2
  71. package/lib/AMap/Map.js +124 -0
  72. package/lib/AMap/index.js +9 -0
  73. package/lib/AMap/util.js +62 -0
  74. package/lib/BadgeStatus/Badge.js +54 -0
  75. package/lib/BadgeStatus/color.js +27 -0
  76. package/lib/BadgeStatus/index.js +22 -0
  77. package/lib/CardSelect/CardSelect.js +123 -0
  78. package/lib/CardSelect/index.js +9 -0
  79. package/lib/CheckButton/CheckButton.js +121 -0
  80. package/lib/CheckButton/index.js +9 -0
  81. package/lib/ConfigProvider/context.js +19 -0
  82. package/lib/ConfigProvider/index.js +37 -0
  83. package/lib/Echarts/Echarts.js +47 -0
  84. package/lib/Echarts/index.js +9 -0
  85. package/lib/Ellipsis/Ellipsis.js +189 -0
  86. package/lib/Ellipsis/index.js +9 -0
  87. package/lib/Empty/Empty.js +56 -0
  88. package/lib/Empty/image.js +8 -0
  89. package/lib/Empty/index.js +9 -0
  90. package/lib/FullPage/FullPage.js +31 -0
  91. package/lib/FullPage/index.js +9 -0
  92. package/lib/Icon/icon.js +52 -0
  93. package/lib/Icon/index.js +9 -0
  94. package/lib/MonacoEditor/Monaco.js +238 -0
  95. package/lib/MonacoEditor/index.js +9 -0
  96. package/lib/PermissionButton/index.js +124 -0
  97. package/lib/ProLayout/Basic/BasicLayout.js +264 -0
  98. package/lib/ProLayout/Basic/BasicLayout.less +66 -0
  99. package/lib/ProLayout/Basic/Header.js +99 -0
  100. package/lib/ProLayout/Basic/Header.less +8 -0
  101. package/lib/ProLayout/PageContainer/index.js +323 -0
  102. package/lib/ProLayout/PageContainer/index.less +103 -0
  103. package/lib/ProLayout/PageContainer/typings.js +5 -0
  104. package/lib/ProLayout/RouteContext.js +28 -0
  105. package/lib/ProLayout/SiderMenu/BaseMenu.js +268 -0
  106. package/lib/ProLayout/SiderMenu/SiderMenu.js +267 -0
  107. package/lib/ProLayout/SiderMenu/index.js +20 -0
  108. package/lib/ProLayout/SiderMenu/index.less +212 -0
  109. package/lib/ProLayout/SiderMenu/typings.js +5 -0
  110. package/lib/ProLayout/TopHeader/index.js +161 -0
  111. package/lib/ProLayout/TopHeader/index.less +174 -0
  112. package/lib/ProLayout/defaultSettings.js +72 -0
  113. package/lib/ProLayout/index.js +16 -0
  114. package/lib/ProLayout/style/default.less +4 -0
  115. package/lib/ProLayout/style/index.js +3 -0
  116. package/lib/ProLayout/style/style.less +7 -0
  117. package/lib/ProLayout/typings.js +5 -0
  118. package/lib/ProLayout/util.js +72 -0
  119. package/lib/ProTable/index.js +412 -0
  120. package/lib/ProTable/proTableTypes.js +17 -0
  121. package/lib/ProTable/style/index.css +65 -0
  122. package/lib/ProTable/style/index.js +3 -0
  123. package/lib/ProTable/style/index.less +92 -0
  124. package/lib/Scrollbar/Bar.js +114 -0
  125. package/{src/Scrollbar/scrollbar.ts → lib/Scrollbar/Scrollbar.js} +106 -108
  126. package/lib/Scrollbar/Thumb.js +16 -0
  127. package/lib/Scrollbar/constants.js +7 -0
  128. package/lib/Scrollbar/index.js +9 -0
  129. package/lib/Scrollbar/util.js +37 -0
  130. package/lib/Search/Advanced/History.js +183 -0
  131. package/lib/Search/Advanced/SaveHistory.js +153 -0
  132. package/lib/Search/Advanced/index.js +520 -0
  133. package/lib/Search/Item.js +497 -0
  134. package/lib/Search/Search.js +249 -0
  135. package/lib/Search/hooks/index.js +16 -0
  136. package/lib/Search/hooks/useSearchItems.js +47 -0
  137. package/lib/Search/index.js +16 -0
  138. package/lib/Search/setting.js +97 -0
  139. package/lib/Search/typing.js +5 -0
  140. package/lib/Search/util.js +241 -0
  141. package/lib/ValueItem/ValueItem.js +233 -0
  142. package/lib/ValueItem/index.js +9 -0
  143. package/lib/ValueItem/util.js +22 -0
  144. package/lib/index.js +158 -0
  145. package/lib/style/components.less +1 -0
  146. package/lib/style/index.js +4 -0
  147. package/lib/style/variable.css +0 -0
  148. package/lib/style/variable.less +2 -0
  149. package/package.json +121 -12
  150. package/index.ts +0 -64
  151. package/src/AMap/Map.vue +0 -110
  152. package/src/AMap/index.ts +0 -1
  153. package/src/AMap/util.ts +0 -56
  154. package/src/BadgeStatus/Badge.vue +0 -41
  155. package/src/BadgeStatus/color.ts +0 -25
  156. package/src/BadgeStatus/index.ts +0 -4
  157. package/src/CardSelect/CardSelect.vue +0 -136
  158. package/src/CardSelect/index.ts +0 -3
  159. package/src/CheckButton/CheckButton.vue +0 -146
  160. package/src/CheckButton/index.md +0 -27
  161. package/src/CheckButton/index.ts +0 -3
  162. package/src/ConfigProvider/context.ts +0 -17
  163. package/src/ConfigProvider/index.tsx +0 -40
  164. package/src/Echarts/Echarts.vue +0 -43
  165. package/src/Echarts/index.ts +0 -3
  166. package/src/Ellipsis/Ellipsis.vue +0 -182
  167. package/src/Ellipsis/index.ts +0 -3
  168. package/src/Empty/Empty.vue +0 -43
  169. package/src/Empty/image.ts +0 -3
  170. package/src/Empty/index.ts +0 -2
  171. package/src/FullPage/FullPage.vue +0 -30
  172. package/src/FullPage/index.ts +0 -3
  173. package/src/Icon/icon.tsx +0 -40
  174. package/src/MonacoEditor/Monaco.vue +0 -242
  175. package/src/MonacoEditor/index.md +0 -26
  176. package/src/MonacoEditor/index.ts +0 -2
  177. package/src/PermissionButton/index.tsx +0 -110
  178. package/src/ProLayout/Basic/BasicLayout.tsx +0 -395
  179. package/src/ProLayout/Basic/Header.tsx +0 -115
  180. package/src/ProLayout/PageContainer/index.tsx +0 -441
  181. package/src/ProLayout/PageContainer/typings.ts +0 -56
  182. package/src/ProLayout/RouteContext.ts +0 -87
  183. package/src/ProLayout/SiderMenu/BaseMenu.tsx +0 -296
  184. package/src/ProLayout/SiderMenu/SiderMenu.tsx +0 -320
  185. package/src/ProLayout/SiderMenu/index.ts +0 -2
  186. package/src/ProLayout/SiderMenu/typings.ts +0 -49
  187. package/src/ProLayout/TopHeader/index.tsx +0 -210
  188. package/src/ProLayout/defaultSettings.ts +0 -106
  189. package/src/ProLayout/style/index.ts +0 -1
  190. package/src/ProLayout/typings.ts +0 -87
  191. package/src/ProLayout/util.ts +0 -64
  192. package/src/ProTable/index.md +0 -53
  193. package/src/ProTable/index.tsx +0 -551
  194. package/src/ProTable/proTableTypes.ts +0 -70
  195. package/src/ProTable/style/index.ts +0 -1
  196. package/src/Scrollbar/Bar.vue +0 -75
  197. package/src/Scrollbar/Scrollbar.vue +0 -260
  198. package/src/Scrollbar/Thumb.vue +0 -163
  199. package/src/Scrollbar/constants.ts +0 -10
  200. package/src/Scrollbar/index.ts +0 -4
  201. package/src/Scrollbar/thumb.ts +0 -16
  202. package/src/Scrollbar/util.ts +0 -38
  203. package/src/Search/Advanced/History.vue +0 -140
  204. package/src/Search/Advanced/SaveHistory.vue +0 -108
  205. package/src/Search/Advanced/index.vue +0 -435
  206. package/src/Search/Item.vue +0 -525
  207. package/src/Search/Search.vue +0 -398
  208. package/src/Search/hooks/index.ts +0 -1
  209. package/src/Search/hooks/useSearchItems.ts +0 -68
  210. package/src/Search/index.md +0 -57
  211. package/src/Search/index.ts +0 -5
  212. package/src/Search/setting.ts +0 -55
  213. package/src/Search/typing.ts +0 -76
  214. package/src/Search/util.ts +0 -263
  215. package/src/ValueItem/ValueItem.vue +0 -192
  216. package/src/ValueItem/index.ts +0 -3
  217. package/src/ValueItem/util.ts +0 -16
  218. package/src/style/index.ts +0 -3
  219. /package/{src → es}/ProLayout/Basic/BasicLayout.less +0 -0
  220. /package/{src → es}/ProLayout/Basic/Header.less +0 -0
  221. /package/{src → es}/ProLayout/PageContainer/index.less +0 -0
  222. /package/{src → es}/ProLayout/SiderMenu/index.less +0 -0
  223. /package/{src → es}/ProLayout/TopHeader/index.less +0 -0
  224. /package/{src → es}/ProLayout/style/style.less +0 -0
  225. /package/{src → es}/ProTable/style/index.less +0 -0
@@ -1,395 +0,0 @@
1
- import type {
2
- BreadcrumbRender,
3
- FormatMessage,
4
- HeaderContentRender,
5
- WithFalse,
6
- HeaderRender,
7
- RightContentRender,
8
- CollapsedButtonRender,
9
- MenuExtraRender,
10
- SubMenuItemRender,
11
- MenuContentRender,
12
- MenuItemRender,
13
- MenuHeaderRender,
14
- } from '../typings';
15
- import SiderMenu, { siderMenuProps } from '../SiderMenu/SiderMenu';
16
- import type { CSSProperties, ExtractPropTypes, PropType } from 'vue';
17
- import {
18
- computed,
19
- defineComponent,
20
- provide,
21
- reactive,
22
- watchEffect,
23
- toRefs,
24
- h
25
- } from 'vue';
26
- import { defaultSettingProps } from '../defaultSettings';
27
- import { baseHeaderProps } from '../TopHeader';
28
- import Header, { headerViewProps } from './Header';
29
- import type { VueNode } from 'ant-design-vue/es/_util/type';
30
- import useConfigInject from 'ant-design-vue/es/_util/hooks/useConfigInject';
31
- import type { BreadcrumbProps, RouteContextProps } from '../RouteContext';
32
- import { pick } from 'lodash-es';
33
- import { defaultRouteContext, routeContextInjectKey } from '../RouteContext';
34
- import { getMenuFirstChildren, getSlot } from '../util';
35
- import { Layout, LayoutContent } from 'ant-design-vue';
36
-
37
- export const basicLayoutProps = {
38
- ...defaultSettingProps,
39
- ...siderMenuProps,
40
- ...baseHeaderProps,
41
- ...headerViewProps,
42
-
43
- pure: Boolean,
44
- loading: Boolean,
45
- locale: {
46
- type: [Function, Boolean] as PropType<WithFalse<FormatMessage>>,
47
- default() {
48
- return (s: string) => s;
49
- },
50
- },
51
- /**
52
- * 是否禁用移动端模式,有的管理系统不需要移动端模式,此属性设置为true即可
53
- */
54
- disableMobile: {
55
- type: Boolean,
56
- required: false,
57
- },
58
- isChildrenLayout: {
59
- type: Boolean,
60
- required: false,
61
- },
62
- /**
63
- * 兼用 content 的 margin
64
- */
65
- disableContentMargin: {
66
- type: Boolean,
67
- required: false,
68
- },
69
- colSize: {
70
- type: Number,
71
- required: false,
72
- },
73
- contentStyle: {
74
- type: [String, Object] as PropType<CSSProperties>,
75
- default: () => {
76
- return null;
77
- },
78
- },
79
- breadcrumb: {
80
- type: [Object, Function] as PropType<BreadcrumbProps>,
81
- default: () => null,
82
- },
83
- collapsedButtonRender: {
84
- type: [Function, Object, Boolean] as PropType<
85
- WithFalse<(collapsed?: boolean) => VueNode>
86
- >,
87
- default: () => undefined,
88
- },
89
- breadcrumbRender: {
90
- type: [Object, Function, Boolean] as PropType<BreadcrumbRender>,
91
- default() {
92
- return null;
93
- },
94
- },
95
- headerContentRender: {
96
- type: [Function, Object, Boolean] as PropType<HeaderContentRender>,
97
- default: () => undefined,
98
- },
99
- headerRender: {
100
- type: [Object, Function, Boolean] as PropType<HeaderRender>,
101
- default: () => undefined,
102
- },
103
- };
104
-
105
- export type BasicLayoutProps = Partial<
106
- ExtractPropTypes<typeof basicLayoutProps>
107
- >;
108
-
109
- export default defineComponent({
110
- name: 'JProLayout',
111
- inheritAttrs: false,
112
- props: basicLayoutProps,
113
- emits: [
114
- 'update:collapsed',
115
- 'update:open-keys',
116
- 'update:selected-keys',
117
- 'collapse',
118
- 'openKeys',
119
- 'select',
120
- 'menuHeaderClick',
121
- 'menuClick',
122
- 'backClick',
123
- ],
124
- setup(props, { emit, attrs, slots }) {
125
- const { prefixCls } = useConfigInject('layout', {});
126
- const isTop = computed(() => props.layout === 'top');
127
- const hasSide = computed(
128
- () => props.layout === 'mix' || props.layout === 'side' || false,
129
- );
130
- const hasSplitMenu = computed(
131
- () => props.layout === 'mix' && props.splitMenus,
132
- );
133
- const hasFlatMenu = computed(() => {
134
- return hasSide.value && hasSplitMenu.value;
135
- });
136
- const siderWidth = computed(() =>
137
- props.collapsed ? props.collapsedWidth : props.siderWidth,
138
- );
139
-
140
- const onCollapse = (collapsed: boolean) => {
141
- emit('update:collapsed', collapsed);
142
- emit('collapse', collapsed);
143
- };
144
- const onOpenKeys = (openKeys: string[] | false) => {
145
- emit('update:open-keys', openKeys);
146
- emit('openKeys', openKeys);
147
- };
148
- const onSelect = (selectedKeys: string[] | false) => {
149
- emit('update:selected-keys', selectedKeys);
150
- emit('select', selectedKeys);
151
- };
152
- const onMenuHeaderClick = (e: MouseEvent) => {
153
- emit('menuHeaderClick', e);
154
- };
155
- const onMenuClick = (args: any) => {
156
- emit('menuClick', args);
157
- };
158
- const onBack = (args: any) => {
159
- emit('backClick', args);
160
- };
161
-
162
- const baseClassName = computed(() => `${props.prefixCls}-basicLayout`);
163
-
164
- const className = computed(() => {
165
- return {
166
- [baseClassName.value]: true,
167
- [`${baseClassName.value}-top-menu`]: isTop.value,
168
- [`${baseClassName.value}-is-children`]: props.isChildrenLayout,
169
- [`${baseClassName.value}-fix-siderbar`]: props.fixSiderbar,
170
- [`${baseClassName.value}-${props.layout}`]: props.layout,
171
- };
172
- });
173
-
174
- const genLayoutStyle = reactive<CSSProperties>({
175
- position: 'relative',
176
- });
177
-
178
- watchEffect(() => {
179
- if (
180
- props.isChildrenLayout ||
181
- (props.contentStyle && props.contentStyle.minHeight)
182
- ) {
183
- genLayoutStyle.minHeight = 0;
184
- }
185
- });
186
-
187
- const headerRender = (
188
- p: BasicLayoutProps & {
189
- hasSiderMenu: boolean;
190
- headerRender: HeaderRender;
191
- rightContentRender: RightContentRender;
192
- },
193
- matchMenuKeys?: string[],
194
- ): VueNode | null => {
195
- if (p.headerRender === false || p.pure) {
196
- return null;
197
- }
198
- return h(Header, { ...p, matchMenuKeys: matchMenuKeys || []})
199
-
200
- // <Header {...p} matchMenuKeys={matchMenuKeys || []} />;
201
- };
202
-
203
- const breadcrumb = computed<BreadcrumbProps>(() => ({
204
- ...props.breadcrumb,
205
- itemRender: getSlot<BreadcrumbRender>(
206
- slots,
207
- props,
208
- 'breadcrumbRender',
209
- ) as BreadcrumbRender,
210
- }));
211
-
212
- const flatMenuData = computed(
213
- () =>
214
- (hasFlatMenu.value &&
215
- props.selectedKeys &&
216
- getMenuFirstChildren(
217
- props.menuData,
218
- props.selectedKeys[0],
219
- )) ||
220
- [],
221
- );
222
-
223
- const routeContext = reactive<RouteContextProps>({
224
- ...defaultRouteContext,
225
- ...(pick(toRefs(props), [
226
- 'pure',
227
- 'locale',
228
- 'menuData',
229
- 'openKeys',
230
- 'selectedKeys',
231
- 'contentWidth',
232
- 'disableMobile',
233
- 'fixSiderbar',
234
- 'fixedHeader',
235
- 'headerHeight',
236
- ]) as any),
237
- siderWidth,
238
- breadcrumb,
239
- flatMenuData,
240
- hasSide,
241
- back: onBack,
242
- hasHeader: true,
243
- flatMenu: hasFlatMenu,
244
- });
245
- provide(routeContextInjectKey, routeContext);
246
-
247
- return () => {
248
- const {
249
- pure,
250
- onCollapse: propsOnCollapse,
251
- onOpenKeys: propsOnOpenKeys,
252
- onSelect: propsOnSelect,
253
- onMenuClick: propsOnMenuClick,
254
- ...restProps
255
- } = props;
256
-
257
- const collapsedButtonRender = getSlot<CollapsedButtonRender>(
258
- slots,
259
- props,
260
- 'collapsedButtonRender',
261
- );
262
- const headerContentRender = getSlot<HeaderContentRender>(
263
- slots,
264
- props,
265
- 'headerContentRender',
266
- );
267
- const rightContentRender = getSlot<RightContentRender>(
268
- slots,
269
- props,
270
- 'rightContentRender',
271
- );
272
- const customHeaderRender = getSlot<HeaderRender>(
273
- slots,
274
- props,
275
- 'headerRender',
276
- );
277
-
278
- // menu
279
- const menuHeaderRender = getSlot<MenuHeaderRender>(
280
- slots,
281
- props,
282
- 'menuHeaderRender',
283
- );
284
- const menuExtraRender = getSlot<MenuExtraRender>(
285
- slots,
286
- props,
287
- 'menuExtraRender',
288
- );
289
- const menuContentRender = getSlot<MenuContentRender>(
290
- slots,
291
- props,
292
- 'menuContentRender',
293
- );
294
- const menuItemRender = getSlot<MenuItemRender>(
295
- slots,
296
- props,
297
- 'menuItemRender',
298
- );
299
- const subMenuItemRender = getSlot<SubMenuItemRender>(
300
- slots,
301
- props,
302
- 'subMenuItemRender',
303
- );
304
-
305
- const headerDom = computed(() =>
306
- headerRender(
307
- {
308
- ...props,
309
- menuItemRender,
310
- subMenuItemRender,
311
- hasSiderMenu: !isTop.value,
312
- menuData: props.menuData,
313
- onCollapse,
314
- onOpenKeys,
315
- onSelect,
316
- onMenuHeaderClick,
317
- rightContentRender,
318
- collapsedButtonRender,
319
- headerTitleRender: menuHeaderRender,
320
- menuExtraRender,
321
- menuContentRender,
322
- headerContentRender,
323
- headerRender: customHeaderRender,
324
- theme: (props.theme || 'dark')
325
- .toLocaleLowerCase()
326
- .includes('dark')
327
- ? 'dark'
328
- : 'light',
329
- },
330
- props.matchMenuKeys,
331
- ),
332
- );
333
- routeContext.hasHeader = !!headerDom.value;
334
-
335
- const contentClassName = computed(() => {
336
- return {
337
- [`${baseClassName.value}-content`]: true,
338
- [`${baseClassName.value}-has-header`]: headerDom,
339
- [`${baseClassName.value}-content-disable-margin`]:
340
- props.disableContentMargin,
341
- };
342
- });
343
-
344
- return (
345
- <>
346
- {pure ? (
347
- slots.default?.()
348
- ) : (
349
- <div class={className.value}>
350
- <Layout
351
- style={{
352
- minHeight: '100vh',
353
- ...((attrs.style as CSSProperties) || {}),
354
- }}
355
- >
356
- {headerDom.value}
357
- <Layout
358
- style={genLayoutStyle}
359
- class={prefixCls.value}
360
- >
361
- {!isTop.value && (
362
- <SiderMenu
363
- {...restProps}
364
- menuHeaderRender={menuHeaderRender}
365
- menuExtraRender={menuExtraRender}
366
- menuContentRender={
367
- menuContentRender
368
- }
369
- menuItemRender={menuItemRender}
370
- subMenuItemRender={
371
- subMenuItemRender
372
- }
373
- collapsedButtonRender={
374
- collapsedButtonRender
375
- }
376
- onCollapse={onCollapse}
377
- onSelect={onSelect}
378
- onOpenKeys={onOpenKeys}
379
- onMenuClick={onMenuClick}
380
- />
381
- )}
382
- <Layout>
383
- <LayoutContent>
384
- {slots.default?.()}
385
- </LayoutContent>
386
- </Layout>
387
- </Layout>
388
- </Layout>
389
- </div>
390
- )}
391
- </>
392
- );
393
- };
394
- },
395
- });
@@ -1,115 +0,0 @@
1
- import { baseHeaderProps, TopNavHeader } from '../TopHeader';
2
- import type { BaseHeaderPropsType } from '../TopHeader';
3
- import PropTypes from 'ant-design-vue/es/_util/vue-types';
4
- import type { VueNode } from 'ant-design-vue/es/_util/type';
5
- import type { ExtractPropTypes, PropType } from 'vue';
6
- import { defineComponent, computed, toRefs } from 'vue';
7
- import type { WithFalse } from '../typings';
8
- import { useRouteContext } from '../RouteContext';
9
- import { Layout } from 'ant-design-vue';
10
-
11
- export const headerViewProps = {
12
- ...baseHeaderProps,
13
- headerRender: {
14
- type: [Object, Function, Boolean] as PropType<
15
- WithFalse<(props: any, defaultDom: VueNode) => VueNode>
16
- >,
17
- default: () => undefined,
18
- },
19
- headerTitleRender: {
20
- type: [Object, Function, Boolean] as PropType<
21
- WithFalse<(props: any, defaultDom: VueNode) => VueNode>
22
- >,
23
- default: () => undefined,
24
- },
25
- headerContentRender: {
26
- type: [Object, Function, Boolean] as PropType<
27
- WithFalse<(props: any) => VueNode>
28
- >,
29
- default: () => undefined,
30
- },
31
- hasSiderMenu: PropTypes.looseBool,
32
- siderWidth: PropTypes.number.def(208),
33
- };
34
-
35
- export type HeaderViewProps = Partial<
36
- ExtractPropTypes<typeof headerViewProps> & BaseHeaderPropsType
37
- >;
38
-
39
- export default defineComponent({
40
- name: 'HeaderView',
41
- inheritAttrs: false,
42
- props: headerViewProps,
43
- setup(props) {
44
- const {
45
- prefixCls,
46
- fixedHeader,
47
- hasSiderMenu,
48
- headerHeight,
49
- layout,
50
- theme,
51
- onCollapse,
52
- } = toRefs(props);
53
- const context = useRouteContext();
54
- const needFixedHeader = computed(
55
- () => fixedHeader.value || context.fixedHeader,
56
- );
57
- const isMix = computed(() => layout.value === 'mix');
58
- const isTop = computed(() => layout.value === 'top');
59
- const needSettingWidth = computed(
60
- () => needFixedHeader.value && hasSiderMenu.value && !isTop.value,
61
- );
62
-
63
- const className = computed(() => {
64
- return {
65
- [`${prefixCls.value}-fixed-header`]: needFixedHeader.value,
66
- [`${prefixCls.value}-top-menu`]: isTop.value,
67
- };
68
- });
69
-
70
- const renderContent = () => {
71
- const defaultDom = (
72
- <TopNavHeader
73
- theme={theme.value}
74
- mode="horizontal"
75
- {...props}
76
- onCollapse={onCollapse.value}
77
- menuData={context.menuData}
78
- />
79
- );
80
- if (props.headerRender) {
81
- return props.headerRender(props, defaultDom);
82
- }
83
- return defaultDom;
84
- };
85
-
86
- const right = computed(() => (needFixedHeader.value ? 0 : undefined));
87
-
88
- return () => (
89
- <>
90
- {needFixedHeader.value && (
91
- <Layout.Header
92
- style={{
93
- height: `${headerHeight.value}px`,
94
- lineHeight: `${headerHeight.value}px`,
95
- background: 'transparent',
96
- }}
97
- />
98
- )}
99
- <Layout.Header
100
- style={{
101
- padding: 0,
102
- height: `${headerHeight.value}px`,
103
- lineHeight: `${headerHeight.value}px`,
104
- width: '100%',
105
- zIndex: 100,
106
- right: right.value,
107
- }}
108
- class={className.value}
109
- >
110
- {renderContent()}
111
- </Layout.Header>
112
- </>
113
- );
114
- },
115
- });