@gx-design-vue/create-gx-cli 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (257) hide show
  1. package/package.json +1 -1
  2. package/src/cli.js +1 -1
  3. package/src/main.js +4 -0
  4. package/template-design-pro/.editorconfig +0 -19
  5. package/template-design-pro/.env +0 -2
  6. package/template-design-pro/.env.development +0 -18
  7. package/template-design-pro/.env.pro +0 -32
  8. package/template-design-pro/.env.production +0 -32
  9. package/template-design-pro/.env.test +0 -20
  10. package/template-design-pro/.eslintignore +0 -16
  11. package/template-design-pro/.eslintrc.js +0 -64
  12. package/template-design-pro/.gitpod.yml +0 -6
  13. package/template-design-pro/.husky/pre-commit +0 -4
  14. package/template-design-pro/.prettierignore +0 -9
  15. package/template-design-pro/.stylelintignore +0 -3
  16. package/template-design-pro/.yarnclean +0 -48
  17. package/template-design-pro/LICENSE +0 -21
  18. package/template-design-pro/README.md +0 -111
  19. package/template-design-pro/build/constant.ts +0 -6
  20. package/template-design-pro/build/generate/generateModifyVars.ts +0 -18
  21. package/template-design-pro/build/getConfigFileName.ts +0 -13
  22. package/template-design-pro/build/script/buildConf.ts +0 -44
  23. package/template-design-pro/build/script/postBuild.ts +0 -25
  24. package/template-design-pro/build/script/reSetRootHtml.ts +0 -20
  25. package/template-design-pro/build/utils.ts +0 -85
  26. package/template-design-pro/build/vite/cdn.ts +0 -7
  27. package/template-design-pro/build/vite/optimizer.ts +0 -22
  28. package/template-design-pro/build/vite/plugin/autoImport.ts +0 -18
  29. package/template-design-pro/build/vite/plugin/compress.ts +0 -35
  30. package/template-design-pro/build/vite/plugin/hmr.ts +0 -25
  31. package/template-design-pro/build/vite/plugin/html.ts +0 -47
  32. package/template-design-pro/build/vite/plugin/index.ts +0 -89
  33. package/template-design-pro/build/vite/plugin/mock.ts +0 -20
  34. package/template-design-pro/build/vite/plugin/pwa.ts +0 -37
  35. package/template-design-pro/build/vite/plugin/styleImport.ts +0 -129
  36. package/template-design-pro/build/vite/plugin/visualizer.ts +0 -17
  37. package/template-design-pro/build/vite/plugin/vite-plugin-antd-theme/index.ts +0 -24
  38. package/template-design-pro/build/vite/plugin/vite-plugin-mock/createMockServer.ts +0 -303
  39. package/template-design-pro/build/vite/plugin/vite-plugin-mock/createProdMockServer.ts +0 -93
  40. package/template-design-pro/build/vite/plugin/vite-plugin-mock/index.ts +0 -68
  41. package/template-design-pro/build/vite/plugin/vite-plugin-mock/types.ts +0 -30
  42. package/template-design-pro/build/vite/plugin/vite-plugin-mock/utils.ts +0 -26
  43. package/template-design-pro/commitlint.config.js +0 -32
  44. package/template-design-pro/config/config.ts +0 -14
  45. package/template-design-pro/config/default/animate.ts +0 -30
  46. package/template-design-pro/config/default/defaultSettings.ts +0 -75
  47. package/template-design-pro/config/default/network.ts +0 -16
  48. package/template-design-pro/config/default/proxy.ts +0 -26
  49. package/template-design-pro/config/default/theme.ts +0 -43
  50. package/template-design-pro/config/default/themeColor.ts +0 -62
  51. package/template-design-pro/index.html +0 -45
  52. package/template-design-pro/jest.config.mjs +0 -36
  53. package/template-design-pro/mock/_createProductionServer.ts +0 -19
  54. package/template-design-pro/mock/_util.ts +0 -55
  55. package/template-design-pro/mock/controller/menu.ts +0 -85
  56. package/template-design-pro/mock/controller/notices.ts +0 -114
  57. package/template-design-pro/mock/system/dict.ts +0 -60
  58. package/template-design-pro/mock/system/user.ts +0 -218
  59. package/template-design-pro/package.json +0 -151
  60. package/template-design-pro/pnpm-lock.yaml +0 -9913
  61. package/template-design-pro/postcss.config.js +0 -5
  62. package/template-design-pro/prettier.config.js +0 -18
  63. package/template-design-pro/public/resource/css/index.css +0 -171
  64. package/template-design-pro/public/resource/img/favicon.ico +0 -0
  65. package/template-design-pro/public/resource/img/logo.png +0 -0
  66. package/template-design-pro/public/resource/img/pro_icon.svg +0 -5
  67. package/template-design-pro/public/resource/img/pwa-192x192.png +0 -0
  68. package/template-design-pro/public/resource/img/pwa-512x512.png +0 -0
  69. package/template-design-pro/src/App.vue +0 -47
  70. package/template-design-pro/src/assets/error_images/403.png +0 -0
  71. package/template-design-pro/src/assets/error_images/404.png +0 -0
  72. package/template-design-pro/src/assets/error_images/cloud.png +0 -0
  73. package/template-design-pro/src/assets/login_images/login_background.svg +0 -69
  74. package/template-design-pro/src/assets/logo.png +0 -0
  75. package/template-design-pro/src/assets/menu_font/iconfont.css +0 -94
  76. package/template-design-pro/src/assets/menu_font/iconfont.eot +0 -0
  77. package/template-design-pro/src/assets/menu_font/iconfont.js +0 -1
  78. package/template-design-pro/src/assets/menu_font/iconfont.json +0 -142
  79. package/template-design-pro/src/assets/menu_font/iconfont.svg +0 -57
  80. package/template-design-pro/src/assets/menu_font/iconfont.ttf +0 -0
  81. package/template-design-pro/src/assets/menu_font/iconfont.woff +0 -0
  82. package/template-design-pro/src/assets/menu_font/iconfont.woff2 +0 -0
  83. package/template-design-pro/src/assets/menu_font/index.less +0 -94
  84. package/template-design-pro/src/common/global.ts +0 -1
  85. package/template-design-pro/src/components/GDesign/ProLayout/BasicLayout.less +0 -80
  86. package/template-design-pro/src/components/GDesign/ProLayout/BasicLayout.tsx +0 -342
  87. package/template-design-pro/src/components/GDesign/ProLayout/PageLoading.tsx +0 -20
  88. package/template-design-pro/src/components/GDesign/ProLayout/RenderTypings.ts +0 -31
  89. package/template-design-pro/src/components/GDesign/ProLayout/RouteContext.tsx +0 -82
  90. package/template-design-pro/src/components/GDesign/ProLayout/WrapContent.tsx +0 -69
  91. package/template-design-pro/src/components/GDesign/ProLayout/components/GlobalFooter/index.tsx +0 -88
  92. package/template-design-pro/src/components/GDesign/ProLayout/components/GlobalHeader/DefaultHeader.tsx +0 -189
  93. package/template-design-pro/src/components/GDesign/ProLayout/components/GlobalHeader/Header.less +0 -8
  94. package/template-design-pro/src/components/GDesign/ProLayout/components/GlobalHeader/index.tsx +0 -105
  95. package/template-design-pro/src/components/GDesign/ProLayout/components/GlobalHeader/props.ts +0 -69
  96. package/template-design-pro/src/components/GDesign/ProLayout/components/GlobalHeader/style.less +0 -144
  97. package/template-design-pro/src/components/GDesign/ProLayout/components/LogoContent/index.tsx +0 -81
  98. package/template-design-pro/src/components/GDesign/ProLayout/components/LogoContent/props.ts +0 -29
  99. package/template-design-pro/src/components/GDesign/ProLayout/components/MultiTab/index.tsx +0 -384
  100. package/template-design-pro/src/components/GDesign/ProLayout/components/MultiTab/props.ts +0 -15
  101. package/template-design-pro/src/components/GDesign/ProLayout/components/MultiTab/style.less +0 -79
  102. package/template-design-pro/src/components/GDesign/ProLayout/components/NoticeIcon/NoticeIcon.tsx +0 -148
  103. package/template-design-pro/src/components/GDesign/ProLayout/components/NoticeIcon/NoticeList.module.less +0 -115
  104. package/template-design-pro/src/components/GDesign/ProLayout/components/NoticeIcon/NoticeList.tsx +0 -154
  105. package/template-design-pro/src/components/GDesign/ProLayout/components/NoticeIcon/index.less +0 -39
  106. package/template-design-pro/src/components/GDesign/ProLayout/components/NoticeIcon/index.tsx +0 -133
  107. package/template-design-pro/src/components/GDesign/ProLayout/components/PageContainer/index.tsx +0 -190
  108. package/template-design-pro/src/components/GDesign/ProLayout/components/PageContainer/props.ts +0 -48
  109. package/template-design-pro/src/components/GDesign/ProLayout/components/PageContainer/style.less +0 -128
  110. package/template-design-pro/src/components/GDesign/ProLayout/components/PageContainer/typings.ts +0 -0
  111. package/template-design-pro/src/components/GDesign/ProLayout/components/RightContent/AvatarDropdown.tsx +0 -63
  112. package/template-design-pro/src/components/GDesign/ProLayout/components/RightContent/HeaderSearch.tsx +0 -122
  113. package/template-design-pro/src/components/GDesign/ProLayout/components/RightContent/headerSearch.less +0 -30
  114. package/template-design-pro/src/components/GDesign/ProLayout/components/RightContent/index.tsx +0 -95
  115. package/template-design-pro/src/components/GDesign/ProLayout/components/RightContent/style.less +0 -90
  116. package/template-design-pro/src/components/GDesign/ProLayout/components/SettingDrawer/BlockCheckbox.tsx +0 -70
  117. package/template-design-pro/src/components/GDesign/ProLayout/components/SettingDrawer/LayoutSetting.tsx +0 -107
  118. package/template-design-pro/src/components/GDesign/ProLayout/components/SettingDrawer/ThemeColor.tsx +0 -68
  119. package/template-design-pro/src/components/GDesign/ProLayout/components/SettingDrawer/index.tsx +0 -346
  120. package/template-design-pro/src/components/GDesign/ProLayout/components/SiderMenu/BaseMenu.tsx +0 -224
  121. package/template-design-pro/src/components/GDesign/ProLayout/components/SiderMenu/SiderMenu.tsx +0 -224
  122. package/template-design-pro/src/components/GDesign/ProLayout/components/SiderMenu/index.tsx +0 -43
  123. package/template-design-pro/src/components/GDesign/ProLayout/components/SiderMenu/props.ts +0 -112
  124. package/template-design-pro/src/components/GDesign/ProLayout/components/SiderMenu/style.less +0 -262
  125. package/template-design-pro/src/components/GDesign/ProLayout/components/SiderMenu/typings.ts +0 -44
  126. package/template-design-pro/src/components/GDesign/ProLayout/default.less +0 -2
  127. package/template-design-pro/src/components/GDesign/ProLayout/defaultSettings.ts +0 -121
  128. package/template-design-pro/src/components/GDesign/ProLayout/hooks/context/index.ts +0 -45
  129. package/template-design-pro/src/components/GDesign/ProLayout/index.ts +0 -43
  130. package/template-design-pro/src/components/GDesign/ProLayout/props.ts +0 -57
  131. package/template-design-pro/src/components/GDesign/ProLayout/style.less +0 -272
  132. package/template-design-pro/src/components/GDesign/ProLayout/typings.ts +0 -1
  133. package/template-design-pro/src/components/GDesign/ProLayout/utils/getMenuData.ts +0 -31
  134. package/template-design-pro/src/components/GDesign/ProLayout/utils/index.ts +0 -94
  135. package/template-design-pro/src/components/GDesign/ProLayout/utils/isImg/index.ts +0 -6
  136. package/template-design-pro/src/components/GDesign/ProLayout/utils/isUrl/index.ts +0 -5
  137. package/template-design-pro/src/components/GDesign/Result/index.tsx +0 -142
  138. package/template-design-pro/src/components/GDesign/Result/style.less +0 -140
  139. package/template-design-pro/src/components/GDesign/Scrollbars/components/Bar/index.tsx +0 -56
  140. package/template-design-pro/src/components/GDesign/Scrollbars/components/Bar/props.ts +0 -23
  141. package/template-design-pro/src/components/GDesign/Scrollbars/components/Thumb/index.tsx +0 -164
  142. package/template-design-pro/src/components/GDesign/Scrollbars/components/Thumb/props.ts +0 -11
  143. package/template-design-pro/src/components/GDesign/Scrollbars/context.ts +0 -10
  144. package/template-design-pro/src/components/GDesign/Scrollbars/index.tsx +0 -200
  145. package/template-design-pro/src/components/GDesign/Scrollbars/props.ts +0 -65
  146. package/template-design-pro/src/components/GDesign/Scrollbars/style.less +0 -85
  147. package/template-design-pro/src/components/GDesign/Scrollbars/util.ts +0 -40
  148. package/template-design-pro/src/components/GDesign/utils/index.ts +0 -7
  149. package/template-design-pro/src/components/PageLoading/index.tsx +0 -44
  150. package/template-design-pro/src/components/PageTransition/index.vue +0 -98
  151. package/template-design-pro/src/components/index.ts +0 -6
  152. package/template-design-pro/src/core/ant-design/index.ts +0 -14
  153. package/template-design-pro/src/core/gx-admin-design/index.ts +0 -7
  154. package/template-design-pro/src/core/gx-admin-directives/index.ts +0 -8
  155. package/template-design-pro/src/core/gx-admin-directives/permission.ts +0 -28
  156. package/template-design-pro/src/core/gx-design/index.ts +0 -7
  157. package/template-design-pro/src/core/gx-pro-design/index.ts +0 -10
  158. package/template-design-pro/src/core/index.ts +0 -27
  159. package/template-design-pro/src/design/ant-design/index.less +0 -4
  160. package/template-design-pro/src/design/ant-design/layout.less +0 -29
  161. package/template-design-pro/src/design/ant-design/menu.less +0 -55
  162. package/template-design-pro/src/design/ant-design/table.less +0 -67
  163. package/template-design-pro/src/design/ant-design/tooltip.less +0 -13
  164. package/template-design-pro/src/design/color.less +0 -1
  165. package/template-design-pro/src/design/config.less +0 -5
  166. package/template-design-pro/src/design/index.less +0 -41
  167. package/template-design-pro/src/design/mixin.less +0 -66
  168. package/template-design-pro/src/design/normalize.less +0 -390
  169. package/template-design-pro/src/global.less +0 -15
  170. package/template-design-pro/src/hooks/core/index.ts +0 -3
  171. package/template-design-pro/src/hooks/core/useRequest/index.ts +0 -70
  172. package/template-design-pro/src/hooks/core/useRequest/typings.ts +0 -0
  173. package/template-design-pro/src/hooks/event/index.ts +0 -3
  174. package/template-design-pro/src/hooks/event/useClipboard.ts +0 -14
  175. package/template-design-pro/src/hooks/system/index.ts +0 -5
  176. package/template-design-pro/src/hooks/system/useDict.ts +0 -62
  177. package/template-design-pro/src/hooks/system/usePermissions.ts +0 -39
  178. package/template-design-pro/src/hooks/typings.ts +0 -17
  179. package/template-design-pro/src/layout/BasicLayout.vue +0 -104
  180. package/template-design-pro/src/layout/BlankLayout.vue +0 -5
  181. package/template-design-pro/src/layout/ContentView.vue +0 -76
  182. package/template-design-pro/src/layout/IframeView.vue +0 -1
  183. package/template-design-pro/src/layout/UserLayout.vue +0 -7
  184. package/template-design-pro/src/main.ts +0 -34
  185. package/template-design-pro/src/plugins/index.ts +0 -3
  186. package/template-design-pro/src/router/guard/index.ts +0 -84
  187. package/template-design-pro/src/router/guard/permissions.ts +0 -73
  188. package/template-design-pro/src/router/guard/stateGuard.ts +0 -11
  189. package/template-design-pro/src/router/helper/routeHelper.ts +0 -244
  190. package/template-design-pro/src/router/helper/utils.ts +0 -19
  191. package/template-design-pro/src/router/index.ts +0 -30
  192. package/template-design-pro/src/router/routes/index.ts +0 -85
  193. package/template-design-pro/src/router/routes/modules/workplace.ts +0 -19
  194. package/template-design-pro/src/services/common/index.ts +0 -11
  195. package/template-design-pro/src/services/controller/router.ts +0 -10
  196. package/template-design-pro/src/services/controller/user.ts +0 -35
  197. package/template-design-pro/src/services/system/dictData.ts +0 -10
  198. package/template-design-pro/src/services/system/notices.ts +0 -9
  199. package/template-design-pro/src/store/index.ts +0 -32
  200. package/template-design-pro/src/store/modules/dict.ts +0 -27
  201. package/template-design-pro/src/store/modules/permission.ts +0 -19
  202. package/template-design-pro/src/store/modules/routes.ts +0 -110
  203. package/template-design-pro/src/store/modules/settings.ts +0 -102
  204. package/template-design-pro/src/store/modules/tabsRouter.ts +0 -73
  205. package/template-design-pro/src/store/modules/user.ts +0 -153
  206. package/template-design-pro/src/utils/accessToken.ts +0 -93
  207. package/template-design-pro/src/utils/crypto.ts +0 -39
  208. package/template-design-pro/src/utils/env.ts +0 -52
  209. package/template-design-pro/src/utils/fetchFile.ts +0 -79
  210. package/template-design-pro/src/utils/index.ts +0 -127
  211. package/template-design-pro/src/utils/pageTitle.ts +0 -17
  212. package/template-design-pro/src/utils/request/XHR.ts +0 -131
  213. package/template-design-pro/src/utils/request/axiosCancel.ts +0 -60
  214. package/template-design-pro/src/utils/request/checkStatus.ts +0 -26
  215. package/template-design-pro/src/utils/request/index.ts +0 -145
  216. package/template-design-pro/src/utils/request/typings.ts +0 -114
  217. package/template-design-pro/src/utils/storage.ts +0 -194
  218. package/template-design-pro/src/utils/uploadFile.ts +0 -26
  219. package/template-design-pro/src/utils/util.ts +0 -278
  220. package/template-design-pro/src/utils/validate.ts +0 -221
  221. package/template-design-pro/src/views/Iframe/index.vue +0 -76
  222. package/template-design-pro/src/views/MenuOne/index.vue +0 -15
  223. package/template-design-pro/src/views/MenuTwo/index.vue +0 -13
  224. package/template-design-pro/src/views/exception/403/index.vue +0 -9
  225. package/template-design-pro/src/views/exception/404/index.vue +0 -9
  226. package/template-design-pro/src/views/user/login/index.vue +0 -110
  227. package/template-design-pro/src/views/user/login/style.less +0 -38
  228. package/template-design-pro/stylelint.config.js +0 -106
  229. package/template-design-pro/tests/__mocks__/fileMock.ts +0 -1
  230. package/template-design-pro/tests/__mocks__/styleMock.ts +0 -1
  231. package/template-design-pro/tests/__mocks__/workerMock.ts +0 -5
  232. package/template-design-pro/tests/server/README.md +0 -15
  233. package/template-design-pro/tests/server/controller/FileController.ts +0 -18
  234. package/template-design-pro/tests/server/controller/UserController.ts +0 -15
  235. package/template-design-pro/tests/server/ecosystem.config.js +0 -18
  236. package/template-design-pro/tests/server/index.ts +0 -63
  237. package/template-design-pro/tests/server/nodemon.json +0 -8
  238. package/template-design-pro/tests/server/package.json +0 -36
  239. package/template-design-pro/tests/server/routes.ts +0 -23
  240. package/template-design-pro/tests/server/service/FileService.ts +0 -54
  241. package/template-design-pro/tests/server/service/UserService.ts +0 -25
  242. package/template-design-pro/tests/server/tsconfig.json +0 -15
  243. package/template-design-pro/tests/server/utils.ts +0 -9
  244. package/template-design-pro/tests/server/yarn.lock +0 -2955
  245. package/template-design-pro/tests/test.spec.ts +0 -16
  246. package/template-design-pro/tsconfig.json +0 -47
  247. package/template-design-pro/types/auto-imports.d.ts +0 -61
  248. package/template-design-pro/types/config.d.ts +0 -100
  249. package/template-design-pro/types/global.d.ts +0 -103
  250. package/template-design-pro/types/gx-components.d.ts +0 -24
  251. package/template-design-pro/types/index.d.ts +0 -13
  252. package/template-design-pro/types/mock.d.ts +0 -23
  253. package/template-design-pro/types/module.d.ts +0 -16
  254. package/template-design-pro/types/response.d.ts +0 -15
  255. package/template-design-pro/types/route.d.ts +0 -89
  256. package/template-design-pro/vite.config.ts +0 -136
  257. package/template-design-pro/yarn.lock +0 -9697
