@fmdeui/fmui 1.0.1 → 1.0.3

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 (173) hide show
  1. package/es/api/base/index.d.ts +1 -1
  2. package/es/api/index.d.ts +0 -1
  3. package/es/{version.css → component.css} +0 -9
  4. package/es/components/button/index.d.ts +3 -3
  5. package/es/components/button/src/index.vue.d.ts +1 -1
  6. package/es/components/button/style/css.d.ts +0 -1
  7. package/es/components/button/style/index.d.ts +0 -1
  8. package/es/components/chart/style/css.d.ts +0 -1
  9. package/es/components/chart/style/index.d.ts +0 -1
  10. package/es/components/form/style/css.d.ts +0 -1
  11. package/es/components/form/style/index.d.ts +0 -1
  12. package/es/components/input/style/css.d.ts +0 -1
  13. package/es/components/input/style/index.d.ts +0 -1
  14. package/es/components/layout-page/style/css.d.ts +0 -1
  15. package/es/components/layout-page/style/index.d.ts +0 -1
  16. package/es/components/layout-page-item/style/css.d.ts +0 -1
  17. package/es/components/layout-page-item/style/index.d.ts +0 -1
  18. package/es/components/query-condition/index.d.ts +12 -12
  19. package/es/components/query-condition/src/index.vue.d.ts +4 -4
  20. package/es/components/query-condition/style/css.d.ts +0 -1
  21. package/es/components/query-condition/style/index.d.ts +0 -1
  22. package/es/components/select/index.d.ts +5 -5
  23. package/es/components/select/src/index.vue.d.ts +2 -2
  24. package/es/components/select/style/css.d.ts +0 -1
  25. package/es/components/select/style/index.d.ts +0 -1
  26. package/es/components/select-table/index.d.ts +6 -6
  27. package/es/components/select-table/src/index.vue.d.ts +2 -2
  28. package/es/components/select-table/style/css.d.ts +0 -1
  29. package/es/components/select-table/style/index.d.ts +0 -1
  30. package/es/hooks/other.d.ts +1 -1
  31. package/es/hooks/useLocale.d.ts +1 -1
  32. package/es/hooks/useVxeTableOptionsHook.d.ts +2 -2
  33. package/es/index.d.ts +7 -8
  34. package/es/index.mjs +0 -10
  35. package/es/packages/api/index.mjs +0 -1
  36. package/es/packages/utils/index.mjs +1 -0
  37. package/es/stores/keepAliveNames.d.ts +1 -1
  38. package/es/stores/requestOldRoutes.d.ts +1 -1
  39. package/es/stores/routesList.d.ts +1 -1
  40. package/es/stores/tagsViewRoutes.d.ts +1 -1
  41. package/es/stores/themeConfig.d.ts +1 -1
  42. package/es/stores/userInfo.d.ts +1 -1
  43. package/index.js +259 -268
  44. package/index.min.js +4 -4
  45. package/index.min.mjs +4 -4
  46. package/index.mjs +257 -257
  47. package/lib/api/base/index.d.ts +1 -1
  48. package/lib/api/index.d.ts +0 -1
  49. package/lib/components/button/index.d.ts +3 -3
  50. package/lib/components/button/src/index.vue.d.ts +1 -1
  51. package/lib/components/button/style/css.d.ts +0 -1
  52. package/lib/components/button/style/index.d.ts +0 -1
  53. package/lib/components/chart/style/css.d.ts +0 -1
  54. package/lib/components/chart/style/index.d.ts +0 -1
  55. package/lib/components/form/style/css.d.ts +0 -1
  56. package/lib/components/form/style/index.d.ts +0 -1
  57. package/lib/components/input/style/css.d.ts +0 -1
  58. package/lib/components/input/style/index.d.ts +0 -1
  59. package/lib/components/layout-page/style/css.d.ts +0 -1
  60. package/lib/components/layout-page/style/index.d.ts +0 -1
  61. package/lib/components/layout-page-item/style/css.d.ts +0 -1
  62. package/lib/components/layout-page-item/style/index.d.ts +0 -1
  63. package/lib/components/query-condition/index.d.ts +12 -12
  64. package/lib/components/query-condition/src/index.vue.d.ts +4 -4
  65. package/lib/components/query-condition/style/css.d.ts +0 -1
  66. package/lib/components/query-condition/style/index.d.ts +0 -1
  67. package/lib/components/select/index.d.ts +5 -5
  68. package/lib/components/select/src/index.vue.d.ts +2 -2
  69. package/lib/components/select/style/css.d.ts +0 -1
  70. package/lib/components/select/style/index.d.ts +0 -1
  71. package/lib/components/select-table/index.d.ts +6 -6
  72. package/lib/components/select-table/src/index.vue.d.ts +2 -2
  73. package/lib/components/select-table/style/css.d.ts +0 -1
  74. package/lib/components/select-table/style/index.d.ts +0 -1
  75. package/lib/hooks/other.d.ts +1 -1
  76. package/lib/hooks/useLocale.d.ts +1 -1
  77. package/lib/hooks/useVxeTableOptionsHook.d.ts +2 -2
  78. package/lib/{other.css → index.css} +0 -9
  79. package/lib/index.d.ts +7 -8
  80. package/lib/index.js +15 -34
  81. package/lib/packages/api/index.js +0 -17
  82. package/lib/packages/utils/index.js +17 -0
  83. package/lib/stores/keepAliveNames.d.ts +1 -1
  84. package/lib/stores/requestOldRoutes.d.ts +1 -1
  85. package/lib/stores/routesList.d.ts +1 -1
  86. package/lib/stores/tagsViewRoutes.d.ts +1 -1
  87. package/lib/stores/themeConfig.d.ts +1 -1
  88. package/lib/stores/userInfo.d.ts +1 -1
  89. package/locale/en.js +1 -1
  90. package/locale/en.min.js +1 -1
  91. package/locale/en.min.mjs +1 -1
  92. package/locale/en.mjs +1 -1
  93. package/locale/zh-cn.js +1 -1
  94. package/locale/zh-cn.min.js +1 -1
  95. package/locale/zh-cn.min.mjs +1 -1
  96. package/locale/zh-cn.mjs +1 -1
  97. package/package.json +1 -1
  98. package/es/packages/components/button/style/css.mjs +0 -1
  99. package/es/packages/components/button/style/index.mjs +0 -1
  100. package/es/packages/components/chart/style/css.mjs +0 -1
  101. package/es/packages/components/chart/style/index.mjs +0 -1
  102. package/es/packages/components/form/style/css.mjs +0 -1
  103. package/es/packages/components/form/style/index.mjs +0 -1
  104. package/es/packages/components/index.mjs +0 -9
  105. package/es/packages/components/input/style/css.mjs +0 -1
  106. package/es/packages/components/input/style/index.mjs +0 -1
  107. package/es/packages/components/layout-page/style/css.mjs +0 -1
  108. package/es/packages/components/layout-page/style/index.mjs +0 -1
  109. package/es/packages/components/layout-page-item/style/css.mjs +0 -1
  110. package/es/packages/components/layout-page-item/style/index.mjs +0 -1
  111. package/es/packages/components/query-condition/style/css.mjs +0 -1
  112. package/es/packages/components/query-condition/style/index.mjs +0 -1
  113. package/es/packages/components/select/style/css.mjs +0 -1
  114. package/es/packages/components/select/style/index.mjs +0 -1
  115. package/es/packages/components/select-table/style/css.mjs +0 -1
  116. package/es/packages/components/select-table/style/index.mjs +0 -1
  117. package/es/packages/components/svgIcon/index.vue.mjs +0 -5
  118. package/es/packages/components/svgIcon/index.vue2.mjs +0 -91
  119. package/es/packages/components/utils/install.mjs +0 -17
  120. package/es/packages/hooks/dateTimeShortCust.mjs +0 -23
  121. package/es/packages/hooks/idleTimeout.mjs +0 -127
  122. package/es/packages/hooks/other.mjs +0 -146
  123. package/es/packages/hooks/sysInfo.mjs +0 -59
  124. package/es/packages/hooks/useInfo.mjs +0 -44
  125. package/es/packages/theme-chalk/assets/logo.png.mjs +0 -3
  126. package/es/packages/theme-chalk/src/button.scss.mjs +0 -3
  127. package/es/packages/theme-chalk/src/chart.scss.mjs +0 -3
  128. package/es/packages/theme-chalk/src/form.scss.mjs +0 -3
  129. package/es/packages/theme-chalk/src/input.scss.mjs +0 -3
  130. package/es/packages/theme-chalk/src/layout-page-item.scss.mjs +0 -3
  131. package/es/packages/theme-chalk/src/layout-page.scss.mjs +0 -3
  132. package/es/packages/theme-chalk/src/query-condition.scss.mjs +0 -3
  133. package/es/packages/theme-chalk/src/select-table.scss.mjs +0 -3
  134. package/es/packages/theme-chalk/src/select.scss.mjs +0 -3
  135. package/es/packages/utils/signalR.mjs +0 -47
  136. package/lib/packages/components/button/style/css.js +0 -4
  137. package/lib/packages/components/button/style/index.js +0 -4
  138. package/lib/packages/components/chart/style/css.js +0 -4
  139. package/lib/packages/components/chart/style/index.js +0 -4
  140. package/lib/packages/components/form/style/css.js +0 -4
  141. package/lib/packages/components/form/style/index.js +0 -4
  142. package/lib/packages/components/index.js +0 -23
  143. package/lib/packages/components/input/style/css.js +0 -4
  144. package/lib/packages/components/input/style/index.js +0 -4
  145. package/lib/packages/components/layout-page/style/css.js +0 -4
  146. package/lib/packages/components/layout-page/style/index.js +0 -4
  147. package/lib/packages/components/layout-page-item/style/css.js +0 -4
  148. package/lib/packages/components/layout-page-item/style/index.js +0 -4
  149. package/lib/packages/components/query-condition/style/css.js +0 -4
  150. package/lib/packages/components/query-condition/style/index.js +0 -4
  151. package/lib/packages/components/select/style/css.js +0 -4
  152. package/lib/packages/components/select/style/index.js +0 -4
  153. package/lib/packages/components/select-table/style/css.js +0 -4
  154. package/lib/packages/components/select-table/style/index.js +0 -4
  155. package/lib/packages/components/svgIcon/index.vue.js +0 -9
  156. package/lib/packages/components/svgIcon/index.vue2.js +0 -95
  157. package/lib/packages/components/utils/install.js +0 -19
  158. package/lib/packages/hooks/dateTimeShortCust.js +0 -25
  159. package/lib/packages/hooks/idleTimeout.js +0 -131
  160. package/lib/packages/hooks/other.js +0 -178
  161. package/lib/packages/hooks/sysInfo.js +0 -62
  162. package/lib/packages/hooks/useInfo.js +0 -64
  163. package/lib/packages/theme-chalk/assets/logo.png.js +0 -7
  164. package/lib/packages/theme-chalk/src/button.scss.js +0 -7
  165. package/lib/packages/theme-chalk/src/chart.scss.js +0 -7
  166. package/lib/packages/theme-chalk/src/form.scss.js +0 -7
  167. package/lib/packages/theme-chalk/src/input.scss.js +0 -7
  168. package/lib/packages/theme-chalk/src/layout-page-item.scss.js +0 -7
  169. package/lib/packages/theme-chalk/src/layout-page.scss.js +0 -7
  170. package/lib/packages/theme-chalk/src/query-condition.scss.js +0 -7
  171. package/lib/packages/theme-chalk/src/select-table.scss.js +0 -7
  172. package/lib/packages/theme-chalk/src/select.scss.js +0 -7
  173. package/lib/packages/utils/signalR.js +0 -68
