adtec-core-package 0.2.5 → 0.2.7

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 (52) hide show
  1. package/README.en.md +36 -36
  2. package/package.json +1 -1
  3. package/src/api/DocumentApi.ts +18 -18
  4. package/src/api/SysDictCacheApi.ts +28 -28
  5. package/src/api/framework.ts +12 -12
  6. package/src/assets/style/ant.scss +19 -19
  7. package/src/assets/style/index.less +180 -180
  8. package/src/components/ElFlex/ElFlex.vue +297 -297
  9. package/src/components/Table/ElTableColumnEdit.vue +218 -218
  10. package/src/components/Title/ElTitle.vue +49 -49
  11. package/src/components/autoToolTip/{ElAutoToolTip.vue → index.vue} +61 -61
  12. package/src/components/upload/FileView.vue +158 -158
  13. package/src/components/upload/FileViewComponents.vue +57 -57
  14. package/src/config/ElementPlusConfig.ts +95 -95
  15. package/src/css/elementUI/autocomplete.scss +89 -89
  16. package/src/css/elementUI/common/var.scss +1549 -1549
  17. package/src/css/elementUI/date-picker/picker.scss +219 -219
  18. package/src/css/elementUI/drawer.scss +164 -164
  19. package/src/css/elementUI/table.scss +694 -694
  20. package/src/css/elementUI/tabs.scss +659 -659
  21. package/src/directives/vKeydown.ts +93 -93
  22. package/src/hooks/useDictHooks.ts +74 -81
  23. package/src/hooks/useFileView.ts +34 -34
  24. package/src/hooks/useMessageHooks.ts +132 -132
  25. package/src/hooks/useResetRefHooks.ts +19 -19
  26. package/src/interface/BaseEntity.ts +28 -28
  27. package/src/interface/ISysDictDataCacheVo.ts +46 -46
  28. package/src/interface/ISysDictType.ts +37 -37
  29. package/src/interface/ISysMenuDataVo.ts +22 -22
  30. package/src/interface/ISysMenuInfoVo.ts +83 -83
  31. package/src/interface/ISysMenuOperationVo.ts +21 -21
  32. package/src/interface/ISysUploadFiles.ts +16 -16
  33. package/src/interface/IUserPermissionVo.ts +34 -34
  34. package/src/interface/Message.ts +69 -69
  35. package/src/interface/PageData.ts +17 -17
  36. package/src/interface/ResponseData.ts +16 -16
  37. package/src/interface/enum/MessageEnum.ts +41 -41
  38. package/src/mixin/globalMixin.ts +4 -7
  39. package/src/packages/index.ts +18 -18
  40. package/src/packages/text.vue +13 -13
  41. package/src/plugins/plugins.ts +12 -12
  42. package/src/stores/dictStore.ts +20 -0
  43. package/src/stores/messageStore.ts +49 -49
  44. package/src/stores/storeConfig.ts +23 -22
  45. package/src/stores/userInfoStore.ts +31 -31
  46. package/src/utils/AxiosConfig.ts +216 -216
  47. package/src/api/BasicApi.ts +0 -17
  48. package/src/api/SysUserApi.ts +0 -35
  49. package/src/components/business/userSelect.vue +0 -412
  50. package/src/interface/IMdmDept.ts +0 -82
  51. package/src/interface/IOrgDeptInfo.ts +0 -12
  52. package/src/interface/ISysUserInfo.ts +0 -70
@@ -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,17 +0,0 @@
1
- import request from '../utils/request'
2
- import type { IOrgDeptInfo } from '../interface/IOrgDeptInfo'
3
-
4
- /**
5
- * Create by丁盼
6
- * 说明: BasicApi 基础数据接口
7
- * 创建时间: 2024/12/9 上午11:05
8
- * 修改时间: 2024/12/9 上午11:05
9
- */
10
- export default {
11
- /**
12
- * 获取MDM部门树
13
- */
14
- getMdmOrgDeptTree(): Promise<IOrgDeptInfo[]> {
15
- return request.post('/api/base/mdmDept/getMdmOrgDeptTree', {})
16
- },
17
- }
@@ -1,35 +0,0 @@
1
- import request from '../utils/request'
2
- import type { ISysUserInfo } from '../interface/ISysUserInfo'
3
-
4
- /**
5
- * Create by丁盼
6
- * 说明: SysUserApi
7
- * 创建时间: 2024/11/5 上午11:13
8
- * 修改时间: 2024/11/5 上午11:13
9
- */
10
- const basePath = '/api/system/sysUserInfo/'
11
- export default {
12
- /**
13
- * 保存用户信息
14
- * @param obj
15
- */
16
- add(obj: ISysUserInfo[]) {
17
- return request.post<ISysUserInfo[]>(basePath + 'add', obj)
18
- },
19
-
20
-
21
- /**
22
- * 选择用户组件获取用户信息
23
- * @param userIds
24
- */
25
- getInitUserListComp(userIds: string[]) {
26
- return request.post<ISysUserInfo[]>(basePath + 'getInitUserListComp', userIds)
27
- },
28
-
29
- /**
30
- * 选择人员组件获取用户信息
31
- */
32
- getSysUserInfoUserSelectComp(): Promise<ISysUserInfo[]> {
33
- return request.post(basePath + 'getSysUserInfoUserSelectComp')
34
- },
35
- }