@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.
- package/package.json +1 -1
- package/src/cli.js +1 -1
- package/src/main.js +4 -0
- package/template-design-pro/.editorconfig +0 -19
- package/template-design-pro/.env +0 -2
- package/template-design-pro/.env.development +0 -18
- package/template-design-pro/.env.pro +0 -32
- package/template-design-pro/.env.production +0 -32
- package/template-design-pro/.env.test +0 -20
- package/template-design-pro/.eslintignore +0 -16
- package/template-design-pro/.eslintrc.js +0 -64
- package/template-design-pro/.gitpod.yml +0 -6
- package/template-design-pro/.husky/pre-commit +0 -4
- package/template-design-pro/.prettierignore +0 -9
- package/template-design-pro/.stylelintignore +0 -3
- package/template-design-pro/.yarnclean +0 -48
- package/template-design-pro/LICENSE +0 -21
- package/template-design-pro/README.md +0 -111
- package/template-design-pro/build/constant.ts +0 -6
- package/template-design-pro/build/generate/generateModifyVars.ts +0 -18
- package/template-design-pro/build/getConfigFileName.ts +0 -13
- package/template-design-pro/build/script/buildConf.ts +0 -44
- package/template-design-pro/build/script/postBuild.ts +0 -25
- package/template-design-pro/build/script/reSetRootHtml.ts +0 -20
- package/template-design-pro/build/utils.ts +0 -85
- package/template-design-pro/build/vite/cdn.ts +0 -7
- package/template-design-pro/build/vite/optimizer.ts +0 -22
- package/template-design-pro/build/vite/plugin/autoImport.ts +0 -18
- package/template-design-pro/build/vite/plugin/compress.ts +0 -35
- package/template-design-pro/build/vite/plugin/hmr.ts +0 -25
- package/template-design-pro/build/vite/plugin/html.ts +0 -47
- package/template-design-pro/build/vite/plugin/index.ts +0 -89
- package/template-design-pro/build/vite/plugin/mock.ts +0 -20
- package/template-design-pro/build/vite/plugin/pwa.ts +0 -37
- package/template-design-pro/build/vite/plugin/styleImport.ts +0 -129
- package/template-design-pro/build/vite/plugin/visualizer.ts +0 -17
- package/template-design-pro/build/vite/plugin/vite-plugin-antd-theme/index.ts +0 -24
- package/template-design-pro/build/vite/plugin/vite-plugin-mock/createMockServer.ts +0 -303
- package/template-design-pro/build/vite/plugin/vite-plugin-mock/createProdMockServer.ts +0 -93
- package/template-design-pro/build/vite/plugin/vite-plugin-mock/index.ts +0 -68
- package/template-design-pro/build/vite/plugin/vite-plugin-mock/types.ts +0 -30
- package/template-design-pro/build/vite/plugin/vite-plugin-mock/utils.ts +0 -26
- package/template-design-pro/commitlint.config.js +0 -32
- package/template-design-pro/config/config.ts +0 -14
- package/template-design-pro/config/default/animate.ts +0 -30
- package/template-design-pro/config/default/defaultSettings.ts +0 -75
- package/template-design-pro/config/default/network.ts +0 -16
- package/template-design-pro/config/default/proxy.ts +0 -26
- package/template-design-pro/config/default/theme.ts +0 -43
- package/template-design-pro/config/default/themeColor.ts +0 -62
- package/template-design-pro/index.html +0 -45
- package/template-design-pro/jest.config.mjs +0 -36
- package/template-design-pro/mock/_createProductionServer.ts +0 -19
- package/template-design-pro/mock/_util.ts +0 -55
- package/template-design-pro/mock/controller/menu.ts +0 -85
- package/template-design-pro/mock/controller/notices.ts +0 -114
- package/template-design-pro/mock/system/dict.ts +0 -60
- package/template-design-pro/mock/system/user.ts +0 -218
- package/template-design-pro/package.json +0 -151
- package/template-design-pro/pnpm-lock.yaml +0 -9913
- package/template-design-pro/postcss.config.js +0 -5
- package/template-design-pro/prettier.config.js +0 -18
- package/template-design-pro/public/resource/css/index.css +0 -171
- package/template-design-pro/public/resource/img/favicon.ico +0 -0
- package/template-design-pro/public/resource/img/logo.png +0 -0
- package/template-design-pro/public/resource/img/pro_icon.svg +0 -5
- package/template-design-pro/public/resource/img/pwa-192x192.png +0 -0
- package/template-design-pro/public/resource/img/pwa-512x512.png +0 -0
- package/template-design-pro/src/App.vue +0 -47
- package/template-design-pro/src/assets/error_images/403.png +0 -0
- package/template-design-pro/src/assets/error_images/404.png +0 -0
- package/template-design-pro/src/assets/error_images/cloud.png +0 -0
- package/template-design-pro/src/assets/login_images/login_background.svg +0 -69
- package/template-design-pro/src/assets/logo.png +0 -0
- package/template-design-pro/src/assets/menu_font/iconfont.css +0 -94
- package/template-design-pro/src/assets/menu_font/iconfont.eot +0 -0
- package/template-design-pro/src/assets/menu_font/iconfont.js +0 -1
- package/template-design-pro/src/assets/menu_font/iconfont.json +0 -142
- package/template-design-pro/src/assets/menu_font/iconfont.svg +0 -57
- package/template-design-pro/src/assets/menu_font/iconfont.ttf +0 -0
- package/template-design-pro/src/assets/menu_font/iconfont.woff +0 -0
- package/template-design-pro/src/assets/menu_font/iconfont.woff2 +0 -0
- package/template-design-pro/src/assets/menu_font/index.less +0 -94
- package/template-design-pro/src/common/global.ts +0 -1
- package/template-design-pro/src/components/GDesign/ProLayout/BasicLayout.less +0 -80
- package/template-design-pro/src/components/GDesign/ProLayout/BasicLayout.tsx +0 -342
- package/template-design-pro/src/components/GDesign/ProLayout/PageLoading.tsx +0 -20
- package/template-design-pro/src/components/GDesign/ProLayout/RenderTypings.ts +0 -31
- package/template-design-pro/src/components/GDesign/ProLayout/RouteContext.tsx +0 -82
- package/template-design-pro/src/components/GDesign/ProLayout/WrapContent.tsx +0 -69
- package/template-design-pro/src/components/GDesign/ProLayout/components/GlobalFooter/index.tsx +0 -88
- package/template-design-pro/src/components/GDesign/ProLayout/components/GlobalHeader/DefaultHeader.tsx +0 -189
- package/template-design-pro/src/components/GDesign/ProLayout/components/GlobalHeader/Header.less +0 -8
- package/template-design-pro/src/components/GDesign/ProLayout/components/GlobalHeader/index.tsx +0 -105
- package/template-design-pro/src/components/GDesign/ProLayout/components/GlobalHeader/props.ts +0 -69
- package/template-design-pro/src/components/GDesign/ProLayout/components/GlobalHeader/style.less +0 -144
- package/template-design-pro/src/components/GDesign/ProLayout/components/LogoContent/index.tsx +0 -81
- package/template-design-pro/src/components/GDesign/ProLayout/components/LogoContent/props.ts +0 -29
- package/template-design-pro/src/components/GDesign/ProLayout/components/MultiTab/index.tsx +0 -384
- package/template-design-pro/src/components/GDesign/ProLayout/components/MultiTab/props.ts +0 -15
- package/template-design-pro/src/components/GDesign/ProLayout/components/MultiTab/style.less +0 -79
- package/template-design-pro/src/components/GDesign/ProLayout/components/NoticeIcon/NoticeIcon.tsx +0 -148
- package/template-design-pro/src/components/GDesign/ProLayout/components/NoticeIcon/NoticeList.module.less +0 -115
- package/template-design-pro/src/components/GDesign/ProLayout/components/NoticeIcon/NoticeList.tsx +0 -154
- package/template-design-pro/src/components/GDesign/ProLayout/components/NoticeIcon/index.less +0 -39
- package/template-design-pro/src/components/GDesign/ProLayout/components/NoticeIcon/index.tsx +0 -133
- package/template-design-pro/src/components/GDesign/ProLayout/components/PageContainer/index.tsx +0 -190
- package/template-design-pro/src/components/GDesign/ProLayout/components/PageContainer/props.ts +0 -48
- package/template-design-pro/src/components/GDesign/ProLayout/components/PageContainer/style.less +0 -128
- package/template-design-pro/src/components/GDesign/ProLayout/components/PageContainer/typings.ts +0 -0
- package/template-design-pro/src/components/GDesign/ProLayout/components/RightContent/AvatarDropdown.tsx +0 -63
- package/template-design-pro/src/components/GDesign/ProLayout/components/RightContent/HeaderSearch.tsx +0 -122
- package/template-design-pro/src/components/GDesign/ProLayout/components/RightContent/headerSearch.less +0 -30
- package/template-design-pro/src/components/GDesign/ProLayout/components/RightContent/index.tsx +0 -95
- package/template-design-pro/src/components/GDesign/ProLayout/components/RightContent/style.less +0 -90
- package/template-design-pro/src/components/GDesign/ProLayout/components/SettingDrawer/BlockCheckbox.tsx +0 -70
- package/template-design-pro/src/components/GDesign/ProLayout/components/SettingDrawer/LayoutSetting.tsx +0 -107
- package/template-design-pro/src/components/GDesign/ProLayout/components/SettingDrawer/ThemeColor.tsx +0 -68
- package/template-design-pro/src/components/GDesign/ProLayout/components/SettingDrawer/index.tsx +0 -346
- package/template-design-pro/src/components/GDesign/ProLayout/components/SiderMenu/BaseMenu.tsx +0 -224
- package/template-design-pro/src/components/GDesign/ProLayout/components/SiderMenu/SiderMenu.tsx +0 -224
- package/template-design-pro/src/components/GDesign/ProLayout/components/SiderMenu/index.tsx +0 -43
- package/template-design-pro/src/components/GDesign/ProLayout/components/SiderMenu/props.ts +0 -112
- package/template-design-pro/src/components/GDesign/ProLayout/components/SiderMenu/style.less +0 -262
- package/template-design-pro/src/components/GDesign/ProLayout/components/SiderMenu/typings.ts +0 -44
- package/template-design-pro/src/components/GDesign/ProLayout/default.less +0 -2
- package/template-design-pro/src/components/GDesign/ProLayout/defaultSettings.ts +0 -121
- package/template-design-pro/src/components/GDesign/ProLayout/hooks/context/index.ts +0 -45
- package/template-design-pro/src/components/GDesign/ProLayout/index.ts +0 -43
- package/template-design-pro/src/components/GDesign/ProLayout/props.ts +0 -57
- package/template-design-pro/src/components/GDesign/ProLayout/style.less +0 -272
- package/template-design-pro/src/components/GDesign/ProLayout/typings.ts +0 -1
- package/template-design-pro/src/components/GDesign/ProLayout/utils/getMenuData.ts +0 -31
- package/template-design-pro/src/components/GDesign/ProLayout/utils/index.ts +0 -94
- package/template-design-pro/src/components/GDesign/ProLayout/utils/isImg/index.ts +0 -6
- package/template-design-pro/src/components/GDesign/ProLayout/utils/isUrl/index.ts +0 -5
- package/template-design-pro/src/components/GDesign/Result/index.tsx +0 -142
- package/template-design-pro/src/components/GDesign/Result/style.less +0 -140
- package/template-design-pro/src/components/GDesign/Scrollbars/components/Bar/index.tsx +0 -56
- package/template-design-pro/src/components/GDesign/Scrollbars/components/Bar/props.ts +0 -23
- package/template-design-pro/src/components/GDesign/Scrollbars/components/Thumb/index.tsx +0 -164
- package/template-design-pro/src/components/GDesign/Scrollbars/components/Thumb/props.ts +0 -11
- package/template-design-pro/src/components/GDesign/Scrollbars/context.ts +0 -10
- package/template-design-pro/src/components/GDesign/Scrollbars/index.tsx +0 -200
- package/template-design-pro/src/components/GDesign/Scrollbars/props.ts +0 -65
- package/template-design-pro/src/components/GDesign/Scrollbars/style.less +0 -85
- package/template-design-pro/src/components/GDesign/Scrollbars/util.ts +0 -40
- package/template-design-pro/src/components/GDesign/utils/index.ts +0 -7
- package/template-design-pro/src/components/PageLoading/index.tsx +0 -44
- package/template-design-pro/src/components/PageTransition/index.vue +0 -98
- package/template-design-pro/src/components/index.ts +0 -6
- package/template-design-pro/src/core/ant-design/index.ts +0 -14
- package/template-design-pro/src/core/gx-admin-design/index.ts +0 -7
- package/template-design-pro/src/core/gx-admin-directives/index.ts +0 -8
- package/template-design-pro/src/core/gx-admin-directives/permission.ts +0 -28
- package/template-design-pro/src/core/gx-design/index.ts +0 -7
- package/template-design-pro/src/core/gx-pro-design/index.ts +0 -10
- package/template-design-pro/src/core/index.ts +0 -27
- package/template-design-pro/src/design/ant-design/index.less +0 -4
- package/template-design-pro/src/design/ant-design/layout.less +0 -29
- package/template-design-pro/src/design/ant-design/menu.less +0 -55
- package/template-design-pro/src/design/ant-design/table.less +0 -67
- package/template-design-pro/src/design/ant-design/tooltip.less +0 -13
- package/template-design-pro/src/design/color.less +0 -1
- package/template-design-pro/src/design/config.less +0 -5
- package/template-design-pro/src/design/index.less +0 -41
- package/template-design-pro/src/design/mixin.less +0 -66
- package/template-design-pro/src/design/normalize.less +0 -390
- package/template-design-pro/src/global.less +0 -15
- package/template-design-pro/src/hooks/core/index.ts +0 -3
- package/template-design-pro/src/hooks/core/useRequest/index.ts +0 -70
- package/template-design-pro/src/hooks/core/useRequest/typings.ts +0 -0
- package/template-design-pro/src/hooks/event/index.ts +0 -3
- package/template-design-pro/src/hooks/event/useClipboard.ts +0 -14
- package/template-design-pro/src/hooks/system/index.ts +0 -5
- package/template-design-pro/src/hooks/system/useDict.ts +0 -62
- package/template-design-pro/src/hooks/system/usePermissions.ts +0 -39
- package/template-design-pro/src/hooks/typings.ts +0 -17
- package/template-design-pro/src/layout/BasicLayout.vue +0 -104
- package/template-design-pro/src/layout/BlankLayout.vue +0 -5
- package/template-design-pro/src/layout/ContentView.vue +0 -76
- package/template-design-pro/src/layout/IframeView.vue +0 -1
- package/template-design-pro/src/layout/UserLayout.vue +0 -7
- package/template-design-pro/src/main.ts +0 -34
- package/template-design-pro/src/plugins/index.ts +0 -3
- package/template-design-pro/src/router/guard/index.ts +0 -84
- package/template-design-pro/src/router/guard/permissions.ts +0 -73
- package/template-design-pro/src/router/guard/stateGuard.ts +0 -11
- package/template-design-pro/src/router/helper/routeHelper.ts +0 -244
- package/template-design-pro/src/router/helper/utils.ts +0 -19
- package/template-design-pro/src/router/index.ts +0 -30
- package/template-design-pro/src/router/routes/index.ts +0 -85
- package/template-design-pro/src/router/routes/modules/workplace.ts +0 -19
- package/template-design-pro/src/services/common/index.ts +0 -11
- package/template-design-pro/src/services/controller/router.ts +0 -10
- package/template-design-pro/src/services/controller/user.ts +0 -35
- package/template-design-pro/src/services/system/dictData.ts +0 -10
- package/template-design-pro/src/services/system/notices.ts +0 -9
- package/template-design-pro/src/store/index.ts +0 -32
- package/template-design-pro/src/store/modules/dict.ts +0 -27
- package/template-design-pro/src/store/modules/permission.ts +0 -19
- package/template-design-pro/src/store/modules/routes.ts +0 -110
- package/template-design-pro/src/store/modules/settings.ts +0 -102
- package/template-design-pro/src/store/modules/tabsRouter.ts +0 -73
- package/template-design-pro/src/store/modules/user.ts +0 -153
- package/template-design-pro/src/utils/accessToken.ts +0 -93
- package/template-design-pro/src/utils/crypto.ts +0 -39
- package/template-design-pro/src/utils/env.ts +0 -52
- package/template-design-pro/src/utils/fetchFile.ts +0 -79
- package/template-design-pro/src/utils/index.ts +0 -127
- package/template-design-pro/src/utils/pageTitle.ts +0 -17
- package/template-design-pro/src/utils/request/XHR.ts +0 -131
- package/template-design-pro/src/utils/request/axiosCancel.ts +0 -60
- package/template-design-pro/src/utils/request/checkStatus.ts +0 -26
- package/template-design-pro/src/utils/request/index.ts +0 -145
- package/template-design-pro/src/utils/request/typings.ts +0 -114
- package/template-design-pro/src/utils/storage.ts +0 -194
- package/template-design-pro/src/utils/uploadFile.ts +0 -26
- package/template-design-pro/src/utils/util.ts +0 -278
- package/template-design-pro/src/utils/validate.ts +0 -221
- package/template-design-pro/src/views/Iframe/index.vue +0 -76
- package/template-design-pro/src/views/MenuOne/index.vue +0 -15
- package/template-design-pro/src/views/MenuTwo/index.vue +0 -13
- package/template-design-pro/src/views/exception/403/index.vue +0 -9
- package/template-design-pro/src/views/exception/404/index.vue +0 -9
- package/template-design-pro/src/views/user/login/index.vue +0 -110
- package/template-design-pro/src/views/user/login/style.less +0 -38
- package/template-design-pro/stylelint.config.js +0 -106
- package/template-design-pro/tests/__mocks__/fileMock.ts +0 -1
- package/template-design-pro/tests/__mocks__/styleMock.ts +0 -1
- package/template-design-pro/tests/__mocks__/workerMock.ts +0 -5
- package/template-design-pro/tests/server/README.md +0 -15
- package/template-design-pro/tests/server/controller/FileController.ts +0 -18
- package/template-design-pro/tests/server/controller/UserController.ts +0 -15
- package/template-design-pro/tests/server/ecosystem.config.js +0 -18
- package/template-design-pro/tests/server/index.ts +0 -63
- package/template-design-pro/tests/server/nodemon.json +0 -8
- package/template-design-pro/tests/server/package.json +0 -36
- package/template-design-pro/tests/server/routes.ts +0 -23
- package/template-design-pro/tests/server/service/FileService.ts +0 -54
- package/template-design-pro/tests/server/service/UserService.ts +0 -25
- package/template-design-pro/tests/server/tsconfig.json +0 -15
- package/template-design-pro/tests/server/utils.ts +0 -9
- package/template-design-pro/tests/server/yarn.lock +0 -2955
- package/template-design-pro/tests/test.spec.ts +0 -16
- package/template-design-pro/tsconfig.json +0 -47
- package/template-design-pro/types/auto-imports.d.ts +0 -61
- package/template-design-pro/types/config.d.ts +0 -100
- package/template-design-pro/types/global.d.ts +0 -103
- package/template-design-pro/types/gx-components.d.ts +0 -24
- package/template-design-pro/types/index.d.ts +0 -13
- package/template-design-pro/types/mock.d.ts +0 -23
- package/template-design-pro/types/module.d.ts +0 -16
- package/template-design-pro/types/response.d.ts +0 -15
- package/template-design-pro/types/route.d.ts +0 -89
- package/template-design-pro/vite.config.ts +0 -136
- 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
|
-
}
|