package/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- /*! fmdeui-fmui v1.0.1 */
1
+ /*! fmdeui-fmui v1.0.3 */
2
2
  import { createPinia, defineStore, storeToRefs } from 'pinia';
3
3
  import CryptoJS from 'crypto-js';
4
4
  import XLSXS from 'xlsx-js-style';
@@ -6,8 +6,8 @@ import { ElLoading, ElMessage, localeContextKey, dayjs } from 'element-plus';
6
6
  import { isRef, unref, watch, nextTick, computed, defineComponent, ref, resolveComponent, openBlock, createBlock, mergeProps, withCtx, createVNode, renderSlot, inject, withDirectives, resolveDirective, reactive, useAttrs, useSlots, createSlots, renderList, normalizeProps, guardReactiveProps, createElementBlock, toDisplayString, createElementVNode, onMounted, onActivated, normalizeClass, createCommentVNode, resolveDynamicComponent, Fragment, createTextVNode, withModifiers, toHandlers, onBeforeUnmount, onUpdated, normalizeStyle, getCurrentInstance, vShow, markRaw } from 'vue';
7
7
  import { CaretTop, ArrowDown, ArrowUp } from '@element-plus/icons-vue';
8
8
  import mitt from 'mitt';
9
- import Cookies from 'js-cookie';
10
9
  import axios from 'axios';
