yxuse 3.0.90 → 3.0.92
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/lib/api.cjs.js +1 -1
- package/lib/api.es.js +2 -2
- package/lib/components.cjs.js +1 -1
- package/lib/components.es.js +11 -9
- package/lib/hooks.cjs.js +1 -1
- package/lib/hooks.es.js +6 -6
- package/lib/index.cjs.js +1 -1
- package/lib/index.cjs11.js +1 -1
- package/lib/index.cjs12.js +1 -1
- package/lib/index.cjs13.js +1 -1
- package/lib/index.cjs14.js +1 -1
- package/lib/index.cjs2.js +1 -1
- package/lib/index.cjs3.js +1 -1
- package/lib/index.cjs4.js +1 -1
- package/lib/index.cjs5.js +1 -1
- package/lib/index.cjs5.js.gz +0 -0
- package/lib/index.cjs6.js +1 -1
- package/lib/index.cjs7.js +1 -1
- package/lib/index.cjs8.js +1 -1
- package/lib/index.cjs9.js +1 -1
- package/lib/index.es.js +8 -9
- package/lib/index.es11.js +454 -15
- package/lib/index.es11.js.gz +0 -0
- package/lib/index.es12.js +226 -405
- package/lib/index.es13.js +29 -202
- package/lib/index.es14.js +19 -34
- package/lib/index.es2.js +4 -3
- package/lib/index.es3.js +2 -2
- package/lib/index.es4.js +3 -3
- package/lib/index.es5.js +1751 -34
- package/lib/index.es5.js.gz +0 -0
- package/lib/index.es6.js +35 -841
- package/lib/index.es6.js.gz +0 -0
- package/lib/index.es7.js +1 -1
- package/lib/index.es8.js +1 -1
- package/lib/index.es9.js +4 -125
- package/lib/theme.cjs.js +1 -1
- package/lib/theme.es.js +12 -13
- package/lib/translate.cjs.js +1 -1
- package/lib/translate.es.js +9 -10
- package/lib/utils.cjs.js +1 -1
- package/lib/utils.es.js +5 -4
- package/lib/yxIcon.cjs.js +1 -1
- package/lib/yxIcon.es.js +2 -2
- package/lib/yxi18n.cjs.js +1 -1
- package/lib/yxi18n.es.js +1 -1
- package/lib/yxuse.css +1 -1
- package/lib/yxuse.css.gz +0 -0
- package/package.json +1 -1
- package/types/components/CommonPage/index.d.ts +3 -0
- package/types/components/CommonPage/page.d.ts +64 -0
- package/types/components/CommonPage/pagination.d.ts +9 -0
- package/types/components/CommonPage/props.d.ts +36 -0
- package/types/components/CommonPage/search.d.ts +4 -0
- package/types/components/CommonPage/table.d.ts +3 -0
- package/types/components/CommonPage/type.d.ts +1 -0
- package/types/components/YxForm/index.vue.d.ts +1 -1
- package/types/components/YxForm/type.d.ts +14 -1
- package/types/components/YxNormalPage/config.d.ts +12 -0
- package/types/components/YxNormalPage/form.d.ts +7 -0
- package/types/components/YxNormalPage/index.d.ts +3 -0
- package/types/components/YxNormalPage/page.d.ts +83 -0
- package/types/components/YxNormalPage/pagination.d.ts +9 -0
- package/types/components/YxNormalPage/props.d.ts +40 -0
- package/types/components/YxNormalPage/search.d.ts +9 -0
- package/types/components/YxNormalPage/table.d.ts +5 -0
- package/types/components/YxNormalPage/type.d.ts +69 -0
- package/types/components/YxTable/index.vue.d.ts +4 -4
- package/types/components/YxTableBar/bar.d.ts +47 -0
- package/types/components/YxTableBar/config.d.ts +18 -0
- package/types/components/YxTableBar/index.d.ts +11 -0
- package/types/components/YxTableBar/props.d.ts +23 -0
- package/types/components/YxTableBar/type.d.ts +11 -0
- package/types/components/YxTablePro/index.d.ts +14 -14
- package/types/components/YxUpload/index.vue.d.ts +3 -3
- package/types/components/Yxbutton/index.vue.d.ts +6 -6
- package/types/components/index.d.ts +2 -0
- package/types/hooks/useConfirm/index.d.ts +1 -1
- package/types/hooks/useDialog/type.d.ts +1 -1
- package/types/theme/config.d.ts +1 -1
- package/types/theme/index.d.ts +1 -1
- package/types/utils/common/index.d.ts +7 -1
- package/types/utils/common/util.d.ts +1 -1
- package/types/utils/excel/index.d.ts +8 -8
- package/types/utils/http/index.d.ts +8 -0
- package/types/utils/subscribe/index.d.ts +1 -1
- package/lib/index.cjs15.js +0 -1
- package/lib/index.cjs6.js.gz +0 -0
- package/lib/index.es12.js.gz +0 -0
- package/lib/index.es15.js +0 -22
package/lib/index.es12.js
CHANGED
|
@@ -1,439 +1,260 @@
|
|
|
1
|
-
|
|
2
|
-
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
|
-
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
4
|
-
import { a as axios } from "./vendor-axios.es.js";
|
|
5
|
-
import { ElMessage, ElLoading, ElNotification } from "element-plus";
|
|
6
|
-
import "element-plus/es/components/notification/style/index";
|
|
1
|
+
import { ElMessage, ElMessageBox } from "element-plus";
|
|
7
2
|
import "element-plus/es/components/message/style/index";
|
|
8
|
-
import "element-plus/es/components/message/style/css";
|
|
9
|
-
import "element-plus/es/components/notification/style/css";
|
|
10
3
|
import "element-plus/es/components/message-box/style/index";
|
|
11
|
-
import "./vendor-dayjs.es.js";
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
const ttc = {
|
|
16
|
-
LOGIN_URL: `${window.location.origin}/ttc/cloud/#/login`,
|
|
17
|
-
HOME_URL: `${window.location.origin}/ttc/cloud/#/cloud`,
|
|
18
|
-
INTEGRATED_BASE_URL: `/gateway/integrated-management/api/v1`
|
|
4
|
+
import { d as dayjs } from "./vendor-dayjs.es.js";
|
|
5
|
+
const notifyMessageToSystems = (message) => {
|
|
6
|
+
const themeBc = new BroadcastChannel("YXUSE_BC");
|
|
7
|
+
themeBc.postMessage(message);
|
|
19
8
|
};
|
|
20
|
-
const
|
|
21
|
-
|
|
9
|
+
const receiveMessage = (callback) => {
|
|
10
|
+
const themeBc = new BroadcastChannel("YXUSE_BC");
|
|
11
|
+
themeBc.onmessage = () => {
|
|
12
|
+
callback();
|
|
13
|
+
};
|
|
22
14
|
};
|
|
23
|
-
const
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
};
|
|
31
|
-
const removeToken = (systemName = "ttc") => {
|
|
32
|
-
setSystemConfig({ token: "" });
|
|
33
|
-
};
|
|
34
|
-
const setSystemInfo = (key, data) => {
|
|
35
|
-
const GlobalStateKey = `${key}GlobalState`;
|
|
36
|
-
localStorage.setItem(GlobalStateKey, JSON.stringify(data));
|
|
37
|
-
};
|
|
38
|
-
const setUserInfo = (key, userInfo) => {
|
|
39
|
-
const GlobalStateKey = `${key}GlobalState`;
|
|
40
|
-
const GlobalState = localStorage.getItem(GlobalStateKey) ?? "{}";
|
|
41
|
-
const newGlobalState = { ...JSON.parse(GlobalState), userInfo };
|
|
42
|
-
localStorage.setItem(GlobalStateKey, JSON.stringify(newGlobalState));
|
|
43
|
-
};
|
|
44
|
-
const getToken = (systemName = "ttc") => {
|
|
45
|
-
const GlobalStateKey = `${systemName}GlobalState`;
|
|
46
|
-
const GlobalState = localStorage.getItem(GlobalStateKey) ?? "{}";
|
|
47
|
-
const token = JSON.parse(GlobalState) ? JSON.parse(GlobalState).token : null;
|
|
48
|
-
return token;
|
|
15
|
+
const getSelectOptions = (arr, labelKey, valueKey, isValueToNumber) => {
|
|
16
|
+
if (!Array.isArray(arr)) return [];
|
|
17
|
+
return arr.map((item) => {
|
|
18
|
+
return {
|
|
19
|
+
label: item == null ? void 0 : item[labelKey],
|
|
20
|
+
value: isValueToNumber ? +item[valueKey] : item[valueKey]
|
|
21
|
+
};
|
|
22
|
+
});
|
|
49
23
|
};
|
|
50
|
-
const
|
|
51
|
-
const
|
|
52
|
-
const
|
|
53
|
-
|
|
54
|
-
|
|
24
|
+
const enumToArray = (enumObject) => {
|
|
25
|
+
const result = [];
|
|
26
|
+
for (const key in enumObject) {
|
|
27
|
+
if (isNaN(Number(key))) {
|
|
28
|
+
result.push({ label: key, value: enumObject[key] });
|
|
29
|
+
}
|
|
55
30
|
}
|
|
56
|
-
|
|
31
|
+
return result;
|
|
57
32
|
};
|
|
58
|
-
const
|
|
59
|
-
const
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
33
|
+
const isDarkColor = (color) => {
|
|
34
|
+
const parseColor = (color2) => {
|
|
35
|
+
let r2 = 0, g2 = 0, b2 = 0, a = 1;
|
|
36
|
+
if (color2.startsWith("#")) {
|
|
37
|
+
color2 = color2.slice(1);
|
|
38
|
+
if (color2.length === 3) {
|
|
39
|
+
r2 = parseInt(color2[0] + color2[0], 16);
|
|
40
|
+
g2 = parseInt(color2[1] + color2[1], 16);
|
|
41
|
+
b2 = parseInt(color2[2] + color2[2], 16);
|
|
42
|
+
} else if (color2.length === 6) {
|
|
43
|
+
r2 = parseInt(color2.slice(0, 2), 16);
|
|
44
|
+
g2 = parseInt(color2.slice(2, 4), 16);
|
|
45
|
+
b2 = parseInt(color2.slice(4, 6), 16);
|
|
46
|
+
} else {
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
} else if (color2.startsWith("rgb")) {
|
|
50
|
+
const rgbaMatch = color2.match(/(\d+(\.\d+)?)/g);
|
|
51
|
+
if (rgbaMatch) {
|
|
52
|
+
r2 = parseFloat(rgbaMatch[0]);
|
|
53
|
+
g2 = parseFloat(rgbaMatch[1]);
|
|
54
|
+
b2 = parseFloat(rgbaMatch[2]);
|
|
55
|
+
if (rgbaMatch.length > 3) {
|
|
56
|
+
a = parseFloat(rgbaMatch[3]);
|
|
57
|
+
}
|
|
58
|
+
} else {
|
|
59
|
+
return null;
|
|
60
|
+
}
|
|
75
61
|
} else {
|
|
76
|
-
|
|
77
|
-
}
|
|
78
|
-
} else {
|
|
79
|
-
const userName = window.prompt("当前系统处于开发环境,当前登录过期,请输入登录账号", "");
|
|
80
|
-
if (userName !== null) {
|
|
81
|
-
const password = window.prompt("请输入登录密码", "");
|
|
82
|
-
if (password === null || password == "") window.prompt("请输入登录密码", "");
|
|
83
|
-
autoLogin({ userName, password });
|
|
62
|
+
return null;
|
|
84
63
|
}
|
|
64
|
+
return [r2, g2, b2, a];
|
|
65
|
+
};
|
|
66
|
+
const colorComponents = parseColor(color);
|
|
67
|
+
if (!colorComponents) {
|
|
68
|
+
return null;
|
|
85
69
|
}
|
|
70
|
+
const [r, g, b, _] = colorComponents;
|
|
71
|
+
const normalizedR = r / 255;
|
|
72
|
+
const normalizedG = g / 255;
|
|
73
|
+
const normalizedB = b / 255;
|
|
74
|
+
const max = Math.max(normalizedR, normalizedG, normalizedB);
|
|
75
|
+
const min = Math.min(normalizedR, normalizedG, normalizedB);
|
|
76
|
+
let l = (max + min) / 2;
|
|
77
|
+
return l < 0.5;
|
|
86
78
|
};
|
|
87
|
-
const
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
const GlobalState = localStorage.getItem(`${systemName}GlobalState`) ?? "{}";
|
|
103
|
-
const newGlobalState = { ...JSON.parse(GlobalState), [key]: value };
|
|
104
|
-
localStorage.setItem(`${systemName}GlobalState`, JSON.stringify(newGlobalState));
|
|
105
|
-
};
|
|
106
|
-
const getSystemConfig = (key, systemName = "ttc") => {
|
|
107
|
-
const GlobalState = JSON.parse(localStorage.getItem(`${systemName}GlobalState`) ?? "{}");
|
|
108
|
-
return GlobalState[key] ?? "";
|
|
109
|
-
};
|
|
110
|
-
const isProduction = () => {
|
|
111
|
-
return getSystemConfig("environment") === "production";
|
|
112
|
-
};
|
|
113
|
-
const getUserPermissions = async (systemName, isJumpLogin = true, serverName) => {
|
|
114
|
-
if (!getToken() && isJumpLogin) return jumpToLogin();
|
|
115
|
-
try {
|
|
116
|
-
const { data } = await getAuthRouteList(serverName);
|
|
117
|
-
const systemPermissionList = data.filter((route) => route.routeTag.startsWith(systemName));
|
|
118
|
-
const userMenuList = systemPermissionList.filter((item) => item.routeType === "VIEW");
|
|
119
|
-
const userBtnList = systemPermissionList.filter((item) => item.routeType === "BTN");
|
|
120
|
-
sessionStorage.setItem("ttcUserBtnList", JSON.stringify(userBtnList.map((item) => item.routeTag)));
|
|
121
|
-
return {
|
|
122
|
-
userMenuList,
|
|
123
|
-
userBtnList
|
|
124
|
-
};
|
|
125
|
-
} catch (err) {
|
|
126
|
-
}
|
|
127
|
-
};
|
|
128
|
-
const getUserRouter = (userMenuList, viewModules) => {
|
|
129
|
-
let menuList = [];
|
|
130
|
-
userMenuList.forEach((item) => {
|
|
131
|
-
const viewKey = `/src/views${item.routeView}/index.vue`;
|
|
132
|
-
if (viewModules[viewKey]) {
|
|
133
|
-
const pageConfig = (item == null ? void 0 : item.reservedRouteInfo) && JSON.parse((item == null ? void 0 : item.reservedRouteInfo) ?? "{}");
|
|
134
|
-
const routerObject = {
|
|
135
|
-
path: item.routeView,
|
|
136
|
-
name: item.routeView.split("/")[1],
|
|
137
|
-
meta: {
|
|
138
|
-
title: item.routeName,
|
|
139
|
-
icon: pageConfig == null ? void 0 : pageConfig.routeIcon
|
|
140
|
-
},
|
|
141
|
-
component: viewModules[viewKey]
|
|
142
|
-
};
|
|
143
|
-
menuList.push(routerObject);
|
|
144
|
-
}
|
|
145
|
-
});
|
|
146
|
-
return menuList;
|
|
147
|
-
};
|
|
148
|
-
const getUserIsHaveBtnPower = (routeTag) => {
|
|
149
|
-
if (!routeTag) return false;
|
|
150
|
-
const authButtonListGet = sessionStorage.getItem("ttcUserBtnList") ?? "[]";
|
|
151
|
-
return JSON.parse(authButtonListGet).includes(routeTag);
|
|
152
|
-
};
|
|
153
|
-
let userConfig = null;
|
|
154
|
-
const getUserConfig = async () => {
|
|
155
|
-
if (userConfig) return userConfig;
|
|
156
|
-
const data = await http.get(
|
|
157
|
-
getSystemConfig("userConfigApiUrl"),
|
|
158
|
-
{},
|
|
159
|
-
{
|
|
160
|
-
headers: { noLoading: true },
|
|
161
|
-
customResHandler: (data2) => {
|
|
162
|
-
return data2;
|
|
79
|
+
const areColorsSimilar = (color1, color2, threshold = 100) => {
|
|
80
|
+
const getColorComponents = (color) => {
|
|
81
|
+
let r, g, b, a = 1;
|
|
82
|
+
if (color.startsWith("#")) {
|
|
83
|
+
color = color.slice(1);
|
|
84
|
+
if (color.length === 3) {
|
|
85
|
+
r = parseInt(color[0] + color[0], 16);
|
|
86
|
+
g = parseInt(color[1] + color[1], 16);
|
|
87
|
+
b = parseInt(color[2] + color[2], 16);
|
|
88
|
+
} else if (color.length === 6) {
|
|
89
|
+
r = parseInt(color.slice(0, 2), 16);
|
|
90
|
+
g = parseInt(color.slice(2, 4), 16);
|
|
91
|
+
b = parseInt(color.slice(4, 6), 16);
|
|
92
|
+
} else {
|
|
93
|
+
return null;
|
|
163
94
|
}
|
|
95
|
+
} else if (color.startsWith("rgb")) {
|
|
96
|
+
const rgbaMatch = color.match(/(\d+(\.\d+)?)/g);
|
|
97
|
+
r = parseFloat(rgbaMatch[0]);
|
|
98
|
+
g = parseFloat(rgbaMatch[1]);
|
|
99
|
+
b = parseFloat(rgbaMatch[2]);
|
|
100
|
+
if (rgbaMatch.length > 3) {
|
|
101
|
+
a = parseFloat(rgbaMatch[3]);
|
|
102
|
+
}
|
|
103
|
+
} else {
|
|
104
|
+
return null;
|
|
164
105
|
}
|
|
106
|
+
return [r, g, b, a];
|
|
107
|
+
};
|
|
108
|
+
const color1Components = getColorComponents(color1);
|
|
109
|
+
const color2Components = getColorComponents(color2);
|
|
110
|
+
if (!color1Components || !color2Components) {
|
|
111
|
+
return false;
|
|
112
|
+
}
|
|
113
|
+
const euclideanDistance = Math.sqrt(
|
|
114
|
+
Math.pow(color1Components[0] - color2Components[0], 2) + Math.pow(color1Components[1] - color2Components[1], 2) + Math.pow(color1Components[2] - color2Components[2], 2) + Math.pow(color1Components[3] - color2Components[3], 2)
|
|
165
115
|
);
|
|
166
|
-
|
|
167
|
-
return data;
|
|
168
|
-
};
|
|
169
|
-
const index = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
170
|
-
__proto__: null,
|
|
171
|
-
autoLogin,
|
|
172
|
-
changeSystemConfig,
|
|
173
|
-
getHomeUrl,
|
|
174
|
-
getLoginUrl,
|
|
175
|
-
getSystemConfig,
|
|
176
|
-
getToken,
|
|
177
|
-
getUserConfig,
|
|
178
|
-
getUserInfo,
|
|
179
|
-
getUserIsHaveBtnPower,
|
|
180
|
-
getUserPermissions,
|
|
181
|
-
getUserRouteList,
|
|
182
|
-
getUserRouter,
|
|
183
|
-
isProduction,
|
|
184
|
-
jumpToHome,
|
|
185
|
-
jumpToLogin,
|
|
186
|
-
removeToken,
|
|
187
|
-
setSystemConfig,
|
|
188
|
-
setSystemInfo,
|
|
189
|
-
setUserInfo
|
|
190
|
-
}, Symbol.toStringTag, { value: "Module" }));
|
|
191
|
-
let loadingInstance;
|
|
192
|
-
const loadingOptions = {
|
|
193
|
-
lock: true,
|
|
194
|
-
text: "loading...",
|
|
195
|
-
fullscreen: true,
|
|
196
|
-
background: "rgba(0, 0, 0, 0.6)"
|
|
197
|
-
};
|
|
198
|
-
const startLoading = () => {
|
|
199
|
-
loadingInstance = ElLoading.service(loadingOptions);
|
|
116
|
+
return euclideanDistance <= threshold;
|
|
200
117
|
};
|
|
201
|
-
const
|
|
202
|
-
|
|
118
|
+
const isColorEqual = (color1, color2) => {
|
|
119
|
+
function toRGBA(color) {
|
|
120
|
+
if (color.toLowerCase().startsWith("rgba")) {
|
|
121
|
+
return color.toLowerCase();
|
|
122
|
+
} else if (color.toLowerCase().startsWith("rgb")) {
|
|
123
|
+
return color.replace("rgb", "rgba").replace(")", ", 1)");
|
|
124
|
+
} else if (color.length === 7) {
|
|
125
|
+
const r = parseInt(color.substring(1, 3), 16);
|
|
126
|
+
const g = parseInt(color.substring(3, 5), 16);
|
|
127
|
+
const b = parseInt(color.substring(5, 7), 16);
|
|
128
|
+
return `rgba(${r}, ${g}, ${b}, 1)`;
|
|
129
|
+
} else if (color.length === 9 && color.toLowerCase().startsWith("rrggbbaa")) {
|
|
130
|
+
const r = parseInt(color.substring(1, 3), 16);
|
|
131
|
+
const g = parseInt(color.substring(3, 5), 16);
|
|
132
|
+
const b = parseInt(color.substring(5, 7), 16);
|
|
133
|
+
const a = Math.round(parseInt(color.substring(7, 9), 16) / 255 * 100) / 100;
|
|
134
|
+
return `rgba(${r}, ${g}, ${b}, ${a})`;
|
|
135
|
+
} else {
|
|
136
|
+
return null;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
const rgbaColor1 = toRGBA(convertShortHexToLongHex(color1));
|
|
140
|
+
const rgbaColor2 = toRGBA(convertShortHexToLongHex(color2));
|
|
141
|
+
if (!rgbaColor1 || !rgbaColor2) {
|
|
142
|
+
return false;
|
|
143
|
+
}
|
|
144
|
+
return rgbaColor1 === rgbaColor2;
|
|
203
145
|
};
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
146
|
+
const convertShortHexToLongHex = (shortHex) => {
|
|
147
|
+
if (shortHex.length === 4 && shortHex[0] === "#") {
|
|
148
|
+
const r = shortHex[1];
|
|
149
|
+
const g = shortHex[2];
|
|
150
|
+
const b = shortHex[3];
|
|
151
|
+
const longHex = `#${r}${r}${g}${g}${b}${b}`;
|
|
152
|
+
return longHex;
|
|
153
|
+
} else {
|
|
154
|
+
return shortHex;
|
|
208
155
|
}
|
|
209
|
-
needLoadingRequestCount++;
|
|
210
156
|
};
|
|
211
|
-
const
|
|
212
|
-
if (
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
157
|
+
const yxMessage = (data, callback, isShowError = false) => {
|
|
158
|
+
if (data.isSuccess) {
|
|
159
|
+
ElMessage.success(data.resultMsg || "操作成功");
|
|
160
|
+
callback && callback();
|
|
161
|
+
} else {
|
|
162
|
+
if (isShowError) {
|
|
163
|
+
ElMessage.error(data.resultMsg || "操作失败");
|
|
164
|
+
}
|
|
216
165
|
}
|
|
217
166
|
};
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
// 默认地址请求地址,可在 .env.*** 文件中修改
|
|
227
|
-
// 设置超时时间(30s)
|
|
228
|
-
timeout: 3e4,
|
|
229
|
-
// 跨域时候允许携带凭证
|
|
230
|
-
withCredentials: true
|
|
167
|
+
const copyText = (text) => {
|
|
168
|
+
const textField = document.createElement("textarea");
|
|
169
|
+
textField.innerText = text;
|
|
170
|
+
document.body.appendChild(textField);
|
|
171
|
+
textField.select();
|
|
172
|
+
document.execCommand("copy");
|
|
173
|
+
textField.remove();
|
|
174
|
+
ElMessage.success("已成功复制到剪贴板");
|
|
231
175
|
};
|
|
232
|
-
const
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
jumpToLogin();
|
|
241
|
-
}
|
|
242
|
-
break;
|
|
243
|
-
case 403:
|
|
244
|
-
ElMessage.error(msg || "当前账号无权限访问!");
|
|
245
|
-
break;
|
|
246
|
-
case 404:
|
|
247
|
-
ElMessage.error("你所访问的资源不存在");
|
|
248
|
-
break;
|
|
249
|
-
case 405:
|
|
250
|
-
ElMessage.error(msg || "请求方式错误!请您稍后重试");
|
|
251
|
-
break;
|
|
252
|
-
case 408:
|
|
253
|
-
ElMessage.error(msg || "请求超时!请您稍后重试");
|
|
254
|
-
break;
|
|
255
|
-
case 500:
|
|
256
|
-
ElMessage.error(msg || "服务异常!");
|
|
257
|
-
break;
|
|
258
|
-
case 502:
|
|
259
|
-
ElMessage.error(msg || "网关错误!");
|
|
260
|
-
break;
|
|
261
|
-
case 503:
|
|
262
|
-
ElMessage.error(msg || "服务不可用");
|
|
263
|
-
break;
|
|
264
|
-
case 504:
|
|
265
|
-
ElMessage.error(msg || "网关超时!");
|
|
266
|
-
break;
|
|
267
|
-
default:
|
|
268
|
-
ElMessage.error(msg || "请求失败!请您稍后重试!");
|
|
176
|
+
const getCownDownTime = (time) => {
|
|
177
|
+
const diffTimeSecond = dayjs(time).diff(dayjs(), "second");
|
|
178
|
+
let formattedTime = "00:00:00";
|
|
179
|
+
if (diffTimeSecond > 0) {
|
|
180
|
+
const hours = Math.floor(diffTimeSecond / 3600);
|
|
181
|
+
const minutes = Math.floor(diffTimeSecond % 3600 / 60);
|
|
182
|
+
const seconds = diffTimeSecond % 60;
|
|
183
|
+
formattedTime = `${hours.toString().padStart(2, "0")}:${minutes.toString().padStart(2, "0")}:${seconds.toString().padStart(2, "0")}`;
|
|
269
184
|
}
|
|
185
|
+
return formattedTime;
|
|
270
186
|
};
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
var _a;
|
|
289
|
-
if (!((_a = config2.headers) == null ? void 0 : _a.noLoading)) {
|
|
290
|
-
showFullScreenLoading();
|
|
291
|
-
}
|
|
292
|
-
config2.headers.token = getToken();
|
|
293
|
-
if ((config2 == null ? void 0 : config2.customResHandler) && (config2 == null ? void 0 : config2.url)) {
|
|
294
|
-
this.customResMap[config2 == null ? void 0 : config2.url] = config2.customResHandler;
|
|
295
|
-
}
|
|
296
|
-
this.customResquestInterceptors && this.customResquestInterceptors(config2);
|
|
297
|
-
return config2;
|
|
298
|
-
},
|
|
299
|
-
(error) => {
|
|
300
|
-
return Promise.reject(error);
|
|
301
|
-
}
|
|
302
|
-
);
|
|
303
|
-
this.service.interceptors.response.use(
|
|
304
|
-
async (response) => {
|
|
305
|
-
const { config: config2 } = response;
|
|
306
|
-
let data = response.data;
|
|
307
|
-
hideFullScreenLoading();
|
|
308
|
-
if (this.customResponseInterceptors) return this.customResponseInterceptors(response);
|
|
309
|
-
const code = response.status;
|
|
310
|
-
if (config2.url && this.customResMap[config2.url]) {
|
|
311
|
-
return this.customResMap[config2.url](data, response);
|
|
312
|
-
}
|
|
313
|
-
if (code == ResultEnum.OVERDUE || data.code === ResultEnum.OVERDUE) {
|
|
314
|
-
this.handleOverdueResponse(data);
|
|
315
|
-
} else if (data.code !== ResultEnum.SUCCESS) {
|
|
316
|
-
this.handleErrorResponse(data);
|
|
317
|
-
}
|
|
318
|
-
return data;
|
|
319
|
-
},
|
|
320
|
-
(error) => {
|
|
321
|
-
hideFullScreenLoading();
|
|
322
|
-
const response = error.response;
|
|
323
|
-
const { config: config2 } = error;
|
|
324
|
-
if (this.customResponseInterceptors) return this.customResponseInterceptors(response);
|
|
325
|
-
if ((config2 == null ? void 0 : config2.url) && this.customResMap[config2.url]) {
|
|
326
|
-
return this.customResMap[config2.url](error.response);
|
|
327
|
-
}
|
|
328
|
-
if (error.message.includes("timeout")) {
|
|
329
|
-
ElMessage.error("请求超时!请稍后重试");
|
|
330
|
-
} else if (error.message.includes("Network Error")) {
|
|
331
|
-
ElMessage.error("网络错误!请稍后重试");
|
|
332
|
-
}
|
|
333
|
-
if (response) {
|
|
334
|
-
checkStatus(response.status, this.getResMessage(response.data));
|
|
335
|
-
}
|
|
336
|
-
if (!window.navigator.onLine) {
|
|
337
|
-
ElNotification({
|
|
338
|
-
title: "提示",
|
|
339
|
-
message: "当前网络似乎开小差了",
|
|
340
|
-
type: "warning",
|
|
341
|
-
duration: 5e3
|
|
342
|
-
});
|
|
343
|
-
}
|
|
344
|
-
return Promise.reject(error);
|
|
345
|
-
}
|
|
346
|
-
);
|
|
347
|
-
}
|
|
348
|
-
getResMessage(data) {
|
|
349
|
-
return (data == null ? void 0 : data.resultMsg) ?? (data == null ? void 0 : data.message) ?? (data == null ? void 0 : data.msg) ?? null;
|
|
350
|
-
}
|
|
351
|
-
handleOverdueResponse(data) {
|
|
352
|
-
ElNotification({
|
|
353
|
-
title: "登录过期提醒",
|
|
354
|
-
message: this.getResMessage(data) || "当前登录失效",
|
|
355
|
-
type: "warning",
|
|
356
|
-
duration: 5e3
|
|
357
|
-
});
|
|
358
|
-
jumpToLogin();
|
|
359
|
-
return Promise.reject(data);
|
|
360
|
-
}
|
|
361
|
-
handleErrorResponse(data) {
|
|
362
|
-
if (this.getResMessage(data)) {
|
|
363
|
-
ElMessage.error(this.getResMessage(data));
|
|
364
|
-
} else {
|
|
365
|
-
checkStatus(data.status);
|
|
187
|
+
const useConfirm = (content, confrmCallback, options = {}) => {
|
|
188
|
+
ElMessageBox.confirm(content, (options == null ? void 0 : options.title) || "提示", {
|
|
189
|
+
confirmButtonText: "确定",
|
|
190
|
+
cancelButtonText: "取消",
|
|
191
|
+
type: "warning",
|
|
192
|
+
...options
|
|
193
|
+
}).then(() => {
|
|
194
|
+
confrmCallback();
|
|
195
|
+
}).catch(() => {
|
|
196
|
+
});
|
|
197
|
+
};
|
|
198
|
+
function deepClone(value, cache = /* @__PURE__ */ new WeakMap()) {
|
|
199
|
+
if (typeof value !== "object" || value === null) {
|
|
200
|
+
if (typeof value === "function") {
|
|
201
|
+
return function(...args) {
|
|
202
|
+
return value.apply(this, args);
|
|
203
|
+
};
|
|
366
204
|
}
|
|
367
|
-
return
|
|
205
|
+
return value;
|
|
368
206
|
}
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
* @param url
|
|
372
|
-
* @param params
|
|
373
|
-
* @param options : AxiosRequestConfig
|
|
374
|
-
* @description get 请求
|
|
375
|
-
*/
|
|
376
|
-
get(url, params, options = {}) {
|
|
377
|
-
return this.service.get(url, { params, ...options });
|
|
207
|
+
if (cache.has(value)) {
|
|
208
|
+
return cache.get(value);
|
|
378
209
|
}
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
* @param url
|
|
382
|
-
* @param params
|
|
383
|
-
* @param options : AxiosRequestConfig
|
|
384
|
-
* @description post 请求
|
|
385
|
-
*/
|
|
386
|
-
post(url, params, options = {}) {
|
|
387
|
-
return this.service.post(url, params, options);
|
|
210
|
+
if (value instanceof Date) {
|
|
211
|
+
return new Date(value);
|
|
388
212
|
}
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
* @param url
|
|
392
|
-
* @param params
|
|
393
|
-
* @param options : AxiosRequestConfig
|
|
394
|
-
*/
|
|
395
|
-
put(url, params, options = {}) {
|
|
396
|
-
return this.service.put(url, params, options);
|
|
213
|
+
if (value instanceof RegExp) {
|
|
214
|
+
return new RegExp(value.source, value.flags);
|
|
397
215
|
}
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
return this.service.delete(url, { params, ...options });
|
|
216
|
+
if (value instanceof Map) {
|
|
217
|
+
const result2 = /* @__PURE__ */ new Map();
|
|
218
|
+
cache.set(value, result2);
|
|
219
|
+
value.forEach((v, k) => {
|
|
220
|
+
result2.set(deepClone(k, cache), deepClone(v, cache));
|
|
221
|
+
});
|
|
222
|
+
return result2;
|
|
406
223
|
}
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
224
|
+
if (value instanceof Set) {
|
|
225
|
+
const result2 = /* @__PURE__ */ new Set();
|
|
226
|
+
cache.set(value, result2);
|
|
227
|
+
value.forEach((v) => {
|
|
228
|
+
result2.add(deepClone(v, cache));
|
|
229
|
+
});
|
|
230
|
+
return result2;
|
|
413
231
|
}
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
232
|
+
if (Array.isArray(value)) {
|
|
233
|
+
const result2 = [];
|
|
234
|
+
cache.set(value, result2);
|
|
235
|
+
value.forEach((item, index) => {
|
|
236
|
+
result2[index] = deepClone(item, cache);
|
|
237
|
+
});
|
|
238
|
+
return result2;
|
|
420
239
|
}
|
|
240
|
+
const result = {};
|
|
241
|
+
cache.set(value, result);
|
|
242
|
+
Object.keys(value).forEach((key) => {
|
|
243
|
+
result[key] = deepClone(value[key], cache);
|
|
244
|
+
});
|
|
245
|
+
return result;
|
|
421
246
|
}
|
|
422
|
-
const http = new YxHttp(config);
|
|
423
247
|
export {
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
430
|
-
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
setSystemConfig as k,
|
|
437
|
-
index as l,
|
|
438
|
-
showFullScreenLoading as s
|
|
248
|
+
areColorsSimilar as a,
|
|
249
|
+
getSelectOptions as b,
|
|
250
|
+
copyText as c,
|
|
251
|
+
deepClone as d,
|
|
252
|
+
enumToArray as e,
|
|
253
|
+
isDarkColor as f,
|
|
254
|
+
getCownDownTime as g,
|
|
255
|
+
isColorEqual as i,
|
|
256
|
+
notifyMessageToSystems as n,
|
|
257
|
+
receiveMessage as r,
|
|
258
|
+
useConfirm as u,
|
|
259
|
+
yxMessage as y
|
|
439
260
|
};
|