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

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 (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,144 +0,0 @@
1
- @import '../../default.less';
2
-
3
- @pro-layout-header-prefix-cls: ~'@{gx-prefix-pro}-header';
4
- @pro-layout-global-header-prefix-cls: ~'@{gx-prefix-pro}-global-header';
5
-
6
- @pro-layout-header-bg: @component-background;
7
- @pro-layout-header-hover-bg: @component-background;
8
- @pro-layout-header-box-shadow: 0 1px 4px rgba(0, 21, 41, 0.08);
9
-
10
- .@{pro-layout-header-prefix-cls} {
11
- &.light {
12
- background-color: @component-background;
13
- }
14
-
15
- &.dark {
16
- background: #001529;
17
- }
18
- }
19
-
20
- .@{pro-layout-global-header-prefix-cls} {
21
- position: relative;
22
- display: flex;
23
- align-items: center;
24
- width: 100%;
25
- height: 100%;
26
- padding: 0 16px;
27
- background: @pro-layout-header-bg;
28
- box-shadow: @pro-layout-header-box-shadow;
29
-
30
- > * {
31
- height: 100%;
32
- }
33
-
34
- .@{ant-prefix}-menu {
35
- background: transparent;
36
- }
37
-
38
- &.light {
39
- background-color: @component-background;
40
-
41
- .@{pro-layout-global-header-prefix-cls}-logo {
42
- h1 {
43
- color: @heading-color;
44
- }
45
- }
46
- }
47
-
48
- &.dark {
49
- height: @pro-layout-header-height;
50
- background: #001529;
51
-
52
- .anticon {
53
- color: @btn-primary-color;
54
- }
55
- }
56
-
57
- &.wide {
58
- padding: 0;
59
-
60
- .@{pro-layout-global-header-prefix-cls} {
61
- &-main {
62
- margin: auto;
63
- padding: 0;
64
- transition: all 0.3s;
65
- }
66
- }
67
- }
68
-
69
- &-main {
70
- display: flex;
71
- width: 100%;
72
- height: 100%;
73
- padding: 0 16px;
74
-
75
- &.wide {
76
- padding: 0;
77
- }
78
-
79
- &-left {
80
- display: flex;
81
- min-width: 192px;
82
- }
83
- }
84
-
85
- &-collapsed-button {
86
- display: flex;
87
- align-items: center;
88
- margin-left: 16px;
89
- font-size: 20px;
90
- cursor: pointer;
91
- }
92
-
93
- &-logo {
94
- position: relative;
95
- min-width: 165px;
96
- height: 100%;
97
- overflow: hidden;
98
-
99
- &.mobile {
100
- min-width: unset;
101
- }
102
-
103
- a {
104
- display: flex;
105
- align-items: center;
106
- height: 100%;
107
-
108
- img,
109
- svg {
110
- display: inline-block;
111
- height: 32px;
112
- vertical-align: middle;
113
- }
114
-
115
- h1 {
116
- display: inline-block;
117
- margin: 0 0 0 12px;
118
- font-size: 16px;
119
- color: @btn-primary-color;
120
- vertical-align: top;
121
- }
122
- }
123
- }
124
-
125
- &-menu {
126
- flex: 1 1 0%;
127
-
128
- .anticon {
129
- margin-right: 8px;
130
- }
131
-
132
- .@{ant-prefix}-dropdown-menu-item {
133
- min-width: 160px;
134
- }
135
- }
136
-
137
- &-right {
138
- display: flex;
139
- float: right;
140
- height: 48px;
141
- margin-left: auto;
142
- overflow: hidden;
143
- }
144
- }
@@ -1,81 +0,0 @@
1
- import type { CSSProperties, ExtractPropTypes } from 'vue'
2
- import { computed, defineComponent } from 'vue'
3
- import Logo from '@/assets/logo.png'
4
- import logoContentProps from './props'
5
- import { useRouteContext } from '../../RouteContext'
6
-
7
- export type LogoContentProps = Partial<ExtractPropTypes<typeof logoContentProps>>
8
-
9
- export const defaultRenderLogo = (logo?: CustomRender, logoStyle?: CSSProperties): CustomRender => {
10
- if (!logo) {
11
- return null
12
- }
13
- if (typeof logo === 'string') {
14
- return <img src={logo} alt="logo" style={logoStyle} />
15
- }
16
- if (typeof logo === 'function') {
17
- return logo()
18
- }
19
- return logo
20
- }
21
-
22
- export const defaultRenderLogoAndTitle = (
23
- props: LogoContentProps,
24
- renderKey: string | undefined = 'menuHeaderRender'
25
- ) => {
26
- const { logo = Logo, logoStyle, title } = props
27
- const renderFunction = (props as any)[renderKey || '']
28
- if (renderFunction === false) {
29
- return null
30
- }
31
-
32
- const logoDom = defaultRenderLogo(logo, logoStyle)
33
- const titleDom = title && <h1>{title}</h1>
34
-
35
- if (typeof renderFunction === 'function') {
36
- return renderFunction(logoDom, props.collapsed ? null : titleDom, props)
37
- }
38
-
39
- return (
40
- <>
41
- {logoDom || null}
42
- {props.collapsed ? null : titleDom}
43
- </>
44
- )
45
- }
46
-
47
- const LogoContent = defineComponent({
48
- name: 'LogoContent',
49
- props: logoContentProps,
50
- setup(props) {
51
- const context = useRouteContext()
52
-
53
- const layoutSide = computed(() => props.layout === 'side' || props.layout === 'simple')
54
-
55
- const baseClassName = computed(() =>
56
- context.getPrefixCls({
57
- suffixCls: layoutSide.value || props.drawer ? 'sider' : 'global-header',
58
- isPor: true
59
- })
60
- )
61
-
62
- const headerDom = computed(() => defaultRenderLogoAndTitle(props, props.renderKey))
63
-
64
- return () => (
65
- <div
66
- id="logo"
67
- class={{
68
- [`${baseClassName.value}-logo`]: true,
69
- [`${baseClassName.value}-logo-${props.logoDirection}`]: layoutSide.value
70
- }}
71
- onClick={props.onMenuHeaderClick}
72
- >
73
- <a>{headerDom.value || null}</a>
74
- </div>
75
- )
76
- }
77
- })
78
-
79
- LogoContent.inheritAttrs = false
80
-
81
- export default LogoContent
@@ -1,29 +0,0 @@
1
- import type { CSSProperties } from 'vue'
2
- import { PropTypes } from '@/utils'
3
- import { defaultSettingProps } from '../../defaultSettings'
4
- import type { HeaderLogoRender } from '../../RenderTypings'
5
-
6
- export default {
7
- renderKey: PropTypes.string.def('menuHeaderRender'),
8
- title: defaultSettingProps.title,
9
- layout: defaultSettingProps.layout,
10
- logo: {
11
- type: [ Object, String, Function ] as PropType<CustomRender>,
12
- default: () => undefined
13
- },
14
- logoStyle: {
15
- type: Object as PropType<CSSProperties>,
16
- default: () => undefined
17
- },
18
- logoDirection: {
19
- type: String as PropType<'horizontal' | 'vertical'>,
20
- default: 'horizontal'
21
- },
22
- drawer: PropTypes.looseBool,
23
- collapsed: PropTypes.looseBool,
24
- menuHeaderRender: {
25
- type: [ Object, Function ] as PropType<HeaderLogoRender>,
26
- default: () => undefined
27
- },
28
- onMenuHeaderClick: PropTypes.func
29
- }
@@ -1,384 +0,0 @@
1
- import {
2
- computed,
3
- defineComponent,
4
- reactive,
5
- watch,
6
- onMounted,
7
- toRefs,
8
- ExtractPropTypes
9
- } from 'vue'
10
- import { useStore } from '@gx-vuex'
11
- import { useRoute, useRouter } from 'vue-router'
12
- import { Tabs, Menu, Dropdown } from 'ant-design-vue'
13
- import { EllipsisOutlined, ReloadOutlined, CloseOutlined } from '@ant-design/icons-vue'
14
- import config from '/config/config'
15
- import multiTabProps from './props'
16
-
17
- const TabPane = Tabs.TabPane
18
-
19
- export type MultiTabProps = Partial<ExtractPropTypes<typeof multiTabProps>>
20
-
21
- export default defineComponent({
22
- props: multiTabProps,
23
- components: {
24
- EllipsisOutlined,
25
- ReloadOutlined,
26
- CloseOutlined
27
- },
28
- setup(props) {
29
- const { isMobile, loading, isFixedMultiTab, onReloadPage } = toRefs(props)
30
- const $route = useRoute()
31
- const router = useRouter()
32
- const store = useStore()
33
- const { routesWhiteList } = config.defaultSettings
34
- const state = reactive({
35
- affixTabs: [],
36
- reloadSpin: false,
37
- tabActive: '',
38
- tabContextActive: ''
39
- })
40
- const routes = computed(() => store.routes.routes)
41
- const visitedRoutes = computed(() => store.tabsRouter.visitedRoutes)
42
- const needFixedMultiTab = computed(() => isFixedMultiTab.value)
43
- const needSettingWidth = computed(() => needFixedMultiTab.value && !isMobile.value)
44
- const width = computed(() => {
45
- return needSettingWidth.value
46
- ? `calc(100% - ${props.collapsed ? props.collapsedWidth : props.siderWidth}px)`
47
- : '100%'
48
- })
49
- const right = computed(() => (needFixedMultiTab.value ? 0 : undefined))
50
- /**
51
- * @Author gx12358
52
- * @DateTime 2021/8/6
53
- * @lastTime 2021/8/6
54
- * @description 初始化添加固定标签
55
- */
56
- const initAffixTabs = (routes) => {
57
- routes.forEach((route) => {
58
- if (route.meta && route.meta.tagFixed) addTabs(route)
59
- if (route.children) initAffixTabs(route.children)
60
- })
61
- }
62
- /**
63
- * @Author gx12358
64
- * @DateTime 2021/8/6
65
- * @lastTime 2021/8/6
66
- * @description 添加标签路由
67
- */
68
- const addTabs = async (tag) => {
69
- if (
70
- tag.name &&
71
- tag.meta &&
72
- tag.meta.tagHidden !== true &&
73
- !routesWhiteList.includes(tag.path)
74
- ) {
75
- let matched = [tag.name]
76
- if (tag.matched) matched = tag.matched.map((item) => item.name)
77
- await store.tabsRouter.addVisitedRoute({
78
- tagFixed: tag.meta && tag.meta.tagFixed,
79
- path: tag.path,
80
- fullPath: tag.fullPath || tag.path,
81
- query: tag.query,
82
- params: tag.params,
83
- name: tag.name,
84
- matched: matched,
85
- meta: { ...tag.meta }
86
- })
87
- if (isActive(tag)) state.tabActive = tag.fullPath || tag.path
88
- }
89
- }
90
- onMounted(() => {
91
- initAffixTabs(routes.value)
92
- })
93
- watch(
94
- () => $route,
95
- (route) => {
96
- addTabs(route)
97
- },
98
- {
99
- deep: true,
100
- immediate: true
101
- }
102
- )
103
- /**
104
- * @Author gx12358
105
- * @DateTime 2021/8/6
106
- * @lastTime 2021/8/6
107
- * @description 是否是当前页
108
- */
109
- const isActive = (route) => {
110
- return route.path === $route.path
111
- }
112
- /**
113
- * @Author gx12358
114
- * @DateTime 2021/8/6
115
- * @lastTime 2021/8/6
116
- * @description 当前页是否固定
117
- */
118
- const isFixed = (tag) => {
119
- return tag.meta && tag.meta.tagFixed
120
- }
121
- /**
122
- * @Author gx12358
123
- * @DateTime 2021/8/6
124
- * @lastTime 2021/8/6
125
- * @description 标签点击
126
- */
127
- const handleTabClick = (tab) => {
128
- const route = visitedRoutes.value.filter((item) => item.path === tab)[0]
129
- if ($route.fullPath !== route.fullPath) router.push(route.fullPath)
130
- }
131
- /**
132
- * @Author gx12358
133
- * @DateTime 2021/8/6
134
- * @lastTime 2021/8/6
135
- * @description 标签删除
136
- */
137
- const handleTabRemove = async (e, fullPath) => {
138
- e.stopPropagation()
139
- const view = visitedRoutes.value.find((item) => {
140
- return fullPath === item.fullPath
141
- })
142
- await store.tabsRouter.delVisitedRoute(view)
143
- if (isActive(view)) toLastTag()
144
- }
145
- /**
146
- * @Author gx12358
147
- * @DateTime 2021/8/6
148
- * @lastTime 2021/8/6
149
- * @description 标签副操作点击
150
- */
151
- const handleClick = ({ key }, stateType) => {
152
- switch (key) {
153
- case 'closeOthersTabs':
154
- closeOthersTabs(stateType)
155
- break
156
- case 'closeLeftTabs':
157
- closeLeftTabs(stateType)
158
- break
159
- case 'closeRightTabs':
160
- closeRightTabs(stateType)
161
- break
162
- default:
163
- break
164
- }
165
- }
166
- const dropdownVisible = (path) => {
167
- state.tabContextActive = path
168
- }
169
- const tabBarExtraState = (type, path: any) => {
170
- const currentIndex = visitedRoutes.value.findIndex((item) => item.fullPath === path)
171
- let status = false
172
- switch (type) {
173
- case 1:
174
- status =
175
- visitedRoutes.value.length === 1 ||
176
- (visitedRoutes.value.findIndex((item) => item.meta.tagFixed) === 0 &&
177
- visitedRoutes.value.length === 2)
178
- break
179
- case 2:
180
- status =
181
- currentIndex === 0 ||
182
- (currentIndex === 1 &&
183
- visitedRoutes.value.findIndex((item) => item.meta.tagFixed) === 0)
184
- break
185
- case 3:
186
- status =
187
- currentIndex === visitedRoutes.value.length - 1 || visitedRoutes.value.length === 1
188
- break
189
- }
190
- return status
191
- }
192
- /**
193
- * @Author gx12358
194
- * @DateTime 2021/8/6
195
- * @lastTime 2021/8/6
196
- * @description 刷新当前路由
197
- */
198
- const reloadPage = () => {
199
- state.reloadSpin = true
200
- onReloadPage.value && onReloadPage.value()
201
- setTimeout(() => {
202
- state.reloadSpin = false
203
- }, 500)
204
- }
205
- /**
206
- * @Author gx12358
207
- * @DateTime 2021/8/6
208
- * @lastTime 2021/8/6
209
- * @description 关闭其他页
210
- */
211
- const closeOthersTabs = async (stateType) => {
212
- await store.tabsRouter.delOthersVisitedRoutes(toThisTag(stateType))
213
- toContextTag(stateType)
214
- }
215
- /**
216
- * @Author gx12358
217
- * @DateTime 2021/8/6
218
- * @lastTime 2021/8/6
219
- * @description 关闭左侧所有路由
220
- */
221
- const closeLeftTabs = async (stateType) => {
222
- await store.tabsRouter.delLeftVisitedRoutes(toThisTag(stateType))
223
- toContextTag(stateType)
224
- }
225
- /**
226
- * @Author gx12358
227
- * @DateTime 2021/8/6
228
- * @lastTime 2021/8/6
229
- * @description 关闭右侧所有路由
230
- */
231
- const closeRightTabs = async (stateType) => {
232
- await store.tabsRouter.delRightVisitedRoutes(toThisTag(stateType))
233
- toContextTag(stateType)
234
- }
235
- /**
236
- * @Author gx12358
237
- * @DateTime 2021/8/6
238
- * @lastTime 2021/8/6
239
- * @description 跳转上下路由
240
- */
241
- const toContextTag = (stateType) => {
242
- const currentPath = stateType === 'tabActive' ? $route.fullPath : state[stateType]
243
- if (stateType !== $route.fullPath) {
244
- router.push(currentPath)
245
- }
246
- }
247
- /**
248
- * @Author gx12358
249
- * @DateTime 2021/8/6
250
- * @lastTime 2021/8/6
251
- * @description 跳转路由:/
252
- */
253
- const toLastTag = () => {
254
- const latestView = visitedRoutes.value.slice(-1)[0]
255
- if (latestView) router.push(latestView)
256
- else router.push('/')
257
- }
258
- /**
259
- * @Author gx12358
260
- * @DateTime 2021/8/6
261
- * @lastTime 2021/8/6
262
- * @description 跳转点击页
263
- */
264
- const toThisTag = (stateType) => {
265
- const currentPath = stateType === 'tabActive' ? $route.fullPath : state[stateType]
266
- const view = visitedRoutes.value.find((item) => item.fullPath === currentPath)
267
- if (currentPath !== view?.path || '') router.push(view)
268
- return view
269
- }
270
-
271
- const defaultRenderTabMenu = (record) => (
272
- <Menu onClick={(e) => handleClick(e, 'tabContextActive')}>
273
- <Menu.Item
274
- disabled={tabBarExtraState(1, record.fullPath || record.path)}
275
- key="closeOthersTabs"
276
- >
277
- 关闭其他
278
- </Menu.Item>
279
- <Menu.Item
280
- disabled={tabBarExtraState(2, record.fullPath || record.path)}
281
- key="closeLeftTabs"
282
- >
283
- 关闭左侧
284
- </Menu.Item>
285
- <Menu.Item
286
- disabled={tabBarExtraState(3, record.fullPath || record.path)}
287
- key="closeRightTabs"
288
- >
289
- 关闭右侧
290
- </Menu.Item>
291
- </Menu>
292
- )
293
-
294
- const defaultRenderTab = (record) => (
295
- <Dropdown
296
- trigger="contextmenu"
297
- overlay={defaultRenderTabMenu(record)}
298
- onVisibleChange={(_) => dropdownVisible(record.fullPath)}
299
- >
300
- <div class="gx-pro-multi-tab-content">
301
- {record.meta.title}
302
- {state.tabActive === (record.fullPath || record.path) && (
303
- <ReloadOutlined
304
- class="gx-pro-multi-tab-reload-btn"
305
- style={{ marginRight: 0 }}
306
- spin={state.reloadSpin}
307
- onClick={() => {
308
- state.reloadSpin ? null : reloadPage()
309
- }}
310
- />
311
- )}
312
- {visitedRoutes.value.length > 1 && !isFixed(record) && (
313
- <CloseOutlined
314
- class="gx-pro-multi-tab-close-btn"
315
- style={{ marginRight: 0 }}
316
- onClick={(e) => handleTabRemove(e, record.fullPath)}
317
- />
318
- )}
319
- </div>
320
- </Dropdown>
321
- )
322
-
323
- const defaultExtraMenu = () => (
324
- <Menu onClick={(e) => handleClick(e, 'tabActive')}>
325
- <Menu.Item disabled={tabBarExtraState(1, state.tabActive)} key="closeOthersTabs">
326
- 关闭其他
327
- </Menu.Item>
328
- <Menu.Item disabled={tabBarExtraState(2, state.tabActive)} key="closeLeftTabs">
329
- 关闭左侧
330
- </Menu.Item>
331
- <Menu.Item disabled={tabBarExtraState(3, state.tabActive)} key="closeRightTabs">
332
- 关闭右侧
333
- </Menu.Item>
334
- </Menu>
335
- )
336
-
337
- const tabBarExtraContent = () => (
338
- <Dropdown overlay={defaultExtraMenu()}>
339
- <EllipsisOutlined class="gx-pro-multi-tab-dropdown-menu-btn" rotate={90} />
340
- </Dropdown>
341
- )
342
-
343
- return () => (
344
- <>
345
- {props.isFixedMultiTab && (
346
- <div
347
- class={{
348
- ['gx-pro-multi-tab-fixed']: true,
349
- ['gx-pro-multi-tab-fixed-loading']: loading.value
350
- }}
351
- />
352
- )}
353
- <div
354
- style={{
355
- margin: 0,
356
- width: width.value,
357
- right: right.value,
358
- zIndex: 99
359
- }}
360
- class={{
361
- ['gx-pro-multi-tab']: true,
362
- ['gx-pro-multi-tab-wrap']: props.isFixedMultiTab,
363
- ['gx-pro-multi-tab-wrap-fixed']: props.isFixedMultiTab,
364
- ['gx-pro-multi-tab-wrap-loading']: loading.value
365
- }}
366
- >
367
- <Tabs
368
- onTabClick={handleTabClick}
369
- activeKey={state.tabActive}
370
- hideAdd
371
- type="editable-card"
372
- v-slots={{
373
- rightExtra: (_) => tabBarExtraContent()
374
- }}
375
- >
376
- {visitedRoutes.value.map((item) => (
377
- <TabPane key={item.fullPath} closable={false} tab={defaultRenderTab(item)} />
378
- ))}
379
- </Tabs>
380
- </div>
381
- </>
382
- )
383
- }
384
- })
@@ -1,15 +0,0 @@
1
- import { PropTypes } from '@/utils'
2
- import { defaultSettingProps } from '../../defaultSettings'
3
- import { baseMenuProps, siderMenuProps } from '../SiderMenu/props'
4
-
5
- export default {
6
- loading: PropTypes.looseBool,
7
- isMobile: siderMenuProps.isMobile,
8
- collapsed: baseMenuProps.collapsed,
9
- siderWidth: siderMenuProps.siderWidth,
10
- collapsedWidth: siderMenuProps.collapsedWidth,
11
- isFixedMultiTab: defaultSettingProps.fixedMultiTab,
12
- onReloadPage: {
13
- type: Function as PropType<() => void>
14
- }
15
- }