adtec-core-package 0.4.0 → 0.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (207) hide show
  1. package/.editorconfig +6 -6
  2. package/.prettierrc.json +7 -7
  3. package/.vscode/extensions.json +8 -8
  4. package/README.en.md +36 -36
  5. package/README.md +39 -39
  6. package/env.d.ts +1 -1
  7. package/eslint.config.js +56 -56
  8. package/index.html +13 -13
  9. package/package.json +59 -59
  10. package/src/App.vue +9 -9
  11. package/src/api/BasicApi.ts +17 -17
  12. package/src/api/DocumentApi.ts +27 -27
  13. package/src/api/SysDictCacheApi.ts +26 -26
  14. package/src/api/SysUserApi.ts +35 -35
  15. package/src/api/framework.ts +12 -12
  16. package/src/assets/base.css +86 -86
  17. package/src/assets/logo.svg +1 -1
  18. package/src/assets/main.css +35 -35
  19. package/src/assets/style/ant.scss +19 -19
  20. package/src/assets/style/index.less +180 -180
  21. package/src/assets/style/transition.scss +49 -49
  22. package/src/components/ElFlex/ElFlex.vue +297 -297
  23. package/src/components/OperationAuth/operationAuth.vue +26 -26
  24. package/src/components/Search/ElIconSearch.vue +260 -239
  25. package/src/components/Search/ElSearch.vue +154 -154
  26. package/src/components/Table/ElTableColumnEdit.vue +218 -218
  27. package/src/components/Title/ElTitle.vue +49 -49
  28. package/src/components/autoToolTip/ElAutoToolTip.vue +61 -61
  29. package/src/components/baseEcharts/index.vue +48 -48
  30. package/src/components/business/userSelect.vue +412 -412
  31. package/src/components/icon/ElIconBtn.vue +182 -182
  32. package/src/components/icon/ElIcons.vue +38 -38
  33. package/src/components/upload/ElUploads.vue +286 -279
  34. package/src/components/upload/FileView.vue +158 -158
  35. package/src/components/upload/FileViewComponents.vue +57 -57
  36. package/src/config/ElementPlusConfig.ts +95 -95
  37. package/src/css/elementUI/affix.scss +7 -7
  38. package/src/css/elementUI/alert.scss +115 -115
  39. package/src/css/elementUI/anchor-link.scss +41 -41
  40. package/src/css/elementUI/anchor.scss +88 -88
  41. package/src/css/elementUI/aside.scss +8 -8
  42. package/src/css/elementUI/autocomplete.scss +89 -89
  43. package/src/css/elementUI/avatar.scss +55 -55
  44. package/src/css/elementUI/backtop.scss +29 -29
  45. package/src/css/elementUI/badge.scss +58 -58
  46. package/src/css/elementUI/base.scss +3 -3
  47. package/src/css/elementUI/breadcrumb.scss +62 -62
  48. package/src/css/elementUI/button-group.scss +80 -80
  49. package/src/css/elementUI/button.scss +304 -304
  50. package/src/css/elementUI/calendar.scss +80 -80
  51. package/src/css/elementUI/card.scss +45 -45
  52. package/src/css/elementUI/carousel-item.scss +58 -58
  53. package/src/css/elementUI/carousel.scss +188 -188
  54. package/src/css/elementUI/cascader-panel.scss +138 -138
  55. package/src/css/elementUI/cascader.scss +230 -230
  56. package/src/css/elementUI/check-tag.scss +60 -60
  57. package/src/css/elementUI/checkbox-button.scss +140 -140
  58. package/src/css/elementUI/checkbox-group.scss +7 -7
  59. package/src/css/elementUI/checkbox.scss +298 -298
  60. package/src/css/elementUI/col.scss +48 -48
  61. package/src/css/elementUI/collapse.scss +70 -70
  62. package/src/css/elementUI/color/index.scss +20 -20
  63. package/src/css/elementUI/color-picker.scss +392 -392
  64. package/src/css/elementUI/common/popup.scss +47 -47
  65. package/src/css/elementUI/common/transition.scss +122 -122
  66. package/src/css/elementUI/common/var.scss +1549 -1549
  67. package/src/css/elementUI/container.scss +14 -14
  68. package/src/css/elementUI/dark/css-vars.scss +39 -39
  69. package/src/css/elementUI/dark/var.scss +222 -222
  70. package/src/css/elementUI/date-picker/date-picker.scss +110 -110
  71. package/src/css/elementUI/date-picker/date-range-picker.scss +113 -113
  72. package/src/css/elementUI/date-picker/date-table.scss +158 -158
  73. package/src/css/elementUI/date-picker/month-table.scss +112 -112
  74. package/src/css/elementUI/date-picker/picker-panel.scss +131 -131
  75. package/src/css/elementUI/date-picker/picker.scss +219 -219
  76. package/src/css/elementUI/date-picker/time-picker.scss +90 -90
  77. package/src/css/elementUI/date-picker/time-range-picker.scss +33 -33
  78. package/src/css/elementUI/date-picker/time-spinner.scss +111 -111
  79. package/src/css/elementUI/date-picker/year-table.scss +108 -108
  80. package/src/css/elementUI/date-picker.scss +9 -9
  81. package/src/css/elementUI/descriptions-item.scss +73 -73
  82. package/src/css/elementUI/descriptions.scss +152 -152
  83. package/src/css/elementUI/dialog.scss +199 -199
  84. package/src/css/elementUI/display.scss +12 -12
  85. package/src/css/elementUI/divider.scss +48 -48
  86. package/src/css/elementUI/drawer.scss +164 -164
  87. package/src/css/elementUI/dropdown.scss +208 -208
  88. package/src/css/elementUI/empty.scss +49 -49
  89. package/src/css/elementUI/footer.scss +12 -12
  90. package/src/css/elementUI/form.scss +243 -243
  91. package/src/css/elementUI/header.scss +12 -12
  92. package/src/css/elementUI/icon.scss +45 -45
  93. package/src/css/elementUI/image-viewer.scss +139 -139
  94. package/src/css/elementUI/image.scss +49 -49
  95. package/src/css/elementUI/index.scss +110 -110
  96. package/src/css/elementUI/input-number.scss +178 -178
  97. package/src/css/elementUI/input.scss +478 -478
  98. package/src/css/elementUI/link.scss +90 -90
  99. package/src/css/elementUI/loading.scss +104 -104
  100. package/src/css/elementUI/main.scss +14 -14
  101. package/src/css/elementUI/mention.scss +88 -88
  102. package/src/css/elementUI/menu.scss +339 -339
  103. package/src/css/elementUI/message-box.scss +213 -213
  104. package/src/css/elementUI/message.scss +98 -98
  105. package/src/css/elementUI/mixins/_button.scss +165 -165
  106. package/src/css/elementUI/mixins/_col.scss +33 -33
  107. package/src/css/elementUI/mixins/_var.scss +67 -67
  108. package/src/css/elementUI/mixins/config.scss +5 -5
  109. package/src/css/elementUI/mixins/function.scss +88 -88
  110. package/src/css/elementUI/mixins/mixins.scss +237 -237
  111. package/src/css/elementUI/mixins/utils.scss +39 -39
  112. package/src/css/elementUI/notification.scss +104 -104
  113. package/src/css/elementUI/option-group.scss +33 -33
  114. package/src/css/elementUI/option.scss +71 -71
  115. package/src/css/elementUI/overlay.scss +17 -17
  116. package/src/css/elementUI/page-header.scss +60 -60
  117. package/src/css/elementUI/pagination.scss +238 -238
  118. package/src/css/elementUI/popconfirm.scss +16 -16
  119. package/src/css/elementUI/popover.scss +61 -61
  120. package/src/css/elementUI/popper.scss +106 -106
  121. package/src/css/elementUI/progress.scss +179 -179
  122. package/src/css/elementUI/radio-button.scss +169 -169
  123. package/src/css/elementUI/radio-group.scss +9 -9
  124. package/src/css/elementUI/radio.scss +215 -215
  125. package/src/css/elementUI/rate.scss +108 -108
  126. package/src/css/elementUI/reset.scss +98 -98
  127. package/src/css/elementUI/result.scss +57 -57
  128. package/src/css/elementUI/row.scss +35 -35
  129. package/src/css/elementUI/scrollbar.scss +97 -97
  130. package/src/css/elementUI/segmented.scss +183 -183
  131. package/src/css/elementUI/select-dropdown-v2.scss +1 -1
  132. package/src/css/elementUI/select-dropdown.scss +57 -57
  133. package/src/css/elementUI/select-v2.scss +4 -4
  134. package/src/css/elementUI/select.scss +253 -253
  135. package/src/css/elementUI/skeleton-item.scss +83 -83
  136. package/src/css/elementUI/skeleton.scss +44 -44
  137. package/src/css/elementUI/slider.scss +212 -212
  138. package/src/css/elementUI/space.scss +20 -20
  139. package/src/css/elementUI/spinner.scss +43 -43
  140. package/src/css/elementUI/statistic.scss +35 -35
  141. package/src/css/elementUI/step.scss +316 -316
  142. package/src/css/elementUI/steps.scss +21 -21
  143. package/src/css/elementUI/switch.scss +300 -300
  144. package/src/css/elementUI/table-column.scss +98 -98
  145. package/src/css/elementUI/table-v2.scss +236 -236
  146. package/src/css/elementUI/table.scss +694 -694
  147. package/src/css/elementUI/tabs.scss +659 -659
  148. package/src/css/elementUI/tag.scss +181 -181
  149. package/src/css/elementUI/text.scss +51 -51
  150. package/src/css/elementUI/time-picker.scss +5 -5
  151. package/src/css/elementUI/time-select.scss +37 -37
  152. package/src/css/elementUI/timeline-item.scss +84 -84
  153. package/src/css/elementUI/timeline.scss +46 -46
  154. package/src/css/elementUI/tooltip-v2.scss +95 -95
  155. package/src/css/elementUI/tour.scss +187 -187
  156. package/src/css/elementUI/transfer.scss +203 -203
  157. package/src/css/elementUI/tree-select.scss +41 -41
  158. package/src/css/elementUI/tree.scss +134 -134
  159. package/src/css/elementUI/upload.scss +654 -654
  160. package/src/css/elementUI/var.scss +87 -87
  161. package/src/css/elementUI/virtual-list.scss +40 -40
  162. package/src/directives/vKeydown.ts +93 -93
  163. package/src/hooks/useDictHooks.ts +79 -76
  164. package/src/hooks/useEcharts.ts +58 -58
  165. package/src/hooks/useFileView.ts +34 -34
  166. package/src/hooks/useMessageHooks.ts +132 -132
  167. package/src/hooks/useResetRefHooks.ts +18 -18
  168. package/src/interface/BaseEntity.ts +28 -28
  169. package/src/interface/IMdmDept.ts +82 -82
  170. package/src/interface/IOrgDeptInfo.ts +12 -12
  171. package/src/interface/ISysDictDataCacheVo.ts +46 -46
  172. package/src/interface/ISysDictType.ts +37 -37
  173. package/src/interface/ISysMenuDataVo.ts +22 -22
  174. package/src/interface/ISysMenuInfoVo.ts +83 -83
  175. package/src/interface/ISysMenuOperationVo.ts +21 -21
  176. package/src/interface/ISysUploadFiles.ts +16 -16
  177. package/src/interface/ISysUserInfo.ts +70 -70
  178. package/src/interface/IUserPermissionVo.ts +34 -34
  179. package/src/interface/Message.ts +69 -69
  180. package/src/interface/PageData.ts +17 -17
  181. package/src/interface/ResponseData.ts +16 -16
  182. package/src/interface/dictMapType.ts +11 -11
  183. package/src/interface/enum/FlexEnum.ts +85 -85
  184. package/src/interface/enum/MessageEnum.ts +41 -41
  185. package/src/main.ts +14 -14
  186. package/src/mixin/globalMixin.ts +37 -37
  187. package/src/packages/index.ts +18 -18
  188. package/src/packages/text.vue +13 -13
  189. package/src/plugins/echartsConfig.ts +73 -73
  190. package/src/plugins/plugins.ts +12 -12
  191. package/src/router/index.ts +23 -23
  192. package/src/stores/dictStore.ts +27 -20
  193. package/src/stores/messageStore.ts +49 -49
  194. package/src/stores/permissionStore.ts +108 -108
  195. package/src/stores/storeConfig.ts +23 -23
  196. package/src/stores/userInfoStore.ts +31 -31
  197. package/src/utils/AxiosConfig.ts +216 -216
  198. package/src/utils/encrypt.ts +10 -10
  199. package/src/utils/request.ts +55 -55
  200. package/tsconfig.app.json +12 -12
  201. package/tsconfig.json +11 -11
  202. package/tsconfig.node.json +18 -18
  203. package/vite.config.ts +38 -38
  204. package/adtec-core-package/adtec-core-package.css +0 -1
  205. package/adtec-core-package/adtec-core-package.js +0 -41364
  206. package/adtec-core-package/adtec-core-package.umd.cjs +0 -79
  207. package/adtec-core-package/favicon.ico +0 -0