@@ -1,31 +0,0 @@
1
- import type { BreadcrumbProps } from './RouteContext'
2
- import type { ProProps } from './typings'
3
-
4
- // Custom render or slot
5
- export type DefaultPropRender = WithFalse<CustomRender>
6
-
7
- export type BreadcrumbRender = BreadcrumbProps['itemRender']
8
- export type HeaderContentRender = WithFalse<() => CustomRender>
9
- export type HeaderRender = WithFalse<(props: ProProps) => CustomRender>
10
- export type FooterRender = WithFalse<(props: ProProps) => CustomRender>
11
- export type RightContentRender = WithFalse<(props: ProProps) => CustomRender>
12
- export type MenuItemRender = WithFalse<
13
- (args: { item: AppRouteModule; title?: JSX.Element; icon?: JSX.Element }) => CustomRender
14
- >
15
- export type SubMenuItemRender = WithFalse<(args: { item: AppRouteModule; children?: CustomRender[] }) => CustomRender>
16
- export type LinksRender = WithFalse<CustomRender>
17
- export type MenuContentRender = WithFalse<(props: ProProps, defaultDom: CustomRender) => CustomRender>
18
- export type MenuFooterRender = WithFalse<(props?: ProProps) => CustomRender>
19
- export type MenuExtraRender = WithFalse<(props?: ProProps) => CustomRender>
20
- export type LogoRender = WithFalse<CustomRender>
21
- export type ExtraRightDropdownRender = WithFalse<CustomRender>
22
- export type HeaderLogoRender = WithFalse<(
23
- logo: CustomRender,
24
- title: CustomRender,
25
- props?: ProProps
26
- ) => CustomRender>
27
- export type CopyrightRender = WithFalse<CustomRender>
28
-
29
- export type CollapsedButtonRender = WithFalse<(collapsed?: boolean) => CustomRender>
30
-
31
- export type PageHeaderRender = WithFalse<(props?: ProProps) => CustomRender>
@@ -1,82 +0,0 @@
1
- import type { InjectionKey, Ref, ComputedRef } from 'vue'
2
- import { provide, reactive } from 'vue'
3
- import { themeConfig } from '/types/config'
4
- import type { PrefixCls } from '@gx-design-vue/pro-utils'
5
- import { getPrefixCls } from '@gx-design-vue/pro-utils'
6
- import { createContext, useContext } from './hooks/context'
7
-
8
- export interface Route {
9
- path: string
10
- breadcrumbName: string
11
- children?: Omit<Route, 'children'>[]
12
- }
13
-
14
- export interface BreadcrumbProps {
15
- prefixCls?: string
16
- routes?: Route[]
17
- params?: any
18
- separator?: CustomRender
19
- itemRender?: (opts: {
20
- route: Route
21
- params: any
22
- routes: Array<Route>
23
- paths: Array<string>
24
- }) => CustomRender
25
- }
26
-
27
- export type BreadcrumbListReturn = Pick<
28
- BreadcrumbProps,
29
- Extract<keyof BreadcrumbProps, 'routes' | 'itemRender'>
30
- >
31
-
32
- export interface MenuState {
33
- selectedKeys: string[]
34
- openKeys: string[]
35
- setSelectedKeys?: (key: string[]) => void
36
- setOpenKeys?: (key: string[]) => void
37
- }
38
-
39
- export interface RouteContextProps extends Partial<themeConfig>, MenuState {
40
- menuData: AppRouteModule[]
41
- flatMenuData?: AppRouteModule[]
42
-
43
- getPrefixCls?: (prefixCls: PrefixCls) => string
44
- breadcrumb?: BreadcrumbListReturn | ComputedRef<BreadcrumbListReturn>
45
- hasContentWide?: boolean
46
- isMobile?: boolean
47
- prefixCls?: string
48
- collapsed?: boolean
49
- hasSideMenu?: boolean
50
- hasHeader?: boolean
51
- siderWidth?: number
52
- headerHeight?: number
53
- hasFooterToolbar?: boolean
54
- hasFooter?: boolean
55
- hasSide?: boolean
56
- setHasFooterToolbar?: (bool: boolean) => void
57
- /* 附加属性 */
58
- [key: string]: any
59
- }
60
-
61
- // set default context
62
- export const defaultRouteContext = reactive({
63
- getPrefixCls
64
- })
65
-
66
- const routeContextInjectKey: InjectionKey<RouteContextProps> = Symbol('route-context')
67
-
68
- export const createRouteContext = () =>
69
- createContext<RouteContextProps>(routeContextInjectKey, 'RouteContext.Provider')
70
-
71
- export const provideRouteContext = (value: RouteContextProps | Ref<RouteContextProps> | any) => {
72
- provide(routeContextInjectKey, value)
73
- }
74
-
75
- export const useRouteContext = () =>
76
- useContext<Required<RouteContextProps>>(routeContextInjectKey, defaultRouteContext)
77
-
78
- const Provider = createRouteContext()
79
-
80
- export default {
81
- Provider
82
- }
@@ -1,69 +0,0 @@
1
- import type { FunctionalComponent, CSSProperties } from 'vue'
2
- import { computed } from 'vue'
3
- import { Layout } from 'ant-design-vue'
4
- import PageLoading from './PageLoading'
5
- import type { MultiTabProps } from './components/MultiTab'
6
- import MultiTab from './components/MultiTab'
7
- import { useRouteContext } from './RouteContext'
8
-
9
- const { Content } = Layout
10
-
11
- export interface WrapContentProps {
12
- style?: CSSProperties
13
- class?: string | string[] | any
14
- loading?: boolean
15
- isMobile: boolean
16
- collapsed?: boolean
17
- isShowTabsBar?: boolean
18
- isFixedMultiTab?: boolean
19
- isChildrenLayout?: boolean
20
- location?: string | string[] | any
21
- siderWidth?: number
22
- contentHeight?: number
23
- onReloadPage?: MultiTabProps['onReloadPage']
24
- }
25
-
26
- export const WrapContent: FunctionalComponent<WrapContentProps> = (props, { slots, attrs }) => {
27
- const { isMobile, loading, collapsed, siderWidth, isShowTabsBar, isFixedMultiTab, onReloadPage } =
28
- props
29
-
30
- if (props.isChildrenLayout) {
31
- return slots.default?.()
32
- }
33
- const context = useRouteContext()
34
- const { getPrefixCls } = useRouteContext()
35
-
36
- const prefixCls = getPrefixCls({
37
- suffixCls: 'basic-layout',
38
- isPor: true
39
- })
40
-
41
- const classNames = computed(() => {
42
- return {
43
- [`${prefixCls}-content`]: true,
44
- [`${prefixCls}-warp`]: context.flatMenuData.length === 0
45
- }
46
- })
47
-
48
- return (
49
- <>
50
- {context.flatMenuData.length > 0 && isShowTabsBar && (
51
- <MultiTab
52
- isMobile={isMobile}
53
- loading={loading}
54
- isFixedMultiTab={isFixedMultiTab}
55
- siderWidth={siderWidth}
56
- collapsed={collapsed}
57
- onReloadPage={onReloadPage}
58
- />
59
- )}
60
- <Content style={attrs.style} class={classNames.value}>
61
- {loading && <PageLoading />}
62
- <div style={{ opacity: loading ? '0' : undefined }}>{slots.default?.()}</div>
63
- </Content>
64
- </>
65
- )
66
- }
67
-
68
- WrapContent.inheritAttrs = false
69
- WrapContent.displayName = 'wrap-content'
@@ -1,88 +0,0 @@
1
- import { defineComponent, VNodeChild } from 'vue'
2
- import { LayoutFooter } from 'ant-design-vue'
3
- import { GithubOutlined } from '@ant-design/icons-vue'
4
- import { getPrefixCls } from '@gx-design-vue/pro-utils'
5
- import type { CopyrightRender } from '../../RenderTypings'
6
-
7
- export type Links = WithFalse<
8
- {
9
- key?: string
10
- title: VNodeChild | JSX.Element
11
- href: string
12
- blankTarget?: boolean
13
- }[]
14
- >
15
-
16
- export interface GlobalFooterProps {
17
- links?: Links
18
- copyright?: VNodeChild | JSX.Element
19
- prefixCls?: string
20
- }
21
-
22
- export const defaultLinks = [
23
- {
24
- key: 'Ant Design Pro',
25
- title: 'Ant Design Pro',
26
- href: 'https://pro.ant.design',
27
- blankTarget: true
28
- },
29
- {
30
- key: 'gitee',
31
- title: <GithubOutlined />,
32
- href: 'https://gitee.com/gx12358/vue-antd-admin',
33
- blankTarget: true
34
- },
35
- {
36
- key: 'Ant Design Vue',
37
- title: 'Ant Design Vue',
38
- href: 'https://next.antdv.com/components/overview-cn/',
39
- blankTarget: true
40
- }
41
- ]
42
-
43
- export default defineComponent({
44
- name: 'GlobalFooter',
45
- props: {
46
- links: {
47
- type: [Array, Boolean] as PropType<Links>,
48
- default: defaultLinks
49
- },
50
- copyright: {
51
- type: [Object, Function, Boolean, String] as PropType<CopyrightRender>,
52
- default: '皖ICP备2022010510号-1'
53
- }
54
- },
55
- setup(props) {
56
- const baseClassName = getPrefixCls({
57
- suffixCls: 'global-footer',
58
- isPor: true
59
- })
60
-
61
- return () => (
62
- <LayoutFooter style={{ padding: 0 }}>
63
- <div class={baseClassName}>
64
- {props.links && (
65
- <div class={`${baseClassName}-links`}>
66
- {props.links.map((link) => (
67
- <a
68
- key={link.key}
69
- title={link.key}
70
- target={link.blankTarget ? '_blank' : '_self'}
71
- href={link.href}
72
- >
73
- {link.title}
74
- </a>
75
- ))}
76
- </div>
77
- )}
78
- {props.copyright && (
79
- <div class={`${baseClassName}-copyright`}>
80
- Copyright&nbsp;&nbsp;2022&nbsp;&nbsp;
81
- <a href="https://beian.miit.gov.cn/">{props.copyright}</a>
82
- </div>
83
- )}
84
- </div>
85
- </LayoutFooter>
86
- )
87
- }
88
- })
@@ -1,189 +0,0 @@
1
- import type { ExtractPropTypes } from 'vue'
2
- import { computed, defineComponent, unref } from 'vue'
3
- import { useRouter } from 'vue-router'
4
- import { useWindowSize } from '@vueuse/core'
5
- import { default as ResizeObserver } from 'ant-design-vue/es/vc-resize-observer'
6
- import Logo from '@/assets/logo.png'
7
- import { globalHeaderProps } from './props'
8
- import type { SiderMenuProps } from '../SiderMenu/SiderMenu'
9
- import { defaultRenderCollapsedButton } from '../SiderMenu/SiderMenu'
10
- import { siderMenuProps } from '../SiderMenu/props'
11
- import BaseMenu from '../SiderMenu/BaseMenu'
12
- import DeFaultRightContent from '../RightContent'
13
- import LogoContent, { defaultRenderLogo } from '../LogoContent'
14
- import { useRouteContext } from '../../RouteContext'
15
-
16
- export const defaultHeaderProps = { ...siderMenuProps, ...globalHeaderProps }
17
-
18
- export type DefaultHeaderProps = Partial<ExtractPropTypes<typeof defaultHeaderProps>> &
19
- Partial<SiderMenuProps>
20
-
21
- const renderLogo = (
22
- menuHeaderRender: SiderMenuProps['menuHeaderRender'],
23
- logoDom: CustomRender
24
- ) => {
25
- if (menuHeaderRender === false) {
26
- return null
27
- }
28
- if (menuHeaderRender) {
29
- return menuHeaderRender(logoDom, null)
30
- }
31
- return logoDom
32
- }
33
-
34
- const RightContent = defineComponent({
35
- props: defaultHeaderProps,
36
- setup(props) {
37
- const rightSize = ref<number | string>('auto')
38
-
39
- const handleResize = ({ width }: { width: number }) => {
40
- rightSize.value = width
41
- }
42
-
43
- return () => (
44
- <div
45
- style={{
46
- minWidth: typeof rightSize.value === 'string' ? rightSize.value : `${rightSize.value}px`
47
- }}
48
- >
49
- <div
50
- style={{
51
- paddingRight: '8px'
52
- }}
53
- >
54
- <ResizeObserver onResize={handleResize}>
55
- {props.rightContentRender && typeof props.rightContentRender === 'function' ? (
56
- <div>
57
- {props.rightContentRender({
58
- ...props
59
- })}
60
- </div>
61
- ) : (
62
- <DeFaultRightContent theme={props.theme} extra={props.extraRightDropdownRender} />
63
- )}
64
- </ResizeObserver>
65
- </div>
66
- </div>
67
- )
68
- }
69
- })
70
-
71
- export const DefaultHeader = defineComponent({
72
- props: defaultHeaderProps,
73
- inheritAttrs: false,
74
- setup(props, { slots, emit }) {
75
- const router = useRouter()
76
- const context = useRouteContext()
77
-
78
- const { width } = useWindowSize()
79
-
80
- const baseClassName = context.getPrefixCls({
81
- suffixCls: 'global-header',
82
- isPor: true
83
- })
84
- const className = computed(() => {
85
- return {
86
- [`${baseClassName}`]: true,
87
- [`${props.theme}`]: true,
88
- ['wide']: props.layout === 'wide'
89
- }
90
- })
91
-
92
- const handleChangeKeys = (type: string) => {
93
- if (router.currentRoute) {
94
- const matched = router.currentRoute.value.matched.concat()
95
- if (props.onSelect && type === 'select')
96
- props.onSelect(matched.filter((r) => r.name !== 'index').map((r) => r.path))
97
- if (props.onOpenKeys && type === 'openKeys')
98
- props.onOpenKeys?.(
99
- matched.filter((r) => r.path !== router.currentRoute.value.path).map((r) => r.path)
100
- )
101
- }
102
- }
103
-
104
- const onCollapse = () => {
105
- emit('collapse', !props.collapsed)
106
- }
107
-
108
- const collapsedButtonRender = computed(() => props.collapsedButtonRender || defaultRenderCollapsedButton)
109
-
110
- const contentRender = () => (
111
- <>
112
- {props.layout === 'mix' && !props.isMobile && props.splitMenus ? (
113
- <div style={{ flex: 1 }} class={`${baseClassName}-menu`}>
114
- <BaseMenu
115
- theme={props.theme}
116
- mode={props.mode}
117
- collapsed={props.collapsed}
118
- menuData={props.menuData}
119
- openKeys={context.openKeys}
120
- selectedKeys={context.selectedKeys}
121
- iconfontUrl={props.iconfontUrl}
122
- menuItemRender={props.menuItemRender}
123
- subMenuItemRender={props.subMenuItemRender}
124
- class={{ 'top-nav-menu': props.mode === 'horizontal' }}
125
- {...{
126
- 'onUpdate:openKeys': () => handleChangeKeys('openKeys'),
127
- 'onUpdate:selectedKeys': () => handleChangeKeys('select')
128
- }}
129
- />
130
- </div>
131
- ) : (
132
- <div style={{ flex: 1 }}>{slots.default?.()}</div>
133
- )}
134
- {props.layout !== 'simple' && (
135
- <RightContent
136
- extraRightDropdownRender={props.extraRightDropdownRender}
137
- rightContentRender={props.rightContentRender}
138
- {...props}
139
- />
140
- )}
141
- </>
142
- )
143
-
144
- return () => {
145
- const logoDom = (
146
- <span class={[ `${baseClassName}-logo`, props.isMobile ? 'mobile' : '' ]} key="logo">
147
- <a>{defaultRenderLogo(props.logo || Logo)}</a>
148
- </span>)
149
- return (
150
- <div
151
- style={{
152
- height: '100%',
153
- ...(props.isMobile || props.layout !== 'mix' ? {} : { padding: 0 })
154
- }}
155
- class={className.value}
156
- >
157
- {props.isMobile ? (
158
- <>
159
- {renderLogo(props.menuHeaderRender, logoDom)}
160
- {props.isMobile && unref(collapsedButtonRender) && (
161
- <span class={`${baseClassName}-collapsed-button`} onClick={onCollapse}>
162
- {unref(collapsedButtonRender)(props.collapsed)}
163
- </span>
164
- )}
165
- {contentRender()}
166
- </>
167
- ) : props.layout === 'mix' || props.layout === 'wide' ? (
168
- <>
169
- <div
170
- style={{
171
- width: props.layout === 'wide' ? `${props.wideWidth}px` : undefined,
172
- padding: props.layout === 'wide' && width.value < props.wideWidth ? '0 50px' : undefined
173
- }}
174
- class={`${baseClassName}-main`}
175
- >
176
- <div class={`${baseClassName}-main-left`}>
177
- <LogoContent {...props} renderKey="headerTitleRender" />
178
- </div>
179
- {contentRender()}
180
- </div>
181
- </>
182
- ) : (
183
- contentRender()
184
- )}
185
- </div>
186
- )
187
- }
188
- }
189
- })
@@ -1,8 +0,0 @@
1
- @import '../../default.less';
2
-
3
- @pro-layout-fixed-header-prefix-cls: ~'@{gx-prefix-pro}-fixed-header';
4
-
5
- .@{pro-layout-fixed-header-prefix-cls} {
6
- z-index: 9;
7
- width: 100%;
8
- }
@@ -1,105 +0,0 @@
1
- import { defineComponent, computed, toRefs } from 'vue'
2
- import { Layout } from 'ant-design-vue'
3
- import { headerViewProps } from './props'
4
- import { DefaultHeader } from './DefaultHeader'
5
- import { flatMap } from '../../utils'
6
- import { useRouteContext } from '../../RouteContext'
7
-
8
- const { Header } = Layout
9
-
10
- export default defineComponent({
11
- inheritAttrs: false,
12
- props: headerViewProps,
13
- setup(props) {
14
- const { theme, isMobile, fixedHeader, headerHeight, layout, onCollapse, splitMenus } =
15
- toRefs(props)
16
- const context = useRouteContext()
17
- const baseClassName = context.getPrefixCls({
18
- suffixCls: 'header',
19
- isPor: true
20
- })
21
-
22
- const baseFixedClassName = context.getPrefixCls({
23
- suffixCls: 'fixed-header',
24
- isPor: true
25
- })
26
-
27
- const hasContentWide = computed(() => layout.value === 'wide')
28
- const needFixedHeader = computed(() => fixedHeader.value || context.fixedHeader)
29
- const isMix = computed(() => layout.value === 'mix' || hasContentWide.value)
30
- const layoutSide = computed(() => layout.value === 'side' || layout.value === 'simple')
31
- const hTheme = computed(() => (layoutSide.value && 'light') || theme.value)
32
- const className = computed(() => {
33
- return {
34
- [`${hTheme.value}`]: true,
35
- [`${baseClassName}`]: true,
36
- [`${baseFixedClassName}`]: needFixedHeader.value
37
- }
38
- })
39
- const needSettingWidth = computed(() => needFixedHeader.value && !isMobile.value)
40
-
41
- // cache menu
42
- const clearMenuData = computed(() =>
43
- splitMenus.value
44
- ? (context.menuData && flatMap(context.menuData as AppRouteModule[])) || []
45
- : []
46
- )
47
- const width = computed(() => {
48
- return layoutSide.value && needSettingWidth.value
49
- ? `calc(100% - ${props.collapsed ? props.collapsedWidth : props.siderWidth}px)`
50
- : '100%'
51
- })
52
- const right = computed(() => (needFixedHeader.value ? 0 : undefined))
53
-
54
- const renderContent = () => {
55
- const defaultDom = (
56
- <DefaultHeader
57
- {...props}
58
- theme={hTheme.value as 'light' | 'dark'}
59
- mode="horizontal"
60
- onCollapse={onCollapse.value}
61
- menuData={clearMenuData.value}
62
- >
63
- {!isMix.value
64
- ? props.headerContentRender && typeof props.headerContentRender === 'function'
65
- ? props.headerContentRender(props)
66
- : props.headerContentRender
67
- : null}
68
- </DefaultHeader>
69
- )
70
- if (props.headerRender) {
71
- return props.headerRender(props, defaultDom)
72
- }
73
- return defaultDom
74
- }
75
-
76
- return () => (
77
- <>
78
- {needFixedHeader.value && !hasContentWide.value && (
79
- <Header
80
- theme={hTheme.value}
81
- style={{
82
- height: `${headerHeight.value}px`,
83
- lineHeight: `${headerHeight.value}px`,
84
- background: 'transparent'
85
- }}
86
- />
87
- )}
88
- <Header
89
- theme={hTheme.value}
90
- class={className.value}
91
- style={{
92
- padding: 0,
93
- height: `${headerHeight.value}px`,
94
- lineHeight: `${headerHeight.value}px`,
95
- width: width.value,
96
- zIndex: layoutSide.value ? 100 : 101,
97
- right: right.value
98
- }}
99
- >
100
- {renderContent()}
101
- </Header>
102
- </>
103
- )
104
- }
105
- })
@@ -1,69 +0,0 @@
1
- import type { Theme } from '/types/config'
2
- import { PropTypes } from '@/utils'
3
- import logoContentProps from '../LogoContent/props'
4
- import { siderMenuProps } from '../SiderMenu/props'
5
- import type { RightContentRender } from '../../RenderTypings'
6
- import { defaultSettingProps } from '../../defaultSettings'
7
- import { ExtraRightDropdownRender } from '../../RenderTypings'
8
-
9
- export const globalHeaderProps = {
10
- ...defaultSettingProps,
11
- logo: logoContentProps.logo,
12
- logoStyle: logoContentProps.logoStyle,
13
- logoDirection: logoContentProps.logoDirection,
14
- menuLoading: PropTypes.looseBool,
15
- autoHideHeader: PropTypes.looseBool,
16
- collapsed: PropTypes.looseBool,
17
- isMobile: PropTypes.looseBool,
18
- siderWidth: siderMenuProps.siderWidth,
19
- headerTheme: {
20
- type: String as PropType<Theme>,
21
- default: 'dark'
22
- },
23
- menuData: {
24
- type: Array as PropType<AppRouteModule[]>,
25
- default: () => []
26
- },
27
- menuRender: {
28
- type: [ Object, Function ] as PropType<WithFalse<(props: any /* HeaderViewProps */,
29
- defaultDom: CustomRender) => CustomRender>>,
30
- default: () => undefined
31
- },
32
- extraRightDropdownRender: {
33
- type: [ Object, Function ] as PropType<ExtraRightDropdownRender>,
34
- default: () => undefined
35
- },
36
- rightContentRender: {
37
- type: [Object, Function] as PropType<RightContentRender>,
38
- default: () => undefined,
39
- },
40
- collapsedButtonRender: siderMenuProps.collapsedButtonRender,
41
- matchMenuKeys: siderMenuProps.matchMenuKeys,
42
- onCollapse: siderMenuProps.onCollapse,
43
- onOpenKeys: siderMenuProps.onOpenKeys,
44
- onMenuHeaderClick: PropTypes.func,
45
- onSelect: siderMenuProps.onSelect
46
- }
47
-
48
- export const headerViewProps = {
49
- ...globalHeaderProps,
50
- headerTitleRender: {
51
- type: [ Object, Function ] as PropType<WithFalse<(
52
- props: any,
53
- defaultDom: CustomRender
54
- ) => CustomRender>>,
55
- default: () => undefined
56
- },
57
- headerRender: {
58
- type: [Object, Function] as PropType<WithFalse<(props: any, defaultDom: CustomRender) => CustomRender>>,
59
- default: () => undefined,
60
- },
61
- headerContentRender: {
62
- type: [Object, Function] as PropType<WithFalse<(props: any) => CustomRender>>,
63
- default: () => undefined,
64
- },
65
- hasSiderMenu: PropTypes.looseBool,
66
- collapsedWidth: siderMenuProps.collapsedWidth,
67
- siderWidth: siderMenuProps.siderWidth
68
- }
69
-