@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.
- package/es/api/base/index.d.ts +1 -1
- package/es/api/index.d.ts +0 -1
- package/es/{version.css → component.css} +0 -9
- package/es/components/button/index.d.ts +3 -3
- package/es/components/button/src/index.vue.d.ts +1 -1
- package/es/components/button/style/css.d.ts +0 -1
- package/es/components/button/style/index.d.ts +0 -1
- package/es/components/chart/style/css.d.ts +0 -1
- package/es/components/chart/style/index.d.ts +0 -1
- package/es/components/form/style/css.d.ts +0 -1
- package/es/components/form/style/index.d.ts +0 -1
- package/es/components/input/style/css.d.ts +0 -1
- package/es/components/input/style/index.d.ts +0 -1
- package/es/components/layout-page/style/css.d.ts +0 -1
- package/es/components/layout-page/style/index.d.ts +0 -1
- package/es/components/layout-page-item/style/css.d.ts +0 -1
- package/es/components/layout-page-item/style/index.d.ts +0 -1
- package/es/components/query-condition/index.d.ts +12 -12
- package/es/components/query-condition/src/index.vue.d.ts +4 -4
- package/es/components/query-condition/style/css.d.ts +0 -1
- package/es/components/query-condition/style/index.d.ts +0 -1
- package/es/components/select/index.d.ts +5 -5
- package/es/components/select/src/index.vue.d.ts +2 -2
- package/es/components/select/style/css.d.ts +0 -1
- package/es/components/select/style/index.d.ts +0 -1
- package/es/components/select-table/index.d.ts +6 -6
- package/es/components/select-table/src/index.vue.d.ts +2 -2
- package/es/components/select-table/style/css.d.ts +0 -1
- package/es/components/select-table/style/index.d.ts +0 -1
- package/es/hooks/other.d.ts +1 -1
- package/es/hooks/useLocale.d.ts +1 -1
- package/es/hooks/useVxeTableOptionsHook.d.ts +2 -2
- package/es/index.d.ts +7 -8
- package/es/index.mjs +0 -10
- package/es/packages/api/index.mjs +0 -1
- package/es/packages/utils/index.mjs +1 -0
- package/es/stores/keepAliveNames.d.ts +1 -1
- package/es/stores/requestOldRoutes.d.ts +1 -1
- package/es/stores/routesList.d.ts +1 -1
- package/es/stores/tagsViewRoutes.d.ts +1 -1
- package/es/stores/themeConfig.d.ts +1 -1
- package/es/stores/userInfo.d.ts +1 -1
- package/index.js +259 -268
- package/index.min.js +4 -4
- package/index.min.mjs +4 -4
- package/index.mjs +257 -257
- package/lib/api/base/index.d.ts +1 -1
- package/lib/api/index.d.ts +0 -1
- package/lib/components/button/index.d.ts +3 -3
- package/lib/components/button/src/index.vue.d.ts +1 -1
- package/lib/components/button/style/css.d.ts +0 -1
- package/lib/components/button/style/index.d.ts +0 -1
- package/lib/components/chart/style/css.d.ts +0 -1
- package/lib/components/chart/style/index.d.ts +0 -1
- package/lib/components/form/style/css.d.ts +0 -1
- package/lib/components/form/style/index.d.ts +0 -1
- package/lib/components/input/style/css.d.ts +0 -1
- package/lib/components/input/style/index.d.ts +0 -1
- package/lib/components/layout-page/style/css.d.ts +0 -1
- package/lib/components/layout-page/style/index.d.ts +0 -1
- package/lib/components/layout-page-item/style/css.d.ts +0 -1
- package/lib/components/layout-page-item/style/index.d.ts +0 -1
- package/lib/components/query-condition/index.d.ts +12 -12
- package/lib/components/query-condition/src/index.vue.d.ts +4 -4
- package/lib/components/query-condition/style/css.d.ts +0 -1
- package/lib/components/query-condition/style/index.d.ts +0 -1
- package/lib/components/select/index.d.ts +5 -5
- package/lib/components/select/src/index.vue.d.ts +2 -2
- package/lib/components/select/style/css.d.ts +0 -1
- package/lib/components/select/style/index.d.ts +0 -1
- package/lib/components/select-table/index.d.ts +6 -6
- package/lib/components/select-table/src/index.vue.d.ts +2 -2
- package/lib/components/select-table/style/css.d.ts +0 -1
- package/lib/components/select-table/style/index.d.ts +0 -1
- package/lib/hooks/other.d.ts +1 -1
- package/lib/hooks/useLocale.d.ts +1 -1
- package/lib/hooks/useVxeTableOptionsHook.d.ts +2 -2
- package/lib/{other.css → index.css} +0 -9
- package/lib/index.d.ts +7 -8
- package/lib/index.js +15 -34
- package/lib/packages/api/index.js +0 -17
- package/lib/packages/utils/index.js +17 -0
- package/lib/stores/keepAliveNames.d.ts +1 -1
- package/lib/stores/requestOldRoutes.d.ts +1 -1
- package/lib/stores/routesList.d.ts +1 -1
- package/lib/stores/tagsViewRoutes.d.ts +1 -1
- package/lib/stores/themeConfig.d.ts +1 -1
- package/lib/stores/userInfo.d.ts +1 -1
- package/locale/en.js +1 -1
- package/locale/en.min.js +1 -1
- package/locale/en.min.mjs +1 -1
- package/locale/en.mjs +1 -1
- package/locale/zh-cn.js +1 -1
- package/locale/zh-cn.min.js +1 -1
- package/locale/zh-cn.min.mjs +1 -1
- package/locale/zh-cn.mjs +1 -1
- package/package.json +1 -1
- package/es/packages/components/button/style/css.mjs +0 -1
- package/es/packages/components/button/style/index.mjs +0 -1
- package/es/packages/components/chart/style/css.mjs +0 -1
- package/es/packages/components/chart/style/index.mjs +0 -1
- package/es/packages/components/form/style/css.mjs +0 -1
- package/es/packages/components/form/style/index.mjs +0 -1
- package/es/packages/components/index.mjs +0 -9
- package/es/packages/components/input/style/css.mjs +0 -1
- package/es/packages/components/input/style/index.mjs +0 -1
- package/es/packages/components/layout-page/style/css.mjs +0 -1
- package/es/packages/components/layout-page/style/index.mjs +0 -1
- package/es/packages/components/layout-page-item/style/css.mjs +0 -1
- package/es/packages/components/layout-page-item/style/index.mjs +0 -1
- package/es/packages/components/query-condition/style/css.mjs +0 -1
- package/es/packages/components/query-condition/style/index.mjs +0 -1
- package/es/packages/components/select/style/css.mjs +0 -1
- package/es/packages/components/select/style/index.mjs +0 -1
- package/es/packages/components/select-table/style/css.mjs +0 -1
- package/es/packages/components/select-table/style/index.mjs +0 -1
- package/es/packages/components/svgIcon/index.vue.mjs +0 -5
- package/es/packages/components/svgIcon/index.vue2.mjs +0 -91
- package/es/packages/components/utils/install.mjs +0 -17
- package/es/packages/hooks/dateTimeShortCust.mjs +0 -23
- package/es/packages/hooks/idleTimeout.mjs +0 -127
- package/es/packages/hooks/other.mjs +0 -146
- package/es/packages/hooks/sysInfo.mjs +0 -59
- package/es/packages/hooks/useInfo.mjs +0 -44
- package/es/packages/theme-chalk/assets/logo.png.mjs +0 -3
- package/es/packages/theme-chalk/src/button.scss.mjs +0 -3
- package/es/packages/theme-chalk/src/chart.scss.mjs +0 -3
- package/es/packages/theme-chalk/src/form.scss.mjs +0 -3
- package/es/packages/theme-chalk/src/input.scss.mjs +0 -3
- package/es/packages/theme-chalk/src/layout-page-item.scss.mjs +0 -3
- package/es/packages/theme-chalk/src/layout-page.scss.mjs +0 -3
- package/es/packages/theme-chalk/src/query-condition.scss.mjs +0 -3
- package/es/packages/theme-chalk/src/select-table.scss.mjs +0 -3
- package/es/packages/theme-chalk/src/select.scss.mjs +0 -3
- package/es/packages/utils/signalR.mjs +0 -47
- package/lib/packages/components/button/style/css.js +0 -4
- package/lib/packages/components/button/style/index.js +0 -4
- package/lib/packages/components/chart/style/css.js +0 -4
- package/lib/packages/components/chart/style/index.js +0 -4
- package/lib/packages/components/form/style/css.js +0 -4
- package/lib/packages/components/form/style/index.js +0 -4
- package/lib/packages/components/index.js +0 -23
- package/lib/packages/components/input/style/css.js +0 -4
- package/lib/packages/components/input/style/index.js +0 -4
- package/lib/packages/components/layout-page/style/css.js +0 -4
- package/lib/packages/components/layout-page/style/index.js +0 -4
- package/lib/packages/components/layout-page-item/style/css.js +0 -4
- package/lib/packages/components/layout-page-item/style/index.js +0 -4
- package/lib/packages/components/query-condition/style/css.js +0 -4
- package/lib/packages/components/query-condition/style/index.js +0 -4
- package/lib/packages/components/select/style/css.js +0 -4
- package/lib/packages/components/select/style/index.js +0 -4
- package/lib/packages/components/select-table/style/css.js +0 -4
- package/lib/packages/components/select-table/style/index.js +0 -4
- package/lib/packages/components/svgIcon/index.vue.js +0 -9
- package/lib/packages/components/svgIcon/index.vue2.js +0 -95
- package/lib/packages/components/utils/install.js +0 -19
- package/lib/packages/hooks/dateTimeShortCust.js +0 -25
- package/lib/packages/hooks/idleTimeout.js +0 -131
- package/lib/packages/hooks/other.js +0 -178
- package/lib/packages/hooks/sysInfo.js +0 -62
- package/lib/packages/hooks/useInfo.js +0 -64
- package/lib/packages/theme-chalk/assets/logo.png.js +0 -7
- package/lib/packages/theme-chalk/src/button.scss.js +0 -7
- package/lib/packages/theme-chalk/src/chart.scss.js +0 -7
- package/lib/packages/theme-chalk/src/form.scss.js +0 -7
- package/lib/packages/theme-chalk/src/input.scss.js +0 -7
- package/lib/packages/theme-chalk/src/layout-page-item.scss.js +0 -7
- package/lib/packages/theme-chalk/src/layout-page.scss.js +0 -7
- package/lib/packages/theme-chalk/src/query-condition.scss.js +0 -7
- package/lib/packages/theme-chalk/src/select-table.scss.js +0 -7
- package/lib/packages/theme-chalk/src/select.scss.js +0 -7
- package/lib/packages/utils/signalR.js +0 -68
package/index.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! fmdeui-fmui v1.0.
|
|
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,
|
|
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 };
|
package/lib/api/base/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CustomAxiosRequestConfig } from '
|
|
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;
|
package/lib/api/index.d.ts
CHANGED
|
@@ -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";
|