10
+ import Cookies from 'js-cookie';
11
11
  import VxeUITable from 'vxe-table';
12
12
  import VxeUIPluginRenderElement from '@vxe-ui/plugin-render-element';
13
13
  import VxeUIPluginExportXLSX from '@vxe-ui/plugin-export-xlsx';
@@ -1179,50 +1179,6 @@ const NextLoading = {
1179
1179
 
1180
1180
  mitt();
1181
1181
 
1182
- const saulVModel = (props, propName, emit) => {
1183
- return computed({
1184
- get() {
1185
- if (typeof props[propName] === "object") {
1186
- return new Proxy(props[propName], {
1187
- set(obj, name, val) {
1188
- emit(`update:${String(propName)}`, { ...obj, [name]: val });
1189
- return true;
1190
- }
1191
- });
1192
- }
1193
- return props[propName];
1194
- },
1195
- set(val) {
1196
- emit(`update:${String(propName)}`, val);
1197
- }
1198
- });
1199
- };
1200
-
1201
- const cssCdnUrlList = [
1202
- // 调整为从本地引入,注释下面的 url
1203
- // '//at.alicdn.com/t/c/font_2298093_rnp72ifj3ba.css',
1204
- // '//netdna.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css',
1205
- ];
1206
- const jsCdnUrlList = [];
1207
- function setCssCdn() {
1208
- if (cssCdnUrlList.length <= 0) return false;
1209
- cssCdnUrlList.map((v) => {
1210
- let link = document.createElement("link");
1211
- link.rel = "stylesheet";
1212
- link.href = v;
1213
- link.crossOrigin = "anonymous";
1214
- document.getElementsByTagName("head")[0].appendChild(link);
1215
- });
1216
- }
1217
- function setJsCdn() {
1218
- if (jsCdnUrlList.length <= 0) return false;
1219
- jsCdnUrlList.map((v) => {
1220
- let link = document.createElement("script");
1221
- link.src = v;
1222
- document.body.appendChild(link);
1223
- });
1224
- }
1225
-
1226
1182
  const Local = {
1227
1183
  // 查看 v2.4.3版本更新日志
1228
1184
  setKey(key) {
@@ -1274,6 +1230,260 @@ const Session = {
1274
1230
  }
1275
1231
  };
1276
1232
 
1233
+ const abortControllerMap = /* @__PURE__ */ new Map();
1234
+ const service = axios.create({
1235
+ baseURL: window.__env__.VITE_API_URL,
1236
+ timeout: 1e3 * 60 * 10
1237
+ // 设置超时,默认 10 分钟
1238
+ // headers: { 'Content-Type': 'application/json' },
1239
+ });
1240
+ const accessTokenKey = "access-token";
1241
+ const refreshAccessTokenKey = `x-${accessTokenKey}`;
1242
+ const getToken = () => {
1243
+ return Local.get(accessTokenKey);
1244
+ };
1245
+ const getHeader = () => {
1246
+ return { authorization: "Bearer " + getToken() };
1247
+ };
1248
+ const clearAccessTokens = () => {
1249
+ clearTokens();
1250
+ if (window.location.hash.startsWith("#/login")) {
1251
+ window.location.hash = window.location.hash.replace(/([?&])token=[^&]*&?/, "$1").replace(/&$/, "");
1252
+ } else {
1253
+ window.location.reload();
1254
+ }
1255
+ };
1256
+ const clearTokens = () => {
1257
+ Local.remove(accessTokenKey);
1258
+ Local.remove(refreshAccessTokenKey);
1259
+ Session.clear();
1260
+ };
1261
+ const axiosInstance = axios;
1262
+ service.interceptors.request.use(
1263
+ (config) => {
1264
+ var _a;
1265
+ const controller = new AbortController();
1266
+ config.signal = controller.signal;
1267
+ const url = config.url || "";
1268
+ abortControllerMap.set(url, controller);
1269
+ const accessToken = Local.get(accessTokenKey);
1270
+ if (accessToken) {
1271
+ config.headers["Authorization"] = `Bearer ${accessToken}`;
1272
+ const jwt = decryptJWT(accessToken);
1273
+ const exp = getJWTDate(jwt.exp);
1274
+ if (/* @__PURE__ */ new Date() >= exp) {
1275
+ const refreshAccessToken = Local.get(refreshAccessTokenKey);
1276
+ if (refreshAccessToken) {
1277
+ config.headers["X-Authorization"] = `Bearer ${refreshAccessToken}`;
1278
+ }
1279
+ }
1280
+ if (((_a = config.method) == null ? void 0 : _a.toLowerCase()) === "get" && config.data) {
1281
+ let url2 = config.url + "?" + tansParams(config.data);
1282
+ url2 = url2.slice(0, -1);
1283
+ config.data = {};
1284
+ config.url = url2;
1285
+ }
1286
+ }
1287
+ return config;
1288
+ },
1289
+ (error) => {
1290
+ return Promise.reject(error);
1291
+ }
1292
+ );
1293
+ service.interceptors.response.use(
1294
+ (res) => {
1295
+ const url = res.config.url || "";
1296
+ abortControllerMap.delete(url);
1297
+ var status = res.status;
1298
+ var serve = res.data;
1299
+ if (status === 401) {
1300
+ clearAccessTokens();
1301
+ }
1302
+ if (status >= 400) {
1303
+ throw new Error(res.statusText || "Request Error.");
1304
+ }
1305
+ if (serve && serve.hasOwnProperty("errors") && serve.errors) {
1306
+ throw new Error(JSON.stringify(serve.errors || "Request Error."));
1307
+ }
1308
+ var accessToken = res.headers[accessTokenKey];
1309
+ var refreshAccessToken = res.headers[refreshAccessTokenKey];
1310
+ if (accessToken === "invalid_token") {
1311
+ clearAccessTokens();
1312
+ } else if (refreshAccessToken && accessToken && accessToken !== "invalid_token") {
1313
+ Local.set(accessTokenKey, accessToken);
1314
+ Local.set(refreshAccessTokenKey, refreshAccessToken);
1315
+ }
1316
+ if (serve.code === 401) {
1317
+ clearAccessTokens();
1318
+ } else if (serve.code === void 0) {
1319
+ return Promise.resolve(res);
1320
+ } else if (serve.code !== 200) {
1321
+ let message = handleResponse(serve.message, 5);
1322
+ ElMessage.error({ dangerouslyUseHTMLString: true, message });
1323
+ throw new Error(serve.message);
1324
+ }
1325
+ return res;
1326
+ },
1327
+ (error) => {
1328
+ if (error.response) {
1329
+ if (error.response.status === 401) {
1330
+ clearAccessTokens();
1331
+ } else if (error.response.statusCode === 404) {
1332
+ ElMessage.error("\u63A5\u53E3\u5F02\u5E38\uFF0C\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458");
1333
+ }
1334
+ }
1335
+ if (error.message.indexOf("timeout") != -1) {
1336
+ ElMessage.error("\u7F51\u7EDC\u8D85\u65F6");
1337
+ } else if (error.message == "Network Error") {
1338
+ ElMessage.error("\u7F51\u7EDC\u8FDE\u63A5\u9519\u8BEF");
1339
+ } else {
1340
+ if (error.response.data) ElMessage.error(error.response.statusText);
1341
+ else ElMessage.error("\u63A5\u53E3\u8DEF\u5F84\u627E\u4E0D\u5230");
1342
+ }
1343
+ return Promise.reject(error);
1344
+ }
1345
+ );
1346
+ const handleResponse = (input, col = 5) => {
1347
+ const messageList = [];
1348
+ const errorCodeRegex = /^\[[A-Za-z0-9_]+\]\s*/;
1349
+ function process(value) {
1350
+ if (value == null) return;
1351
+ if (typeof value === "string") {
1352
+ const clean = value.replace(errorCodeRegex, "");
1353
+ if (clean.trim()) messageList.push(clean.trim());
1354
+ } else if (Array.isArray(value)) {
1355
+ value.forEach((item) => process(item));
1356
+ } else if (typeof value === "object") {
1357
+ Object.values(value).forEach((val) => process(val));
1358
+ }
1359
+ }
1360
+ try {
1361
+ const parsed = typeof input === "string" ? JSON.parse(input) : input;
1362
+ process(parsed);
1363
+ } catch (e) {
1364
+ process(input);
1365
+ }
1366
+ col = col < 4 ? 4 : col;
1367
+ return messageList.reduce((rows, msg, i) => {
1368
+ if (i % col === 0) rows.push([]);
1369
+ rows[rows.length - 1].push(msg);
1370
+ return rows;
1371
+ }, []).map((row) => row.join("; ")).join("<br/>");
1372
+ };
1373
+ const cancelRequest = (url) => {
1374
+ var _a;
1375
+ const urlList = Array.isArray(url) ? url : [url];
1376
+ for (const _url of urlList) {
1377
+ (_a = abortControllerMap.get(_url)) == null ? void 0 : _a.abort();
1378
+ abortControllerMap.delete(_url);
1379
+ }
1380
+ };
1381
+ const cancelAllRequest = () => {
1382
+ for (const [_, controller] of abortControllerMap) {
1383
+ controller.abort();
1384
+ }
1385
+ abortControllerMap.clear();
1386
+ };
1387
+ function tansParams(params) {
1388
+ let result = "";
1389
+ for (const propName of Object.keys(params)) {
1390
+ const value = params[propName];
1391
+ var part = encodeURIComponent(propName) + "=";
1392
+ if (value !== null && value !== "" && typeof value !== "undefined") {
1393
+ if (typeof value === "object") {
1394
+ for (const key of Object.keys(value)) {
1395
+ if (value[key] !== null && value[key] !== "" && typeof value[key] !== "undefined") {
1396
+ let params2 = propName + "[" + key + "]";
1397
+ var subPart = encodeURIComponent(params2) + "=";
1398
+ result += subPart + encodeURIComponent(value[key]) + "&";
1399
+ }
1400
+ }
1401
+ } else {
1402
+ result += part + encodeURIComponent(value) + "&";
1403
+ }
1404
+ }
1405
+ }
1406
+ return result;
1407
+ }
1408
+ function decryptJWT(token) {
1409
+ token = token.replace(/_/g, "/").replace(/-/g, "+");
1410
+ var json = decodeURIComponent(escape(window.atob(token.split(".")[1])));
1411
+ return JSON.parse(json);
1412
+ }
1413
+ function getJWTDate(timestamp) {
1414
+ return new Date(timestamp * 1e3);
1415
+ }
1416
+ function request2(config) {
1417
+ return new Promise((resolve, reject) => {
1418
+ service(config).then((res) => {
1419
+ if (res.data.type == "success") {
1420
+ resolve(res.data.result);
1421
+ } else {
1422
+ ElMessage.success(res.data.message);
1423
+ }
1424
+ }).catch((res) => {
1425
+ ElMessage.error(res);
1426
+ reject(res);
1427
+ });
1428
+ });
1429
+ }
1430
+ function reLoadLoginAccessToken(accessInfo) {
1431
+ if ((accessInfo == null ? void 0 : accessInfo.accessToken) && (accessInfo == null ? void 0 : accessInfo.refreshToken)) {
1432
+ Local.remove("tagsViewList");
1433
+ Session.set("token", accessInfo.accessToken);
1434
+ Local.set(accessTokenKey, accessInfo.accessToken);
1435
+ Local.set(refreshAccessTokenKey, accessInfo.refreshToken);
1436
+ setTimeout(() => location.href = "/", 500);
1437
+ }
1438
+ }
1439
+ function sleep(delay) {
1440
+ return new Promise((resolve) => setTimeout(resolve, delay));
1441
+ }
1442
+
1443
+ const saulVModel = (props, propName, emit) => {
1444
+ return computed({
1445
+ get() {
1446
+ if (typeof props[propName] === "object") {
1447
+ return new Proxy(props[propName], {
1448
+ set(obj, name, val) {
1449
+ emit(`update:${String(propName)}`, { ...obj, [name]: val });
1450
+ return true;
1451
+ }
1452
+ });
1453
+ }
1454
+ return props[propName];
1455
+ },
1456
+ set(val) {
1457
+ emit(`update:${String(propName)}`, val);
1458
+ }
1459
+ });
1460
+ };
1461
+
1462
+ const cssCdnUrlList = [
1463
+ // 调整为从本地引入,注释下面的 url
1464
+ // '//at.alicdn.com/t/c/font_2298093_rnp72ifj3ba.css',
1465
+ // '//netdna.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css',
1466
+ ];
1467
+ const jsCdnUrlList = [];
1468
+ function setCssCdn() {
1469
+ if (cssCdnUrlList.length <= 0) return false;
1470
+ cssCdnUrlList.map((v) => {
1471
+ let link = document.createElement("link");
1472
+ link.rel = "stylesheet";
1473
+ link.href = v;
1474
+ link.crossOrigin = "anonymous";
1475
+ document.getElementsByTagName("head")[0].appendChild(link);
1476
+ });
1477
+ }
1478
+ function setJsCdn() {
1479
+ if (jsCdnUrlList.length <= 0) return false;
1480
+ jsCdnUrlList.map((v) => {
1481
+ let link = document.createElement("script");
1482
+ link.src = v;
1483
+ document.body.appendChild(link);
1484
+ });
1485
+ }
1486
+
1277
1487
  function useChangeColor() {
1278
1488
  const hexToRgb = (str) => {
1279
1489
  let hexs = "";
@@ -1665,216 +1875,6 @@ const useThemeConfig = defineStore("themeConfig", {
1665
1875
  }
1666
1876
  });
1667
1877
 
1668
- const abortControllerMap = /* @__PURE__ */ new Map();
1669
- const service = axios.create({
1670
- baseURL: window.__env__.VITE_API_URL,
1671
- timeout: 1e3 * 60 * 10
1672
- // 设置超时,默认 10 分钟
1673
- // headers: { 'Content-Type': 'application/json' },
1674
- });
1675
- const accessTokenKey = "access-token";
1676
- const refreshAccessTokenKey = `x-${accessTokenKey}`;
1677
- const getToken = () => {
1678
- return Local.get(accessTokenKey);
1679
- };
1680
- const getHeader = () => {
1681
- return { authorization: "Bearer " + getToken() };
1682
- };
1683
- const clearAccessTokens = () => {
1684
- clearTokens();
1685
- if (window.location.hash.startsWith("#/login")) {
1686
- window.location.hash = window.location.hash.replace(/([?&])token=[^&]*&?/, "$1").replace(/&$/, "");
1687
- } else {
1688
- window.location.reload();
1689
- }
1690
- };
1691
- const clearTokens = () => {
1692
- Local.remove(accessTokenKey);
1693
- Local.remove(refreshAccessTokenKey);
1694
- Session.clear();
1695
- };
1696
- const axiosInstance = axios;
1697
- service.interceptors.request.use(
1698
- (config) => {
1699
- var _a;
1700
- const controller = new AbortController();
1701
- config.signal = controller.signal;
1702
- const url = config.url || "";
1703
- abortControllerMap.set(url, controller);
1704
- const accessToken = Local.get(accessTokenKey);
1705
- if (accessToken) {
1706
- config.headers["Authorization"] = `Bearer ${accessToken}`;
1707
- const jwt = decryptJWT(accessToken);
1708
- const exp = getJWTDate(jwt.exp);
1709
- if (/* @__PURE__ */ new Date() >= exp) {
1710
- const refreshAccessToken = Local.get(refreshAccessTokenKey);
1711
- if (refreshAccessToken) {
1712
- config.headers["X-Authorization"] = `Bearer ${refreshAccessToken}`;
1713
- }
1714
- }
1715
- if (((_a = config.method) == null ? void 0 : _a.toLowerCase()) === "get" && config.data) {
1716
- let url2 = config.url + "?" + tansParams(config.data);
1717
- url2 = url2.slice(0, -1);
1718
- config.data = {};
1719
- config.url = url2;
1720
- }
1721
- }
1722
- return config;
1723
- },
1724
- (error) => {
1725
- return Promise.reject(error);
1726
- }
1727
- );
1728
- service.interceptors.response.use(
1729
- (res) => {
1730
- const url = res.config.url || "";
1731
- abortControllerMap.delete(url);
1732
- var status = res.status;
1733
- var serve = res.data;
1734
- if (status === 401) {
1735
- clearAccessTokens();
1736
- }
1737
- if (status >= 400) {
1738
- throw new Error(res.statusText || "Request Error.");
1739
- }
1740
- if (serve && serve.hasOwnProperty("errors") && serve.errors) {
1741
- throw new Error(JSON.stringify(serve.errors || "Request Error."));
1742
- }
1743
- var accessToken = res.headers[accessTokenKey];
1744
- var refreshAccessToken = res.headers[refreshAccessTokenKey];
1745
- if (accessToken === "invalid_token") {
1746
- clearAccessTokens();
1747
- } else if (refreshAccessToken && accessToken && accessToken !== "invalid_token") {
1748
- Local.set(accessTokenKey, accessToken);
1749
- Local.set(refreshAccessTokenKey, refreshAccessToken);
1750
- }
1751
- if (serve.code === 401) {
1752
- clearAccessTokens();
1753
- } else if (serve.code === void 0) {
1754
- return Promise.resolve(res);
1755
- } else if (serve.code !== 200) {
1756
- let message = handleResponse(serve.message, 5);
1757
- ElMessage.error({ dangerouslyUseHTMLString: true, message });
1758
- throw new Error(serve.message);
1759
- }
1760
- return res;
1761
- },
1762
- (error) => {
1763
- if (error.response) {
1764
- if (error.response.status === 401) {
1765
- clearAccessTokens();
1766
- } else if (error.response.statusCode === 404) {
1767
- ElMessage.error("\u63A5\u53E3\u5F02\u5E38\uFF0C\u8BF7\u8054\u7CFB\u7BA1\u7406\u5458");
1768
- }
1769
- }
1770
- if (error.message.indexOf("timeout") != -1) {
1771
- ElMessage.error("\u7F51\u7EDC\u8D85\u65F6");
1772
- } else if (error.message == "Network Error") {
1773
- ElMessage.error("\u7F51\u7EDC\u8FDE\u63A5\u9519\u8BEF");
1774
- } else {
1775
- if (error.response.data) ElMessage.error(error.response.statusText);
1776
- else ElMessage.error("\u63A5\u53E3\u8DEF\u5F84\u627E\u4E0D\u5230");
1777
- }
1778
- return Promise.reject(error);
1779
- }
1780
- );
1781
- const handleResponse = (input, col = 5) => {
1782
- const messageList = [];
1783
- const errorCodeRegex = /^\[[A-Za-z0-9_]+\]\s*/;
1784
- function process(value) {
1785
- if (value == null) return;
1786
- if (typeof value === "string") {
1787
- const clean = value.replace(errorCodeRegex, "");
1788
- if (clean.trim()) messageList.push(clean.trim());
1789
- } else if (Array.isArray(value)) {
1790
- value.forEach((item) => process(item));
1791
- } else if (typeof value === "object") {
1792
- Object.values(value).forEach((val) => process(val));
1793
- }
1794
- }
1795
- try {
1796
- const parsed = typeof input === "string" ? JSON.parse(input) : input;
1797
- process(parsed);
1798
- } catch (e) {
1799
- process(input);
1800
- }
1801
- col = col < 4 ? 4 : col;
1802
- return messageList.reduce((rows, msg, i) => {
1803
- if (i % col === 0) rows.push([]);
1804
- rows[rows.length - 1].push(msg);
1805
- return rows;
1806
- }, []).map((row) => row.join("; ")).join("<br/>");
1807
- };
1808
- const cancelRequest = (url) => {
1809
- var _a;
1810
- const urlList = Array.isArray(url) ? url : [url];
1811
- for (const _url of urlList) {
1812
- (_a = abortControllerMap.get(_url)) == null ? void 0 : _a.abort();
1813
- abortControllerMap.delete(_url);
1814
- }
1815
- };
1816
- const cancelAllRequest = () => {
1817
- for (const [_, controller] of abortControllerMap) {
1818
- controller.abort();
1819
- }
1820
- abortControllerMap.clear();
1821
- };
1822
- function tansParams(params) {
1823
- let result = "";
1824
- for (const propName of Object.keys(params)) {
1825
- const value = params[propName];
1826
- var part = encodeURIComponent(propName) + "=";
1827
- if (value !== null && value !== "" && typeof value !== "undefined") {
1828
- if (typeof value === "object") {
1829
- for (const key of Object.keys(value)) {
1830
- if (value[key] !== null && value[key] !== "" && typeof value[key] !== "undefined") {
1831
- let params2 = propName + "[" + key + "]";
1832
- var subPart = encodeURIComponent(params2) + "=";
1833
- result += subPart + encodeURIComponent(value[key]) + "&";
1834
- }
1835
- }
1836
- } else {
1837
- result += part + encodeURIComponent(value) + "&";
1838
- }
1839
- }
1840
- }
1841
- return result;
1842
- }
1843
- function decryptJWT(token) {
1844
- token = token.replace(/_/g, "/").replace(/-/g, "+");
1845
- var json = decodeURIComponent(escape(window.atob(token.split(".")[1])));
1846
- return JSON.parse(json);
1847
- }
1848
- function getJWTDate(timestamp) {
1849
- return new Date(timestamp * 1e3);
1850
- }
1851
- function request2(config) {
1852
- return new Promise((resolve, reject) => {
1853
- service(config).then((res) => {
1854
- if (res.data.type == "success") {
1855
- resolve(res.data.result);
1856
- } else {
1857
- ElMessage.success(res.data.message);
1858
- }
1859
- }).catch((res) => {
1860
- ElMessage.error(res);
1861
- reject(res);
1862
- });
1863
- });
1864
- }
1865
- function reLoadLoginAccessToken(accessInfo) {
1866
- if ((accessInfo == null ? void 0 : accessInfo.accessToken) && (accessInfo == null ? void 0 : accessInfo.refreshToken)) {
1867
- Local.remove("tagsViewList");
1868
- Session.set("token", accessInfo.accessToken);
1869
- Local.set(accessTokenKey, accessInfo.accessToken);
1870
- Local.set(refreshAccessTokenKey, accessInfo.refreshToken);
1871
- setTimeout(() => location.href = "/", 500);
1872
- }
1873
- }
1874
- function sleep(delay) {
1875
- return new Promise((resolve) => setTimeout(resolve, delay));
1876
- }
1877
-
1878
1878
  const useBaseApi = (module, options = {}) => {
1879
1879
  const baseUrl = `/api/${module}/`;
1880
1880
  const request = (config, cancel = false) => {
@@ -22278,4 +22278,4 @@ const version = "1.0.0";
22278
22278
 
22279
22279
  const install = installer.install;
22280
22280
 
22281
- export { AccountTypeEnum, FButton, FChart, FForm, FInput, FLayoutPage, FLayoutPageItem, FQueryCondition, FSelect, FSelectTable, HttpMethodEnum, JobCreateTypeEnum, Local, NextLoading, Session, StringToObj, accessTokenKey, auth, authAll, auths, axiosInstance, base64ToFile, blobToFile, buildLocaleContext, buildTranslator, cancelAllRequest, cancelRequest, clearAccessTokens, clearTokens, clone, configureRoutes, dataURLtoBlob, decryptJWT, installer as default, downloadByBase64, downloadByData, downloadByOnlineUrl, downloadByUrl, downloadStreamFile, en, exportExcel, feature, fileToBase64, flowLoading, formatAxis, formatDate, formatPast, gcj02ToBd09, getCountryCode, getFileName, getHeader, getJWTDate, getToken, getWeek, hAuth, hAuthAll, hAuths, i18n, initBackEndControlRoutes, initFrontEndControlRoutes, initRouter, install, isObjectValueEqual, iso_3166_1_CountryList, judgementIdCard, judgementSameArr, languageList, mergMessage, openWindow, reLoadLoginAccessToken, refreshAccessTokenKey, removeDuplicate, request2, saulVModel, service, setCssCdn, setDynamicViewsModules, setJsCdn, setPathPrefix, setupI18n, signatureByKSort, sleep, tansParams, translate, urlToBase64, useApi, useBaseApi, useChangeColor, useFormRulePresets, useKeepALiveNames, useLocale, useRequestOldRoutes, useRoutesList, useSysApi, useTagsViewRoutes, useThemeConfig, useUserInfo, useVxeTable, validateFormWithScroll, validateFormWithScrollCallback, verifiyNumberInteger, verifyAccount, verifyAndSpace, verifyCarNum, verifyCnAndSpace, verifyEmail, verifyEnAndSpace, verifyFullName, verifyIPAddress, verifyIdCard, verifyNumberCnUppercase, verifyNumberComma, verifyNumberIntegerAndFloat, verifyNumberPercentage, verifyNumberPercentageFloat, verifyPassword, verifyPasswordPowerful, verifyPasswordStrength, verifyPhone, verifyPostalCode, verifyTelPhone, verifyTextColor, verifyUrl, version, wgs84ToBd09, wgs84ToGcj02, plusZhCn as zhCn };
22281
+ export { AccountTypeEnum, HttpMethodEnum, JobCreateTypeEnum, Local, NextLoading, Session, StringToObj, accessTokenKey, auth, authAll, auths, axiosInstance, base64ToFile, blobToFile, buildLocaleContext, buildTranslator, cancelAllRequest, cancelRequest, clearAccessTokens, clearTokens, clone, configureRoutes, dataURLtoBlob, decryptJWT, installer as default, downloadByBase64, downloadByData, downloadByOnlineUrl, downloadByUrl, downloadStreamFile, en, exportExcel, feature, fileToBase64, flowLoading, formatAxis, formatDate, formatPast, gcj02ToBd09, getCountryCode, getFileName, getHeader, getJWTDate, getToken, getWeek, hAuth, hAuthAll, hAuths, i18n, initBackEndControlRoutes, initFrontEndControlRoutes, initRouter, install, isObjectValueEqual, iso_3166_1_CountryList, judgementIdCard, judgementSameArr, languageList, mergMessage, openWindow, reLoadLoginAccessToken, refreshAccessTokenKey, removeDuplicate, request2, saulVModel, service, setCssCdn, setDynamicViewsModules, setJsCdn, setPathPrefix, setupI18n, signatureByKSort, sleep, tansParams, translate, urlToBase64, useApi, useBaseApi, useChangeColor, useFormRulePresets, useKeepALiveNames, useLocale, useRequestOldRoutes, useRoutesList, useSysApi, useTagsViewRoutes, useThemeConfig, useUserInfo, useVxeTable, validateFormWithScroll, validateFormWithScrollCallback, verifiyNumberInteger, verifyAccount, verifyAndSpace, verifyCarNum, verifyCnAndSpace, verifyEmail, verifyEnAndSpace, verifyFullName, verifyIPAddress, verifyIdCard, verifyNumberCnUppercase, verifyNumberComma, verifyNumberIntegerAndFloat, verifyNumberPercentage, verifyNumberPercentageFloat, verifyPassword, verifyPasswordPowerful, verifyPasswordStrength, verifyPhone, verifyPostalCode, verifyTelPhone, verifyTextColor, verifyUrl, version, wgs84ToBd09, wgs84ToGcj02, plusZhCn as zhCn };
@@ -1,4 +1,4 @@
1
- import { CustomAxiosRequestConfig } from '@fmdeui/utils/request';
1
+ import { CustomAxiosRequestConfig } from 'fmdeui-fmui/es/utils/request';
2
2
  import { AxiosResponse } from 'axios';
3
3
  export declare const useBaseApi: (module: string, options?: CustomAxiosRequestConfig) => {
4
4
  baseUrl: string;
@@ -1,6 +1,5 @@
1
1
  export * from './base';
2
2
  export * from './sys';
3
- export * from '@fmdeui/utils/request';
4
3
  /**
5
4
  * 账号类型枚举<br />&nbsp;会员 Member = 666<br />&nbsp;普通账号 NormalUser = 777<br />&nbsp;系统管理员 SysAdmin = 888<br />&nbsp;平台管理 987;超级管理员 SuperAdmin = 999<br />
6
5
  * @export
@@ -8,8 +8,8 @@ export declare const FButton: {
8
8
  click: (...args: any[]) => void;
9
9
  }, PublicProps, {
10
10
  time: number;
11
- placement: string;
12
11
  tip: string;
12
+ placement: string;
13
13
  tipProps: Record<string, any>;
14
14
  isDebounce: boolean;
15
15
  }, false, {}, {}, GlobalComponents, GlobalDirectives, string, {}, any, ComponentProvideOptions, {
@@ -23,8 +23,8 @@ export declare const FButton: {
23
23
  onClick?: ((...args: any[]) => any) | undefined;
24
24
  }>, {}, {}, {}, {}, {
25
25
  time: number;
26
- placement: string;
27
26
  tip: string;
27
+ placement: string;
28
28
  tipProps: Record<string, any>;
29
29
  isDebounce: boolean;
30
30
  }>;
@@ -37,8 +37,8 @@ export declare const FButton: {
37
37
  click: (...args: any[]) => void;
38
38
  }, string, {
39
39
  time: number;
40
- placement: string;
41
40
  tip: string;
41
+ placement: string;
42
42
  tipProps: Record<string, any>;
43
43
  isDebounce: boolean;
44
44
  }, {}, string, {}, GlobalComponents, GlobalDirectives, string, ComponentProvideOptions> & VNodeProps & AllowedComponentProps & ComponentCustomProps & (new () => {
@@ -16,8 +16,8 @@ declare const __VLS_component: DefineComponent<FButtonProps, {}, {}, {}, {}, Com
16
16
  onClick?: ((...args: any[]) => any) | undefined;
17
17
  }>, {
18
18
  time: number;
19
- placement: string;
20
19
  tip: string;
20
+ placement: string;
21
21
  tipProps: Record<string, any>;
22
22
  isDebounce: boolean;
23
23
  }, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
@@ -1 +0,0 @@
1
- import "@fmdeui/theme-chalk/f-button.css";
@@ -1 +0,0 @@
1
- import "@fmdeui/theme-chalk/src/button.scss";
@@ -1 +0,0 @@
1
- import "@fmdeui/theme-chalk/f-chart.css";
@@ -1 +0,0 @@
1
- import "@fmdeui/theme-chalk/src/chart.scss";
@@ -1 +0,0 @@
1
- import "@fmdeui/theme-chalk/f-form.css";
@@ -1 +0,0 @@
1
- import "@fmdeui/theme-chalk/src/form.scss";
@@ -1 +0,0 @@
1
- import "@fmdeui/theme-chalk/f-input.css";
@@ -1 +0,0 @@
1
- import "@fmdeui/theme-chalk/src/input.scss";
@@ -1 +0,0 @@
1
- import "@fmdeui/theme-chalk/f-layout-page.css";
@@ -1 +0,0 @@
1
- import "@fmdeui/theme-chalk/src/layout-page.scss";
@@ -1 +0,0 @@
1
- import "@fmdeui/theme-chalk/f-layout-page-item.css";
@@ -1 +0,0 @@
1
- import "@fmdeui/theme-chalk/src/layout-page-item.scss";