@gx-design-vue/create-gx-cli 0.0.5 → 0.0.7
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 +3 -3
- package/src/main.js +6 -1
- package/template-mobile-vant-cli/build/generateModifyVars.ts +7 -0
- package/template-mobile-vant-cli/build/script/postBuild.ts +0 -1
- package/{template-design-pro/src/components/GDesign/ProLayout/components/PageContainer/typings.ts → template-mobile-vant-cli/src/design/config.less} +0 -0
- package/template-mobile-vant-cli/types/components.d.ts +0 -2
- package/template-mobile-vant-cli/types/global.d.ts +3 -3
- package/template-mobile-vant-cli/types/module.d.ts +0 -2
- package/template-mobile-vant-cli/vite.config.ts +6 -7
- 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/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,153 +0,0 @@
|
|
1
|
-
import { reactive, toRefs } from 'vue'
|
2
|
-
import { defineStore } from 'pinia'
|
3
|
-
import { message, notification } from 'ant-design-vue'
|
4
|
-
import config from '/config/config'
|
5
|
-
import { getUserInfo, login, logout } from '@/services/controller/user'
|
6
|
-
import { getAccessToken, removeAccessToken, setAccessToken } from '@/utils/accessToken'
|
7
|
-
import { timeFix } from '@/utils/util'
|
8
|
-
import { useStoreRoutes } from './routes'
|
9
|
-
import { useStorePermission } from './permission'
|
10
|
-
import { useStoreTabsRouter } from './tabsRouter'
|
11
|
-
|
12
|
-
const { tokenName } = config.defaultSettings
|
13
|
-
|
14
|
-
interface RolesInfo {
|
15
|
-
roleId: number;
|
16
|
-
roleKey: string;
|
17
|
-
roleName: string;
|
18
|
-
status: string;
|
19
|
-
}
|
20
|
-
|
21
|
-
export interface UserInfo {
|
22
|
-
admin?: boolean;
|
23
|
-
userId?: number;
|
24
|
-
roles?: RolesInfo[];
|
25
|
-
roleIds?: number[];
|
26
|
-
userName?: string;
|
27
|
-
nickName?: string;
|
28
|
-
avatar?: string;
|
29
|
-
loginDate?: string;
|
30
|
-
}
|
31
|
-
|
32
|
-
export interface UserState {
|
33
|
-
accessToken: string;
|
34
|
-
userInfo: UserInfo;
|
35
|
-
userName: string;
|
36
|
-
loginName: string;
|
37
|
-
avatar: string;
|
38
|
-
}
|
39
|
-
|
40
|
-
export const useStoreUser = defineStore('user', () => {
|
41
|
-
const routes = useStoreRoutes()
|
42
|
-
const auth = useStorePermission()
|
43
|
-
const tabsRouter = useStoreTabsRouter()
|
44
|
-
|
45
|
-
const state = reactive({
|
46
|
-
accessToken: getAccessToken(),
|
47
|
-
userInfo: {},
|
48
|
-
userName: '',
|
49
|
-
loginName: '',
|
50
|
-
avatar: ''
|
51
|
-
} as UserState)
|
52
|
-
|
53
|
-
/**
|
54
|
-
* @Author gx12358
|
55
|
-
* @DateTime 2022/1/11
|
56
|
-
* @lastTime 2022/1/11
|
57
|
-
* @description 登录拦截放行时,设置虚拟角色
|
58
|
-
*/
|
59
|
-
const setVirtualRoles = () => {
|
60
|
-
auth.changeValue('admin', true)
|
61
|
-
state.avatar = 'https://i.gtimg.cn/club/item/face/img/2/15922_100.gif'
|
62
|
-
state.userName = 'admin(未开启登录拦截)'
|
63
|
-
return true
|
64
|
-
}
|
65
|
-
|
66
|
-
/**
|
67
|
-
* @Author gx12358
|
68
|
-
* @DateTime 2022/1/11
|
69
|
-
* @lastTime 2022/1/11
|
70
|
-
* @description 登录
|
71
|
-
*/
|
72
|
-
const userLogin = async (params) => {
|
73
|
-
const response: any = await login(params)
|
74
|
-
const accessToken = response?.data?.[tokenName]
|
75
|
-
if (accessToken) {
|
76
|
-
const expires_in = response?.data?.expires_in
|
77
|
-
state.accessToken = accessToken
|
78
|
-
setAccessToken(accessToken, expires_in ? expires_in * 60 * 1000 : 0)
|
79
|
-
return true
|
80
|
-
}
|
81
|
-
return false
|
82
|
-
}
|
83
|
-
|
84
|
-
/**
|
85
|
-
* @Author gx12358
|
86
|
-
* @DateTime 2022/1/11
|
87
|
-
* @lastTime 2022/1/11
|
88
|
-
* @description 获取用户信息
|
89
|
-
*/
|
90
|
-
const queryUserInfo = async () => {
|
91
|
-
const response: any = await getUserInfo()
|
92
|
-
const { roles, user, permissions } = response
|
93
|
-
if (!user || Object.keys(user).length === 0) {
|
94
|
-
message.error(`验证失败,请重新登录...`)
|
95
|
-
return false
|
96
|
-
}
|
97
|
-
const { userName, avatar, nickName } = user as UserInfo
|
98
|
-
if (userName && roles && Array.isArray(roles)) {
|
99
|
-
auth.changeValue('role', roles)
|
100
|
-
auth.changeValue('ability', permissions)
|
101
|
-
state.userName = userName
|
102
|
-
state.loginName = nickName
|
103
|
-
state.avatar = avatar
|
104
|
-
state.userInfo = user
|
105
|
-
notification.success({
|
106
|
-
message: `欢迎登录${userName}`,
|
107
|
-
description: `${timeFix()}!`
|
108
|
-
})
|
109
|
-
} else {
|
110
|
-
message.error('用户信息接口异常')
|
111
|
-
return false
|
112
|
-
}
|
113
|
-
return true
|
114
|
-
}
|
115
|
-
|
116
|
-
const updateUserInfo = (params: UserInfo) => {
|
117
|
-
Object.assign(state.userInfo, { ...params })
|
118
|
-
}
|
119
|
-
|
120
|
-
/**
|
121
|
-
* @Author gx12358
|
122
|
-
* @DateTime 2022/5/15
|
123
|
-
* @lastTime 2022/5/15
|
124
|
-
* @description 用户退出登录
|
125
|
-
*/
|
126
|
-
const userLogut = async () => {
|
127
|
-
await logout({
|
128
|
-
userName: state.userName
|
129
|
-
})
|
130
|
-
resetPermissions()
|
131
|
-
}
|
132
|
-
|
133
|
-
const resetPermissions = () => {
|
134
|
-
state.accessToken = ''
|
135
|
-
setAccessToken('')
|
136
|
-
auth.changeValue('admin', false)
|
137
|
-
auth.changeValue('role', [])
|
138
|
-
auth.changeValue('ability', [])
|
139
|
-
routes.resetRoute()
|
140
|
-
tabsRouter.blankingTabs()
|
141
|
-
removeAccessToken()
|
142
|
-
}
|
143
|
-
|
144
|
-
return {
|
145
|
-
...toRefs(state),
|
146
|
-
userLogin,
|
147
|
-
userLogut,
|
148
|
-
queryUserInfo,
|
149
|
-
updateUserInfo,
|
150
|
-
setVirtualRoles,
|
151
|
-
resetPermissions
|
152
|
-
}
|
153
|
-
})
|
@@ -1,93 +0,0 @@
|
|
1
|
-
import config from '/config/config'
|
2
|
-
import {
|
3
|
-
setStorage,
|
4
|
-
getStorage,
|
5
|
-
removeStorage,
|
6
|
-
getCookie,
|
7
|
-
setCookie,
|
8
|
-
delCookie
|
9
|
-
} from '@/utils/storage'
|
10
|
-
|
11
|
-
const { storage, tokenTableName } = config.defaultSettings
|
12
|
-
|
13
|
-
/**
|
14
|
-
* @Author gx12358
|
15
|
-
* @DateTime 2021/12/27
|
16
|
-
* @lastTime 2021/12/27
|
17
|
-
* @description 获取accessToken
|
18
|
-
*/
|
19
|
-
export function getAccessToken() {
|
20
|
-
if (storage) {
|
21
|
-
if ('localStorage' === storage) {
|
22
|
-
return getStorage({ key: tokenTableName })
|
23
|
-
} else if ('sessionStorage' === storage) {
|
24
|
-
return getStorage({ key: tokenTableName, type: 'session' })
|
25
|
-
} else if ('cookie' === storage) {
|
26
|
-
return getCookie(tokenTableName)
|
27
|
-
} else {
|
28
|
-
return getStorage({ key: tokenTableName })
|
29
|
-
}
|
30
|
-
} else {
|
31
|
-
return getStorage({ key: tokenTableName })
|
32
|
-
}
|
33
|
-
}
|
34
|
-
|
35
|
-
/**
|
36
|
-
* @author gx12358 2539306317@qq.com
|
37
|
-
* @description 存储accessToken
|
38
|
-
* @param accessToken
|
39
|
-
* @returns {void|*}
|
40
|
-
*/
|
41
|
-
export function setAccessToken(accessToken: string, expired?: number) {
|
42
|
-
if (storage) {
|
43
|
-
if ('localStorage' === storage) {
|
44
|
-
return setStorage({
|
45
|
-
key: tokenTableName,
|
46
|
-
value: accessToken,
|
47
|
-
expired
|
48
|
-
})
|
49
|
-
} else if ('sessionStorage' === storage) {
|
50
|
-
return setStorage({
|
51
|
-
key: tokenTableName,
|
52
|
-
value: accessToken,
|
53
|
-
expired,
|
54
|
-
type: 'session'
|
55
|
-
})
|
56
|
-
} else if ('cookie' === storage) {
|
57
|
-
return setCookie(tokenTableName, accessToken, expired)
|
58
|
-
} else {
|
59
|
-
return setStorage({
|
60
|
-
key: tokenTableName,
|
61
|
-
value: accessToken,
|
62
|
-
expired
|
63
|
-
})
|
64
|
-
}
|
65
|
-
} else {
|
66
|
-
return setStorage({
|
67
|
-
key: tokenTableName,
|
68
|
-
value: accessToken,
|
69
|
-
expired
|
70
|
-
})
|
71
|
-
}
|
72
|
-
}
|
73
|
-
|
74
|
-
/**
|
75
|
-
* @author gx12358 2539306317@qq.com
|
76
|
-
* @description 移除accessToken
|
77
|
-
* @returns {void|Promise<void>}
|
78
|
-
*/
|
79
|
-
export function removeAccessToken() {
|
80
|
-
if (storage) {
|
81
|
-
if ('localStorage' === storage) {
|
82
|
-
return removeStorage(tokenTableName)
|
83
|
-
} else if ('sessionStorage' === storage) {
|
84
|
-
return removeStorage(tokenTableName, 'session')
|
85
|
-
} else if ('cookie' === storage) {
|
86
|
-
return delCookie(tokenTableName)
|
87
|
-
} else {
|
88
|
-
return removeStorage(tokenTableName)
|
89
|
-
}
|
90
|
-
} else {
|
91
|
-
return removeStorage(tokenTableName)
|
92
|
-
}
|
93
|
-
}
|
@@ -1,39 +0,0 @@
|
|
1
|
-
import 'crypto-js/enc-utf8'
|
2
|
-
import 'crypto-js/tripledes'
|
3
|
-
import 'crypto-js/sha1'
|
4
|
-
import * as CryptoJS from 'crypto-js/core'
|
5
|
-
import { isJSONStr } from '@/utils/validate'
|
6
|
-
import { isObject, isArray } from '@gx-design-vue/pro-utils'
|
7
|
-
|
8
|
-
const key = '1234123412ABCDEF' //十六位十六进制数作为密钥
|
9
|
-
|
10
|
-
//加密方法
|
11
|
-
export function Encrypt(word) {
|
12
|
-
let str: string | object = word
|
13
|
-
if (isObject(word) || isArray(word)) {
|
14
|
-
str = JSON.stringify(word)
|
15
|
-
}
|
16
|
-
const keyHex = CryptoJS.enc.Utf8.parse(key)
|
17
|
-
const ivHex = CryptoJS.enc.Utf8.parse(key)
|
18
|
-
const encrypted = CryptoJS.DES.encrypt(str, keyHex, {
|
19
|
-
iv: ivHex,
|
20
|
-
mode: CryptoJS.mode.CBC,
|
21
|
-
padding: CryptoJS.pad.Pkcs7
|
22
|
-
})
|
23
|
-
return CryptoJS.enc.Base64.stringify(encrypted.ciphertext)
|
24
|
-
}
|
25
|
-
|
26
|
-
//解密方法
|
27
|
-
export function Decrypt(word) {
|
28
|
-
const keyHex = CryptoJS.enc.Utf8.parse(key)
|
29
|
-
const ivHex = CryptoJS.enc.Utf8.parse(key)
|
30
|
-
const decrypted = CryptoJS.DES.decrypt({
|
31
|
-
ciphertext: CryptoJS.enc.Base64.parse(word)
|
32
|
-
}, keyHex, {
|
33
|
-
iv: ivHex,
|
34
|
-
mode: CryptoJS.mode.CBC,
|
35
|
-
padding: CryptoJS.pad.Pkcs7
|
36
|
-
})
|
37
|
-
const decryptedStr = decrypted.toString(CryptoJS.enc.Utf8)
|
38
|
-
return isJSONStr(decryptedStr.toString()) ? JSON.parse(decryptedStr.toString()) : decryptedStr.toString()
|
39
|
-
}
|
@@ -1,52 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* @Author gx12358
|
3
|
-
* @DateTime 2022/4/1
|
4
|
-
* @lastTime 2022/4/1
|
5
|
-
* @description 环境:开发
|
6
|
-
*/
|
7
|
-
export function isDev(): boolean {
|
8
|
-
const DEV = typeViteEnv('VITE_USE_MODE') === 'development'
|
9
|
-
return DEV
|
10
|
-
}
|
11
|
-
|
12
|
-
/**
|
13
|
-
* @Author gx12358
|
14
|
-
* @DateTime 2022/4/1
|
15
|
-
* @lastTime 2022/4/1
|
16
|
-
* @description 环境:测试
|
17
|
-
*/
|
18
|
-
export function isTest(): boolean {
|
19
|
-
const PRO = typeViteEnv('VITE_USE_MODE') === 'test'
|
20
|
-
return PRO
|
21
|
-
}
|
22
|
-
|
23
|
-
/**
|
24
|
-
* @Author gx12358
|
25
|
-
* @DateTime 2022/4/1
|
26
|
-
* @lastTime 2022/4/1
|
27
|
-
* @description 环境:正式
|
28
|
-
*/
|
29
|
-
export function isPro(): boolean {
|
30
|
-
return typeViteEnv('VITE_USE_MODE') === 'production'
|
31
|
-
}
|
32
|
-
|
33
|
-
/**
|
34
|
-
* @Author gx12358
|
35
|
-
* @DateTime 2022/4/1
|
36
|
-
* @lastTime 2022/4/1
|
37
|
-
* @description 环境:测试、正式
|
38
|
-
*/
|
39
|
-
export function isBuild(): boolean {
|
40
|
-
return typeViteEnv('VITE_USE_MODE') !== 'development'
|
41
|
-
}
|
42
|
-
|
43
|
-
export function typeViteEnv(key: ViteEnvKey) {
|
44
|
-
let value = import.meta.env[key]
|
45
|
-
if (value) {
|
46
|
-
value = (value as string).replace(/\\n/g, '\n')
|
47
|
-
|
48
|
-
value = value === 'true' ? true : value === 'false' ? false : value
|
49
|
-
}
|
50
|
-
|
51
|
-
return value
|
52
|
-
}
|
@@ -1,79 +0,0 @@
|
|
1
|
-
import type { Method } from 'axios'
|
2
|
-
import { message } from 'ant-design-vue'
|
3
|
-
import config from '/config/config'
|
4
|
-
import { useStoreUser } from '@gx-vuex'
|
5
|
-
import { tansParams } from '@/utils/util'
|
6
|
-
|
7
|
-
const { tokenName } = config.defaultSettings
|
8
|
-
|
9
|
-
export type DownLoadRequestConfig<D = any> = {
|
10
|
-
url: string;
|
11
|
-
method?: Method | string;
|
12
|
-
headers?: HeadersInit;
|
13
|
-
data?: D;
|
14
|
-
params?: any;
|
15
|
-
name?: string; // 下载的名称
|
16
|
-
direct?: boolean; // 是否直接使用url进行请求
|
17
|
-
read?: boolean; // 返回下载地址,不下载
|
18
|
-
showTip?: boolean; // 展示下载中字样
|
19
|
-
}
|
20
|
-
|
21
|
-
export default async function fetchFile(options: DownLoadRequestConfig): Promise<boolean | string> {
|
22
|
-
const user = useStoreUser()
|
23
|
-
if (options.showTip) {
|
24
|
-
message.loading({
|
25
|
-
content: `下载中,请耐心等待。。。。`,
|
26
|
-
key: 'updatable',
|
27
|
-
duration: 0
|
28
|
-
})
|
29
|
-
}
|
30
|
-
const opations: RequestInit = {
|
31
|
-
method: options.method,
|
32
|
-
headers: {
|
33
|
-
'Content-Type': 'application/json',
|
34
|
-
...options.headers
|
35
|
-
}
|
36
|
-
}
|
37
|
-
if (!options.direct) options.url = `${import.meta.env.VITE_BASE_URL}${options.url}`
|
38
|
-
if (user.accessToken && !options.direct)
|
39
|
-
opations.headers[tokenName] = `${user.accessToken}`
|
40
|
-
if (options.params) {
|
41
|
-
let url = options.url + '?' + tansParams(options.params)
|
42
|
-
url = url.slice(0, -1)
|
43
|
-
options.url = url
|
44
|
-
}
|
45
|
-
if (options.method === 'post' && options.data) {
|
46
|
-
opations.body = JSON.stringify(options.data)
|
47
|
-
}
|
48
|
-
const response = await fetch(options.url, opations)
|
49
|
-
const fileName = options.name
|
50
|
-
? options.name
|
51
|
-
: response.headers.get('content-disposition')
|
52
|
-
? response.headers.get('content-disposition').split(';')[1].split('=')[1]
|
53
|
-
: ''
|
54
|
-
const blobResponse = await response.blob()
|
55
|
-
if (blobResponse) {
|
56
|
-
const a = window.document.createElement('a')
|
57
|
-
const downUrl = window.URL.createObjectURL(blobResponse)
|
58
|
-
if (options.read) return downUrl
|
59
|
-
a.href = downUrl
|
60
|
-
a.download = `${decodeURI(fileName)}`
|
61
|
-
a.click()
|
62
|
-
if (options.showTip) {
|
63
|
-
message.success({
|
64
|
-
content: `下载成功`,
|
65
|
-
key: 'updatable'
|
66
|
-
})
|
67
|
-
}
|
68
|
-
window.URL.revokeObjectURL(downUrl)
|
69
|
-
return true
|
70
|
-
} else {
|
71
|
-
if (options.showTip) {
|
72
|
-
message.success({
|
73
|
-
content: `下载失败`,
|
74
|
-
key: 'updatable'
|
75
|
-
})
|
76
|
-
}
|
77
|
-
return false
|
78
|
-
}
|
79
|
-
}
|
@@ -1,127 +0,0 @@
|
|
1
|
-
import PropTypes from 'ant-design-vue/es/_util/vue-types'
|
2
|
-
|
3
|
-
export { PropTypes }
|
4
|
-
|
5
|
-
/**
|
6
|
-
* @author gx12358 2539306317@qq.com
|
7
|
-
* @description 将url请求参数转为json格式
|
8
|
-
* @param url
|
9
|
-
* @returns {{}|any}
|
10
|
-
*/
|
11
|
-
export function paramObj(url) {
|
12
|
-
const search = url.split('?')[1]
|
13
|
-
if (!search) {
|
14
|
-
return {}
|
15
|
-
}
|
16
|
-
return JSON.parse(
|
17
|
-
'{"' +
|
18
|
-
decodeURIComponent(search)
|
19
|
-
.replace(/"/g, '\\"')
|
20
|
-
.replace(/&/g, '","')
|
21
|
-
.replace(/=/g, '":"')
|
22
|
-
.replace(/\+/g, ' ') +
|
23
|
-
'"}'
|
24
|
-
)
|
25
|
-
}
|
26
|
-
|
27
|
-
/**
|
28
|
-
* @author gx12358 2539306317@qq.com
|
29
|
-
* @description 父子关系的数组转换成树形结构数据
|
30
|
-
* @param data
|
31
|
-
* @returns {*}
|
32
|
-
*/
|
33
|
-
export function translateDataToTree(data) {
|
34
|
-
const parent = data.filter(
|
35
|
-
(value) => value.parentId === 'undefined' || value.parentId == null
|
36
|
-
)
|
37
|
-
const children = data.filter(
|
38
|
-
(value) => value.parentId !== 'undefined' && value.parentId != null
|
39
|
-
)
|
40
|
-
const translator = (parent, children) => {
|
41
|
-
parent.forEach((parent) => {
|
42
|
-
children.forEach((current, index) => {
|
43
|
-
if (current.parentId === parent.id) {
|
44
|
-
const temp = JSON.parse(JSON.stringify(children))
|
45
|
-
temp.splice(index, 1)
|
46
|
-
translator([ current ], temp)
|
47
|
-
typeof parent.children !== 'undefined'
|
48
|
-
? parent.children.push(current)
|
49
|
-
: (parent.children = [ current ])
|
50
|
-
}
|
51
|
-
})
|
52
|
-
})
|
53
|
-
}
|
54
|
-
translator(parent, children)
|
55
|
-
return parent
|
56
|
-
}
|
57
|
-
|
58
|
-
/**
|
59
|
-
* @author gx12358 2539306317@qq.com
|
60
|
-
* @description 树形结构数据转换成父子关系的数组
|
61
|
-
* @param data
|
62
|
-
* @returns {[]}
|
63
|
-
*/
|
64
|
-
export function translateTreeToData(data) {
|
65
|
-
const result: any[] = []
|
66
|
-
data.forEach((item) => {
|
67
|
-
const loop = (data) => {
|
68
|
-
result.push({
|
69
|
-
id: data.id,
|
70
|
-
name: data.name,
|
71
|
-
parentId: data.parentId
|
72
|
-
})
|
73
|
-
const child = data.children
|
74
|
-
if (child) {
|
75
|
-
for (let i = 0; i < child.length; i++) {
|
76
|
-
loop(child[i])
|
77
|
-
}
|
78
|
-
}
|
79
|
-
}
|
80
|
-
loop(item)
|
81
|
-
})
|
82
|
-
return result
|
83
|
-
}
|
84
|
-
|
85
|
-
/**
|
86
|
-
* @author gx12358 2539306317@qq.com
|
87
|
-
* @description 10位时间戳转换
|
88
|
-
* @param time
|
89
|
-
* @returns {string}
|
90
|
-
*/
|
91
|
-
export function tenBitTimestamp(time) {
|
92
|
-
const date = new Date(time * 1000)
|
93
|
-
const y = date.getFullYear()
|
94
|
-
let m: any = date.getMonth() + 1
|
95
|
-
m = m < 10 ? '' + m : m
|
96
|
-
let d: any = date.getDate()
|
97
|
-
d = d < 10 ? '' + d : d
|
98
|
-
let h: any = date.getHours()
|
99
|
-
h = h < 10 ? '0' + h : h
|
100
|
-
let minute: any = date.getMinutes()
|
101
|
-
let second: any = date.getSeconds()
|
102
|
-
minute = minute < 10 ? '0' + minute : minute
|
103
|
-
second = second < 10 ? '0' + second : second
|
104
|
-
return y + '年' + m + '月' + d + '日 ' + h + ':' + minute + ':' + second //组合
|
105
|
-
}
|
106
|
-
|
107
|
-
/**
|
108
|
-
* @author gx12358 2539306317@qq.com
|
109
|
-
* @description 13位时间戳转换
|
110
|
-
* @param time
|
111
|
-
* @returns {string}
|
112
|
-
*/
|
113
|
-
export function thirteenBitTimestamp(time) {
|
114
|
-
const date = new Date(time / 1)
|
115
|
-
const y = date.getFullYear()
|
116
|
-
let m: any = date.getMonth() + 1
|
117
|
-
m = m < 10 ? '' + m : m
|
118
|
-
let d: any = date.getDate()
|
119
|
-
d = d < 10 ? '' + d : d
|
120
|
-
let h: any = date.getHours()
|
121
|
-
h = h < 10 ? '0' + h : h
|
122
|
-
let minute: any = date.getMinutes()
|
123
|
-
let second: any = date.getSeconds()
|
124
|
-
minute = minute < 10 ? '0' + minute : minute
|
125
|
-
second = second < 10 ? '0' + second : second
|
126
|
-
return y + '年' + m + '月' + d + '日 ' + h + ':' + minute + ':' + second //组合
|
127
|
-
}
|
@@ -1,17 +0,0 @@
|
|
1
|
-
import config from '/config/config'
|
2
|
-
|
3
|
-
const { title, titleReverse, titleSeparator } = config.defaultSettings
|
4
|
-
|
5
|
-
/**
|
6
|
-
* @author gx12358 2539306317@qq.com
|
7
|
-
* @description 设置标题
|
8
|
-
* @param pageTitle
|
9
|
-
* @returns {string}
|
10
|
-
*/
|
11
|
-
export default function getPageTitle(pageTitle: string) {
|
12
|
-
let newTitles: any = []
|
13
|
-
if (pageTitle) newTitles.push(pageTitle)
|
14
|
-
if (title) newTitles.push(title)
|
15
|
-
if (titleReverse) newTitles = newTitles.reverse()
|
16
|
-
return newTitles.join(titleSeparator)
|
17
|
-
}
|
@@ -1,131 +0,0 @@
|
|
1
|
-
import type { AxiosResponse, AxiosError } from 'axios'
|
2
|
-
import axios from 'axios'
|
3
|
-
import { cloneDeep } from 'lodash-unified'
|
4
|
-
import qs from 'qs'
|
5
|
-
import { isFunction } from '@gx-design-vue/pro-utils'
|
6
|
-
import type { GAxiosInstance, GAxiosOptions } from './typings'
|
7
|
-
import { ContentTypeEnum, RequestEnum } from './typings'
|
8
|
-
import { AxiosCanceler } from './axiosCancel'
|
9
|
-
|
10
|
-
/**
|
11
|
-
* @Author gx12358
|
12
|
-
* @DateTime 2023/1/6
|
13
|
-
* @lastTime 2023/1/6
|
14
|
-
* @description 重新定义axios
|
15
|
-
*/
|
16
|
-
export class GAxios {
|
17
|
-
private axiosInstance: GAxiosInstance
|
18
|
-
private readonly options: GAxiosOptions
|
19
|
-
|
20
|
-
constructor(options: GAxiosOptions) {
|
21
|
-
this.options = options
|
22
|
-
this.axiosInstance = axios.create(options)
|
23
|
-
this.setupInterceptors()
|
24
|
-
}
|
25
|
-
|
26
|
-
/**
|
27
|
-
* @description: Interceptor configuration 拦截器配置
|
28
|
-
*/
|
29
|
-
private setupInterceptors() {
|
30
|
-
const {
|
31
|
-
requestInterceptors,
|
32
|
-
requestInterceptorsCatch,
|
33
|
-
responseInterceptors,
|
34
|
-
responseInterceptorsCatch
|
35
|
-
} = this.options
|
36
|
-
|
37
|
-
const axiosCanceler = new AxiosCanceler()
|
38
|
-
|
39
|
-
this.axiosInstance.interceptors.request.use((config: GAxiosOptions) => {
|
40
|
-
const { ignoreCancelToken } = config
|
41
|
-
const ignoreCancel =
|
42
|
-
ignoreCancelToken !== undefined
|
43
|
-
? ignoreCancelToken
|
44
|
-
: this.options?.ignoreCancelToken
|
45
|
-
|
46
|
-
!ignoreCancel && axiosCanceler.addPending(config)
|
47
|
-
if (requestInterceptors && isFunction(requestInterceptors)) {
|
48
|
-
config = requestInterceptors(config)
|
49
|
-
}
|
50
|
-
return config
|
51
|
-
}, undefined)
|
52
|
-
|
53
|
-
// Request interceptor error capture
|
54
|
-
requestInterceptorsCatch &&
|
55
|
-
isFunction(requestInterceptorsCatch) &&
|
56
|
-
this.axiosInstance.interceptors.request.use(undefined, requestInterceptorsCatch)
|
57
|
-
|
58
|
-
// Response result interceptor processing
|
59
|
-
this.axiosInstance.interceptors.response.use((res: AxiosResponse) => {
|
60
|
-
res && axiosCanceler.removePending(res.config)
|
61
|
-
if (responseInterceptors && isFunction(responseInterceptors)) {
|
62
|
-
return responseInterceptors(res)
|
63
|
-
}
|
64
|
-
return res
|
65
|
-
}, undefined)
|
66
|
-
|
67
|
-
// Response result interceptor error capture
|
68
|
-
responseInterceptorsCatch &&
|
69
|
-
isFunction(responseInterceptorsCatch) &&
|
70
|
-
this.axiosInstance.interceptors.response.use(undefined, (error) => {
|
71
|
-
return responseInterceptorsCatch(this.axiosInstance, error)
|
72
|
-
})
|
73
|
-
}
|
74
|
-
|
75
|
-
// support form-data
|
76
|
-
supportFormData(config: GAxiosOptions) {
|
77
|
-
const headers = config.headers || this.options.headers
|
78
|
-
const contentType = headers?.['Content-Type'] || headers?.['content-type']
|
79
|
-
|
80
|
-
if (
|
81
|
-
contentType !== ContentTypeEnum.FORM_URLENCODED ||
|
82
|
-
!Reflect.has(config, 'data') ||
|
83
|
-
config.method?.toUpperCase() === RequestEnum.GET
|
84
|
-
) {
|
85
|
-
return config
|
86
|
-
}
|
87
|
-
|
88
|
-
return {
|
89
|
-
...config,
|
90
|
-
data: qs.stringify(config.data, { arrayFormat: 'brackets' })
|
91
|
-
}
|
92
|
-
}
|
93
|
-
|
94
|
-
request<T = ResponseResult | boolean>(config: GAxiosOptions): Promise<T> {
|
95
|
-
let conf: GAxiosOptions = cloneDeep(config)
|
96
|
-
|
97
|
-
const opt: GAxiosOptions = Object.assign({}, this.options, conf)
|
98
|
-
|
99
|
-
const { beforeRequestHook, requestCatchHook, transformResponseHook } = opt
|
100
|
-
if (beforeRequestHook && isFunction(beforeRequestHook)) {
|
101
|
-
conf = beforeRequestHook(opt)
|
102
|
-
}
|
103
|
-
|
104
|
-
conf = this.supportFormData(opt)
|
105
|
-
|
106
|
-
return new Promise((resolve) => {
|
107
|
-
this.axiosInstance
|
108
|
-
.request<any, AxiosResponse>(conf)
|
109
|
-
.then((res: AxiosResponse) => {
|
110
|
-
if (transformResponseHook && isFunction(transformResponseHook)) {
|
111
|
-
try {
|
112
|
-
const ret = transformResponseHook(res, config)
|
113
|
-
resolve(ret)
|
114
|
-
} catch (err) {
|
115
|
-
resolve(false as any)
|
116
|
-
return
|
117
|
-
}
|
118
|
-
return
|
119
|
-
}
|
120
|
-
resolve(res as unknown as Promise<T>)
|
121
|
-
})
|
122
|
-
.catch((e: Error | AxiosError) => {
|
123
|
-
if (requestCatchHook && isFunction(requestCatchHook)) {
|
124
|
-
resolve(requestCatchHook(e) as any)
|
125
|
-
return
|
126
|
-
}
|
127
|
-
resolve(false as any)
|
128
|
-
})
|
129
|
-
})
|
130
|
-
}
|
131
|
-
}
|