@@ -1,216 +1,216 @@
1
- /**
2
- * Create by丁盼
3
- * 说明: AxiosConfig
4
- * 创建时间: 2025/1/14 16:58
5
- * 修改时间: 2025/1/14 16:58
6
- */
7
- import axios, { type AxiosResponse } from 'axios'
8
- import type { ResponseData } from '../interface/ResponseData'
9
- import { v4 as uuidv4 } from 'uuid'
10
- import encrypt from './encrypt'
11
- // @ts-ignore
12
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
13
-
14
- import { Md5 } from 'ts-md5'
15
- import { ElMessage } from 'element-plus'
16
- import { useEventBus } from '@vueuse/core'
17
- /** 是否正在刷新的标志 */
18
- let isRefreshing = false
19
- const loginAgainBus = useEventBus<string>('loginAgainBus')
20
- /** 存储请求的数组 */
21
- let requests: any[] = []
22
- const request = axios.create({
23
- timeout: 60000,
24
- validateStatus(status) {
25
- return status >= 200 && status < 500
26
- },
27
- })
28
- function setHeaders(config: any) {
29
- //数据防止篡改
30
- const Authorization = sessionStorage.getItem('Authorization')
31
- const signa = 'F2E49299-D0D2-4AA1-87A3-270272EA3D6A'
32
- let dataJson: string = ''
33
- if (config.method === 'get') {
34
- if (config.params) {
35
- if (typeof config.params === 'string') {
36
- dataJson = JSON.stringify(JSON.parse(config.params))
37
- } else {
38
- dataJson = JSON.stringify(config.params)
39
- }
40
- }
41
- dataJson += config.url
42
- } else {
43
- if (config.data) {
44
- if (typeof config.data === 'string') {
45
- dataJson = JSON.stringify(JSON.parse(config.data))
46
- } else {
47
- dataJson = JSON.stringify(config.data)
48
- }
49
- }
50
- }
51
-
52
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
53
- // @ts-ignore
54
- dataJson = dataJson
55
- .replaceAll('"', '')
56
- .replaceAll(',', '')
57
- .replaceAll(':', '')
58
- .replaceAll('.', '')
59
- .replaceAll('/', '')
60
- dataJson = dataJson.split('').sort().join('')
61
- config.headers.sessionId = sessionStorage.getItem('sessionId')
62
- config.headers.Authorization = Authorization
63
- config.headers.signa = Md5.hashStr(Authorization + signa + dataJson)
64
- config.headers.antiShakeKey = Md5.hashStr(dataJson)
65
- //防止重放 GUID+当前时间+TOKEN 加密
66
- const timeDifference = sessionStorage.getItem('timeDifference')
67
- const id = uuidv4()
68
- const localTime = new Date().getTime()
69
- const obj = { timeDifference: timeDifference, guid: id, localTime }
70
- config.headers.replayToken = encrypt.encrypt(JSON.stringify(obj))
71
- }
72
- //用于前端axios 请求防抖
73
- const debounceTokenCancel = new Map()
74
- request.interceptors.request.use(
75
- (config) => {
76
- setHeaders(config)
77
- // @ts-ignore
78
- if (config.isAntiShake) {
79
- // @ts-ignore
80
- const antiShakeTime = config.antiShakeTime
81
- //@ts-ignore
82
- const antiShakeKey = `${config.method}-${config.url}-${config.antiShakeKey}`
83
- const cancel = debounceTokenCancel.get(antiShakeKey)
84
- if (cancel) {
85
- cancel()
86
- }
87
- return new Promise((resolve) => {
88
- const timer = setTimeout(() => {
89
- clearTimeout(timer)
90
- resolve(config)
91
- }, antiShakeTime)
92
- debounceTokenCancel.set(antiShakeKey, () => {
93
- clearTimeout(timer)
94
- })
95
- })
96
- } else {
97
- return config
98
- }
99
- },
100
- (error: any) => {
101
- return Promise.resolve(error)
102
- },
103
- )
104
-
105
- // response 拦截
106
- request.interceptors.response.use(
107
- async (response: AxiosResponse<ResponseData>) => {
108
- const { status, data, config } = response
109
- if (status === 200) {
110
- if (data.code === '0') {
111
- return Promise.resolve(response)
112
- } else if (data.code == '10508') {
113
- isRefreshing = true
114
- } else if (data.code == '10401') {
115
- //TOKen过期
116
- if (!isRefreshing) {
117
- isRefreshing = true
118
- const rToken = sessionStorage.getItem('refreshToken')
119
- const data = await request.post('/api/system/login/refreshToken', {
120
- rToken: rToken,
121
- })
122
- if (data.data.code === '0') {
123
- sessionStorage.setItem('Authorization', data.data.data.token)
124
- sessionStorage.setItem('refreshToken', data.data.data.refreshToken)
125
- const r = request(config)
126
- requests.forEach((cb) => {
127
- cb.fn()
128
- })
129
- isRefreshing = false
130
- requests = []
131
- return r
132
- } else {
133
- isRefreshing = false
134
- requests = []
135
- ElMessage.warning({
136
- showClose: true,
137
- message: '用户信息已过期,请重新登录',
138
- grouping: true,
139
- })
140
- loginAgainBus.emit('loginAgain')
141
- throw {
142
- code: '10508',
143
- msg: '用户信息已过期,请重新登录',
144
- url: config.url,
145
- }
146
- }
147
- } else {
148
- return new Promise((resolve) => {
149
- requests.push({
150
- fn: () => {
151
- //需要重新设置signa
152
- // setHeaders(config)
153
- resolve(request(config))
154
- },
155
- url: config.url,
156
- })
157
- })
158
- }
159
- } else {
160
- return Promise.resolve(response)
161
- }
162
- }
163
- return Promise.resolve(response)
164
- },
165
- (error: any) => {
166
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
167
- // @ts-ignore
168
- return Promise.reject(error)
169
- },
170
- )
171
- export default <T = any>(config: any) => {
172
- return request(config)
173
- .then((res: any) => {
174
- if (res.status !== 200) {
175
- throw {
176
- code: res.status + '',
177
- msg: res.status + res.statusText,
178
- url: config.url,
179
- }
180
- } else {
181
- const data = res.data as ResponseData<T>
182
- if (data.code === '0') {
183
- return data.data
184
- } else if (data.code == '10508') {
185
- ElMessage.warning({
186
- showClose: true,
187
- message: '用户信息已过期,请重新登录',
188
- grouping: true,
189
- })
190
- loginAgainBus.emit('loginAgain')
191
- throw {
192
- code: data.code,
193
- msg: data.msg,
194
- url: config.url,
195
- }
196
- } else {
197
- throw {
198
- code: data.code,
199
- msg: data.msg,
200
- url: config.url,
201
- }
202
- }
203
- }
204
- })
205
- .catch((error) => {
206
- if (error.msg) {
207
- throw error
208
- } else {
209
- throw {
210
- code: error.response.status + '',
211
- msg: error.message,
212
- url: config.url,
213
- }
214
- }
215
- })
216
- }
1
+ /**
2
+ * Create by丁盼
3
+ * 说明: AxiosConfig
4
+ * 创建时间: 2025/1/14 16:58
5
+ * 修改时间: 2025/1/14 16:58
6
+ */
7
+ import axios, { type AxiosResponse } from 'axios'
8
+ import type { ResponseData } from '../interface/ResponseData'
9
+ import { v4 as uuidv4 } from 'uuid'
10
+ import encrypt from './encrypt'
11
+ // @ts-ignore
12
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
13
+
14
+ import { Md5 } from 'ts-md5'
15
+ import { ElMessage } from 'element-plus'
16
+ import { useEventBus } from '@vueuse/core'
17
+ /** 是否正在刷新的标志 */
18
+ let isRefreshing = false
19
+ const loginAgainBus = useEventBus<string>('loginAgainBus')
20
+ /** 存储请求的数组 */
21
+ let requests: any[] = []
22
+ const request = axios.create({
23
+ timeout: 60000,
24
+ validateStatus(status) {
25
+ return status >= 200 && status < 500
26
+ },
27
+ })
28
+ function setHeaders(config: any) {
29
+ //数据防止篡改
30
+ const Authorization = sessionStorage.getItem('Authorization')
31
+ const signa = 'F2E49299-D0D2-4AA1-87A3-270272EA3D6A'
32
+ let dataJson: string = ''
33
+ if (config.method === 'get') {
34
+ if (config.params) {
35
+ if (typeof config.params === 'string') {
36
+ dataJson = JSON.stringify(JSON.parse(config.params))
37
+ } else {
38
+ dataJson = JSON.stringify(config.params)
39
+ }
40
+ }
41
+ dataJson += config.url
42
+ } else {
43
+ if (config.data) {
44
+ if (typeof config.data === 'string') {
45
+ dataJson = JSON.stringify(JSON.parse(config.data))
46
+ } else {
47
+ dataJson = JSON.stringify(config.data)
48
+ }
49
+ }
50
+ }
51
+
52
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
53
+ // @ts-ignore
54
+ dataJson = dataJson
55
+ .replaceAll('"', '')
56
+ .replaceAll(',', '')
57
+ .replaceAll(':', '')
58
+ .replaceAll('.', '')
59
+ .replaceAll('/', '')
60
+ dataJson = dataJson.split('').sort().join('')
61
+ config.headers.sessionId = sessionStorage.getItem('sessionId')
62
+ config.headers.Authorization = Authorization
63
+ config.headers.signa = Md5.hashStr(Authorization + signa + dataJson)
64
+ config.headers.antiShakeKey = Md5.hashStr(dataJson)
65
+ //防止重放 GUID+当前时间+TOKEN 加密
66
+ const timeDifference = sessionStorage.getItem('timeDifference')
67
+ const id = uuidv4()
68
+ const localTime = new Date().getTime()
69
+ const obj = { timeDifference: timeDifference, guid: id, localTime }
70
+ config.headers.replayToken = encrypt.encrypt(JSON.stringify(obj))
71
+ }
72
+ //用于前端axios 请求防抖
73
+ const debounceTokenCancel = new Map()
74
+ request.interceptors.request.use(
75
+ (config) => {
76
+ setHeaders(config)
77
+ // @ts-ignore
78
+ if (config.isAntiShake) {
79
+ // @ts-ignore
80
+ const antiShakeTime = config.antiShakeTime
81
+ //@ts-ignore
82
+ const antiShakeKey = `${config.method}-${config.url}-${config.antiShakeKey}`
83
+ const cancel = debounceTokenCancel.get(antiShakeKey)
84
+ if (cancel) {
85
+ cancel()
86
+ }
87
+ return new Promise((resolve) => {
88
+ const timer = setTimeout(() => {
89
+ clearTimeout(timer)
90
+ resolve(config)
91
+ }, antiShakeTime)
92
+ debounceTokenCancel.set(antiShakeKey, () => {
93
+ clearTimeout(timer)
94
+ })
95
+ })
96
+ } else {
97
+ return config
98
+ }
99
+ },
100
+ (error: any) => {
101
+ return Promise.resolve(error)
102
+ },
103
+ )
104
+
105
+ // response 拦截
106
+ request.interceptors.response.use(
107
+ async (response: AxiosResponse<ResponseData>) => {
108
+ const { status, data, config } = response
109
+ if (status === 200) {
110
+ if (data.code === '0') {
111
+ return Promise.resolve(response)
112
+ } else if (data.code == '10508') {
113
+ isRefreshing = true
114
+ } else if (data.code == '10401') {
115
+ //TOKen过期
116
+ if (!isRefreshing) {
117
+ isRefreshing = true
118
+ const rToken = sessionStorage.getItem('refreshToken')
119
+ const data = await request.post('/api/system/login/refreshToken', {
120
+ rToken: rToken,
121
+ })
122
+ if (data.data.code === '0') {
123
+ sessionStorage.setItem('Authorization', data.data.data.token)
124
+ sessionStorage.setItem('refreshToken', data.data.data.refreshToken)
125
+ const r = request(config)
126
+ requests.forEach((cb) => {
127
+ cb.fn()
128
+ })
129
+ isRefreshing = false
130
+ requests = []
131
+ return r
132
+ } else {
133
+ isRefreshing = false
134
+ requests = []
135
+ ElMessage.warning({
136
+ showClose: true,
137
+ message: '用户信息已过期,请重新登录',
138
+ grouping: true,
139
+ })
140
+ loginAgainBus.emit('loginAgain')
141
+ throw {
142
+ code: '10508',
143
+ msg: '用户信息已过期,请重新登录',
144
+ url: config.url,
145
+ }
146
+ }
147
+ } else {
148
+ return new Promise((resolve) => {
149
+ requests.push({
150
+ fn: () => {
151
+ //需要重新设置signa
152
+ // setHeaders(config)
153
+ resolve(request(config))
154
+ },
155
+ url: config.url,
156
+ })
157
+ })
158
+ }
159
+ } else {
160
+ return Promise.resolve(response)
161
+ }
162
+ }
163
+ return Promise.resolve(response)
164
+ },
165
+ (error: any) => {
166
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
167
+ // @ts-ignore
168
+ return Promise.reject(error)
169
+ },
170
+ )
171
+ export default <T = any>(config: any) => {
172
+ return request(config)
173
+ .then((res: any) => {
174
+ if (res.status !== 200) {
175
+ throw {
176
+ code: res.status + '',
177
+ msg: res.status + res.statusText,
178
+ url: config.url,
179
+ }
180
+ } else {
181
+ const data = res.data as ResponseData<T>
182
+ if (data.code === '0') {
183
+ return data.data
184
+ } else if (data.code == '10508') {
185
+ ElMessage.warning({
186
+ showClose: true,
187
+ message: '用户信息已过期,请重新登录',
188
+ grouping: true,
189
+ })
190
+ loginAgainBus.emit('loginAgain')
191
+ throw {
192
+ code: data.code,
193
+ msg: data.msg,
194
+ url: config.url,
195
+ }
196
+ } else {
197
+ throw {
198
+ code: data.code,
199
+ msg: data.msg,
200
+ url: config.url,
201
+ }
202
+ }
203
+ }
204
+ })
205
+ .catch((error) => {
206
+ if (error.msg) {
207
+ throw error
208
+ } else {
209
+ throw {
210
+ code: error.response.status + '',
211
+ msg: error.message,
212
+ url: config.url,
213
+ }
214
+ }
215
+ })
216
+ }
@@ -1,10 +1,10 @@
1
- import JSEncrypt from 'jsencrypt'
2
- export default {
3
- encrypt(data: string): string {
4
- // 读取解析pem格式的秘钥, 生成秘钥实例 (RSAKey)
5
- const pk = `MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAiDRlNQzjeuGxJoXmD1O5fZR/BxmEUdngGQKkFPLshR7x4AZR4gcH9PZu4phJUmZ1F/TEL6BwY0dqIVBQgjhwY4ypKOviCFD85H6dgOzaQ/Akl6QfSpP717vYPgeDC+P1+2+205qoQPyQ7+RiQYgnjyDs8TeVQ3nRaTC+XvxjyS06kIpbobMP5texJ74O96JMSZv6u6QBz+vq7lW0oWMowezWOyv9k+bHfqxUxlvw1gD7WrG3DKy8K9qba3mKJ4SQDJ5kKQ+C4Bb5PakiVB4XTJzNqbXWdQvRs0ZP8TgOJKIkTemjjyTxfa0HSp0U9iHAGBBPt25wc0s8dz4w45mOvQIDAQAB`
6
- const jsEncrypt = new JSEncrypt()
7
- jsEncrypt.setPublicKey(pk)
8
- return jsEncrypt.encrypt(data).toString()
9
- }
10
- }
1
+ import JSEncrypt from 'jsencrypt'
2
+ export default {
3
+ encrypt(data: string): string {
4
+ // 读取解析pem格式的秘钥, 生成秘钥实例 (RSAKey)
5
+ const pk = `MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAiDRlNQzjeuGxJoXmD1O5fZR/BxmEUdngGQKkFPLshR7x4AZR4gcH9PZu4phJUmZ1F/TEL6BwY0dqIVBQgjhwY4ypKOviCFD85H6dgOzaQ/Akl6QfSpP717vYPgeDC+P1+2+205qoQPyQ7+RiQYgnjyDs8TeVQ3nRaTC+XvxjyS06kIpbobMP5texJ74O96JMSZv6u6QBz+vq7lW0oWMowezWOyv9k+bHfqxUxlvw1gD7WrG3DKy8K9qba3mKJ4SQDJ5kKQ+C4Bb5PakiVB4XTJzNqbXWdQvRs0ZP8TgOJKIkTemjjyTxfa0HSp0U9iHAGBBPt25wc0s8dz4w45mOvQIDAQAB`
6
+ const jsEncrypt = new JSEncrypt()
7
+ jsEncrypt.setPublicKey(pk)
8
+ return jsEncrypt.encrypt(data).toString()
9
+ }
10
+ }
@@ -1,55 +1,55 @@
1
- import request from './AxiosConfig'
2
-
3
- export default {
4
- /**
5
- * get 请求
6
- * @param url URL地址
7
- * @param data 请求数据
8
- * @param isAntiShake 防抖
9
- * @param antiShakeTime 防抖时间
10
- * @param menuId 菜单ID,setInterval 调用接口 请传入当前菜单的菜单ID否则会重新接口权限不正确情况
11
- */
12
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
13
- get<T = unknown>(
14
- url: string,
15
- params?: any,
16
- isAntiShake: boolean = false,
17
- antiShakeTime: number = 500,
18
- menuId?: string,
19
- ): Promise<T> {
20
- //@ts-ignore
21
- return request<T>({
22
- url: url,
23
- method: 'get',
24
- params: params,
25
- isAntiShake: isAntiShake,
26
- antiShakeTime: antiShakeTime,
27
- menuId: menuId,
28
- })
29
- },
30
- /**
31
- * post 请求
32
- * @param url URL地址
33
- * @param data 请求数据
34
- * @param isAntiShake 防抖
35
- * @param antiShakeTime 防抖时间
36
- * @param menuId 菜单ID,setInterval 调用接口 请传入当前菜单的菜单ID否则会重新接口权限不正确情况
37
- */
38
- post<T = unknown>(
39
- url: string,
40
- data?: any,
41
- isAntiShake: boolean = false,
42
- antiShakeTime: number = 500,
43
- menuId?: string,
44
- ): Promise<T> {
45
- //@ts-ignore
46
- return request<T>({
47
- url: url,
48
- method: 'post',
49
- data: data,
50
- isAntiShake: isAntiShake,
51
- antiShakeTime: antiShakeTime,
52
- menuId: menuId,
53
- })
54
- },
55
- }
1
+ import request from './AxiosConfig'
2
+
3
+ export default {
4
+ /**
5
+ * get 请求
6
+ * @param url URL地址
7
+ * @param data 请求数据
8
+ * @param isAntiShake 防抖
9
+ * @param antiShakeTime 防抖时间
10
+ * @param menuId 菜单ID,setInterval 调用接口 请传入当前菜单的菜单ID否则会重新接口权限不正确情况
11
+ */
12
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
13
+ get<T = unknown>(
14
+ url: string,
15
+ params?: any,
16
+ isAntiShake: boolean = false,
17
+ antiShakeTime: number = 500,
18
+ menuId?: string,
19
+ ): Promise<T> {
20
+ //@ts-ignore
21
+ return request<T>({
22
+ url: url,
23
+ method: 'get',
24
+ params: params,
25
+ isAntiShake: isAntiShake,
26
+ antiShakeTime: antiShakeTime,
27
+ menuId: menuId,
28
+ })
29
+ },
30
+ /**
31
+ * post 请求
32
+ * @param url URL地址
33
+ * @param data 请求数据
34
+ * @param isAntiShake 防抖
35
+ * @param antiShakeTime 防抖时间
36
+ * @param menuId 菜单ID,setInterval 调用接口 请传入当前菜单的菜单ID否则会重新接口权限不正确情况
37
+ */
38
+ post<T = unknown>(
39
+ url: string,
40
+ data?: any,
41
+ isAntiShake: boolean = false,
42
+ antiShakeTime: number = 500,
43
+ menuId?: string,
44
+ ): Promise<T> {
45
+ //@ts-ignore
46
+ return request<T>({
47
+ url: url,
48
+ method: 'post',
49
+ data: data,
50
+ isAntiShake: isAntiShake,
51
+ antiShakeTime: antiShakeTime,
52
+ menuId: menuId,
53
+ })
54
+ },
55
+ }
package/tsconfig.app.json CHANGED
@@ -1,12 +1,12 @@
1
- {
2
- "extends": "@vue/tsconfig/tsconfig.dom.json",
3
- "include": ["env.d.ts", "src/**/*", "src/**/*.vue"],
4
- "exclude": ["src/**/__tests__/*"],
5
- "compilerOptions": {
6
- "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
7
-
8
- "paths": {
9
- "@/*": ["./src/*"]
10
- }
11
- }
12
- }
1
+ {
2
+ "extends": "@vue/tsconfig/tsconfig.dom.json",
3
+ "include": ["env.d.ts", "src/**/*", "src/**/*.vue"],
4
+ "exclude": ["src/**/__tests__/*"],
5
+ "compilerOptions": {
6
+ "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo",
7
+
8
+ "paths": {
9
+ "@/*": ["./src/*"]
10
+ }
11
+ }
12
+ }
package/tsconfig.json CHANGED
@@ -1,11 +1,11 @@
1
- {
2
- "files": [],
3
- "references": [
4
- {
5
- "path": "./tsconfig.node.json"
6
- },
7
- {
8
- "path": "./tsconfig.app.json"
9
- }
10
- ]
11
- }
1
+ {
2
+ "files": [],
3
+ "references": [
4
+ {
5
+ "path": "./tsconfig.node.json"
6
+ },
7
+ {
8
+ "path": "./tsconfig.app.json"
9
+ }
10
+ ]
11
+ }
@@ -1,18 +1,18 @@
1
- {
2
- "extends": "@tsconfig/node22/tsconfig.json",
3
- "include": [
4
- "vite.config.*",
5
- "vitest.config.*",
6
- "cypress.config.*",
7
- "nightwatch.conf.*",
8
- "playwright.config.*"
9
- ],
10
- "compilerOptions": {
11
- "noEmit": true,
12
- "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
13
-
14
- "module": "ESNext",
15
- "moduleResolution": "Bundler",
16
- "types": ["node"]
17
- }
18
- }
1
+ {
2
+ "extends": "@tsconfig/node22/tsconfig.json",
3
+ "include": [
4
+ "vite.config.*",
5
+ "vitest.config.*",
6
+ "cypress.config.*",
7
+ "nightwatch.conf.*",
8
+ "playwright.config.*"
9
+ ],
10
+ "compilerOptions": {
11
+ "noEmit": true,
12
+ "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo",
13
+
14
+ "module": "ESNext",
15
+ "moduleResolution": "Bundler",
16
+ "types": ["node"]
17
+ }
18
+ }