@meethive/components 0.0.1

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 (303) hide show
  1. package/es/AutoComplete/AutoComplete.js +84 -0
  2. package/es/AutoComplete/index.js +7 -0
  3. package/es/BadgeStatus/Badge.js +51 -0
  4. package/es/BadgeStatus/color.js +14 -0
  5. package/es/BadgeStatus/index.js +8 -0
  6. package/es/CardSelect/CardSelect.js +141 -0
  7. package/es/CardSelect/index.js +7 -0
  8. package/es/CardSelect/style/index.js +29 -0
  9. package/es/CheckButton/CheckButton.js +122 -0
  10. package/es/CheckButton/index.js +7 -0
  11. package/es/CheckButton/style/index.js +44 -0
  12. package/es/ConfigProvider/ConfigProvider.js +73 -0
  13. package/es/ConfigProvider/context.js +26 -0
  14. package/es/ConfigProvider/index.js +9 -0
  15. package/es/DragModal/DragModal.js +212 -0
  16. package/es/DragModal/index.js +7 -0
  17. package/es/DragModal/style/index.js +86 -0
  18. package/es/EditTable/Body.js +189 -0
  19. package/es/EditTable/CellRender.js +12 -0
  20. package/es/EditTable/EditTable.js +434 -0
  21. package/es/EditTable/FormItem.js +169 -0
  22. package/es/EditTable/Group.js +204 -0
  23. package/es/EditTable/Header.js +63 -0
  24. package/es/EditTable/HeaderRender.js +12 -0
  25. package/es/EditTable/components/ContextMenu/Menu.js +86 -0
  26. package/es/EditTable/components/ContextMenu/index.js +96 -0
  27. package/es/EditTable/components/Search/Search.js +163 -0
  28. package/es/EditTable/components/Search/Sort.js +119 -0
  29. package/es/EditTable/components/Search/index.js +2 -0
  30. package/es/EditTable/consts.js +13 -0
  31. package/es/EditTable/context.js +88 -0
  32. package/es/EditTable/hooks/index.js +19 -0
  33. package/es/EditTable/hooks/useGroup.js +48 -0
  34. package/es/EditTable/hooks/useResizeObserver.js +27 -0
  35. package/es/EditTable/hooks/useValidate.js +112 -0
  36. package/es/EditTable/index.js +25 -0
  37. package/es/EditTable/props.js +60 -0
  38. package/es/EditTable/style/body.js +63 -0
  39. package/es/EditTable/style/form.js +33 -0
  40. package/es/EditTable/style/group.js +33 -0
  41. package/es/EditTable/style/header.js +72 -0
  42. package/es/EditTable/style/index.js +52 -0
  43. package/es/EditTable/style/menu.js +27 -0
  44. package/es/EditTable/style/table.js +46 -0
  45. package/es/EditTable/utils.js +110 -0
  46. package/es/Ellipsis/Ellipsis.js +148 -0
  47. package/es/Ellipsis/index.js +7 -0
  48. package/es/Ellipsis/style/index.js +26 -0
  49. package/es/Empty/Empty.js +63 -0
  50. package/es/Empty/image.js +3 -0
  51. package/es/Empty/index.js +7 -0
  52. package/es/FullPage/FullPage.js +19 -0
  53. package/es/FullPage/index.js +7 -0
  54. package/es/Icon/Icon.js +49 -0
  55. package/es/Icon/index.js +7 -0
  56. package/es/LocaleProvider/LocaleProvider.js +31 -0
  57. package/es/LocaleProvider/index.js +7 -0
  58. package/es/LocaleReciver/index.js +24 -0
  59. package/es/Markdown/Markdown.js +118 -0
  60. package/es/Markdown/index.js +7 -0
  61. package/es/PermissionButton/PermissionButton.js +118 -0
  62. package/es/PermissionButton/confirm.js +94 -0
  63. package/es/PermissionButton/index.js +9 -0
  64. package/es/PermissionButton/shared.js +1 -0
  65. package/es/ProLayout/Basic/BasicLayout.js +422 -0
  66. package/es/ProLayout/Basic/BasicLayoutStyle.js +51 -0
  67. package/es/ProLayout/Basic/Header.js +111 -0
  68. package/es/ProLayout/Basic/HeaderStyle.js +10 -0
  69. package/es/ProLayout/PageContainer/index.js +354 -0
  70. package/es/ProLayout/PageContainer/style.js +85 -0
  71. package/es/ProLayout/RouteContext.js +28 -0
  72. package/es/ProLayout/SiderMenu/BaseMenu.js +241 -0
  73. package/es/ProLayout/SiderMenu/SiderMenu.js +274 -0
  74. package/es/ProLayout/SiderMenu/index.js +2 -0
  75. package/es/ProLayout/SiderMenu/style.js +204 -0
  76. package/es/ProLayout/TopHeader/index.js +170 -0
  77. package/es/ProLayout/TopHeader/style.js +154 -0
  78. package/es/ProLayout/defaultSettings.js +113 -0
  79. package/es/ProLayout/index.js +10 -0
  80. package/es/ProLayout/style/index.js +14 -0
  81. package/es/ProLayout/util.js +58 -0
  82. package/es/ProTable/Alert.js +40 -0
  83. package/es/ProTable/Content.js +97 -0
  84. package/es/ProTable/Header.js +33 -0
  85. package/es/ProTable/Pagination.js +55 -0
  86. package/es/ProTable/ProTable.js +279 -0
  87. package/es/ProTable/hooks/index.js +2 -0
  88. package/es/ProTable/hooks/useTableInject.js +6 -0
  89. package/es/ProTable/hooks/useTableSelection.js +115 -0
  90. package/es/ProTable/index.js +8 -0
  91. package/es/ProTable/setting.js +138 -0
  92. package/es/ProTable/style/index.js +113 -0
  93. package/es/RadioButton/RadioButton.js +53 -0
  94. package/es/RadioButton/index.js +8 -0
  95. package/es/RadioButton/style/index.js +25 -0
  96. package/es/Scrollbar/Bar.js +76 -0
  97. package/es/Scrollbar/Scrollbar.js +161 -0
  98. package/es/Scrollbar/Thumb.js +150 -0
  99. package/es/Scrollbar/constants.js +1 -0
  100. package/es/Scrollbar/index.js +7 -0
  101. package/es/Scrollbar/scrollbarProps.js +100 -0
  102. package/es/Scrollbar/style/index.js +85 -0
  103. package/es/Scrollbar/thumbProps.js +10 -0
  104. package/es/Scrollbar/util.js +39 -0
  105. package/es/Search/Item.js +239 -0
  106. package/es/Search/Search.js +90 -0
  107. package/es/Search/hooks/index.js +117 -0
  108. package/es/Search/hooks/useRouteQuery.js +86 -0
  109. package/es/Search/hooks/useSearchItems.js +50 -0
  110. package/es/Search/hooks/useTermOptions.js +29 -0
  111. package/es/Search/index.js +10 -0
  112. package/es/Search/setting.js +245 -0
  113. package/es/Search/style/index.js +5 -0
  114. package/es/Search/style/item.js +40 -0
  115. package/es/Search/style/search.js +177 -0
  116. package/es/Search/util.js +270 -0
  117. package/es/Skeleton/Skeleton.js +27 -0
  118. package/es/Skeleton/components/DashBoardCard.js +27 -0
  119. package/es/Skeleton/components/DashBoardChart.js +27 -0
  120. package/es/Skeleton/components/Detail.js +27 -0
  121. package/es/Skeleton/components/Drawer.js +27 -0
  122. package/es/Skeleton/components/Item.js +54 -0
  123. package/es/Skeleton/components/List.js +27 -0
  124. package/es/Skeleton/components/ListCard.js +28 -0
  125. package/es/Skeleton/components/ListCardItem.js +20 -0
  126. package/es/Skeleton/components/ListTable.js +27 -0
  127. package/es/Skeleton/components/Page.js +26 -0
  128. package/es/Skeleton/components/Search.js +16 -0
  129. package/es/Skeleton/components/Tree.js +27 -0
  130. package/es/Skeleton/index.js +28 -0
  131. package/es/Skeleton/style/index.js +195 -0
  132. package/es/TimeFormat/TimeFormat.js +36 -0
  133. package/es/TimeFormat/index.js +7 -0
  134. package/es/Title/Title.js +26 -0
  135. package/es/Title/index.js +7 -0
  136. package/es/Title/style/index.js +34 -0
  137. package/es/ValueItem/ValueItem.js +113 -0
  138. package/es/ValueItem/index.js +7 -0
  139. package/es/ValueItem/util.js +17 -0
  140. package/es/VirtualTable/VirtualTable.js +271 -0
  141. package/es/VirtualTable/data.js +60 -0
  142. package/es/VirtualTable/index.js +7 -0
  143. package/es/VirtualTable/style/index.js +34 -0
  144. package/es/components.js +21 -0
  145. package/es/index.js +17 -0
  146. package/es/locale/en-US.js +120 -0
  147. package/es/locale/zh-CN.js +120 -0
  148. package/es/style/styleRegister.js +19 -0
  149. package/es/style/variable.js +4 -0
  150. package/es/style.js +1 -0
  151. package/es/utils/constants.js +10 -0
  152. package/lib/AutoComplete/AutoComplete.js +84 -0
  153. package/lib/AutoComplete/index.js +7 -0
  154. package/lib/BadgeStatus/Badge.js +51 -0
  155. package/lib/BadgeStatus/color.js +14 -0
  156. package/lib/BadgeStatus/index.js +8 -0
  157. package/lib/CardSelect/CardSelect.js +141 -0
  158. package/lib/CardSelect/index.js +7 -0
  159. package/lib/CardSelect/style/index.js +29 -0
  160. package/lib/CheckButton/CheckButton.js +122 -0
  161. package/lib/CheckButton/index.js +7 -0
  162. package/lib/CheckButton/style/index.js +44 -0
  163. package/lib/ConfigProvider/ConfigProvider.js +73 -0
  164. package/lib/ConfigProvider/context.js +26 -0
  165. package/lib/ConfigProvider/index.js +9 -0
  166. package/lib/DragModal/DragModal.js +212 -0
  167. package/lib/DragModal/index.js +7 -0
  168. package/lib/DragModal/style/index.js +86 -0
  169. package/lib/EditTable/Body.js +189 -0
  170. package/lib/EditTable/CellRender.js +12 -0
  171. package/lib/EditTable/EditTable.js +434 -0
  172. package/lib/EditTable/FormItem.js +169 -0
  173. package/lib/EditTable/Group.js +204 -0
  174. package/lib/EditTable/Header.js +63 -0
  175. package/lib/EditTable/HeaderRender.js +12 -0
  176. package/lib/EditTable/components/ContextMenu/Menu.js +86 -0
  177. package/lib/EditTable/components/ContextMenu/index.js +96 -0
  178. package/lib/EditTable/components/Search/Search.js +163 -0
  179. package/lib/EditTable/components/Search/Sort.js +119 -0
  180. package/lib/EditTable/components/Search/index.js +2 -0
  181. package/lib/EditTable/consts.js +13 -0
  182. package/lib/EditTable/context.js +88 -0
  183. package/lib/EditTable/hooks/index.js +19 -0
  184. package/lib/EditTable/hooks/useGroup.js +48 -0
  185. package/lib/EditTable/hooks/useResizeObserver.js +27 -0
  186. package/lib/EditTable/hooks/useValidate.js +112 -0
  187. package/lib/EditTable/index.js +25 -0
  188. package/lib/EditTable/props.js +60 -0
  189. package/lib/EditTable/style/body.js +63 -0
  190. package/lib/EditTable/style/form.js +33 -0
  191. package/lib/EditTable/style/group.js +33 -0
  192. package/lib/EditTable/style/header.js +72 -0
  193. package/lib/EditTable/style/index.js +52 -0
  194. package/lib/EditTable/style/menu.js +27 -0
  195. package/lib/EditTable/style/table.js +46 -0
  196. package/lib/EditTable/utils.js +110 -0
  197. package/lib/Ellipsis/Ellipsis.js +148 -0
  198. package/lib/Ellipsis/index.js +7 -0
  199. package/lib/Ellipsis/style/index.js +26 -0
  200. package/lib/Empty/Empty.js +63 -0
  201. package/lib/Empty/image.js +3 -0
  202. package/lib/Empty/index.js +7 -0
  203. package/lib/FullPage/FullPage.js +19 -0
  204. package/lib/FullPage/index.js +7 -0
  205. package/lib/Icon/Icon.js +49 -0
  206. package/lib/Icon/index.js +7 -0
  207. package/lib/LocaleProvider/LocaleProvider.js +31 -0
  208. package/lib/LocaleProvider/index.js +7 -0
  209. package/lib/LocaleReciver/index.js +24 -0
  210. package/lib/Markdown/Markdown.js +118 -0
  211. package/lib/Markdown/index.js +7 -0
  212. package/lib/PermissionButton/PermissionButton.js +118 -0
  213. package/lib/PermissionButton/confirm.js +94 -0
  214. package/lib/PermissionButton/index.js +9 -0
  215. package/lib/PermissionButton/shared.js +1 -0
  216. package/lib/ProLayout/Basic/BasicLayout.js +422 -0
  217. package/lib/ProLayout/Basic/BasicLayoutStyle.js +51 -0
  218. package/lib/ProLayout/Basic/Header.js +111 -0
  219. package/lib/ProLayout/Basic/HeaderStyle.js +10 -0
  220. package/lib/ProLayout/PageContainer/index.js +354 -0
  221. package/lib/ProLayout/PageContainer/style.js +85 -0
  222. package/lib/ProLayout/RouteContext.js +28 -0
  223. package/lib/ProLayout/SiderMenu/BaseMenu.js +241 -0
  224. package/lib/ProLayout/SiderMenu/SiderMenu.js +274 -0
  225. package/lib/ProLayout/SiderMenu/index.js +2 -0
  226. package/lib/ProLayout/SiderMenu/style.js +204 -0
  227. package/lib/ProLayout/TopHeader/index.js +170 -0
  228. package/lib/ProLayout/TopHeader/style.js +154 -0
  229. package/lib/ProLayout/defaultSettings.js +113 -0
  230. package/lib/ProLayout/index.js +10 -0
  231. package/lib/ProLayout/style/index.js +14 -0
  232. package/lib/ProLayout/util.js +58 -0
  233. package/lib/ProTable/Alert.js +40 -0
  234. package/lib/ProTable/Content.js +97 -0
  235. package/lib/ProTable/Header.js +33 -0
  236. package/lib/ProTable/Pagination.js +55 -0
  237. package/lib/ProTable/ProTable.js +279 -0
  238. package/lib/ProTable/hooks/index.js +2 -0
  239. package/lib/ProTable/hooks/useTableInject.js +6 -0
  240. package/lib/ProTable/hooks/useTableSelection.js +115 -0
  241. package/lib/ProTable/index.js +8 -0
  242. package/lib/ProTable/setting.js +138 -0
  243. package/lib/ProTable/style/index.js +113 -0
  244. package/lib/RadioButton/RadioButton.js +53 -0
  245. package/lib/RadioButton/index.js +8 -0
  246. package/lib/RadioButton/style/index.js +25 -0
  247. package/lib/Scrollbar/Bar.js +76 -0
  248. package/lib/Scrollbar/Scrollbar.js +161 -0
  249. package/lib/Scrollbar/Thumb.js +150 -0
  250. package/lib/Scrollbar/constants.js +1 -0
  251. package/lib/Scrollbar/index.js +7 -0
  252. package/lib/Scrollbar/scrollbarProps.js +100 -0
  253. package/lib/Scrollbar/style/index.js +85 -0
  254. package/lib/Scrollbar/thumbProps.js +10 -0
  255. package/lib/Scrollbar/util.js +39 -0
  256. package/lib/Search/Item.js +239 -0
  257. package/lib/Search/Search.js +90 -0
  258. package/lib/Search/hooks/index.js +117 -0
  259. package/lib/Search/hooks/useRouteQuery.js +86 -0
  260. package/lib/Search/hooks/useSearchItems.js +50 -0
  261. package/lib/Search/hooks/useTermOptions.js +29 -0
  262. package/lib/Search/index.js +10 -0
  263. package/lib/Search/setting.js +245 -0
  264. package/lib/Search/style/index.js +5 -0
  265. package/lib/Search/style/item.js +40 -0
  266. package/lib/Search/style/search.js +177 -0
  267. package/lib/Search/util.js +270 -0
  268. package/lib/Skeleton/Skeleton.js +27 -0
  269. package/lib/Skeleton/components/DashBoardCard.js +27 -0
  270. package/lib/Skeleton/components/DashBoardChart.js +27 -0
  271. package/lib/Skeleton/components/Detail.js +27 -0
  272. package/lib/Skeleton/components/Drawer.js +27 -0
  273. package/lib/Skeleton/components/Item.js +54 -0
  274. package/lib/Skeleton/components/List.js +27 -0
  275. package/lib/Skeleton/components/ListCard.js +28 -0
  276. package/lib/Skeleton/components/ListCardItem.js +20 -0
  277. package/lib/Skeleton/components/ListTable.js +27 -0
  278. package/lib/Skeleton/components/Page.js +26 -0
  279. package/lib/Skeleton/components/Search.js +16 -0
  280. package/lib/Skeleton/components/Tree.js +27 -0
  281. package/lib/Skeleton/index.js +28 -0
  282. package/lib/Skeleton/style/index.js +195 -0
  283. package/lib/TimeFormat/TimeFormat.js +36 -0
  284. package/lib/TimeFormat/index.js +7 -0
  285. package/lib/Title/Title.js +26 -0
  286. package/lib/Title/index.js +7 -0
  287. package/lib/Title/style/index.js +34 -0
  288. package/lib/ValueItem/ValueItem.js +113 -0
  289. package/lib/ValueItem/index.js +7 -0
  290. package/lib/ValueItem/util.js +17 -0
  291. package/lib/VirtualTable/VirtualTable.js +271 -0
  292. package/lib/VirtualTable/data.js +60 -0
  293. package/lib/VirtualTable/index.js +7 -0
  294. package/lib/VirtualTable/style/index.js +34 -0
  295. package/lib/components.js +21 -0
  296. package/lib/index.js +17 -0
  297. package/lib/locale/en-US.js +120 -0
  298. package/lib/locale/zh-CN.js +120 -0
  299. package/lib/style/styleRegister.js +19 -0
  300. package/lib/style/variable.js +4 -0
  301. package/lib/style.js +1 -0
  302. package/lib/utils/constants.js +10 -0
  303. package/package.json +164 -0
