@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,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
- }