@fmdevui/fm-dev 1.0.4 → 1.0.5
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.
- package/README.md +1 -0
- package/es/core/api/base/index.d.ts +19 -0
- package/es/core/api/index.d.ts +4 -0
- package/es/core/api/login/index.d.ts +7 -0
- package/es/core/api/sys/index.d.ts +39 -0
- package/es/core/api/utils/request.d.ts +36 -0
- package/es/core/auth/index.d.ts +40 -0
- package/es/core/directive/authDirective.d.ts +8 -0
- package/es/core/directive/customDirective.d.ts +21 -0
- package/es/core/directive/index.d.ts +9 -0
- package/es/core/index.d.ts +5 -2
- package/es/core/stores/index.d.ts +6 -0
- package/es/core/stores/inpinia.d.ts +3 -0
- package/es/core/stores/keepAliveNames.d.ts +17 -0
- package/es/core/stores/requestOldRoutes.d.ts +9 -0
- package/es/core/stores/routesList.d.ts +14 -0
- package/es/core/stores/tagsViewRoutes.d.ts +11 -0
- package/es/core/stores/themeConfig.d.ts +5 -0
- package/es/core/stores/userInfo.d.ts +21 -0
- package/es/core/utils/array/index.d.ts +23 -0
- package/es/core/utils/base64/index.d.ts +30 -0
- package/es/core/utils/comm/commonFunction.d.ts +17 -0
- package/es/core/utils/comm/data-signature.d.ts +17 -0
- package/es/core/utils/comm/download.d.ts +46 -0
- package/es/core/utils/comm/formatTime.d.ts +37 -0
- package/es/core/utils/comm/idleTimeout.d.ts +45 -0
- package/es/core/utils/comm/index.d.ts +7 -0
- package/es/core/utils/comm/setIconfont.d.ts +12 -0
- package/es/core/utils/comm/signalR.d.ts +3 -0
- package/es/core/utils/comm/sysInfo.d.ts +2 -0
- package/es/core/utils/comm/theme.d.ts +13 -0
- package/es/core/utils/comm/toolsValidate.d.ts +148 -0
- package/es/core/utils/comm/uploadfileurl.d.ts +2 -0
- package/es/core/utils/const/index.d.ts +11 -0
- package/es/core/utils/emit/index.d.ts +4 -0
- package/es/core/utils/index.d.ts +7 -0
- package/es/core/utils/other/index.d.ts +69 -0
- package/es/core/utils/storage/index.d.ts +27 -0
- package/es/core/utils/watermark/index.d.ts +10 -0
- package/es/index.mjs +23 -0
- package/es/packages/core/api/base/index.mjs +179 -0
- package/es/packages/core/api/index.mjs +4 -0
- package/es/packages/core/api/login/index.mjs +35 -0
- package/es/packages/core/api/sys/index.mjs +201 -0
- package/es/packages/core/api/types/global.d.mjs +1 -0
- package/es/packages/core/api/utils/request.mjs +173 -0
- package/es/packages/core/auth/index.mjs +34 -0
- package/es/packages/core/directive/authDirective.mjs +38 -0
- package/es/packages/core/directive/customDirective.mjs +147 -0
- package/es/packages/core/directive/index.mjs +10 -0
- package/es/packages/core/index.mjs +26 -0
- package/es/packages/core/stores/index.mjs +6 -0
- package/es/packages/core/stores/inpinia.mjs +5 -0
- package/es/packages/core/stores/keepAliveNames.mjs +29 -0
- package/es/packages/core/stores/requestOldRoutes.mjs +14 -0
- package/es/packages/core/stores/routesList.mjs +26 -0
- package/es/packages/core/stores/tagsViewRoutes.mjs +22 -0
- package/es/packages/core/stores/themeConfig.mjs +161 -0
- package/es/packages/core/stores/userInfo.mjs +156 -0
- package/es/packages/core/utils/array/index.mjs +59 -0
- package/es/packages/core/utils/base64/index.mjs +57 -0
- package/es/packages/core/utils/comm/calendar.mjs +785 -0
- package/es/packages/core/utils/comm/commonFunction.mjs +83 -0
- package/es/packages/core/utils/comm/data-signature.mjs +39 -0
- package/es/packages/core/utils/comm/download.mjs +78 -0
- package/es/packages/core/utils/comm/formatTime.mjs +110 -0
- package/es/packages/core/utils/comm/idleTimeout.mjs +124 -0
- package/es/packages/core/utils/comm/index.mjs +7 -0
- package/es/packages/core/utils/comm/setIconfont.mjs +36 -0
- package/es/packages/core/utils/comm/signalR.mjs +45 -0
- package/es/packages/core/utils/comm/sysInfo.mjs +54 -0
- package/es/packages/core/utils/comm/theme.mjs +54 -0
- package/es/packages/core/utils/comm/toolsValidate.mjs +140 -0
- package/es/packages/core/utils/comm/uploadfileurl.mjs +12 -0
- package/es/packages/core/utils/const/index.mjs +13 -0
- package/es/packages/core/utils/emit/index.mjs +5 -0
- package/es/packages/core/utils/index.mjs +13 -0
- package/es/packages/core/utils/other/index.mjs +137 -0
- package/es/packages/core/utils/storage/index.mjs +55 -0
- package/es/packages/core/utils/watermark/index.mjs +39 -0
- package/index.js +22990 -5106
- package/index.min.js +42 -10
- package/index.min.mjs +42 -10
- package/index.mjs +22916 -5104
- package/lib/core/api/base/index.d.ts +19 -0
- package/lib/core/api/index.d.ts +4 -0
- package/lib/core/api/login/index.d.ts +7 -0
- package/lib/core/api/sys/index.d.ts +39 -0
- package/lib/core/api/utils/request.d.ts +36 -0
- package/lib/core/auth/index.d.ts +40 -0
- package/lib/core/directive/authDirective.d.ts +8 -0
- package/lib/core/directive/customDirective.d.ts +21 -0
- package/lib/core/directive/index.d.ts +9 -0
- package/lib/core/index.d.ts +5 -2
- package/lib/core/stores/index.d.ts +6 -0
- package/lib/core/stores/inpinia.d.ts +3 -0
- package/lib/core/stores/keepAliveNames.d.ts +17 -0
- package/lib/core/stores/requestOldRoutes.d.ts +9 -0
- package/lib/core/stores/routesList.d.ts +14 -0
- package/lib/core/stores/tagsViewRoutes.d.ts +11 -0
- package/lib/core/stores/themeConfig.d.ts +5 -0
- package/lib/core/stores/userInfo.d.ts +21 -0
- package/lib/core/utils/array/index.d.ts +23 -0
- package/lib/core/utils/base64/index.d.ts +30 -0
- package/lib/core/utils/comm/commonFunction.d.ts +17 -0
- package/lib/core/utils/comm/data-signature.d.ts +17 -0
- package/lib/core/utils/comm/download.d.ts +46 -0
- package/lib/core/utils/comm/formatTime.d.ts +37 -0
- package/lib/core/utils/comm/idleTimeout.d.ts +45 -0
- package/lib/core/utils/comm/index.d.ts +7 -0
- package/lib/core/utils/comm/setIconfont.d.ts +12 -0
- package/lib/core/utils/comm/signalR.d.ts +3 -0
- package/lib/core/utils/comm/sysInfo.d.ts +2 -0
- package/lib/core/utils/comm/theme.d.ts +13 -0
- package/lib/core/utils/comm/toolsValidate.d.ts +148 -0
- package/lib/core/utils/comm/uploadfileurl.d.ts +2 -0
- package/lib/core/utils/const/index.d.ts +11 -0
- package/lib/core/utils/emit/index.d.ts +4 -0
- package/lib/core/utils/index.d.ts +7 -0
- package/lib/core/utils/other/index.d.ts +69 -0
- package/lib/core/utils/storage/index.d.ts +27 -0
- package/lib/core/utils/watermark/index.d.ts +10 -0
- package/lib/index.js +111 -7
- package/lib/packages/core/api/base/index.js +181 -0
- package/lib/packages/core/api/index.js +26 -0
- package/lib/packages/core/api/login/index.js +37 -0
- package/lib/packages/core/api/sys/index.js +204 -0
- package/lib/packages/core/api/types/global.d.js +2 -0
- package/lib/packages/core/api/utils/request.js +190 -0
- package/lib/packages/core/auth/index.js +41 -0
- package/lib/packages/core/directive/authDirective.js +40 -0
- package/lib/packages/core/directive/customDirective.js +151 -0
- package/lib/packages/core/directive/index.js +12 -0
- package/lib/packages/core/index.js +114 -7
- package/lib/packages/core/stores/index.js +17 -0
- package/lib/packages/core/stores/inpinia.js +7 -0
- package/lib/packages/core/stores/keepAliveNames.js +31 -0
- package/lib/packages/core/stores/requestOldRoutes.js +16 -0
- package/lib/packages/core/stores/routesList.js +28 -0
- package/lib/packages/core/stores/tagsViewRoutes.js +24 -0
- package/lib/packages/core/stores/themeConfig.js +163 -0
- package/lib/packages/core/stores/userInfo.js +158 -0
- package/lib/packages/core/utils/array/index.js +64 -0
- package/lib/packages/core/utils/base64/index.js +63 -0
- package/lib/packages/core/utils/comm/calendar.js +789 -0
- package/lib/packages/core/utils/comm/commonFunction.js +87 -0
- package/lib/packages/core/utils/comm/data-signature.js +41 -0
- package/lib/packages/core/utils/comm/download.js +86 -0
- package/lib/packages/core/utils/comm/formatTime.js +115 -0
- package/lib/packages/core/utils/comm/idleTimeout.js +128 -0
- package/lib/packages/core/utils/comm/index.js +50 -0
- package/lib/packages/core/utils/comm/setIconfont.js +42 -0
- package/lib/packages/core/utils/comm/signalR.js +66 -0
- package/lib/packages/core/utils/comm/sysInfo.js +57 -0
- package/lib/packages/core/utils/comm/theme.js +56 -0
- package/lib/packages/core/utils/comm/toolsValidate.js +165 -0
- package/lib/packages/core/utils/comm/uploadfileurl.js +14 -0
- package/lib/packages/core/utils/const/index.js +15 -0
- package/lib/packages/core/utils/emit/index.js +9 -0
- package/lib/packages/core/utils/index.js +69 -0
- package/lib/packages/core/utils/other/index.js +149 -0
- package/lib/packages/core/utils/storage/index.js +58 -0
- package/lib/packages/core/utils/watermark/index.js +41 -0
- package/package.json +2 -2
- package/es/core/types/axios/index.d.ts +0 -11
- package/es/packages/core/types/axios/index.mjs +0 -2
- package/lib/core/types/axios/index.d.ts +0 -11
- package/lib/packages/core/types/axios/index.js +0 -28
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
import { service } from '../utils/request.mjs';
|
|
2
|
+
|
|
3
|
+
function useSysApi() {
|
|
4
|
+
return {
|
|
5
|
+
getSysInfo: (id) => {
|
|
6
|
+
return service({
|
|
7
|
+
url: `/api/sysTenant/sysInfo/${id}`,
|
|
8
|
+
method: "GET"
|
|
9
|
+
});
|
|
10
|
+
},
|
|
11
|
+
getSmPublicKey: () => {
|
|
12
|
+
return service({
|
|
13
|
+
url: `/api/sysConfig/smPublicKey`,
|
|
14
|
+
method: "GET"
|
|
15
|
+
});
|
|
16
|
+
},
|
|
17
|
+
getMenuTree: () => {
|
|
18
|
+
return service({
|
|
19
|
+
url: `/api/sysMenu/loginMenuTree`,
|
|
20
|
+
method: "GET"
|
|
21
|
+
});
|
|
22
|
+
},
|
|
23
|
+
getMenuUserMenuList: () => {
|
|
24
|
+
return service({
|
|
25
|
+
url: `/api/sysUserMenu/userMenuList`,
|
|
26
|
+
method: "GET"
|
|
27
|
+
});
|
|
28
|
+
},
|
|
29
|
+
addUserMenu: (data) => {
|
|
30
|
+
return service({
|
|
31
|
+
url: `/api/sysUserMenu/add`,
|
|
32
|
+
method: "POST",
|
|
33
|
+
data
|
|
34
|
+
});
|
|
35
|
+
},
|
|
36
|
+
setNoticeRead: (data) => {
|
|
37
|
+
return service({
|
|
38
|
+
url: `/api/sysNotice/setRead`,
|
|
39
|
+
method: "POST",
|
|
40
|
+
data
|
|
41
|
+
});
|
|
42
|
+
},
|
|
43
|
+
getNoticeTitle: () => {
|
|
44
|
+
return service({
|
|
45
|
+
url: `/api/sysNotice/noticeTitle`,
|
|
46
|
+
method: "GET"
|
|
47
|
+
});
|
|
48
|
+
},
|
|
49
|
+
getNoticeUnReadList: () => {
|
|
50
|
+
return service({
|
|
51
|
+
url: `/api/sysNotice/unReadList`,
|
|
52
|
+
method: "GET"
|
|
53
|
+
});
|
|
54
|
+
},
|
|
55
|
+
NoticePageReceived: (data) => {
|
|
56
|
+
return service({
|
|
57
|
+
url: `/api/sysNotice/pageReceived`,
|
|
58
|
+
method: "POST",
|
|
59
|
+
data
|
|
60
|
+
});
|
|
61
|
+
},
|
|
62
|
+
getUpgradeLastUnRead: () => {
|
|
63
|
+
return service({
|
|
64
|
+
url: `/api/sysUpgrade/lastUnRead`,
|
|
65
|
+
method: "GET"
|
|
66
|
+
});
|
|
67
|
+
},
|
|
68
|
+
// 获取用户信息
|
|
69
|
+
getUserInfo: () => {
|
|
70
|
+
return service({
|
|
71
|
+
url: `/api/sysAuth/userInfo`,
|
|
72
|
+
method: "GET"
|
|
73
|
+
});
|
|
74
|
+
},
|
|
75
|
+
getUserRoleTableList: () => {
|
|
76
|
+
return service({
|
|
77
|
+
url: `/api/sysRole/userRoleTableList`,
|
|
78
|
+
method: "GET"
|
|
79
|
+
});
|
|
80
|
+
},
|
|
81
|
+
getConstList: () => {
|
|
82
|
+
return service({
|
|
83
|
+
url: `/api/sysConst/list`,
|
|
84
|
+
method: "GET"
|
|
85
|
+
});
|
|
86
|
+
},
|
|
87
|
+
getPosList: () => {
|
|
88
|
+
return service({
|
|
89
|
+
url: `/api/sysPos/list`,
|
|
90
|
+
method: "GET"
|
|
91
|
+
});
|
|
92
|
+
},
|
|
93
|
+
getOwnRoleListById: (userid) => {
|
|
94
|
+
return service({
|
|
95
|
+
url: `/api/sysUser/ownRoleList/${userid}`,
|
|
96
|
+
method: "GET"
|
|
97
|
+
});
|
|
98
|
+
},
|
|
99
|
+
getRoleList: () => {
|
|
100
|
+
return service({
|
|
101
|
+
url: `/api/sysRole/list`,
|
|
102
|
+
method: "GET"
|
|
103
|
+
});
|
|
104
|
+
},
|
|
105
|
+
getSysOrgChildTreePidLevel: (pid, level) => {
|
|
106
|
+
return service({
|
|
107
|
+
url: `/api/sysOrg/childTree/${pid}/${level}`,
|
|
108
|
+
method: "GET"
|
|
109
|
+
});
|
|
110
|
+
},
|
|
111
|
+
getOrgList: (params) => {
|
|
112
|
+
return service({
|
|
113
|
+
url: `/api/sysOrg/list`,
|
|
114
|
+
method: "GET",
|
|
115
|
+
params
|
|
116
|
+
});
|
|
117
|
+
},
|
|
118
|
+
getUserBaseInfo: () => {
|
|
119
|
+
return service({
|
|
120
|
+
url: `/api/sysUser/baseInfo`,
|
|
121
|
+
method: "GET"
|
|
122
|
+
});
|
|
123
|
+
},
|
|
124
|
+
getOwnExtOrgListByid: (userid) => {
|
|
125
|
+
return service({
|
|
126
|
+
url: `/api/sysUser/ownExtOrgList/${userid}`,
|
|
127
|
+
method: "GET"
|
|
128
|
+
});
|
|
129
|
+
},
|
|
130
|
+
getAllDictList: () => {
|
|
131
|
+
return service({
|
|
132
|
+
url: `/api/sysDictType/allDictList`,
|
|
133
|
+
method: "GET"
|
|
134
|
+
});
|
|
135
|
+
},
|
|
136
|
+
verifyPwdExpirationTime: () => {
|
|
137
|
+
return service({
|
|
138
|
+
url: `/api/sysUser/verifyPwdExpirationTime`,
|
|
139
|
+
method: "POST"
|
|
140
|
+
});
|
|
141
|
+
},
|
|
142
|
+
changePwd: (data) => {
|
|
143
|
+
return service({
|
|
144
|
+
url: `/fmauth/sysauth/changePwd`,
|
|
145
|
+
method: "POST",
|
|
146
|
+
data
|
|
147
|
+
});
|
|
148
|
+
},
|
|
149
|
+
resetPwd: (data) => {
|
|
150
|
+
return service({
|
|
151
|
+
url: `/fmauth/sysauth/resetPwd`,
|
|
152
|
+
method: "POST",
|
|
153
|
+
data
|
|
154
|
+
});
|
|
155
|
+
},
|
|
156
|
+
unlockLogin: (data) => {
|
|
157
|
+
return service({
|
|
158
|
+
url: `/fmauth/sysauth/unlockLogin`,
|
|
159
|
+
method: "POST",
|
|
160
|
+
data
|
|
161
|
+
});
|
|
162
|
+
},
|
|
163
|
+
changeToken: (data) => {
|
|
164
|
+
return service({
|
|
165
|
+
url: `/fmauth/sysauth/changeToken`,
|
|
166
|
+
method: "POST",
|
|
167
|
+
data
|
|
168
|
+
});
|
|
169
|
+
},
|
|
170
|
+
Logout: () => {
|
|
171
|
+
return service({
|
|
172
|
+
url: `/fmauth/sysauth/logout`,
|
|
173
|
+
method: "POST"
|
|
174
|
+
});
|
|
175
|
+
},
|
|
176
|
+
unLockScreen: (password) => {
|
|
177
|
+
return service({
|
|
178
|
+
url: `/fmauth/sysauth/unlockScreen/?password=${password}`,
|
|
179
|
+
method: "POST"
|
|
180
|
+
});
|
|
181
|
+
},
|
|
182
|
+
getOnlineUserList: (data) => {
|
|
183
|
+
return service({
|
|
184
|
+
url: `/fmauth/sysOnlineUser/page`,
|
|
185
|
+
method: "POST",
|
|
186
|
+
data
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
function feature(promise, errorExt) {
|
|
192
|
+
return promise.then((data) => [null, data]).catch((err) => {
|
|
193
|
+
if (errorExt) {
|
|
194
|
+
const parsedError = Object.assign({}, err, errorExt);
|
|
195
|
+
return [parsedError, void 0];
|
|
196
|
+
}
|
|
197
|
+
return [err, void 0];
|
|
198
|
+
});
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
export { feature, useSysApi };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
import axios from 'axios';
|
|
2
|
+
import '../../utils/index.mjs';
|
|
3
|
+
import { ElMessage } from 'element-plus';
|
|
4
|
+
import { PUB } from '../../utils/const/index.mjs';
|
|
5
|
+
import { Local, Session } from '../../utils/storage/index.mjs';
|
|
6
|
+
|
|
7
|
+
const abortControllerMap = /* @__PURE__ */ new Map();
|
|
8
|
+
const service = axios.create({
|
|
9
|
+
baseURL: window.__env__.VITE_API_URL,
|
|
10
|
+
timeout: 5e4
|
|
11
|
+
// headers: { 'Content-Type': 'application/json' },
|
|
12
|
+
});
|
|
13
|
+
const accessTokenKey = PUB.accessTokenKey;
|
|
14
|
+
const refreshAccessTokenKey = PUB.refreshAccessTokenKey;
|
|
15
|
+
const getToken = () => {
|
|
16
|
+
return Local.get(accessTokenKey);
|
|
17
|
+
};
|
|
18
|
+
const clearTokens = () => {
|
|
19
|
+
Local.remove(accessTokenKey);
|
|
20
|
+
Local.remove(refreshAccessTokenKey);
|
|
21
|
+
Session.clear();
|
|
22
|
+
};
|
|
23
|
+
const clearAccessTokens = () => {
|
|
24
|
+
clearTokens();
|
|
25
|
+
window.location.reload();
|
|
26
|
+
};
|
|
27
|
+
const axiosInstance = axios;
|
|
28
|
+
service.interceptors.request.use(
|
|
29
|
+
(config) => {
|
|
30
|
+
const controller = new AbortController();
|
|
31
|
+
config.signal = controller.signal;
|
|
32
|
+
const url = config.url || "";
|
|
33
|
+
abortControllerMap.set(url, controller);
|
|
34
|
+
const accessToken = Local.get(accessTokenKey);
|
|
35
|
+
if (accessToken) {
|
|
36
|
+
config.headers["Authorization"] = `Bearer ${accessToken}`;
|
|
37
|
+
const jwt = decryptJWT(accessToken);
|
|
38
|
+
const exp = getJWTDate(jwt.exp);
|
|
39
|
+
if (/* @__PURE__ */ new Date() >= exp) {
|
|
40
|
+
const refreshAccessToken = Local.get(refreshAccessTokenKey);
|
|
41
|
+
if (refreshAccessToken) {
|
|
42
|
+
config.headers["X-Authorization"] = `Bearer ${refreshAccessToken}`;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
if (config.method?.toLowerCase() === "get" && config.data) {
|
|
46
|
+
let url2 = config.url + "?" + tansParams(config.data);
|
|
47
|
+
url2 = url2.slice(0, -1);
|
|
48
|
+
config.data = {};
|
|
49
|
+
config.url = url2;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return config;
|
|
53
|
+
},
|
|
54
|
+
(error) => {
|
|
55
|
+
return Promise.reject(error);
|
|
56
|
+
}
|
|
57
|
+
);
|
|
58
|
+
service.interceptors.response.use(
|
|
59
|
+
(res) => {
|
|
60
|
+
const url = res.config.url || "";
|
|
61
|
+
abortControllerMap.delete(url);
|
|
62
|
+
var status = res.status;
|
|
63
|
+
var serve = res.data;
|
|
64
|
+
if (status === 401) {
|
|
65
|
+
clearAccessTokens();
|
|
66
|
+
}
|
|
67
|
+
if (status >= 400) {
|
|
68
|
+
throw new Error(res.statusText || "Request Error.");
|
|
69
|
+
}
|
|
70
|
+
if (serve && serve.hasOwnProperty("errors") && serve.errors) {
|
|
71
|
+
throw new Error(JSON.stringify(serve.errors || "Request Error."));
|
|
72
|
+
}
|
|
73
|
+
var accessToken = res.headers[accessTokenKey];
|
|
74
|
+
var refreshAccessToken = res.headers[refreshAccessTokenKey];
|
|
75
|
+
if (accessToken === "invalid_token") {
|
|
76
|
+
clearAccessTokens();
|
|
77
|
+
} else if (refreshAccessToken && accessToken) {
|
|
78
|
+
Local.set(accessTokenKey, accessToken);
|
|
79
|
+
Local.set(refreshAccessTokenKey, refreshAccessToken);
|
|
80
|
+
}
|
|
81
|
+
if (serve.code === 401) {
|
|
82
|
+
clearAccessTokens();
|
|
83
|
+
} else if (serve.code === void 0) {
|
|
84
|
+
return Promise.resolve(res);
|
|
85
|
+
} else if (serve.code !== 200) {
|
|
86
|
+
var message;
|
|
87
|
+
if (serve.message && typeof serve.message == "object") {
|
|
88
|
+
message = JSON.stringify(serve.message);
|
|
89
|
+
} else {
|
|
90
|
+
message = serve.message;
|
|
91
|
+
}
|
|
92
|
+
ElMessage.error(message);
|
|
93
|
+
throw new Error(message);
|
|
94
|
+
}
|
|
95
|
+
return res;
|
|
96
|
+
},
|
|
97
|
+
(error) => {
|
|
98
|
+
if (error.response) {
|
|
99
|
+
if (error.response.status === 401) {
|
|
100
|
+
clearAccessTokens();
|
|
101
|
+
} else if (error.response.statusCode === 404) {
|
|
102
|
+
ElMessage.error("\u63A5\u53E3\u5F02\u5E38\uFF0C\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458");
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
if (error.message.indexOf("timeout") != -1) {
|
|
106
|
+
ElMessage.error("\u7F51\u7EDC\u8D85\u65F6");
|
|
107
|
+
} else if (error.message == "Network Error") {
|
|
108
|
+
ElMessage.error("\u7F51\u7EDC\u8FDE\u63A5\u9519\u8BEF");
|
|
109
|
+
} else {
|
|
110
|
+
if (error.response.data) ElMessage.error(error.response.statusText);
|
|
111
|
+
else ElMessage.error("\u63A5\u53E3\u8DEF\u5F84\u627E\u4E0D\u5230");
|
|
112
|
+
}
|
|
113
|
+
return Promise.reject(error);
|
|
114
|
+
}
|
|
115
|
+
);
|
|
116
|
+
const cancelRequest = (url) => {
|
|
117
|
+
const urlList = Array.isArray(url) ? url : [url];
|
|
118
|
+
for (const _url of urlList) {
|
|
119
|
+
abortControllerMap.get(_url)?.abort();
|
|
120
|
+
abortControllerMap.delete(_url);
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
const cancelAllRequest = () => {
|
|
124
|
+
for (const [_, controller] of abortControllerMap) {
|
|
125
|
+
controller.abort();
|
|
126
|
+
}
|
|
127
|
+
abortControllerMap.clear();
|
|
128
|
+
};
|
|
129
|
+
function tansParams(params) {
|
|
130
|
+
let result = "";
|
|
131
|
+
for (const propName of Object.keys(params)) {
|
|
132
|
+
const value = params[propName];
|
|
133
|
+
var part = encodeURIComponent(propName) + "=";
|
|
134
|
+
if (value !== null && value !== "" && typeof value !== "undefined") {
|
|
135
|
+
if (typeof value === "object") {
|
|
136
|
+
for (const key of Object.keys(value)) {
|
|
137
|
+
if (value[key] !== null && value[key] !== "" && typeof value[key] !== "undefined") {
|
|
138
|
+
let params2 = propName + "[" + key + "]";
|
|
139
|
+
var subPart = encodeURIComponent(params2) + "=";
|
|
140
|
+
result += subPart + encodeURIComponent(value[key]) + "&";
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
} else {
|
|
144
|
+
result += part + encodeURIComponent(value) + "&";
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
return result;
|
|
149
|
+
}
|
|
150
|
+
function decryptJWT(token) {
|
|
151
|
+
token = token.replace(/_/g, "/").replace(/-/g, "+");
|
|
152
|
+
var json = decodeURIComponent(escape(window.atob(token.split(".")[1])));
|
|
153
|
+
return JSON.parse(json);
|
|
154
|
+
}
|
|
155
|
+
function getJWTDate(timestamp) {
|
|
156
|
+
return new Date(timestamp * 1e3);
|
|
157
|
+
}
|
|
158
|
+
function request2(config) {
|
|
159
|
+
return new Promise((resolve, reject) => {
|
|
160
|
+
service(config).then((res) => {
|
|
161
|
+
if (res.data.type == "success") {
|
|
162
|
+
resolve(res.data.result);
|
|
163
|
+
} else {
|
|
164
|
+
ElMessage.success(res.data.message);
|
|
165
|
+
}
|
|
166
|
+
}).catch((res) => {
|
|
167
|
+
ElMessage.error(res);
|
|
168
|
+
reject(res);
|
|
169
|
+
});
|
|
170
|
+
});
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
export { accessTokenKey, axiosInstance, cancelAllRequest, cancelRequest, clearAccessTokens, clearTokens, decryptJWT, service as default, getJWTDate, getToken, refreshAccessTokenKey, request2, service, tansParams };
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import '../stores/index.mjs';
|
|
2
|
+
import { judgementSameArr } from '../utils/array/index.mjs';
|
|
3
|
+
import { withDirectives, resolveDirective } from 'vue';
|
|
4
|
+
import { useUserInfo } from '../stores/userInfo.mjs';
|
|
5
|
+
|
|
6
|
+
function auth(value) {
|
|
7
|
+
const stores = useUserInfo();
|
|
8
|
+
return stores.userInfos.authApiList.some((v) => v === value);
|
|
9
|
+
}
|
|
10
|
+
function auths(value) {
|
|
11
|
+
let flag = false;
|
|
12
|
+
const stores = useUserInfo();
|
|
13
|
+
stores.userInfos.authApiList.map((val) => {
|
|
14
|
+
value.map((v) => {
|
|
15
|
+
if (val === v) flag = true;
|
|
16
|
+
});
|
|
17
|
+
});
|
|
18
|
+
return flag;
|
|
19
|
+
}
|
|
20
|
+
function authAll(value) {
|
|
21
|
+
const stores = useUserInfo();
|
|
22
|
+
return judgementSameArr(value, stores.userInfos.authApiList);
|
|
23
|
+
}
|
|
24
|
+
function hAuth(el, value) {
|
|
25
|
+
return withDirectives(el, [[resolveDirective("auth"), value]]);
|
|
26
|
+
}
|
|
27
|
+
function hAuths(el, value) {
|
|
28
|
+
return withDirectives(el, [[resolveDirective("auths"), value]]);
|
|
29
|
+
}
|
|
30
|
+
function hAuthAll(el, value) {
|
|
31
|
+
return withDirectives(el, [[resolveDirective("auth-all"), value]]);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
export { auth, authAll, auths, hAuth, hAuthAll, hAuths };
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import '../stores/index.mjs';
|
|
2
|
+
import '../utils/index.mjs';
|
|
3
|
+
import { useUserInfo } from '../stores/userInfo.mjs';
|
|
4
|
+
import { judgementSameArr } from '../utils/array/index.mjs';
|
|
5
|
+
|
|
6
|
+
function authDirective(app) {
|
|
7
|
+
app.directive("auth", {
|
|
8
|
+
mounted(el, binding) {
|
|
9
|
+
const stores = useUserInfo();
|
|
10
|
+
if (!stores.userInfos.authApiList) {
|
|
11
|
+
el.parentNode.removeChild(el);
|
|
12
|
+
} else {
|
|
13
|
+
if (!stores.userInfos.authApiList.some((v) => v === binding.value)) el.parentNode.removeChild(el);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
app.directive("auths", {
|
|
18
|
+
mounted(el, binding) {
|
|
19
|
+
let flag = false;
|
|
20
|
+
const stores = useUserInfo();
|
|
21
|
+
stores.userInfos.authApiList.map((val) => {
|
|
22
|
+
binding.value.map((v) => {
|
|
23
|
+
if (val === v) flag = true;
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
if (!flag) el.parentNode.removeChild(el);
|
|
27
|
+
}
|
|
28
|
+
});
|
|
29
|
+
app.directive("auth-all", {
|
|
30
|
+
mounted(el, binding) {
|
|
31
|
+
const stores = useUserInfo();
|
|
32
|
+
const flag = judgementSameArr(binding.value, stores.userInfos.authApiList);
|
|
33
|
+
if (!flag) el.parentNode.removeChild(el);
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
export { authDirective };
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
function wavesDirective(app) {
|
|
2
|
+
app.directive("waves", {
|
|
3
|
+
mounted(el, binding) {
|
|
4
|
+
el.classList.add("waves-effect");
|
|
5
|
+
binding.value && el.classList.add(`waves-${binding.value}`);
|
|
6
|
+
function setConvertStyle(obj) {
|
|
7
|
+
let style = "";
|
|
8
|
+
for (let i in obj) {
|
|
9
|
+
if (obj.hasOwnProperty(i)) style += `${i}:${obj[i]};`;
|
|
10
|
+
}
|
|
11
|
+
return style;
|
|
12
|
+
}
|
|
13
|
+
function onCurrentClick(e) {
|
|
14
|
+
let elDiv = document.createElement("div");
|
|
15
|
+
elDiv.classList.add("waves-ripple");
|
|
16
|
+
el.appendChild(elDiv);
|
|
17
|
+
let styles = {
|
|
18
|
+
left: `${e.layerX}px`,
|
|
19
|
+
top: `${e.layerY}px`,
|
|
20
|
+
opacity: 1,
|
|
21
|
+
transform: `scale(${el.clientWidth / 100 * 10})`,
|
|
22
|
+
"transition-duration": `750ms`,
|
|
23
|
+
"transition-timing-function": `cubic-bezier(0.250, 0.460, 0.450, 0.940)`
|
|
24
|
+
};
|
|
25
|
+
elDiv.setAttribute("style", setConvertStyle(styles));
|
|
26
|
+
setTimeout(() => {
|
|
27
|
+
elDiv.setAttribute(
|
|
28
|
+
"style",
|
|
29
|
+
setConvertStyle({
|
|
30
|
+
opacity: 0,
|
|
31
|
+
transform: styles.transform,
|
|
32
|
+
left: styles.left,
|
|
33
|
+
top: styles.top
|
|
34
|
+
})
|
|
35
|
+
);
|
|
36
|
+
setTimeout(() => {
|
|
37
|
+
elDiv && el.removeChild(elDiv);
|
|
38
|
+
}, 750);
|
|
39
|
+
}, 450);
|
|
40
|
+
}
|
|
41
|
+
el.addEventListener("mousedown", onCurrentClick, false);
|
|
42
|
+
},
|
|
43
|
+
unmounted(el) {
|
|
44
|
+
el.addEventListener("mousedown", () => {
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
function dragDirective(app) {
|
|
50
|
+
app.directive("drag", {
|
|
51
|
+
mounted(el, binding) {
|
|
52
|
+
if (!binding.value) return false;
|
|
53
|
+
const dragDom = document.querySelector(binding.value[0]);
|
|
54
|
+
const dragHeader = document.querySelector(binding.value[1]);
|
|
55
|
+
dragHeader.onmouseover = () => dragHeader.style.cursor = `move`;
|
|
56
|
+
function down(e, type) {
|
|
57
|
+
const disX = type === "pc" ? e.clientX - dragHeader.offsetLeft : e.touches[0].clientX - dragHeader.offsetLeft;
|
|
58
|
+
const disY = type === "pc" ? e.clientY - dragHeader.offsetTop : e.touches[0].clientY - dragHeader.offsetTop;
|
|
59
|
+
const screenWidth = document.body.clientWidth;
|
|
60
|
+
const screenHeight = document.documentElement.clientHeight;
|
|
61
|
+
const dragDomWidth = dragDom.offsetWidth;
|
|
62
|
+
const dragDomheight = dragDom.offsetHeight;
|
|
63
|
+
const minDragDomLeft = dragDom.offsetLeft;
|
|
64
|
+
const maxDragDomLeft = screenWidth - dragDom.offsetLeft - dragDomWidth;
|
|
65
|
+
const minDragDomTop = dragDom.offsetTop;
|
|
66
|
+
const maxDragDomTop = screenHeight - dragDom.offsetTop - dragDomheight;
|
|
67
|
+
let styL = getComputedStyle(dragDom).left;
|
|
68
|
+
let styT = getComputedStyle(dragDom).top;
|
|
69
|
+
if (styL.includes("%")) {
|
|
70
|
+
styL = +document.body.clientWidth * (+styL.replace(/\%/g, "") / 100);
|
|
71
|
+
styT = +document.body.clientHeight * (+styT.replace(/\%/g, "") / 100);
|
|
72
|
+
} else {
|
|
73
|
+
styL = +styL.replace(/\px/g, "");
|
|
74
|
+
styT = +styT.replace(/\px/g, "");
|
|
75
|
+
}
|
|
76
|
+
return {
|
|
77
|
+
disX,
|
|
78
|
+
disY,
|
|
79
|
+
minDragDomLeft,
|
|
80
|
+
maxDragDomLeft,
|
|
81
|
+
minDragDomTop,
|
|
82
|
+
maxDragDomTop,
|
|
83
|
+
styL,
|
|
84
|
+
styT
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
function move(e, type, obj) {
|
|
88
|
+
let { disX, disY, minDragDomLeft, maxDragDomLeft, minDragDomTop, maxDragDomTop, styL, styT } = obj;
|
|
89
|
+
let left = type === "pc" ? e.clientX - disX : e.touches[0].clientX - disX;
|
|
90
|
+
let top = type === "pc" ? e.clientY - disY : e.touches[0].clientY - disY;
|
|
91
|
+
if (-left > minDragDomLeft) {
|
|
92
|
+
left = -minDragDomLeft;
|
|
93
|
+
} else if (left > maxDragDomLeft) {
|
|
94
|
+
left = maxDragDomLeft;
|
|
95
|
+
}
|
|
96
|
+
if (-top > minDragDomTop) {
|
|
97
|
+
top = -minDragDomTop;
|
|
98
|
+
} else if (top > maxDragDomTop) {
|
|
99
|
+
top = maxDragDomTop;
|
|
100
|
+
}
|
|
101
|
+
dragDom.style.cssText += `;left:${left + styL}px;top:${top + styT}px;`;
|
|
102
|
+
}
|
|
103
|
+
dragHeader.onmousedown = (e) => {
|
|
104
|
+
const obj = down(e, "pc");
|
|
105
|
+
document.onmousemove = (e2) => {
|
|
106
|
+
move(e2, "pc", obj);
|
|
107
|
+
};
|
|
108
|
+
document.onmouseup = () => {
|
|
109
|
+
document.onmousemove = null;
|
|
110
|
+
document.onmouseup = null;
|
|
111
|
+
};
|
|
112
|
+
};
|
|
113
|
+
dragHeader.ontouchstart = (e) => {
|
|
114
|
+
const obj = down(e, "app");
|
|
115
|
+
document.ontouchmove = (e2) => {
|
|
116
|
+
move(e2, "app", obj);
|
|
117
|
+
};
|
|
118
|
+
document.ontouchend = () => {
|
|
119
|
+
document.ontouchmove = null;
|
|
120
|
+
document.ontouchend = null;
|
|
121
|
+
};
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
function reclickDirective(app) {
|
|
127
|
+
app.directive("reclick", {
|
|
128
|
+
mounted(el, time) {
|
|
129
|
+
el.addEventListener("click", () => {
|
|
130
|
+
if (!el.disabled) {
|
|
131
|
+
el.disabled = true;
|
|
132
|
+
setTimeout(
|
|
133
|
+
() => {
|
|
134
|
+
el.disabled = false;
|
|
135
|
+
},
|
|
136
|
+
time.value === void 0 ? 500 : time.value
|
|
137
|
+
);
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
},
|
|
141
|
+
unmounted(el) {
|
|
142
|
+
el.disabled = false;
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
export { dragDirective, reclickDirective, wavesDirective };
|
|
@@ -1,3 +1,29 @@
|
|
|
1
1
|
export { FmLogin } from './ui/login/index.mjs';
|
|
2
|
+
import './api/index.mjs';
|
|
3
|
+
export { directive } from './directive/index.mjs';
|
|
2
4
|
export { getCountryCode, i18n, iso_3166_1_CountryList, languageList, mergMessage, setupI18n } from './locales/index.mjs';
|
|
5
|
+
import './stores/index.mjs';
|
|
6
|
+
import './utils/index.mjs';
|
|
7
|
+
export { auth, authAll, auths, hAuth, hAuthAll, hAuths } from './auth/index.mjs';
|
|
3
8
|
import './types/index.mjs';
|
|
9
|
+
export { useBaseApi } from './api/base/index.mjs';
|
|
10
|
+
export { feature, useSysApi } from './api/sys/index.mjs';
|
|
11
|
+
export { useLoginApi } from './api/login/index.mjs';
|
|
12
|
+
export { accessTokenKey, axiosInstance, cancelAllRequest, cancelRequest, clearAccessTokens, clearTokens, decryptJWT, getJWTDate, getToken, refreshAccessTokenKey, request2, service, tansParams } from './api/utils/request.mjs';
|
|
13
|
+
export { useKeepALiveNames } from './stores/keepAliveNames.mjs';
|
|
14
|
+
export { useRequestOldRoutes } from './stores/requestOldRoutes.mjs';
|
|
15
|
+
export { useRoutesList } from './stores/routesList.mjs';
|
|
16
|
+
export { useTagsViewRoutes } from './stores/tagsViewRoutes.mjs';
|
|
17
|
+
export { useThemeConfig } from './stores/themeConfig.mjs';
|
|
18
|
+
export { useUserInfo } from './stores/userInfo.mjs';
|
|
19
|
+
export { clone, isObjectValueEqual, judgementSameArr, removeDuplicate } from './utils/array/index.mjs';
|
|
20
|
+
export { Watermark } from './utils/watermark/index.mjs';
|
|
21
|
+
export { base64ToFile, blobToFile, dataURLtoBlob, fileToBase64, urlToBase64 } from './utils/base64/index.mjs';
|
|
22
|
+
export { Local, Session } from './utils/storage/index.mjs';
|
|
23
|
+
export { judgementIdCard, verifiyNumberInteger, verifyAccount, verifyAndSpace, verifyCarNum, verifyCnAndSpace, verifyEmail, verifyEnAndSpace, verifyFullName, verifyIPAddress, verifyIdCard, verifyNumberCnUppercase, verifyNumberComma, verifyNumberIntegerAndFloat, verifyNumberPercentage, verifyNumberPercentageFloat, verifyPassword, verifyPasswordPowerful, verifyPasswordStrength, verifyPhone, verifyPostalCode, verifyTelPhone, verifyTextColor, verifyUrl } from './utils/comm/toolsValidate.mjs';
|
|
24
|
+
export { formatAxis, formatDate, formatPast, getWeek } from './utils/comm/formatTime.mjs';
|
|
25
|
+
export { useChangeColor } from './utils/comm/theme.mjs';
|
|
26
|
+
export { downloadByBase64, downloadByData, downloadByOnlineUrl, downloadByUrl, downloadStreamFile, getFileName, openWindow } from './utils/comm/download.mjs';
|
|
27
|
+
export { signatureByKSort } from './utils/comm/data-signature.mjs';
|
|
28
|
+
export { getFileUrl } from './utils/comm/uploadfileurl.mjs';
|
|
29
|
+
export { PUB } from './utils/const/index.mjs';
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { useKeepALiveNames } from './keepAliveNames.mjs';
|
|
2
|
+
export { useRequestOldRoutes } from './requestOldRoutes.mjs';
|
|
3
|
+
export { useRoutesList } from './routesList.mjs';
|
|
4
|
+
export { useTagsViewRoutes } from './tagsViewRoutes.mjs';
|
|
5
|
+
export { useThemeConfig } from './themeConfig.mjs';
|
|
6
|
+
export { useUserInfo } from './userInfo.mjs';
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { defineStore } from 'pinia';
|
|
2
|
+
|
|
3
|
+
const useKeepALiveNames = defineStore("keepALiveNames", {
|
|
4
|
+
state: () => ({
|
|
5
|
+
keepAliveNames: [],
|
|
6
|
+
cachedViews: []
|
|
7
|
+
}),
|
|
8
|
+
actions: {
|
|
9
|
+
async setCacheKeepAlive(data) {
|
|
10
|
+
this.keepAliveNames = data;
|
|
11
|
+
},
|
|
12
|
+
async addCachedView(view) {
|
|
13
|
+
if (view.meta.isKeepAlive) this.cachedViews?.push(view.name);
|
|
14
|
+
},
|
|
15
|
+
async delCachedView(view) {
|
|
16
|
+
const index = this.cachedViews.indexOf(view.name);
|
|
17
|
+
if (index > -1) this.cachedViews.splice(index, 1);
|
|
18
|
+
},
|
|
19
|
+
async delOthersCachedViews(view) {
|
|
20
|
+
if (view.meta.isKeepAlive) this.cachedViews = [view.name];
|
|
21
|
+
else this.cachedViews = [];
|
|
22
|
+
},
|
|
23
|
+
async delAllCachedViews() {
|
|
24
|
+
this.cachedViews = [];
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
export { useKeepALiveNames };
|