adtec-core-package 1.2.4 → 1.2.6

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 (190) hide show
  1. package/README.en.md +36 -36
  2. package/eslint.config.js +11 -21
  3. package/package.json +66 -64
  4. package/src/api/BasicApi.ts +26 -26
  5. package/src/api/DeptInfoApi.ts +19 -19
  6. package/src/api/DocumentApi.ts +27 -27
  7. package/src/api/EmployeeInfoApi.ts +17 -17
  8. package/src/api/SysDictCacheApi.ts +29 -29
  9. package/src/api/SysUserApi.ts +35 -35
  10. package/src/api/framework.ts +12 -12
  11. package/src/api/workflow/workflow.ts +31 -31
  12. package/src/api/workflow/workflowInstApi.ts +72 -72
  13. package/src/assets/style/ant.scss +19 -19
  14. package/src/assets/style/index.less +180 -180
  15. package/src/components/ElFlex/ElFlex.vue +297 -297
  16. package/src/components/ElTotalTools.vue +70 -70
  17. package/src/components/OperationAuth/operationAuth.vue +26 -26
  18. package/src/components/RichTextEditor/RichTextEditor.vue +144 -144
  19. package/src/components/Scrollbars/ElScrollbars.vue +21 -21
  20. package/src/components/Search/ElIconSearch.vue +267 -267
  21. package/src/components/Search/ElSearch.vue +154 -154
  22. package/src/components/SelectInDicators/SelectInDicators.vue +225 -225
  23. package/src/components/SelectInDicators/api/DataIndicatorsApi.ts +28 -28
  24. package/src/components/SelectInDicators/interface/IComIndex.ts +26 -26
  25. package/src/components/SelectInDicators/interface/IComIndexAttri.ts +18 -18
  26. package/src/components/Table/ElTableColumnDynamic.vue +25 -25
  27. package/src/components/Table/ElTableColumnEdit.vue +264 -263
  28. package/src/components/Table/ElTableTool.ts +37 -37
  29. package/src/components/Title/ElTitle.vue +53 -53
  30. package/src/components/autoToolTip/ElAutoToolTip.vue +62 -62
  31. package/src/components/baseEcharts/index.vue +48 -48
  32. package/src/components/bpmntree/api/modules/role.ts +31 -31
  33. package/src/components/bpmntree/api/modules/user.ts +17 -17
  34. package/src/components/bpmntree/components/AdvancedFilter/Operator.vue +112 -112
  35. package/src/components/bpmntree/components/AdvancedFilter/Trigger.vue +23 -23
  36. package/src/components/bpmntree/components/AdvancedFilter/index.vue +230 -230
  37. package/src/components/bpmntree/components/AdvancedFilter/type.ts +20 -20
  38. package/src/components/bpmntree/components/FlowIcon/index.scss +7 -7
  39. package/src/components/bpmntree/components/FlowIcon/index.tsx +68 -68
  40. package/src/components/bpmntree/components/Render/render.vue +90 -90
  41. package/src/components/bpmntree/components/Render/type.ts +12 -12
  42. package/src/components/bpmntree/components/RoleSelector/RolePicker.vue +264 -264
  43. package/src/components/bpmntree/components/RoleSelector/RoleTag.vue +48 -48
  44. package/src/components/bpmntree/components/RoleSelector/index.vue +113 -113
  45. package/src/components/bpmntree/components/UserSelector/UserTag.vue +73 -73
  46. package/src/components/bpmntree/components/UserSelector/index.vue +140 -140
  47. package/src/components/bpmntree/hooks/useDraggableScroll.ts +44 -44
  48. package/src/components/bpmntree/typings/index.d.ts +1 -1
  49. package/src/components/bpmntree/views/flowDesign/index.vue +652 -652
  50. package/src/components/bpmntree/views/flowDesign/nodes/Add.vue +184 -184
  51. package/src/components/bpmntree/views/flowDesign/nodes/ApprovalNode.vue +127 -127
  52. package/src/components/bpmntree/views/flowDesign/nodes/CcNode.vue +93 -93
  53. package/src/components/bpmntree/views/flowDesign/nodes/ConcurrentNode.vue +61 -61
  54. package/src/components/bpmntree/views/flowDesign/nodes/ConditionNode.vue +59 -59
  55. package/src/components/bpmntree/views/flowDesign/nodes/EndNode.vue +80 -80
  56. package/src/components/bpmntree/views/flowDesign/nodes/ExclusiveNode.vue +20 -20
  57. package/src/components/bpmntree/views/flowDesign/nodes/GatewayNode.vue +173 -173
  58. package/src/components/bpmntree/views/flowDesign/nodes/InclusiveNode.vue +20 -20
  59. package/src/components/bpmntree/views/flowDesign/nodes/JumpNode.vue +49 -49
  60. package/src/components/bpmntree/views/flowDesign/nodes/Node.vue +346 -346
  61. package/src/components/bpmntree/views/flowDesign/nodes/NotifyNode.vue +115 -115
  62. package/src/components/bpmntree/views/flowDesign/nodes/ParallelNode.vue +20 -20
  63. package/src/components/bpmntree/views/flowDesign/nodes/PopoverView.vue +78 -78
  64. package/src/components/bpmntree/views/flowDesign/nodes/StartNode.vue +84 -84
  65. package/src/components/bpmntree/views/flowDesign/nodes/TimerNode.vue +50 -50
  66. package/src/components/bpmntree/views/flowDesign/nodes/TreeNode.vue +45 -45
  67. package/src/components/bpmntree/views/flowDesign/nodes/type.ts +192 -192
  68. package/src/components/bpmntree/views/flowDesign/panels/ApprovalPanel.vue +516 -516
  69. package/src/components/bpmntree/views/flowDesign/panels/AssigneePanel.vue +120 -120
  70. package/src/components/bpmntree/views/flowDesign/panels/CcPanel.vue +99 -99
  71. package/src/components/bpmntree/views/flowDesign/panels/ConditionPanel.vue +41 -41
  72. package/src/components/bpmntree/views/flowDesign/panels/EndPanel.vue +18 -18
  73. package/src/components/bpmntree/views/flowDesign/panels/ExecutionListeners.vue +110 -110
  74. package/src/components/bpmntree/views/flowDesign/panels/JumpPanel.vue +32 -32
  75. package/src/components/bpmntree/views/flowDesign/panels/NotifyPanel.vue +101 -101
  76. package/src/components/bpmntree/views/flowDesign/panels/ParaPanel.vue +248 -248
  77. package/src/components/bpmntree/views/flowDesign/panels/StartPanel.vue +159 -159
  78. package/src/components/bpmntree/views/flowDesign/panels/TaskListeners.vue +110 -110
  79. package/src/components/bpmntree/views/flowDesign/panels/TimerPanel.vue +51 -51
  80. package/src/components/bpmntree/views/flowDesign/panels/index.vue +85 -85
  81. package/src/components/bpmntree/views/view.index.vue +291 -291
  82. package/src/components/business/comp.userForm.vue +292 -286
  83. package/src/components/business/userSelect.vue +413 -413
  84. package/src/components/icon/ElIconBtn.vue +210 -210
  85. package/src/components/upload/ElUploads.vue +285 -285
  86. package/src/components/upload/FileView.vue +159 -159
  87. package/src/components/upload/FileViewComponents.vue +56 -56
  88. package/src/components/workflow/TaskOperation.vue +212 -212
  89. package/src/components/workflow/WorkflowTodoDialog.vue +81 -81
  90. package/src/components/workflow/components/AddOrMinusMultiDialog.vue +159 -159
  91. package/src/components/workflow/components/CheckDialog.vue +315 -316
  92. package/src/components/workflow/components/ProcessDetailComp.vue +133 -133
  93. package/src/components/workflow/components/ProcessDetailDialog.vue +129 -129
  94. package/src/components/workflow/components/ProcessInstance.vue +117 -117
  95. package/src/components/workflow/components/ProcessInstanceStep.vue +226 -226
  96. package/src/components/workflow/components/SelectAssigneeDialog.vue +109 -109
  97. package/src/components/workflow/components/SelectReturnActivityDialog.vue +104 -104
  98. package/src/config/ElementPlusConfig.ts +95 -95
  99. package/src/config/VxeTableConfig.ts +35 -0
  100. package/src/css/elementUI/autocomplete.scss +89 -89
  101. package/src/css/elementUI/common/var.scss +1549 -1549
  102. package/src/css/elementUI/date-picker/picker.scss +219 -219
  103. package/src/css/elementUI/descriptions.scss +152 -152
  104. package/src/css/elementUI/drawer.scss +164 -164
  105. package/src/css/elementUI/table.scss +694 -694
  106. package/src/css/elementUI/tabs.scss +659 -659
  107. package/src/css/vxeTableUI/all.scss +7 -0
  108. package/src/css/vxeTableUI/base.scss +16 -0
  109. package/src/css/vxeTableUI/components/colgroup.scss +0 -0
  110. package/src/css/vxeTableUI/components/column.scss +0 -0
  111. package/src/css/vxeTableUI/components/grid.scss +83 -0
  112. package/src/css/vxeTableUI/components/icon.scss +205 -0
  113. package/src/css/vxeTableUI/components/old-icon.scss +715 -0
  114. package/src/css/vxeTableUI/components/table-module/all.scss +7 -0
  115. package/src/css/vxeTableUI/components/table-module/custom.scss +491 -0
  116. package/src/css/vxeTableUI/components/table-module/edit.scss +0 -0
  117. package/src/css/vxeTableUI/components/table-module/export.scss +130 -0
  118. package/src/css/vxeTableUI/components/table-module/filter.scss +128 -0
  119. package/src/css/vxeTableUI/components/table-module/keyboard.scss +0 -0
  120. package/src/css/vxeTableUI/components/table-module/menu.scss +86 -0
  121. package/src/css/vxeTableUI/components/table-module/validator.scss +0 -0
  122. package/src/css/vxeTableUI/components/table.scss +2242 -0
  123. package/src/css/vxeTableUI/components/toolbar.scss +100 -0
  124. package/src/css/vxeTableUI/components/ui.scss +0 -0
  125. package/src/css/vxeTableUI/components/v-x-e-table.scss +0 -0
  126. package/src/css/vxeTableUI/cssvar.scss +3 -0
  127. package/src/css/vxeTableUI/default.scss +3 -0
  128. package/src/css/vxeTableUI/helpers/baseMixin.scss +82 -0
  129. package/src/css/vxeTableUI/icon/iconfont.ttf +0 -0
  130. package/src/css/vxeTableUI/icon/iconfont.woff +0 -0
  131. package/src/css/vxeTableUI/icon/iconfont.woff2 +0 -0
  132. package/src/css/vxeTableUI/index.scss +4 -0
  133. package/src/css/vxeTableUI/modules.scss +5 -0
  134. package/src/css/vxeTableUI/theme/base.scss +89 -0
  135. package/src/css/vxeTableUI/theme/dark.scss +46 -0
  136. package/src/css/vxeTableUI/theme/light.scss +42 -0
  137. package/src/css/vxeTableUI/variable.scss +41 -0
  138. package/src/directives/vKeydown.ts +91 -91
  139. package/src/hooks/useDictHooks.ts +119 -119
  140. package/src/hooks/useEcharts.ts +58 -58
  141. package/src/hooks/useFileView.ts +34 -11
  142. package/src/hooks/useMessageHooks.ts +132 -132
  143. package/src/hooks/usePermissionToolHooks.ts +21 -21
  144. package/src/hooks/useResetRefHooks.ts +18 -18
  145. package/src/hooks/userWorkflowHooks.ts +92 -92
  146. package/src/interface/BaseEntity.ts +30 -30
  147. package/src/interface/IMdmDept.ts +84 -84
  148. package/src/interface/IMdmEmployee.ts +134 -134
  149. package/src/interface/IMdmEmployeeQuery.ts +20 -19
  150. package/src/interface/IMdmOrg.ts +29 -29
  151. package/src/interface/IMdmOrgQuery.ts +13 -13
  152. package/src/interface/IOrgDeptInfo.ts +12 -12
  153. package/src/interface/ISysDictDataCacheVo.ts +46 -46
  154. package/src/interface/ISysDictType.ts +37 -37
  155. package/src/interface/ISysMenuDataVo.ts +22 -22
  156. package/src/interface/ISysMenuInfoVo.ts +83 -83
  157. package/src/interface/ISysMenuOperationVo.ts +21 -21
  158. package/src/interface/ISysUploadFiles.ts +16 -16
  159. package/src/interface/ISysUserInfo.ts +70 -70
  160. package/src/interface/IUserPermissionVo.ts +34 -34
  161. package/src/interface/Message.ts +73 -73
  162. package/src/interface/PageData.ts +17 -17
  163. package/src/interface/ResponseData.ts +16 -16
  164. package/src/interface/dictMapType.ts +11 -11
  165. package/src/interface/enum/MessageEnum.ts +41 -41
  166. package/src/interface/workflow/IWfProcessDefVo.ts +14 -14
  167. package/src/interface/workflow/IWfReturnNodeVo.ts +15 -16
  168. package/src/interface/workflow/IWfTaskAskVo.ts +61 -65
  169. package/src/interface/workflow/IWfTaskQueryVo.ts +30 -30
  170. package/src/interface/workflow/IWfTaskUsersVo.ts +21 -21
  171. package/src/interface/workflow/IWfTaskVo.ts +187 -187
  172. package/src/interface/workflow/workflow.ts +22 -22
  173. package/src/mixin/globalMixin.ts +45 -45
  174. package/src/packages/index.ts +18 -18
  175. package/src/packages/text.vue +13 -13
  176. package/src/plugins/echartsConfig.ts +73 -73
  177. package/src/plugins/plugins.ts +12 -12
  178. package/src/plugins/renderDialog.ts +74 -74
  179. package/src/stores/dictStore.ts +51 -51
  180. package/src/stores/messageStore.ts +49 -49
  181. package/src/stores/permissionStore.ts +108 -108
  182. package/src/stores/storeConfig.ts +23 -23
  183. package/src/stores/userInfoStore.ts +31 -31
  184. package/src/utils/AxiosConfig.ts +219 -219
  185. package/src/utils/modules.ts +8 -8
  186. package/src/utils/request.ts +76 -76
  187. package/adtec-core-package/adtec-core-package.css +0 -1
  188. package/adtec-core-package/adtec-core-package.js +0 -41605
  189. package/adtec-core-package/adtec-core-package.umd.cjs +0 -79
  190. package/adtec-core-package/favicon.ico +0 -0