@@ -0,0 +1,422 @@
1
+ function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
+ import { defineComponent, computed, reactive, watchEffect, toRefs, provide, h, Fragment } from 'vue'
3
+ import { pick } from 'lodash-es'
4
+ import { Layout, LayoutContent, Breadcrumb, Tabs } from 'ant-design-vue'
5
+ import SiderMenu, { siderMenuProps } from '../SiderMenu/SiderMenu'
6
+ import { defaultSettingProps, LayoutType } from '../defaultSettings'
7
+ import { baseHeaderProps } from '../TopHeader'
8
+ import Header, { headerViewProps } from './Header.js'
9
+ import { defaultRouteContext, routeContextInjectKey } from '../RouteContext'
10
+ import { getMenuFirstChildren, getSlot } from '../util'
11
+ import useProLayoutStyle from '../style'
12
+
13
+ export const basicLayoutProps = {
14
+ ...defaultSettingProps,
15
+ ...siderMenuProps,
16
+ ...baseHeaderProps,
17
+ ...headerViewProps,
18
+ pure: Boolean,
19
+ loading: Boolean,
20
+ locale: {
21
+ type: [Function, Boolean],
22
+ default: () => (s) => s
23
+ },
24
+ /**
25
+ * 是否禁用移动端模式,有的管理系统不需要移动端模式,此属性设置为true即可
26
+ */
27
+ disableMobile: {
28
+ type: Boolean,
29
+ required: false
30
+ },
31
+ isChildrenLayout: {
32
+ type: Boolean,
33
+ required: false
34
+ },
35
+ /**
36
+ * 兼用 content 的 margin
37
+ */
38
+ disableContentMargin: {
39
+ type: Boolean,
40
+ required: false
41
+ },
42
+ colSize: {
43
+ type: Number,
44
+ required: false
45
+ },
46
+ contentStyle: {
47
+ type: [String, Object],
48
+ default: () => null
49
+ },
50
+ breadcrumb: {
51
+ type: [Object, Function],
52
+ default: () => null
53
+ },
54
+ collapsedButtonRender: {
55
+ type: [Function, Object, Boolean],
56
+ default: () => undefined
57
+ },
58
+ breadcrumbRender: {
59
+ type: [Object, Function, Boolean],
60
+ default: () => null
61
+ },
62
+ headerContentRender: {
63
+ type: [Function, Object, Boolean],
64
+ default: () => undefined
65
+ },
66
+ headerRender: {
67
+ type: [Object, Function, Boolean],
68
+ default: () => undefined
69
+ }
70
+ }
71
+
72
+ export default defineComponent({
73
+ name: 'JProLayout',
74
+ inheritAttrs: false,
75
+ props: basicLayoutProps ,
76
+ emits: [
77
+ 'update:collapsed',
78
+ 'update:open-keys',
79
+ 'update:selected-keys',
80
+ 'update:active-key',
81
+ 'collapse',
82
+ 'openKeys',
83
+ 'select',
84
+ 'menuHeaderClick',
85
+ 'menuClick',
86
+ 'backClick',
87
+ 'historyTabClick',
88
+ 'historyTabEdit',
89
+ 'appMenuClick'
90
+ ],
91
+ setup(props, { emit, attrs, slots }) {
92
+ const prefixCls = computed(() => 'ant-layout')
93
+
94
+ const isTop = computed(() => props.layout === 'top')
95
+ const hasSide = computed(() => props.layout === 'mix' || props.layout === 'side' || false)
96
+ const hasSplitMenu = computed(() => props.layout === 'mix' && props.splitMenus)
97
+ const hasFlatMenu = computed(() => hasSide.value && hasSplitMenu.value)
98
+
99
+ const siderWidth = computed(() => {
100
+ if (props.layoutType === LayoutType.PAD) {
101
+ return props.collapsed ? 0 : props.siderWidth
102
+ }
103
+ return props.collapsed ? props.collapsedWidth : props.siderWidth
104
+ })
105
+
106
+ const stylePrefixCls = computed(() => 'pro-layout')
107
+ const [wrapSSR, hashId] = useProLayoutStyle(stylePrefixCls)
108
+
109
+ const onCollapse = (collapsed) => {
110
+ emit('update:collapsed', collapsed)
111
+ emit('collapse', collapsed)
112
+ }
113
+
114
+ const onOpenKeys = (openKeys) => {
115
+ emit('update:open-keys', openKeys)
116
+ emit('openKeys', openKeys)
117
+ }
118
+
119
+ const onSelect = (selectedKeys) => {
120
+ emit('update:selected-keys', selectedKeys)
121
+ emit('select', selectedKeys)
122
+ }
123
+
124
+ const onMenuHeaderClick = (e) => {
125
+ emit('menuHeaderClick', e)
126
+ }
127
+
128
+ const onMenuClick = (args) => {
129
+ emit('menuClick', args)
130
+ }
131
+
132
+ const onBack = (args) => {
133
+ emit('backClick', args)
134
+ }
135
+
136
+ const onTabClick = (args) => {
137
+ emit('historyTabClick', args)
138
+ }
139
+
140
+ const onTabEdit = (args) => {
141
+ emit('historyTabEdit', args)
142
+ }
143
+
144
+ const onAppMenuClick = (args) => {
145
+ emit('appMenuClick', args)
146
+ }
147
+
148
+ const onTabChange = (key) => {
149
+ emit('update:active-key', key)
150
+ }
151
+
152
+ const baseClassName = computed(() => `${props.prefixCls}-basicLayout`)
153
+
154
+ const className = computed(() => ({
155
+ [baseClassName.value]: true,
156
+ [`${baseClassName.value}-top-menu`]: isTop.value,
157
+ [`${baseClassName.value}-is-children`]: props.isChildrenLayout,
158
+ [`${baseClassName.value}-fix-siderbar`]: props.fixSiderbar,
159
+ [`${baseClassName.value}-${props.layout}`]: props.layout,
160
+ [`${baseClassName.value}-${props.layoutType}`]: props.layoutType,
161
+ [hashId.value]: true
162
+ }))
163
+
164
+ const genLayoutStyle = reactive({
165
+ position: 'relative'
166
+ })
167
+
168
+ watchEffect(() => {
169
+ if (props.isChildrenLayout || (props.contentStyle && (props.contentStyle ).minHeight)) {
170
+ (genLayoutStyle ).minHeight = 0
171
+ }
172
+ })
173
+
174
+ const headerRender = (p, matchMenuKeys) => {
175
+ if (p.headerRender === false || p.pure) {
176
+ return null
177
+ }
178
+ return h(Header, {
179
+ ...p,
180
+ matchMenuKeys: matchMenuKeys || []
181
+ })
182
+ }
183
+
184
+ const breadcrumb = computed(() => ({
185
+ ...props.breadcrumb,
186
+ itemRender: getSlot(slots, props, 'breadcrumbRender')
187
+ }))
188
+
189
+ const flatMenuData = computed(() => {
190
+ return (hasFlatMenu.value && props.selectedKeys && getMenuFirstChildren(props.menuData, props.selectedKeys[0])) || []
191
+ })
192
+
193
+ const layoutType = computed(() => props.layoutType)
194
+
195
+ const routeContext = reactive({
196
+ ...defaultRouteContext,
197
+ ...pick(toRefs(props), [
198
+ 'pure',
199
+ 'locale',
200
+ 'menuData',
201
+ 'openKeys',
202
+ 'selectedKeys',
203
+ 'contentWidth',
204
+ 'disableMobile',
205
+ 'fixSiderbar',
206
+ 'fixedHeader',
207
+ 'headerHeight',
208
+ 'collapsedWidth',
209
+ 'headerLeftWidth'
210
+ ]),
211
+ siderWidth,
212
+ breadcrumb,
213
+ flatMenuData,
214
+ hasSide,
215
+ back: onBack,
216
+ hasHeader: true,
217
+ flatMenu: hasFlatMenu,
218
+ layoutType
219
+ })
220
+
221
+ console.log(toRefs(props))
222
+ provide(routeContextInjectKey, routeContext)
223
+
224
+ return () => {
225
+ const {
226
+ pure,
227
+ onCollapse: propsOnCollapse,
228
+ onOpenKeys: propsOnOpenKeys,
229
+ onSelect: propsOnSelect,
230
+ onMenuClick: propsOnMenuClick,
231
+ ...restProps
232
+ } = props
233
+
234
+ const collapsedButtonRender = getSlot(slots, props, 'collapsedButtonRender')
235
+ const headerContentRender = getSlot(slots, props, 'headerContentRender')
236
+ const rightContentRender = getSlot(slots, props, 'rightContentRender')
237
+ const customHeaderRender = getSlot(slots, props, 'headerRender')
238
+ // menu
239
+ const menuHeaderRender = getSlot(slots, props, 'menuHeaderRender')
240
+ const menuExtraRender = getSlot(slots, props, 'menuExtraRender')
241
+ const menuContentRender = getSlot(slots, props, 'menuContentRender')
242
+ const menuItemRender = getSlot(slots, props, 'menuItemRender')
243
+ const subMenuItemRender = getSlot(slots, props, 'subMenuItemRender')
244
+ const linksRender = getSlot(slots, props, 'linksRender')
245
+ const logoRender = getSlot(slots, props, 'logoRender')
246
+ const historyRender = getSlot(slots, props, 'historyRender')
247
+ const topHeaderMenuRender = getSlot(slots, props, 'topHeaderMenuRender')
248
+
249
+ const headerDom = computed(() => {
250
+ return headerRender(
251
+ {
252
+ ...props,
253
+ menuItemRender,
254
+ subMenuItemRender,
255
+ hasSiderMenu: !isTop.value,
256
+ menuData: props.menuData,
257
+ onCollapse,
258
+ onOpenKeys,
259
+ onSelect,
260
+ onMenuHeaderClick,
261
+ rightContentRender,
262
+ collapsedButtonRender,
263
+ headerTitleRender: menuHeaderRender,
264
+ menuExtraRender,
265
+ menuContentRender,
266
+ headerContentRender,
267
+ logo: logoRender || props.logo,
268
+ headerRender: customHeaderRender,
269
+ topHeaderMenuRender,
270
+ theme: ((props.theme || 'dark').toLocaleLowerCase().includes('dark') ? 'dark' : 'light')
271
+ },
272
+ props.matchMenuKeys
273
+ )
274
+ })
275
+
276
+ routeContext.hasHeader = !!headerDom.value
277
+
278
+ const contentClassName = computed(() => ({
279
+ [`${baseClassName.value}-content`]: true,
280
+ [`${baseClassName.value}-has-header`]: headerDom,
281
+ [`${baseClassName.value}-content-disable-margin`]: props.disableContentMargin
282
+ }))
283
+
284
+ if (pure) {
285
+ return _optionalChain([slots, 'access', _ => _.default, 'optionalCall', _2 => _2()])
286
+ }
287
+
288
+ if (props.layoutType === LayoutType.LIST) {
289
+ return (
290
+ React.createElement(Fragment, null
291
+ , React.createElement('div', { class: className.value,}
292
+ , React.createElement(Layout, { style: { minHeight: '100vh', ...(attrs.style || {}) },}
293
+ , headerDom.value
294
+ , React.createElement(Layout, { style: genLayoutStyle, class: prefixCls.value,}
295
+ , !isTop.value && (
296
+ React.createElement(SiderMenu, {
297
+ ...restProps,
298
+ logo: logoRender || restProps.logo,
299
+ menuHeaderRender: menuHeaderRender,
300
+ menuExtraRender: menuExtraRender,
301
+ menuContentRender: menuContentRender,
302
+ menuItemRender: menuItemRender,
303
+ subMenuItemRender: subMenuItemRender,
304
+ collapsedButtonRender: collapsedButtonRender,
305
+ onCollapse: onCollapse,
306
+ onSelect: onSelect,
307
+ onOpenKeys: onOpenKeys,
308
+ onMenuClick: onMenuClick,}
309
+ )
310
+ )
311
+ , React.createElement(Layout, null
312
+ , React.createElement(LayoutContent, null
313
+ , _optionalChain([slots, 'access', _3 => _3.default, 'optionalCall', _4 => _4()])
314
+ )
315
+ )
316
+ )
317
+ )
318
+ )
319
+ )
320
+ )
321
+ } else if (props.layoutType === LayoutType.PAD) {
322
+ return (
323
+ React.createElement('div', { class: className.value,}
324
+ , React.createElement(Layout, { style: { minHeight: '100vh', ...(attrs.style || {}) },}
325
+ , React.createElement(SiderMenu, {
326
+ ...restProps,
327
+ logo: logoRender || restProps.logo,
328
+ collapsedWidth: 0,
329
+ headerHeight: 0,
330
+ menuHeaderRender: menuHeaderRender,
331
+ menuExtraRender: menuExtraRender,
332
+ menuContentRender: menuContentRender,
333
+ menuItemRender: menuItemRender,
334
+ subMenuItemRender: subMenuItemRender,
335
+ collapsedButtonRender: collapsedButtonRender,
336
+ onCollapse: onCollapse,
337
+ onSelect: onSelect,
338
+ onOpenKeys: onOpenKeys,
339
+ onMenuClick: onMenuClick,}
340
+ )
341
+ , React.createElement(Layout, { style: genLayoutStyle, class: prefixCls.value,}
342
+ , headerDom.value
343
+ , React.createElement(LayoutContent, null
344
+ , _optionalChain([slots, 'access', _5 => _5.default, 'optionalCall', _6 => _6()])
345
+ )
346
+ )
347
+ )
348
+ )
349
+ )
350
+ } else {
351
+ // CARD layout
352
+ return (
353
+ React.createElement(Fragment, null
354
+ , React.createElement('div', { class: className.value,}
355
+ , React.createElement(Layout, null
356
+ , React.createElement(SiderMenu, {
357
+ ...restProps,
358
+ logo: logoRender || restProps.logo,
359
+ siderWidth: props.cardSiderWidth,
360
+ headerHeight: 0,
361
+ menuHeaderRender: menuHeaderRender,
362
+ menuExtraRender: menuExtraRender,
363
+ linksRender: linksRender,
364
+ menuContentRender: menuContentRender,
365
+ menuItemRender: menuItemRender,
366
+ subMenuItemRender: subMenuItemRender,
367
+ onCollapse: onCollapse,
368
+ onSelect: onSelect,
369
+ onOpenKeys: onOpenKeys,
370
+ onMenuClick: onMenuClick,
371
+ onAppMenuClick: onAppMenuClick,}
372
+ )
373
+ , React.createElement(Layout, null
374
+ , React.createElement(Layout.Header, {
375
+ style: {
376
+ background: 'transparent',
377
+ padding: 0,
378
+ height: '40px',
379
+ ...(props.pageHeaderStyle || {})
380
+ },}
381
+
382
+ , React.createElement(Tabs, {
383
+ 'hide-add': true,
384
+ type: "editable-card",
385
+ class: "history-tabs",
386
+ id: "history-route-tabs",
387
+ tabBarStyle: { margin: 0 },
388
+ onTabClick: onTabClick,
389
+ onEdit: onTabEdit,
390
+ activeKey: props.historyActive,
391
+ onChange: onTabChange,}
392
+
393
+ , historyRender
394
+ ? historyRender()
395
+ : props.historyRoutes.map((item) => (
396
+ React.createElement(Tabs.TabPane, {
397
+ key: item.name,
398
+ tab: item.label,
399
+ closable: true,}
400
+ )
401
+ ))
402
+ )
403
+ )
404
+ , React.createElement(LayoutContent, { style: { flex: '1 1 0', overflow: 'auto' },}
405
+ , _optionalChain([slots, 'access', _7 => _7.default, 'optionalCall', _8 => _8()])
406
+ )
407
+ , React.createElement(Layout.Footer, { style: { padding: '11px 24px', ...(props.pageFooterStyle || {}) },}
408
+ , React.createElement(Breadcrumb, { routes: breadcrumb.value.routes,}
409
+ , {
410
+ itemRender: breadcrumb.value.itemRender
411
+ }
412
+ )
413
+ )
414
+ )
415
+ )
416
+ )
417
+ )
418
+ )
419
+ }
420
+ }
421
+ }
422
+ })
@@ -0,0 +1,51 @@
1
+ export const genBasicLayoutStyle = (config) => {
2
+ const { token } = config
3
+ const basicLayoutPrefixCls = `${token.antCls}-pro-basicLayout`
4
+ const proLayoutHeaderHeight = '48px'
5
+ return {
6
+ [`${basicLayoutPrefixCls}`]: {
7
+ display: 'flex',
8
+ flexDirection: 'column',
9
+ width: '100%',
10
+ minHeight: '100%',
11
+ [`${token.antCls}-layout-header`]: {
12
+ [`&${token.antCls}-pro-fixed-header`]: {
13
+ position: 'fixed',
14
+ top: 0
15
+ }
16
+ },
17
+ [`${basicLayoutPrefixCls}-content`]: {
18
+ position: 'relative',
19
+ margin: '24px',
20
+ [`${token.antCls}-pro-page-container`]: {
21
+ margin: '-24px -24px 0'
22
+ },
23
+ [`${basicLayoutPrefixCls}-content-disable-margin`]: {
24
+ margin: 0,
25
+ [`${token.antCls}-pro-page-container`]: {
26
+ margin: 0
27
+ }
28
+ },
29
+ [`> ${token.antCls}-layout`]: {
30
+ maxHeight: '100%'
31
+ }
32
+ },
33
+ [`${basicLayoutPrefixCls}-is-children${basicLayoutPrefixCls}-fix-siderbar`]: {
34
+ height: '100vh',
35
+ overflow: 'hidden',
36
+ transform: 'rotate(0)'
37
+ },
38
+ [`${basicLayoutPrefixCls}-has-header`]: {
39
+ '.tech-page-container': {
40
+ height: `calc(100vh - ${proLayoutHeaderHeight} - ${proLayoutHeaderHeight})`
41
+ },
42
+ [`${basicLayoutPrefixCls}-is-children`]: {
43
+ minHeight: `calc(100vh - ${proLayoutHeaderHeight})`,
44
+ [`&${basicLayoutPrefixCls}-fix-siderbar`]: {
45
+ height: `calc(100vh - ${proLayoutHeaderHeight})`
46
+ }
47
+ }
48
+ }
49
+ }
50
+ }
51
+ }
@@ -0,0 +1,111 @@
1
+
2
+ import { createVNode as _createVNode, } from 'vue'
3
+ import { defineComponent, computed, toRefs, } from 'vue'
4
+ import { Layout } from 'ant-design-vue'
5
+ import PropTypes from 'ant-design-vue/es/_util/vue-types'
6
+ import { baseHeaderProps, TopNavHeader } from '../TopHeader'
7
+ import { useRouteContext } from '../RouteContext'
8
+ import { LayoutType } from '../defaultSettings'
9
+
10
+ export const headerViewProps = {
11
+ ...baseHeaderProps,
12
+ headerRender: {
13
+ type: [Object, Function, Boolean],
14
+ default: () => undefined
15
+ },
16
+ headerTitleRender: {
17
+ type: [Object, Function, Boolean],
18
+ default: () => undefined
19
+ },
20
+ headerContentRender: {
21
+ type: [Object, Function, Boolean],
22
+ default: () => undefined
23
+ },
24
+ hasSiderMenu: PropTypes.looseBool,
25
+ siderWidth: PropTypes.number.def(208)
26
+ }
27
+
28
+ export default defineComponent({
29
+ name: 'HeaderView',
30
+ inheritAttrs: false,
31
+ props: headerViewProps ,
32
+ setup(props) {
33
+ const {
34
+ prefixCls,
35
+ fixedHeader,
36
+ headerHeight,
37
+ layout,
38
+ theme,
39
+ onCollapse
40
+ } = toRefs(props)
41
+
42
+ const context = useRouteContext()
43
+
44
+ const needFixedHeader = computed(() => {
45
+ return fixedHeader.value || (context ).fixedHeader
46
+ })
47
+
48
+ const isTop = computed(() => {
49
+ return layout.value === 'top'
50
+ })
51
+
52
+ const className = computed(() => ({
53
+ [`${prefixCls.value}-fixed-header`]: needFixedHeader.value,
54
+ [`${prefixCls.value}-top-menu`]: isTop.value
55
+ }))
56
+
57
+ const renderContent = () => {
58
+ const defaultDom = _createVNode(TopNavHeader, {
59
+ theme: theme.value,
60
+ mode: 'horizontal',
61
+ ...props,
62
+ onCollapse: onCollapse.value,
63
+ menuData: (context ).menuData
64
+ }, null)
65
+ if (props.headerRender) {
66
+ return (props.headerRender )(props, defaultDom)
67
+ }
68
+ return defaultDom
69
+ }
70
+
71
+ const right = computed(() => {
72
+ return needFixedHeader.value ? 0 : undefined
73
+ })
74
+
75
+ const width = computed(() => {
76
+ if ((context ).layoutType === LayoutType.PAD) {
77
+ return (context ).siderWidth
78
+ }
79
+ return 0
80
+ })
81
+
82
+ return () => {
83
+ return (
84
+ React.createElement(React.Fragment, null
85
+ , needFixedHeader.value && (
86
+ React.createElement(Layout.Header, {
87
+ style: {
88
+ height: `${headerHeight.value}px`,
89
+ lineHeight: `${headerHeight.value}px`,
90
+ background: 'transparent'
91
+ },}
92
+ )
93
+ )
94
+ , React.createElement(Layout.Header, {
95
+ style: {
96
+ padding: 0,
97
+ height: `${headerHeight.value}px`,
98
+ lineHeight: `${headerHeight.value}px`,
99
+ width: props.hasSiderMenu ? `calc(100% - ${width.value}px)` : '100%',
100
+ zIndex: 100,
101
+ right: right.value
102
+ },
103
+ class: className.value,}
104
+
105
+ , renderContent()
106
+ )
107
+ )
108
+ )
109
+ }
110
+ }
111
+ })
@@ -0,0 +1,10 @@
1
+ export const genHeaderStyle = (config) => {
2
+ const { token } = config
3
+ const proLayoutFixedHeaderPrefixCls = `${token.antCls}-pro-fixed-header`
4
+ return {
5
+ [`${proLayoutFixedHeaderPrefixCls}`]: {
6
+ zIndex: 9,
7
+ width: '100%'
8
+ }
9
+ }
10
+ }