@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,60 +0,0 @@
1
- import type { AxiosRequestConfig, Canceler } from 'axios'
2
- import axios from 'axios'
3
- import { isFunction } from '@gx-design-vue/pro-utils'
4
-
5
- // Used to store the identification and cancellation function of each request
6
- let pendingMap = new Map<string, Canceler>()
7
-
8
- export const getPendingUrl = (config: AxiosRequestConfig) => [ config.method, config.url ].join('&')
9
-
10
- export class AxiosCanceler {
11
- /**
12
- * Add request
13
- * @param {Object} config
14
- */
15
- addPending(config: AxiosRequestConfig) {
16
- this.removePending(config)
17
- const url = getPendingUrl(config)
18
- config.cancelToken =
19
- config.cancelToken ||
20
- new axios.CancelToken((cancel) => {
21
- if (!pendingMap.has(url)) {
22
- // If there is no current request in pending, add it
23
- pendingMap.set(url, cancel)
24
- }
25
- })
26
- }
27
-
28
- /**
29
- * @description: Clear all pending
30
- */
31
- removeAllPending() {
32
- pendingMap.forEach((cancel) => {
33
- cancel && isFunction(cancel) && cancel()
34
- })
35
- pendingMap.clear()
36
- }
37
-
38
- /**
39
- * Removal request
40
- * @param {Object} config
41
- */
42
- removePending(config: AxiosRequestConfig) {
43
- const url = getPendingUrl(config)
44
-
45
- if (pendingMap.has(url)) {
46
- // If there is a current request identifier in pending,
47
- // the current request needs to be cancelled and removed
48
- const cancel = pendingMap.get(url)
49
- cancel && cancel(url)
50
- pendingMap.delete(url)
51
- }
52
- }
53
-
54
- /**
55
- * @description: reset
56
- */
57
- reset(): void {
58
- pendingMap = new Map<string, Canceler>()
59
- }
60
- }
@@ -1,26 +0,0 @@
1
- import { useStoreUser } from '@/store'
2
- import { message } from 'ant-design-vue'
3
- import { router } from '@/router'
4
-
5
- /**
6
- * @author gx12358 2539306317@qq.com
7
- * @description 处理code异常
8
- * @param {*} code
9
- * @param {*} msg
10
- */
11
- export const handleCode = (code: number, msg: string) => {
12
- const user = useStoreUser()
13
- switch (code) {
14
- case 401:
15
- message.error(msg || '登录失效')
16
- user.resetPermissions()
17
- router.push({ path: '/user/login' })
18
- break
19
- case 403:
20
- router.push({ path: '/exception/403' })
21
- break
22
- default:
23
- message.error(msg || `后端接口${code}异常`)
24
- break
25
- }
26
- }
@@ -1,145 +0,0 @@
1
- import { message } from 'ant-design-vue'
2
- import config from '/config/config'
3
- import { useStoreUser } from '@/store'
4
- import { isDev } from '@/utils/env'
5
- import { tansParams } from '@/utils/util'
6
- import { checkURL } from '@/utils/validate'
7
- import { isBoolean } from '@gx-design-vue/pro-utils'
8
- import { GAxios } from './XHR'
9
- import type { XhtInstance } from './typings'
10
- import { RequestEnum } from './typings'
11
- import type { GAxiosOptions } from './typings'
12
- import { handleCode } from './checkStatus'
13
-
14
- const { tokenName, requestPrefix } = config.defaultSettings
15
-
16
- const { contentType, requestTimeout, successCode } = config.network
17
-
18
- const xhtInstance: XhtInstance = {
19
- /**
20
- * @description: 处理响应数据。如果数据不是预期格式,可直接抛出错误
21
- */
22
- transformResponseHook: (res, options) => {
23
- const { customize, isReturnNativeResponse } = options
24
- // 是否返回原生响应头 比如:需要获取响应头时使用该属性
25
- if (isReturnNativeResponse) {
26
- return res
27
- }
28
- // 不进行任何处理,直接返回
29
- // 用于页面代码可能需要直接获取code,data,message这些信息时开启
30
- if (customize) {
31
- return res.data
32
- }
33
- // 错误的时候返回
34
-
35
- const { data }: { data: ResponseResult } = res
36
- if (!data) {
37
- throw new Error('请求出错,请稍候重试')
38
- }
39
- // 这里 code,result,message为 后台统一的字段,需要在 types.ts内修改为项目自己的接口返回格式
40
- const { code, msg = '', message = '' } = data
41
-
42
- const codeVerificationArray = successCode
43
-
44
- // 这里逻辑可以根据项目进行修改
45
- const hasSuccess = codeVerificationArray.includes(code)
46
- if (hasSuccess) {
47
- return data
48
- }
49
-
50
- // 在此处根据自己项目的实际情况对不同的code执行不同的操作
51
- // 如果不希望中断当前请求,请return数据,否则直接抛出异常即可
52
- handleCode(code, message || msg)
53
-
54
- return Promise.resolve(false)
55
- },
56
-
57
- // 请求之前处理config
58
- beforeRequestHook: (config) => {
59
- // get请求映射params参数
60
- if (config.method?.toUpperCase() === RequestEnum.GET && config.params) {
61
- let url = config.url + '?' + tansParams(config.params)
62
- url = url.slice(0, -1)
63
- config.params = {}
64
- config.url = url
65
- }
66
-
67
- if (!checkURL(config.url)) {
68
- if (config.isMock) {
69
- config.url = `/mock-server${config.url}`
70
- } else {
71
- config.url = `${import.meta.env.VITE_BASE_URL}${isDev ? requestPrefix || '' : ''}${config.url}`
72
- }
73
- }
74
-
75
- return config
76
- },
77
-
78
- /**
79
- * @description: 请求拦截器处理
80
- */
81
- requestInterceptors: (config) => {
82
- const user = useStoreUser()
83
- const carryToken = isBoolean(config.carryToken) ? config.carryToken : true
84
- if (user.accessToken && carryToken)
85
- config.headers[tokenName] = user.accessToken
86
- return config
87
- },
88
-
89
- /**
90
- * @description: 响应拦截器处理
91
- */
92
- responseInterceptors: (res) => {
93
- return res
94
- },
95
-
96
- /**
97
- * @description: 响应错误处理
98
- */
99
- responseInterceptorsCatch: (error: any) => {
100
- const { response } = error
101
- let errorMessage = error.message || ''
102
- if (error.response && error.response.data) {
103
- const { status } = response
104
- handleCode(status, errorMessage)
105
- return Promise.resolve(false)
106
- } else {
107
- if (errorMessage === 'Network Error') {
108
- errorMessage = '后端接口连接异常'
109
- }
110
- if (errorMessage.includes('timeout')) {
111
- errorMessage = '后端接口请求超时'
112
- }
113
- if (errorMessage.includes('Request failed with status code')) {
114
- const code = errorMessage.substr(errorMessage.length - 3)
115
- errorMessage = '后端接口' + code || '' + '异常'
116
- }
117
- message.error(errorMessage || `后端接口未知异常`)
118
- return Promise.resolve(false)
119
- }
120
- },
121
- /**
122
- * @description: 处理响应错误数据
123
- */
124
- requestCatchHook: () => false
125
- }
126
-
127
- function createXhr(opt ?: Partial<GAxiosOptions>) {
128
- return new GAxios({
129
- method: 'get',
130
- timeout: requestTimeout,
131
- headers: {
132
- 'Content-Type': contentType
133
- },
134
- // 忽略重复请求
135
- ignoreCancelToken: true,
136
- // 是否携带token
137
- carryToken: true,
138
- ...xhtInstance,
139
- ...opt
140
- })
141
- }
142
-
143
- const request: (opt?: GAxiosOptions) => Promise<ResponseResult> = (opt) => createXhr().request(opt)
144
-
145
- export default request
@@ -1,114 +0,0 @@
1
- import type { AxiosRequestConfig, AxiosResponse, Axios, AxiosPromise } from 'axios'
2
-
3
- export type XhtInstance = {
4
- /**
5
- * @Author gx12358
6
- * @DateTime 2023/1/6
7
- * @lastTime 2023/1/6
8
- * @description 请求之前处理config
9
- */
10
- beforeRequestHook?: (config: GAxiosOptions) => GAxiosOptions;
11
-
12
- /**
13
- * @description: 处理响应数据
14
- */
15
- transformResponseHook?: (res: AxiosResponse, options: GAxiosOptions) => any;
16
-
17
- /**
18
- * @description: 请求失败处理
19
- */
20
- requestCatchHook?: (e: Error) => boolean;
21
-
22
- /**
23
- * @description: 请求之前的拦截器
24
- */
25
- requestInterceptors?: (config: GAxiosOptions) => GAxiosOptions;
26
-
27
- /**
28
- * @description: 请求之后的拦截器
29
- */
30
- responseInterceptors?: (res: AxiosResponse) => AxiosResponse;
31
-
32
- /**
33
- * @description: 请求之前的拦截器错误处理
34
- */
35
- requestInterceptorsCatch?: (error: Error) => void;
36
-
37
- /**
38
- * @description: 请求之后的拦截器错误处理
39
- */
40
- responseInterceptorsCatch?: (axiosInstance: GAxiosInstance, error: Error) => void;
41
- }
42
-
43
- export interface GAxiosOptions extends AxiosRequestConfig {
44
- headers?: Recordable;
45
- isMock?: boolean; // 是否是mock
46
- isReturnNativeResponse?: boolean; // 直接返回response,不作任何处理(包含响应值等基本信息)
47
- customize?: boolean; // 直接返回response.data(接口返回值),错误不做统一提示
48
- carryToken?: boolean; // 是否携带token
49
- ignoreCancelToken?: boolean; // 忽略重复请求
50
- /**
51
- * @Author gx12358
52
- * @DateTime 2023/1/6
53
- * @lastTime 2023/1/6
54
- * @description 请求之前处理config
55
- */
56
- beforeRequestHook?: (config: GAxiosOptions) => GAxiosOptions;
57
-
58
- /**
59
- * @description: 处理响应数据
60
- */
61
- transformResponseHook?: (res: AxiosResponse, options: GAxiosOptions) => any;
62
-
63
- /**
64
- * @description: 请求失败处理
65
- */
66
- requestCatchHook?: (e: Error) => boolean;
67
-
68
- /**
69
- * @description: 请求之前的拦截器
70
- */
71
- requestInterceptors?: (config: GAxiosOptions) => GAxiosOptions;
72
-
73
- /**
74
- * @description: 请求之后的拦截器
75
- */
76
- responseInterceptors?: (res: AxiosResponse) => AxiosResponse;
77
-
78
- /**
79
- * @description: 请求之前的拦截器错误处理
80
- */
81
- requestInterceptorsCatch?: (error: Error) => void;
82
-
83
- /**
84
- * @description: 请求之后的拦截器错误处理
85
- */
86
- responseInterceptorsCatch?: (axiosInstance: GAxiosInstance, error: Error) => void;
87
- }
88
-
89
- export interface GAxiosInstance extends Axios {
90
- (config: GAxiosOptions): AxiosPromise<ResponseResult>;
91
-
92
- (url: string, config?: GAxiosOptions): AxiosPromise<ResponseResult>;
93
- }
94
-
95
- /**
96
- * @description: request method
97
- */
98
- export enum RequestEnum {
99
- GET = 'GET',
100
- POST = 'POST',
101
- PUT = 'PUT',
102
- DELETE = 'DELETE',
103
- }
104
-
105
- /**
106
- * @description: contentType
107
- */
108
- export enum ContentTypeEnum {
109
- // json
110
- JSON = 'application/json;charset=UTF-8',
111
- // form-data qs
112
- FORM_URLENCODED = 'application/x-www-form-urlencoded;charset=UTF-8',
113
- }
114
-
@@ -1,194 +0,0 @@
1
- import dayjs from 'dayjs'
2
- import config from '/config/config'
3
- import { isPro } from '@/utils/env'
4
- import { Decrypt, Encrypt } from '@/utils/crypto'
5
- import { isJSONStr } from '@/utils/validate'
6
- import { isObject } from '@gx-design-vue/pro-utils'
7
-
8
- const { shortName } = config.defaultSettings
9
-
10
- function isEncryption(status: boolean) {
11
- return isPro() ? status : false
12
- }
13
-
14
- function handleStorageValue(value: string) {
15
- if (isJSONStr(value)) return JSON.parse(value)
16
- return value
17
- }
18
-
19
- /**
20
- * @Author gx12358
21
- * @DateTime 2019/12/3
22
- * @lastTime 2019/12/3
23
- * @description 设置Local-key的规则
24
- */
25
- export function getStorageKey(key: string, originKey?: boolean) {
26
- const { pkg } = __APP_INFO__
27
- const { VITE_USE_MODE, VITE_APP_ENV } = import.meta.env
28
- return originKey ? key : `${shortName}_${pkg.version}_${VITE_APP_ENV === 'dev'
29
- ? 'development'
30
- : VITE_USE_MODE}_${key}`
31
- }
32
-
33
- /**
34
- * @Author gx12358
35
- * @DateTime 2019/12/3
36
- * @lastTime 2019/12/3
37
- * @description 获取Storage
38
- */
39
- export function getStorage({
40
- key,
41
- encryption = true,
42
- type = 'local',
43
- originKey
44
- }: { key: string, encryption?: boolean, type?: string, originKey?: boolean }) {
45
- const storageValue = type === 'local' ?
46
- localStorage.getItem(getStorageKey(key, originKey))
47
- : sessionStorage.getItem(getStorageKey(key, originKey))
48
- const result: string | LocalResult = storageValue ?
49
- isEncryption(encryption) ? Decrypt(storageValue) : handleStorageValue(storageValue)
50
- : ''
51
- if (result && isObject(result)) {
52
- if (result.expired) {
53
- const expiredStatus = dayjs().diff(dayjs(result.time)) >= result.expired
54
- if (expiredStatus) {
55
- removeStorage(key, type)
56
- return ''
57
- }
58
- }
59
- }
60
- return result?.['value'] || result || ''
61
- }
62
-
63
- /**
64
- * @Author gx12358
65
- * @DateTime 2019/12/3
66
- * @lastTime 2019/12/3
67
- * @description 设置Storage
68
- */
69
- export function setStorage({
70
- key,
71
- value,
72
- expired,
73
- originKey,
74
- encryption = true,
75
- type = 'local'
76
- }: {
77
- key: string;
78
- value: any;
79
- originKey?: boolean;
80
- expired?: number;
81
- encryption?: boolean;
82
- type?: string;
83
- }) {
84
- const result: LocalResult = originKey ? value : {
85
- value,
86
- time: dayjs().format('YYYY-MM-DD HH:mm:ss'),
87
- expired: expired || 0
88
- }
89
- const storageValue = isEncryption(encryption) ? Encrypt(JSON.stringify(result)) : JSON.stringify(result)
90
- if (type === 'local') localStorage.setItem(getStorageKey(key, originKey), storageValue)
91
- sessionStorage.setItem(getStorageKey(key, originKey), storageValue)
92
- }
93
-
94
- /**
95
- * @Author gx12358
96
- * @DateTime 2019/12/3
97
- * @lastTime 2019/12/3
98
- * @description 删除Storage
99
- */
100
- export function removeStorage(key: string, type = 'local', originKey?: boolean) {
101
- if (type === 'local') localStorage.removeItem(getStorageKey(key, originKey))
102
- sessionStorage.removeItem(getStorageKey(key, originKey))
103
- }
104
-
105
- /**
106
- * @Author gx12358
107
- * @DateTime 2019-09-24
108
- * @lastTime 2019-09-24
109
- * @description 获取Cookie-name
110
- */
111
- function getCookies(cname: string) {
112
- const name = `${cname}=`
113
- const decodedCookie = decodeURIComponent(document.cookie)
114
- const ca = decodedCookie.split(';')
115
- for (let i = 0; i < ca.length; i += 1) {
116
- let c = ca[i]
117
- while (c.charAt(0) === ' ') {
118
- c = c.substring(1)
119
- }
120
- if (c.indexOf(name) === 0) {
121
- return decodeURIComponent(c.substring(name.length, c.length))
122
- }
123
- }
124
- return ''
125
- }
126
-
127
- /**
128
- * @Author gx12358
129
- * @DateTime 2019-09-24
130
- * @lastTime 2019-09-24
131
- * @description 获取Cookiedomin
132
- */
133
- function GetCookieDomain() {
134
- let host = location.hostname
135
- const ip = /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/
136
- if (ip.test(host) === true || host === 'localhost') return host
137
- const regex = /([^]*).*/
138
- const match = host.match(regex)
139
- if (typeof match !== 'undefined' && match !== null) {
140
- const someIndex = 1
141
- host = match[someIndex]
142
- }
143
- if (typeof host !== 'undefined' && host !== null) {
144
- const strAry = host.split('.')
145
- if (strAry.length > 1) {
146
- host = `${strAry[strAry.length - 2]}.${strAry[strAry.length - 1]}`
147
- }
148
- }
149
- return `.${host}`
150
- }
151
-
152
- /**
153
- * @Author gx12358
154
- * @DateTime 2019-09-24
155
- * @lastTime 2019-09-24
156
- * @description 设置Cookie
157
- */
158
- export function setCookie(cname: string, cvalue: string, exdays?: number) {
159
- const d = new Date()
160
- d.setTime(d.getTime() + (exdays || 365) * 24 * 60 * 60 * 1000)
161
- const expires = `=${d.toUTCString()}`
162
- document.cookie = `${cname}=${encodeURIComponent(
163
- cvalue
164
- )}; expires=${expires}; domain=${GetCookieDomain()}; path=/`
165
- }
166
-
167
- /**
168
- * @Author gx12358
169
- * @DateTime 2019-09-24
170
- * @lastTime 2019-09-24
171
- * @description 获取Cookie
172
- */
173
- export function getCookie(cname: string) {
174
- const result = getCookies(cname)
175
- if (result === '') {
176
- return ''
177
- }
178
- return decodeURIComponent(result)
179
- }
180
-
181
- /**
182
- * @Author gx12358
183
- * @DateTime 2019-09-24
184
- * @lastTime 2019-09-24
185
- * @description 删除Cookie
186
- */
187
- export function delCookie(name: string) {
188
- const exp = new Date()
189
- exp.setTime(exp.getTime() - 1)
190
- const cval = getCookies(name)
191
- if (cval !== null) {
192
- document.cookie = `${name}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; domain=${GetCookieDomain()}; path=/`
193
- }
194
- }
@@ -1,26 +0,0 @@
1
- import dayjs from 'dayjs'
2
- import { getRandomNumber } from '@gx-design-vue/pro-utils'
3
-
4
- /**
5
- * @Author gx12358
6
- * @DateTime 2022/4/22
7
- * @lastTime 2022/4/22
8
- * @description 修改文件名
9
- */
10
- export const createFileName = ({
11
- file,
12
- name,
13
- }: {
14
- file: File | string;
15
- name?: string;
16
- }) => {
17
- if (name !== 'image' && name !== 'vod') return name
18
- const names = file instanceof File ? file.name.split('.') : file.split('.')
19
- const time1 = dayjs().format('YYYYMMDDHH')
20
- const uuid = `${name || 'vod'}/creator/${time1}/${getRandomNumber().uuid(32).toLowerCase()}`
21
- if (names.length > 1) {
22
- return uuid + '.' + names[names.length - 1]
23
- } else {
24
- return uuid
25
- }
26
- }