@@ -1,219 +1,219 @@
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
- import WujieVue from 'wujie-vue3'
21
- /** 存储请求的数组 */
22
- let requests: any[] = []
23
- const request = axios.create({
24
- timeout: 60000,
25
- validateStatus(status) {
26
- return status >= 200 && status < 500
27
- },
28
- })
29
- function setHeaders(config: any) {
30
- //数据防止篡改
31
- const Authorization = sessionStorage.getItem('Authorization')
32
- const signa = 'F2E49299-D0D2-4AA1-87A3-270272EA3D6A'
33
- let dataJson: string = ''
34
- if (config.method === 'get') {
35
- if (config.params) {
36
- if (typeof config.params === 'string') {
37
- dataJson = JSON.stringify(JSON.parse(config.params))
38
- } else {
39
- dataJson = JSON.stringify(config.params)
40
- }
41
- }
42
- dataJson += config.url
43
- } else {
44
- if (config.data) {
45
- if (typeof config.data === 'string') {
46
- dataJson = JSON.stringify(JSON.parse(config.data))
47
- } else {
48
- dataJson = JSON.stringify(config.data)
49
- }
50
- }
51
- }
52
-
53
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
54
- // @ts-ignore
55
- dataJson = dataJson
56
- .replaceAll('"', '')
57
- .replaceAll(',', '')
58
- .replaceAll(':', '')
59
- .replaceAll('.', '')
60
- .replaceAll('/', '')
61
- dataJson = dataJson.split('').sort().join('')
62
- config.headers.sessionId = sessionStorage.getItem('sessionId')
63
- config.headers.Authorization = Authorization
64
- config.headers.signa = Md5.hashStr(Authorization + signa + dataJson)
65
- config.headers.antiShakeKey = Md5.hashStr(dataJson)
66
- //防止重放 GUID+当前时间+TOKEN 加密
67
- const timeDifference = sessionStorage.getItem('timeDifference')
68
- const id = uuidv4()
69
- const localTime = new Date().getTime()
70
- const obj = { timeDifference: timeDifference, guid: id, localTime }
71
- config.headers.replayToken = encrypt.encrypt(JSON.stringify(obj))
72
- }
73
- //用于前端axios 请求防抖
74
- const debounceTokenCancel = new Map()
75
- request.interceptors.request.use(
76
- (config) => {
77
- setHeaders(config)
78
- // @ts-ignore
79
- if (config.isAntiShake) {
80
- // @ts-ignore
81
- const antiShakeTime = config.antiShakeTime
82
- //@ts-ignore
83
- const antiShakeKey = `${config.method}-${config.url}-${config.antiShakeKey}`
84
- const cancel = debounceTokenCancel.get(antiShakeKey)
85
- if (cancel) {
86
- cancel()
87
- }
88
- return new Promise((resolve) => {
89
- const timer = setTimeout(() => {
90
- clearTimeout(timer)
91
- resolve(config)
92
- }, antiShakeTime)
93
- debounceTokenCancel.set(antiShakeKey, () => {
94
- clearTimeout(timer)
95
- })
96
- })
97
- } else {
98
- return config
99
- }
100
- },
101
- (error: any) => {
102
- return Promise.resolve(error)
103
- },
104
- )
105
-
106
- // response 拦截
107
- request.interceptors.response.use(
108
- async (response: AxiosResponse<ResponseData>) => {
109
- const { status, data, config } = response
110
- if (status === 200) {
111
- if (data.code === '0') {
112
- return Promise.resolve(response)
113
- } else if (data.code == '10508') {
114
- isRefreshing = true
115
- } else if (data.code == '10401') {
116
- //TOKen过期
117
- if (!isRefreshing) {
118
- isRefreshing = true
119
- const rToken = sessionStorage.getItem('refreshToken')
120
- const data = await request.post('/api/system/login/refreshToken', {
121
- rToken: rToken,
122
- })
123
- if (data.data.code === '0') {
124
- sessionStorage.setItem('Authorization', data.data.data.token)
125
- sessionStorage.setItem('refreshToken', data.data.data.refreshToken)
126
- const r = request(config)
127
- requests.forEach((cb) => {
128
- cb.fn()
129
- })
130
- isRefreshing = false
131
- requests = []
132
- return r
133
- } else {
134
- isRefreshing = false
135
- requests = []
136
- ElMessage.warning({
137
- showClose: true,
138
- message: '用户信息已过期,请重新登录',
139
- grouping: true,
140
- })
141
- loginAgainBus.emit('loginAgain')
142
- WujieVue.bus.$emit('loginAgainBus')
143
- throw {
144
- code: '10508',
145
- msg: '用户信息已过期,请重新登录',
146
- url: config.url,
147
- }
148
- }
149
- } else {
150
- return new Promise((resolve) => {
151
- requests.push({
152
- fn: () => {
153
- //需要重新设置signa
154
- // setHeaders(config)
155
- resolve(request(config))
156
- },
157
- url: config.url,
158
- })
159
- })
160
- }
161
- } else {
162
- return Promise.resolve(response)
163
- }
164
- }
165
- return Promise.resolve(response)
166
- },
167
- (error: any) => {
168
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
169
- // @ts-ignore
170
- return Promise.reject(error)
171
- },
172
- )
173
- export default <T = any>(config: any) => {
174
- return request(config)
175
- .then((res: any) => {
176
- if (res.status !== 200) {
177
- throw {
178
- code: res.status + '',
179
- msg: res.status + res.statusText,
180
- url: config.url,
181
- }
182
- } else {
183
- const data = res.data as ResponseData<T>
184
- if (data.code === '0') {
185
- return data.data
186
- } else if (data.code == '10508') {
187
- ElMessage.warning({
188
- showClose: true,
189
- message: '用户信息已过期,请重新登录',
190
- grouping: true,
191
- })
192
- loginAgainBus.emit('loginAgain')
193
- WujieVue.bus.$emit('loginAgainBus')
194
- throw {
195
- code: data.code,
196
- msg: data.msg,
197
- url: config.url,
198
- }
199
- } else {
200
- throw {
201
- code: data.code,
202
- msg: data.msg,
203
- url: config.url,
204
- }
205
- }
206
- }
207
- })
208
- .catch((error) => {
209
- if (error.msg) {
210
- throw error
211
- } else {
212
- throw {
213
- code: error.response.status + '',
214
- msg: error.message,
215
- url: config.url,
216
- }
217
- }
218
- })
219
- }
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
+ import WujieVue from 'wujie-vue3'
21
+ /** 存储请求的数组 */
22
+ let requests: any[] = []
23
+ const request = axios.create({
24
+ timeout: 60000,
25
+ validateStatus(status) {
26
+ return status >= 200 && status < 500
27
+ },
28
+ })
29
+ function setHeaders(config: any) {
30
+ //数据防止篡改
31
+ const Authorization = sessionStorage.getItem('Authorization')
32
+ const signa = 'F2E49299-D0D2-4AA1-87A3-270272EA3D6A'
33
+ let dataJson: string = ''
34
+ if (config.method === 'get') {
35
+ if (config.params) {
36
+ if (typeof config.params === 'string') {
37
+ dataJson = JSON.stringify(JSON.parse(config.params))
38
+ } else {
39
+ dataJson = JSON.stringify(config.params)
40
+ }
41
+ }
42
+ dataJson += config.url
43
+ } else {
44
+ if (config.data) {
45
+ if (typeof config.data === 'string') {
46
+ dataJson = JSON.stringify(JSON.parse(config.data))
47
+ } else {
48
+ dataJson = JSON.stringify(config.data)
49
+ }
50
+ }
51
+ }
52
+
53
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
54
+ // @ts-ignore
55
+ dataJson = dataJson
56
+ .replaceAll('"', '')
57
+ .replaceAll(',', '')
58
+ .replaceAll(':', '')
59
+ .replaceAll('.', '')
60
+ .replaceAll('/', '')
61
+ dataJson = dataJson.split('').sort().join('')
62
+ config.headers.sessionId = sessionStorage.getItem('sessionId')
63
+ config.headers.Authorization = Authorization
64
+ config.headers.signa = Md5.hashStr(Authorization + signa + dataJson)
65
+ config.headers.antiShakeKey = Md5.hashStr(dataJson)
66
+ //防止重放 GUID+当前时间+TOKEN 加密
67
+ const timeDifference = sessionStorage.getItem('timeDifference')
68
+ const id = uuidv4()
69
+ const localTime = new Date().getTime()
70
+ const obj = { timeDifference: timeDifference, guid: id, localTime }
71
+ config.headers.replayToken = encrypt.encrypt(JSON.stringify(obj))
72
+ }
73
+ //用于前端axios 请求防抖
74
+ const debounceTokenCancel = new Map()
75
+ request.interceptors.request.use(
76
+ (config) => {
77
+ setHeaders(config)
78
+ // @ts-ignore
79
+ if (config.isAntiShake) {
80
+ // @ts-ignore
81
+ const antiShakeTime = config.antiShakeTime
82
+ //@ts-ignore
83
+ const antiShakeKey = `${config.method}-${config.url}-${config.antiShakeKey}`
84
+ const cancel = debounceTokenCancel.get(antiShakeKey)
85
+ if (cancel) {
86
+ cancel()
87
+ }
88
+ return new Promise((resolve) => {
89
+ const timer = setTimeout(() => {
90
+ clearTimeout(timer)
91
+ resolve(config)
92
+ }, antiShakeTime)
93
+ debounceTokenCancel.set(antiShakeKey, () => {
94
+ clearTimeout(timer)
95
+ })
96
+ })
97
+ } else {
98
+ return config
99
+ }
100
+ },
101
+ (error: any) => {
102
+ return Promise.resolve(error)
103
+ },
104
+ )
105
+
106
+ // response 拦截
107
+ request.interceptors.response.use(
108
+ async (response: AxiosResponse<ResponseData>) => {
109
+ const { status, data, config } = response
110
+ if (status === 200) {
111
+ if (data.code === '0') {
112
+ return Promise.resolve(response)
113
+ } else if (data.code == '10508') {
114
+ isRefreshing = true
115
+ } else if (data.code == '10401') {
116
+ //TOKen过期
117
+ if (!isRefreshing) {
118
+ isRefreshing = true
119
+ const rToken = sessionStorage.getItem('refreshToken')
120
+ const data = await request.post('/api/system/login/refreshToken', {
121
+ rToken: rToken,
122
+ })
123
+ if (data.data.code === '0') {
124
+ sessionStorage.setItem('Authorization', data.data.data.token)
125
+ sessionStorage.setItem('refreshToken', data.data.data.refreshToken)
126
+ const r = request(config)
127
+ requests.forEach((cb) => {
128
+ cb.fn()
129
+ })
130
+ isRefreshing = false
131
+ requests = []
132
+ return r
133
+ } else {
134
+ isRefreshing = false
135
+ requests = []
136
+ ElMessage.warning({
137
+ showClose: true,
138
+ message: '用户信息已过期,请重新登录',
139
+ grouping: true,
140
+ })
141
+ loginAgainBus.emit('loginAgain')
142
+ WujieVue.bus.$emit('loginAgainBus')
143
+ throw {
144
+ code: '10508',
145
+ msg: '用户信息已过期,请重新登录',
146
+ url: config.url,
147
+ }
148
+ }
149
+ } else {
150
+ return new Promise((resolve) => {
151
+ requests.push({
152
+ fn: () => {
153
+ //需要重新设置signa
154
+ // setHeaders(config)
155
+ resolve(request(config))
156
+ },
157
+ url: config.url,
158
+ })
159
+ })
160
+ }
161
+ } else {
162
+ return Promise.resolve(response)
163
+ }
164
+ }
165
+ return Promise.resolve(response)
166
+ },
167
+ (error: any) => {
168
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
169
+ // @ts-ignore
170
+ return Promise.reject(error)
171
+ },
172
+ )
173
+ export default <T = any>(config: any) => {
174
+ return request(config)
175
+ .then((res: any) => {
176
+ if (res.status !== 200) {
177
+ throw {
178
+ code: res.status + '',
179
+ msg: res.status + res.statusText,
180
+ url: config.url,
181
+ }
182
+ } else {
183
+ const data = res.data as ResponseData<T>
184
+ if (data.code === '0') {
185
+ return data.data
186
+ } else if (data.code == '10508') {
187
+ ElMessage.warning({
188
+ showClose: true,
189
+ message: '用户信息已过期,请重新登录',
190
+ grouping: true,
191
+ })
192
+ loginAgainBus.emit('loginAgain')
193
+ WujieVue.bus.$emit('loginAgainBus')
194
+ throw {
195
+ code: data.code,
196
+ msg: data.msg,
197
+ url: config.url,
198
+ }
199
+ } else {
200
+ throw {
201
+ code: data.code,
202
+ msg: data.msg,
203
+ url: config.url,
204
+ }
205
+ }
206
+ }
207
+ })
208
+ .catch((error) => {
209
+ if (error.msg) {
210
+ throw error
211
+ } else {
212
+ throw {
213
+ code: error.response.status + '',
214
+ msg: error.message,
215
+ url: config.url,
216
+ }
217
+ }
218
+ })
219
+ }
@@ -1,8 +1,8 @@
1
- /**
2
- * Create by丁盼
3
- * 说明: modules
4
- * 创建时间: 2025/1/20 10:53
5
- * 修改时间: 2025/1/20 10:53
6
- */
7
- const modules = import.meta.glob('/src/**/*.vue')
8
- export default modules
1
+ /**
2
+ * Create by丁盼
3
+ * 说明: modules
4
+ * 创建时间: 2025/1/20 10:53
5
+ * 修改时间: 2025/1/20 10:53
6
+ */
7
+ const modules = import.meta.glob('/src/**/*.vue')
8
+ export default modules
@@ -1,76 +1,76 @@
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
- get<T = unknown>(
13
- url: string,
14
- params?: any,
15
- isAntiShake: boolean = false,
16
- antiShakeTime: number = 500,
17
- menuId?: string,
18
- ): Promise<T> {
19
- //@ts-ignore
20
- return request<T>({
21
- url: url,
22
- method: 'get',
23
- params: this.trimObjectSpaces(params),
24
- isAntiShake: isAntiShake,
25
- antiShakeTime: antiShakeTime,
26
- menuId: menuId,
27
- })
28
- },
29
- /**
30
- * post 请求
31
- * @param url URL地址
32
- * @param data 请求数据
33
- * @param isAntiShake 防抖
34
- * @param antiShakeTime 防抖时间
35
- * @param menuId 菜单ID,setInterval 调用接口 请传入当前菜单的菜单ID否则会重新接口权限不正确情况
36
- */
37
- post<T = unknown>(
38
- url: string,
39
- data?: any,
40
- isAntiShake: boolean = false,
41
- antiShakeTime: number = 500,
42
- menuId?: string,
43
- ): Promise<T> {
44
- //@ts-ignore
45
- return request<T>({
46
- url: url,
47
- method: 'post',
48
- data: this.trimObjectSpaces(data),
49
- isAntiShake: isAntiShake,
50
- antiShakeTime: antiShakeTime,
51
- menuId: menuId,
52
- })
53
- },
54
- /**
55
- * 去除对象中所有字符串的前后空格
56
- * @param obj 要处理的对象
57
- * @returns 处理后的对象
58
- */
59
- trimObjectSpaces(obj:any) {
60
- if (typeof obj !== 'object' || obj === null) return obj
61
- // 遍历对象或数组的每个属性
62
- for (const key in obj) {
63
- if (obj.hasOwnProperty(key)) {
64
- const value = obj[key]
65
- if (typeof value === 'string') {
66
- // 去除前后空格
67
- obj[key] = value.trim()
68
- } else if (typeof value === 'object') {
69
- // 递归处理嵌套对象或数组
70
- this.trimObjectSpaces(value)
71
- }
72
- }
73
- }
74
- return obj
75
- },
76
- }
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
+ get<T = unknown>(
13
+ url: string,
14
+ params?: any,
15
+ isAntiShake: boolean = false,
16
+ antiShakeTime: number = 500,
17
+ menuId?: string,
18
+ ): Promise<T> {
19
+ //@ts-ignore
20
+ return request<T>({
21
+ url: url,
22
+ method: 'get',
23
+ params: this.trimObjectSpaces(params),
24
+ isAntiShake: isAntiShake,
25
+ antiShakeTime: antiShakeTime,
26
+ menuId: menuId,
27
+ })
28
+ },
29
+ /**
30
+ * post 请求
31
+ * @param url URL地址
32
+ * @param data 请求数据
33
+ * @param isAntiShake 防抖
34
+ * @param antiShakeTime 防抖时间
35
+ * @param menuId 菜单ID,setInterval 调用接口 请传入当前菜单的菜单ID否则会重新接口权限不正确情况
36
+ */
37
+ post<T = unknown>(
38
+ url: string,
39
+ data?: any,
40
+ isAntiShake: boolean = false,
41
+ antiShakeTime: number = 500,
42
+ menuId?: string,
43
+ ): Promise<T> {
44
+ //@ts-ignore
45
+ return request<T>({
46
+ url: url,
47
+ method: 'post',
48
+ data: this.trimObjectSpaces(data),
49
+ isAntiShake: isAntiShake,
50
+ antiShakeTime: antiShakeTime,
51
+ menuId: menuId,
52
+ })
53
+ },
54
+ /**
55
+ * 去除对象中所有字符串的前后空格
56
+ * @param obj 要处理的对象
57
+ * @returns 处理后的对象
58
+ */
59
+ trimObjectSpaces(obj:any) {
60
+ if (typeof obj !== 'object' || obj === null) return obj
61
+ // 遍历对象或数组的每个属性
62
+ for (const key in obj) {
63
+ if (obj.hasOwnProperty(key)) {
64
+ const value = obj[key]
65
+ if (typeof value === 'string') {
66
+ // 去除前后空格
67
+ obj[key] = value.trim()
68
+ } else if (typeof value === 'object') {
69
+ // 递归处理嵌套对象或数组
70
+ this.trimObjectSpaces(value)
71
+ }
72
+ }
73
+ }
74
+ return obj
75
+ },
76
+ }
@@ -1 +0,0 @@
1
- .icon[data-v-0af0286e]{width:1em;height:1em;vertical-align:-.15em;fill:currentColor;overflow:hidden}.icon-btn[data-v-2d77346e]{cursor:pointer;margin:0 0 0 8px;--el-button-hover-bg-color: var(--el-color-primary-light-3)}.icon-btn[data-v-2d77346e]:hover{color:var(--el-button-hover-bg-color)}.icon-btn--disabled[data-v-2d77346e]{color:var(--el-color-disabled-text-color);cursor:not-allowed!important}.icon-btn--size-large[data-v-2d77346e]{font-size:var(--el-font-size-large)}.icon-btn--size-default[data-v-2d77346e]{font-size:var(--el-font-size-base)}.icon-btn--size-small[data-v-2d77346e]{font-size:var(--el-font-size-small)}.icon-btn--primary[data-v-2d77346e]{--el-button-hover-bg-color: var(--el-color-primary-light-3);--el-button-disabled-bg-color: var(--el-color-primary-light-5);color:var(--el-color-primary)}.icon-btn--success[data-v-2d77346e]{--el-button-hover-bg-color: var(--el-color-success-light-3);--el-button-disabled-bg-color: var(--el-color-success-light-5);color:var(--el-color-success)}.icon-btn--warning[data-v-2d77346e]{--el-button-hover-bg-color: var(--el-color-warning-light-3);--el-button-disabled-bg-color: var(--el-color-warning-light-5);color:var(--el-color-warning)}.icon-btn--danger[data-v-2d77346e]{--el-button-hover-bg-color: var(--el-color-danger-light-3);--el-button-disabled-bg-color: var(--el-color-danger-light-5);color:var(--el-color-danger)}.icon-btn--info[data-v-2d77346e]{--el-button-hover-bg-color: var(--el-color-info-light-3);--el-button-disabled-bg-color: var(--el-color-info-light-5);color:var(--el-color-info)}.elementSelect[data-v-1cfe9fde]{border:2px dashed #1a67f8!important}.demo-form-inline .el-input[data-v-1cfe9fde]{--el-input-width: 220px}.demo-form-inline .el-select[data-v-1cfe9fde]{--el-select-width: 220px}.icon-btn[data-v-3d674f83]{margin-right:5px;cursor:pointer;--el-button-hover-bg-color: var(--el-color-primary-light-3)}.icon-btn[data-v-3d674f83]:hover{color:var(--el-button-hover-bg-color)}.icon-btn--disabled[data-v-3d674f83]{color:var(--el-color-disabled-text-color);cursor:not-allowed!important}.icon-btn--size-large[data-v-3d674f83]{font-size:var(--el-font-size-large)}.icon-btn--size-default[data-v-3d674f83]{font-size:var(--el-font-size-base)}.icon-btn--size-small[data-v-3d674f83]{font-size:var(--el-font-size-small)}.icon-btn--primary[data-v-3d674f83]{--el-button-hover-bg-color: var(--el-color-primary-light-3);--el-button-disabled-bg-color: var(--el-color-primary-light-5);color:var(--el-color-primary)}.icon-btn--success[data-v-3d674f83]{--el-button-hover-bg-color: var(--el-color-success-light-3);--el-button-disabled-bg-color: var(--el-color-success-light-5);color:var(--el-color-success)}.icon-btn--warning[data-v-3d674f83]{--el-button-hover-bg-color: var(--el-color-warning-light-3);--el-button-disabled-bg-color: var(--el-color-warning-light-5);color:var(--el-color-warning)}.icon-btn--danger[data-v-3d674f83]{--el-button-hover-bg-color: var(--el-color-danger-light-3);--el-button-disabled-bg-color: var(--el-color-danger-light-5);color:var(--el-color-danger)}.icon-btn--info[data-v-3d674f83]{--el-button-hover-bg-color: var(--el-color-info-light-3);--el-button-disabled-bg-color: var(--el-color-info-light-5);color:var(--el-color-info)}