@fmdeui/fmui 1.0.9 → 1.0.11

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 (45) hide show
  1. package/es/components/svgIcon/index.d.ts +7 -26
  2. package/es/hooks/index.d.ts +0 -26
  3. package/es/hooks/other.d.ts +0 -8
  4. package/es/index.d.ts +30 -0
  5. package/es/index.mjs +8 -5
  6. package/es/make-installer.mjs +8 -3
  7. package/es/packages/components/index.mjs +10 -0
  8. package/es/packages/components/svgIcon/index.mjs +17 -0
  9. package/es/packages/components/svgIcon/svgicon.vue.mjs +5 -0
  10. package/es/packages/components/svgIcon/svgicon.vue2.mjs +94 -0
  11. package/es/packages/hooks/index.mjs +0 -5
  12. package/es/packages/hooks/other.mjs +137 -0
  13. package/es/packages/utils/index.mjs +0 -3
  14. package/es/utils/index.d.ts +0 -4
  15. package/index.js +752 -497
  16. package/index.min.js +4 -4
  17. package/index.min.mjs +4 -4
  18. package/index.mjs +732 -499
  19. package/lib/components/svgIcon/index.d.ts +7 -26
  20. package/lib/hooks/index.d.ts +0 -26
  21. package/lib/hooks/other.d.ts +0 -8
  22. package/lib/index.d.ts +30 -0
  23. package/lib/index.js +30 -23
  24. package/lib/make-installer.js +9 -4
  25. package/lib/packages/components/index.js +25 -0
  26. package/lib/packages/components/svgIcon/index.js +38 -0
  27. package/lib/packages/components/svgIcon/svgicon.vue.js +9 -0
  28. package/lib/packages/components/svgIcon/svgicon.vue2.js +98 -0
  29. package/lib/packages/hooks/index.js +1 -4
  30. package/lib/packages/hooks/other.js +149 -0
  31. package/lib/packages/utils/index.js +0 -5
  32. package/lib/utils/index.d.ts +0 -4
  33. package/locale/en.js +1 -1
  34. package/locale/en.min.js +1 -1
  35. package/locale/en.min.mjs +1 -1
  36. package/locale/en.mjs +1 -1
  37. package/locale/zh-cn.js +1 -1
  38. package/locale/zh-cn.min.js +1 -1
  39. package/locale/zh-cn.min.mjs +1 -1
  40. package/locale/zh-cn.mjs +1 -1
  41. package/package.json +1 -1
  42. /package/es/components/svgIcon/{index.vue.d.ts → svgicon.vue.d.ts} +0 -0
  43. /package/{lib → es}/defaults.css +0 -0
  44. /package/lib/components/svgIcon/{index.vue.d.ts → svgicon.vue.d.ts} +0 -0
  45. /package/{es/make-installer.css → lib/version.css} +0 -0
package/index.mjs CHANGED
@@ -1,10 +1,10 @@
1
- /*! fmdeui-fmui v1.0.9 */
1
+ /*! fmdeui-fmui v1.0.11 */
2
2
  import { createPinia, defineStore, storeToRefs } from 'pinia';
3
- import mitt from 'mitt';
4
3
  import CryptoJS from 'crypto-js';
5
4
  import XLSXS from 'xlsx-js-style';
6
5
  import { ElLoading, ElMessage, localeContextKey, dayjs } from 'element-plus';
7
- 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';
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, getCurrentInstance, onBeforeUnmount, vShow, markRaw, resolveDynamicComponent, Fragment, createTextVNode, withModifiers, toHandlers, onUpdated, normalizeStyle } from 'vue';
7
+ import * as svg from '@element-plus/icons-vue';
8
8
  import { CaretTop, ArrowDown, ArrowUp } from '@element-plus/icons-vue';
9
9
  import axios from 'axios';
10
10
  import Cookies from 'js-cookie';
@@ -14,50 +14,14 @@ import VxeUIPluginExportXLSX from '@vxe-ui/plugin-export-xlsx';
14
14
  import VxeUI from 'vxe-pc-ui';
15
15
  import { createI18n, useI18n } from 'vue-i18n';
16
16
  import ExcelJS from 'exceljs';
17
- import { useClipboard, isClient, useResizeObserver } from '@vueuse/core';
18
17
  import { get, merge } from 'lodash-es';
18
+ import { useResizeObserver, isClient, useClipboard } from '@vueuse/core';
19
+ import mitt from 'mitt';
19
20
  import { createRouter, createWebHashHistory } from 'vue-router';
20
21
  import NProgress from 'nprogress';
21
22
 
22
23
  const pinia = createPinia();
23
24
 
24
- const emitter = mitt();
25
-
26
- const cssCdnUrlList = [
27
- // 调整为从本地引入,注释下面的 url
28
- // '//at.alicdn.com/t/c/font_2298093_rnp72ifj3ba.css',
29
- // '//netdna.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css',
30
- ];
31
- const jsCdnUrlList = [];
32
- function setCssCdn() {
33
- if (cssCdnUrlList.length <= 0) return false;
34
- cssCdnUrlList.map((v) => {
35
- let link = document.createElement("link");
36
- link.rel = "stylesheet";
37
- link.href = v;
38
- link.crossOrigin = "anonymous";
39
- document.getElementsByTagName("head")[0].appendChild(link);
40
- });
41
- }
42
- function setJsCdn() {
43
- if (jsCdnUrlList.length <= 0) return false;
44
- jsCdnUrlList.map((v) => {
45
- let link = document.createElement("script");
46
- link.src = v;
47
- document.body.appendChild(link);
48
- });
49
- }
50
- const setIntroduction = {
51
- // 设置css
52
- cssCdn: () => {
53
- setCssCdn();
54
- },
55
- // 设置js
56
- jsCdn: () => {
57
- setJsCdn();
58
- }
59
- };
60
-
61
25
  function judgementSameArr(newArr, oldArr) {
62
26
  const news = removeDuplicate(newArr);
63
27
  const olds = removeDuplicate(oldArr);
@@ -18379,25 +18343,7 @@ const setupVXETable = (app) => {
18379
18343
  app.use(VxeUITable);
18380
18344
  };
18381
18345
 
18382
- const makeInstaller = (components = []) => {
18383
- const install = (app) => {
18384
- components.forEach(
18385
- (component) => {
18386
- if (!app._context.components[component.name]) {
18387
- app.component(component.name, component);
18388
- }
18389
- }
18390
- );
18391
- app.use(pinia);
18392
- directive(app);
18393
- app.use(setupVXETable);
18394
- };
18395
- return {
18396
- install
18397
- };
18398
- };
18399
-
18400
- var _sfc_main$d = /* @__PURE__ */ defineComponent({
18346
+ var _sfc_main$e = /* @__PURE__ */ defineComponent({
18401
18347
  ...{
18402
18348
  name: "FButton"
18403
18349
  },
@@ -18467,7 +18413,32 @@ var _sfc_main$d = /* @__PURE__ */ defineComponent({
18467
18413
  }
18468
18414
  });
18469
18415
 
18470
- const FButton = _sfc_main$d;
18416
+ const FButton = _sfc_main$e;
18417
+
18418
+ const buildTranslator = (locale) => (path, option) => translate(path, option, unref(locale));
18419
+ const translate = (path, option, locale) => get(locale, path, path).replace(
18420
+ /\{(\w+)\}/g,
18421
+ (_, key) => {
18422
+ var _a;
18423
+ return `${(_a = option == null ? void 0 : option[key]) != null ? _a : `{${key}}`}`;
18424
+ }
18425
+ );
18426
+ const buildLocaleContext = (locale) => {
18427
+ const lang = computed(() => unref(locale).name);
18428
+ const localeRef = isRef(locale) ? locale : ref(locale);
18429
+ return {
18430
+ lang,
18431
+ locale: localeRef,
18432
+ t: buildTranslator(locale)
18433
+ };
18434
+ };
18435
+ const useLocale = (localeOverrides) => {
18436
+ const locale = localeOverrides || inject(localeContextKey, ref());
18437
+ return buildLocaleContext(computed(() => {
18438
+ var _a;
18439
+ return ((_a = locale == null ? void 0 : locale.value) == null ? void 0 : _a.plus) ? locale.value : plusZhCn;
18440
+ }));
18441
+ };
18471
18442
 
18472
18443
  const useKeepALiveNames = defineStore("keepALiveNames", {
18473
18444
  state: () => ({
@@ -18546,282 +18517,86 @@ const useTagsViewRoutes = defineStore("tagsViewRoutes", {
18546
18517
  }
18547
18518
  });
18548
18519
 
18549
- const themeStore = useThemeConfig();
18550
- function commonFunction() {
18551
- const { t } = useI18n();
18552
- const { copy, isSupported } = useClipboard();
18553
- const percentFormat = (row, column, cellValue) => {
18554
- return cellValue ? `${cellValue}%` : "-";
18555
- };
18556
- const dateFormatYMD = (row, column, cellValue) => {
18557
- if (!cellValue) return "-";
18558
- return formatDate(new Date(cellValue), "YYYY-mm-dd");
18559
- };
18560
- const dateFormatYMDHMS = (row, column, cellValue) => {
18561
- if (!cellValue) return "-";
18562
- return formatDate(new Date(cellValue), "YYYY-mm-dd HH:MM:SS");
18563
- };
18564
- const dateFormatHMS = (row, column, cellValue) => {
18565
- if (!cellValue) return "-";
18566
- let time = 0;
18567
- if (typeof row === "number") time = row;
18568
- if (typeof cellValue === "number") time = cellValue;
18569
- return formatDate(new Date(time * 1e3), "HH:MM:SS");
18570
- };
18571
- const scaleFormat = (value = "0", scale = 4) => {
18572
- return Number.parseFloat(value).toFixed(scale);
18573
- };
18574
- const scale2Format = (value = "0") => {
18575
- return Number.parseFloat(value).toFixed(2);
18576
- };
18577
- const groupSeparator = (value, minimumFractionDigits = 2) => {
18578
- return value.toLocaleString("en-US", {
18579
- minimumFractionDigits,
18580
- maximumFractionDigits: 2
18520
+ function auth(value) {
18521
+ const stores = useUserInfo();
18522
+ return stores.userInfos.authApiList.some((v) => v === value);
18523
+ }
18524
+ function auths(value) {
18525
+ let flag = false;
18526
+ const stores = useUserInfo();
18527
+ stores.userInfos.authApiList.map((val) => {
18528
+ value.map((v) => {
18529
+ if (val === v) flag = true;
18581
18530
  });
18582
- };
18583
- const copyText = (text) => {
18584
- return new Promise((resolve, reject) => {
18585
- try {
18586
- if (!isSupported.value) {
18587
- console.error("\u6D4F\u89C8\u5668\u4E0D\u652F\u6301\u526A\u8D34\u677F API");
18588
- reject("\u6D4F\u89C8\u5668\u4E0D\u652F\u6301\u526A\u8D34\u677F API");
18589
- } else {
18590
- copy(text);
18591
- ElMessage.success(t("message.layout.copyTextSuccess"));
18592
- resolve(text);
18531
+ });
18532
+ return flag;
18533
+ }
18534
+ function authAll(value) {
18535
+ const stores = useUserInfo();
18536
+ return judgementSameArr(value, stores.userInfos.authApiList);
18537
+ }
18538
+ function hAuth(el, value) {
18539
+ return withDirectives(el, [[resolveDirective("auth"), value]]);
18540
+ }
18541
+ function hAuths(el, value) {
18542
+ return withDirectives(el, [[resolveDirective("auths"), value]]);
18543
+ }
18544
+ function hAuthAll(el, value) {
18545
+ return withDirectives(el, [[resolveDirective("auth-all"), value]]);
18546
+ }
18547
+
18548
+ const vxeSize = useThemeConfig().themeConfig.globalComponentSize == "small" ? "mini" : useThemeConfig().themeConfig.globalComponentSize == "default" ? "small" : "medium";
18549
+ const useVxeTable = (opt, extras) => {
18550
+ const userStore = useUserInfo();
18551
+ const processColumns = (columns) => {
18552
+ columns.forEach((col) => {
18553
+ var _a;
18554
+ if ((_a = col.dictExportConfig) == null ? void 0 : _a.code) {
18555
+ if (!col.exportMethod) {
18556
+ col.exportMethod = ({ row }) => {
18557
+ var _a2, _b;
18558
+ const val = row[col.field];
18559
+ if (val === null || val === void 0 || val === "") return "";
18560
+ if ((_a2 = col.dictExportConfig) == null ? void 0 : _a2.multiple) {
18561
+ const values = String(val).split(",");
18562
+ return values.map((v) => {
18563
+ var _a3;
18564
+ return ((_a3 = userStore.getDictItemByValue(col.dictExportConfig.code, v.trim())) == null ? void 0 : _a3.label) || v;
18565
+ }).join(", ");
18566
+ }
18567
+ return ((_b = userStore.getDictItemByValue(col.dictExportConfig.code, String(val))) == null ? void 0 : _b.label) || val;
18568
+ };
18593
18569
  }
18594
- } catch (e) {
18595
- ElMessage.error(t("message.layout.copyTextError"));
18596
- reject(e);
18570
+ }
18571
+ if (col.children) {
18572
+ processColumns(col.children);
18597
18573
  }
18598
18574
  });
18599
18575
  };
18600
- const removeHtmlSub = (value) => {
18601
- var str = value.replace(/<[^>]+>/g, "");
18602
- if (str.length > 50) return str.substring(0, 50) + "......";
18603
- else return str;
18604
- };
18605
- const removeHtml = (value) => {
18606
- return value.replace(/<[^>]+>/g, "");
18607
- };
18608
- const getEnumDesc = (key, lstEnum) => {
18609
- var _a;
18610
- return (_a = lstEnum.find((x) => x.value == key)) == null ? void 0 : _a.describe;
18611
- };
18612
- const appendQueryParams = (url, params) => {
18613
- if (!params || Object.keys(params).length == 0) return url;
18614
- const queryString = Object.keys(params).map((key) => `${encodeURIComponent(key)}=${encodeURIComponent(params[key])}`).join("&");
18615
- return `${url}${url.includes("?") ? "&" : "?"}${queryString}`;
18616
- };
18617
- const getNameAbbr = (text, callback) => {
18618
- if (!text) return ElMessage.error("\u83B7\u53D6\u7B80\u79F0\u6587\u672C\u4E0D\u80FD\u4E3A\u7A7A");
18619
- try {
18620
- return useBaseApi("sysCommon").post({ text }, "nameAbbr").then((res) => {
18621
- if (callback) callback(res.data.result);
18622
- return res.data.result;
18623
- });
18624
- } catch (e) {
18625
- ElMessage.error("\u83B7\u53D6\u5931\u8D25");
18626
- }
18627
- };
18628
- const handleConditionalClear = (condition, fieldValue, clearValue = void 0) => {
18629
- if (condition) {
18630
- return clearValue;
18631
- }
18632
- return fieldValue;
18633
- };
18634
- const getTimeRangePickerShortcuts = () => {
18635
- return [
18636
- {
18637
- text: "\u8FD1\u4E00\u5468",
18638
- value: () => {
18639
- const now = new Date(themeStore.themeConfig.serverTime);
18640
- const end = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 23, 59, 59, 999);
18641
- const start = new Date(now.getFullYear(), now.getMonth(), now.getDate() - 7);
18642
- return [start, end];
18643
- }
18644
- },
18645
- {
18646
- text: "\u8FD1\u4E00\u6708",
18647
- value: () => {
18648
- const now = new Date(themeStore.themeConfig.serverTime);
18649
- const end = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 23, 59, 59, 999);
18650
- const start = new Date(now.getFullYear(), now.getMonth() - 1, now.getDate());
18651
- return [start, end];
18652
- }
18653
- },
18654
- {
18655
- text: "\u8FD1\u4E09\u6708",
18656
- value: () => {
18657
- const now = new Date(themeStore.themeConfig.serverTime);
18658
- const end = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 23, 59, 59, 999);
18659
- const start = new Date(now.getFullYear(), now.getMonth() - 3, now.getDate());
18660
- return [start, end];
18661
- }
18662
- },
18663
- {
18664
- text: "\u8FD1\u534A\u5E74",
18665
- value: () => {
18666
- const now = new Date(themeStore.themeConfig.serverTime);
18667
- const end = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 23, 59, 59, 999);
18668
- const start = new Date(now.getFullYear(), now.getMonth() - 6, now.getDate());
18669
- return [start, end];
18670
- }
18671
- },
18672
- {
18673
- text: "\u672C\u5E74",
18674
- value: () => {
18675
- const now = new Date(themeStore.themeConfig.serverTime);
18676
- const end = new Date(now.getFullYear(), 11, 31, 23, 59, 59, 999);
18677
- const start = new Date(now.getFullYear(), 0, 1);
18678
- return [start, end];
18679
- }
18680
- },
18681
- {
18682
- text: "\u8FD1\u4E24\u5E74",
18683
- value: () => {
18684
- const now = new Date(themeStore.themeConfig.serverTime);
18685
- const end = new Date(now.getFullYear(), 11, 31, 23, 59, 59, 999);
18686
- const start = new Date(now.getFullYear() - 1, 0, 1);
18687
- return [start, end];
18688
- }
18689
- },
18690
- {
18691
- text: "\u8FD1\u4E09\u5E74",
18692
- value: () => {
18693
- const now = new Date(themeStore.themeConfig.serverTime);
18694
- const end = new Date(now.getFullYear(), 11, 31, 23, 59, 59, 999);
18695
- const start = new Date(now.getFullYear() - 2, 0, 1);
18696
- return [start, end];
18697
- }
18698
- }
18699
- ];
18700
- };
18701
- return {
18702
- percentFormat,
18703
- dateFormatYMD,
18704
- dateFormatYMDHMS,
18705
- dateFormatHMS,
18706
- scaleFormat,
18707
- scale2Format,
18708
- groupSeparator,
18709
- copyText,
18710
- removeHtmlSub,
18711
- removeHtml,
18712
- getEnumDesc,
18713
- appendQueryParams,
18714
- getNameAbbr,
18715
- handleConditionalClear,
18716
- getTimeRangePickerShortcuts
18717
- };
18718
- }
18719
-
18720
- const buildTranslator = (locale) => (path, option) => translate(path, option, unref(locale));
18721
- const translate = (path, option, locale) => get(locale, path, path).replace(
18722
- /\{(\w+)\}/g,
18723
- (_, key) => {
18724
- var _a;
18725
- return `${(_a = option == null ? void 0 : option[key]) != null ? _a : `{${key}}`}`;
18726
- }
18727
- );
18728
- const buildLocaleContext = (locale) => {
18729
- const lang = computed(() => unref(locale).name);
18730
- const localeRef = isRef(locale) ? locale : ref(locale);
18731
- return {
18732
- lang,
18733
- locale: localeRef,
18734
- t: buildTranslator(locale)
18735
- };
18736
- };
18737
- const useLocale = (localeOverrides) => {
18738
- const locale = localeOverrides || inject(localeContextKey, ref());
18739
- return buildLocaleContext(computed(() => {
18740
- var _a;
18741
- return ((_a = locale == null ? void 0 : locale.value) == null ? void 0 : _a.plus) ? locale.value : plusZhCn;
18742
- }));
18743
- };
18744
-
18745
- function auth(value) {
18746
- const stores = useUserInfo();
18747
- return stores.userInfos.authApiList.some((v) => v === value);
18748
- }
18749
- function auths(value) {
18750
- let flag = false;
18751
- const stores = useUserInfo();
18752
- stores.userInfos.authApiList.map((val) => {
18753
- value.map((v) => {
18754
- if (val === v) flag = true;
18755
- });
18756
- });
18757
- return flag;
18758
- }
18759
- function authAll(value) {
18760
- const stores = useUserInfo();
18761
- return judgementSameArr(value, stores.userInfos.authApiList);
18762
- }
18763
- function hAuth(el, value) {
18764
- return withDirectives(el, [[resolveDirective("auth"), value]]);
18765
- }
18766
- function hAuths(el, value) {
18767
- return withDirectives(el, [[resolveDirective("auths"), value]]);
18768
- }
18769
- function hAuthAll(el, value) {
18770
- return withDirectives(el, [[resolveDirective("auth-all"), value]]);
18771
- }
18772
-
18773
- const vxeSize = useThemeConfig().themeConfig.globalComponentSize == "small" ? "mini" : useThemeConfig().themeConfig.globalComponentSize == "default" ? "small" : "medium";
18774
- const useVxeTable = (opt, extras) => {
18775
- const userStore = useUserInfo();
18776
- const processColumns = (columns) => {
18777
- columns.forEach((col) => {
18778
- var _a;
18779
- if ((_a = col.dictExportConfig) == null ? void 0 : _a.code) {
18780
- if (!col.exportMethod) {
18781
- col.exportMethod = ({ row }) => {
18782
- var _a2, _b;
18783
- const val = row[col.field];
18784
- if (val === null || val === void 0 || val === "") return "";
18785
- if ((_a2 = col.dictExportConfig) == null ? void 0 : _a2.multiple) {
18786
- const values = String(val).split(",");
18787
- return values.map((v) => {
18788
- var _a3;
18789
- return ((_a3 = userStore.getDictItemByValue(col.dictExportConfig.code, v.trim())) == null ? void 0 : _a3.label) || v;
18790
- }).join(", ");
18791
- }
18792
- return ((_b = userStore.getDictItemByValue(col.dictExportConfig.code, String(val))) == null ? void 0 : _b.label) || val;
18793
- };
18794
- }
18795
- }
18796
- if (col.children) {
18797
- processColumns(col.children);
18798
- }
18799
- });
18800
- };
18801
- if (opt.columns) {
18802
- processColumns(opt.columns);
18803
- }
18804
- opt.id = opt.id ? opt.id : opt.name;
18805
- const options = reactive({
18806
- stripe: false,
18807
- id: opt.id,
18808
- height: "auto",
18809
- autoResize: true,
18810
- size: vxeSize,
18811
- loading: false,
18812
- align: "center",
18813
- // 自动监听父元素的变化去重新计算表格(对于父元素可能存在动态变化、显示隐藏的容器中、列宽异常等场景中的可能会用到)
18814
- // data: [] as Array<T>,
18815
- columns: opt.columns,
18816
- showFooter: opt.showFooter,
18817
- footerData: opt.footerData,
18818
- footerMethod: opt.footerMethod,
18819
- toolbarConfig: {
18820
- size: vxeSize,
18821
- slots: { buttons: "toolbar_buttons", tools: "toolbar_tools" },
18822
- refresh: true,
18823
- refreshOptions: {
18824
- code: "query"
18576
+ if (opt.columns) {
18577
+ processColumns(opt.columns);
18578
+ }
18579
+ opt.id = opt.id ? opt.id : opt.name;
18580
+ const options = reactive({
18581
+ stripe: false,
18582
+ id: opt.id,
18583
+ height: "auto",
18584
+ autoResize: true,
18585
+ size: vxeSize,
18586
+ loading: false,
18587
+ align: "center",
18588
+ // 自动监听父元素的变化去重新计算表格(对于父元素可能存在动态变化、显示隐藏的容器中、列宽异常等场景中的可能会用到)
18589
+ // data: [] as Array<T>,
18590
+ columns: opt.columns,
18591
+ showFooter: opt.showFooter,
18592
+ footerData: opt.footerData,
18593
+ footerMethod: opt.footerMethod,
18594
+ toolbarConfig: {
18595
+ size: vxeSize,
18596
+ slots: { buttons: "toolbar_buttons", tools: "toolbar_tools" },
18597
+ refresh: true,
18598
+ refreshOptions: {
18599
+ code: "query"
18825
18600
  },
18826
18601
  export: true,
18827
18602
  print: true,
@@ -19045,11 +18820,9 @@ const useDateTimeShortCust = () => {
19045
18820
  ];
19046
18821
  };
19047
18822
 
19048
- const commonFun = commonFunction();
19049
-
19050
- const _hoisted_1$6 = { key: 0 };
18823
+ const _hoisted_1$7 = { key: 0 };
19051
18824
  const _hoisted_2$3 = { key: 0 };
19052
- var _sfc_main$c = /* @__PURE__ */ defineComponent({
18825
+ var _sfc_main$d = /* @__PURE__ */ defineComponent({
19053
18826
  ...{
19054
18827
  name: "FInput"
19055
18828
  },
@@ -19253,7 +19026,7 @@ var _sfc_main$c = /* @__PURE__ */ defineComponent({
19253
19026
  fn: withCtx(() => [
19254
19027
  __props.inputType === "amount" ? (openBlock(), createElementBlock(
19255
19028
  "span",
19256
- _hoisted_1$6,
19029
+ _hoisted_1$7,
19257
19030
  toDisplayString(appendTitleText.value),
19258
19031
  1
19259
19032
  /* TEXT */
@@ -19299,13 +19072,13 @@ var _sfc_main$c = /* @__PURE__ */ defineComponent({
19299
19072
  }
19300
19073
  });
19301
19074
 
19302
- const FInput = _sfc_main$c;
19075
+ const FInput = _sfc_main$d;
19303
19076
 
19304
- const _hoisted_1$5 = {
19077
+ const _hoisted_1$6 = {
19305
19078
  key: 0,
19306
19079
  class: "back_to_top"
19307
19080
  };
19308
- var _sfc_main$b = /* @__PURE__ */ defineComponent({
19081
+ var _sfc_main$c = /* @__PURE__ */ defineComponent({
19309
19082
  ...{
19310
19083
  name: "FLayoutPage"
19311
19084
  },
@@ -19367,7 +19140,7 @@ var _sfc_main$b = /* @__PURE__ */ defineComponent({
19367
19140
  },
19368
19141
  [
19369
19142
  renderSlot(_ctx.$slots, "default"),
19370
- __props.showGoTopButton ? (openBlock(), createElementBlock("div", _hoisted_1$5, [
19143
+ __props.showGoTopButton ? (openBlock(), createElementBlock("div", _hoisted_1$6, [
19371
19144
  isShowGoTopButton.value ? (openBlock(), createElementBlock("div", {
19372
19145
  key: 0,
19373
19146
  onClick: backToTop
@@ -19395,9 +19168,9 @@ var _sfc_main$b = /* @__PURE__ */ defineComponent({
19395
19168
  }
19396
19169
  });
19397
19170
 
19398
- const FLayoutPage = _sfc_main$b;
19171
+ const FLayoutPage = _sfc_main$c;
19399
19172
 
19400
- var _sfc_main$a = /* @__PURE__ */ defineComponent({
19173
+ var _sfc_main$b = /* @__PURE__ */ defineComponent({
19401
19174
  ...{
19402
19175
  name: "FLayoutPageItem"
19403
19176
  },
@@ -19425,43 +19198,186 @@ var _sfc_main$a = /* @__PURE__ */ defineComponent({
19425
19198
  }
19426
19199
  });
19427
19200
 
19428
- const FLayoutPageItem = _sfc_main$a;
19201
+ const FLayoutPageItem = _sfc_main$b;
19429
19202
 
19430
- const _hoisted_1$4 = {
19431
- key: 1,
19432
- class: "f_select__pagination"
19433
- };
19434
- var _sfc_main$9 = /* @__PURE__ */ defineComponent({
19203
+ function debounce(func, delay = 500, immediate, resultCallback) {
19204
+ let timer = null;
19205
+ let isInvoke = false;
19206
+ const _debounce = function(...args) {
19207
+ return new Promise((resolve, reject) => {
19208
+ if (timer) clearTimeout(timer);
19209
+ if (!isInvoke) {
19210
+ try {
19211
+ const result = func.apply(this, args);
19212
+ if (resultCallback) ;
19213
+ resolve(result);
19214
+ } catch (e) {
19215
+ reject(e);
19216
+ }
19217
+ isInvoke = true;
19218
+ } else {
19219
+ timer = setTimeout(() => {
19220
+ try {
19221
+ const result = func.apply(this, args);
19222
+ if (resultCallback) ;
19223
+ resolve(result);
19224
+ } catch (e) {
19225
+ reject(e);
19226
+ }
19227
+ isInvoke = false;
19228
+ timer = null;
19229
+ }, delay);
19230
+ }
19231
+ });
19232
+ };
19233
+ _debounce.cancel = function() {
19234
+ if (timer) clearTimeout(timer);
19235
+ isInvoke = false;
19236
+ timer = null;
19237
+ };
19238
+ return _debounce;
19239
+ }
19240
+ function toLine(name) {
19241
+ return name.replace(/([A-Z])/g, "_$1").toLowerCase();
19242
+ }
19243
+
19244
+ const _hoisted_1$5 = ["id"];
19245
+ var _sfc_main$a = /* @__PURE__ */ defineComponent({
19435
19246
  ...{
19436
- name: "FSelect"
19247
+ name: "FChart"
19437
19248
  },
19438
19249
  __name: "index",
19439
19250
  props: {
19440
- modelValue: { default: void 0 },
19441
- multiple: { type: Boolean, default: false },
19442
- width: {},
19443
- valueCustom: { default: "key" },
19444
- labelCustom: { default: "label" },
19445
- customLabel: { default: "" },
19446
- optionSource: { default: () => [] },
19447
- filterable: { type: Boolean, default: true },
19448
- isShowPagination: { type: Boolean, default: false },
19449
- paginationOption: { default: () => ({
19450
- pageSize: 6,
19451
- currentPage: 1,
19452
- pagerCount: 5,
19453
- total: 0
19454
- }) },
19455
- useVirtual: { type: Boolean, default: false },
19456
- returnObject: { type: Boolean, default: false },
19457
- isCached: { type: Boolean, default: true },
19458
- isRadioEchoLabel: { type: Boolean, default: true },
19459
- radioSelectValLabel: { default: "" },
19460
- selectAllTxt: { default: "" }
19251
+ options: { default: () => ({}) },
19252
+ id: { default: () => Math.random().toString(36).substring(2, 8) },
19253
+ theme: { default: "" },
19254
+ isEmpty: { type: [Boolean, Function], default: false },
19255
+ description: { default: "\u6682\u65E0\u6570\u636E" }
19461
19256
  },
19462
- emits: ["update:modelValue", "change", "input", "select-input"],
19463
- setup(__props, { expose: __expose, emit: __emit }) {
19464
- const { t } = useLocale();
19257
+ setup(__props, { emit: __emit }) {
19258
+ const { proxy } = getCurrentInstance();
19259
+ const props = __props;
19260
+ const echartRef = ref();
19261
+ const chart = ref();
19262
+ const emits = __emit;
19263
+ const events = Object.entries(useAttrs());
19264
+ const renderChart = () => {
19265
+ chart.value = markRaw(proxy.$echarts.init(echartRef.value, props.theme));
19266
+ setOption(props.options);
19267
+ emits("chart", chart.value);
19268
+ events.forEach(([key, value]) => {
19269
+ if (key.startsWith("on") && !key.startsWith("onChart")) {
19270
+ const on = toLine(key).substring(3);
19271
+ chart.value.on(on, (...args) => emits(on, ...args));
19272
+ }
19273
+ });
19274
+ useResizeObserver(echartRef.value, resizeChart);
19275
+ };
19276
+ const resizeChart = debounce(
19277
+ () => {
19278
+ var _a;
19279
+ (_a = chart.value) == null ? void 0 : _a.resize();
19280
+ },
19281
+ 300);
19282
+ const setOption = debounce(
19283
+ async (data) => {
19284
+ if (!chart.value) return;
19285
+ chart.value.setOption(data, true, true);
19286
+ await nextTick();
19287
+ resizeChart();
19288
+ },
19289
+ 300);
19290
+ const formatEmpty = computed(() => {
19291
+ if (typeof props.isEmpty === "function") {
19292
+ return props.isEmpty(props.options);
19293
+ }
19294
+ return props.isEmpty;
19295
+ });
19296
+ watch(
19297
+ () => props.options,
19298
+ async (nw) => {
19299
+ await nextTick();
19300
+ setOption(nw);
19301
+ },
19302
+ { deep: true }
19303
+ );
19304
+ watch(
19305
+ () => props.theme,
19306
+ async () => {
19307
+ chart.value.dispose();
19308
+ renderChart();
19309
+ }
19310
+ );
19311
+ onMounted(() => {
19312
+ renderChart();
19313
+ });
19314
+ onBeforeUnmount(() => {
19315
+ chart.value.dispose();
19316
+ chart.value = null;
19317
+ });
19318
+ return (_ctx, _cache) => {
19319
+ const _component_el_empty = resolveComponent("el-empty");
19320
+ return openBlock(), createElementBlock(
19321
+ "div",
19322
+ mergeProps({ class: "f-chart" }, _ctx.$attrs),
19323
+ [
19324
+ withDirectives(createElementVNode("div", {
19325
+ class: "f-chart-container",
19326
+ id: __props.id,
19327
+ ref_key: "echartRef",
19328
+ ref: echartRef
19329
+ }, null, 8, _hoisted_1$5), [
19330
+ [vShow, !formatEmpty.value]
19331
+ ]),
19332
+ formatEmpty.value ? renderSlot(_ctx.$slots, "empty", { key: 0 }, () => [
19333
+ createVNode(_component_el_empty, mergeProps(_ctx.$attrs, { description: __props.description }), null, 16, ["description"])
19334
+ ]) : createCommentVNode("v-if", true),
19335
+ renderSlot(_ctx.$slots, "default")
19336
+ ],
19337
+ 16
19338
+ /* FULL_PROPS */
19339
+ );
19340
+ };
19341
+ }
19342
+ });
19343
+
19344
+ const FChart = _sfc_main$a;
19345
+
19346
+ const _hoisted_1$4 = {
19347
+ key: 1,
19348
+ class: "f_select__pagination"
19349
+ };
19350
+ var _sfc_main$9 = /* @__PURE__ */ defineComponent({
19351
+ ...{
19352
+ name: "FSelect"
19353
+ },
19354
+ __name: "index",
19355
+ props: {
19356
+ modelValue: { default: void 0 },
19357
+ multiple: { type: Boolean, default: false },
19358
+ width: {},
19359
+ valueCustom: { default: "key" },
19360
+ labelCustom: { default: "label" },
19361
+ customLabel: { default: "" },
19362
+ optionSource: { default: () => [] },
19363
+ filterable: { type: Boolean, default: true },
19364
+ isShowPagination: { type: Boolean, default: false },
19365
+ paginationOption: { default: () => ({
19366
+ pageSize: 6,
19367
+ currentPage: 1,
19368
+ pagerCount: 5,
19369
+ total: 0
19370
+ }) },
19371
+ useVirtual: { type: Boolean, default: false },
19372
+ returnObject: { type: Boolean, default: false },
19373
+ isCached: { type: Boolean, default: true },
19374
+ isRadioEchoLabel: { type: Boolean, default: true },
19375
+ radioSelectValLabel: { default: "" },
19376
+ selectAllTxt: { default: "" }
19377
+ },
19378
+ emits: ["update:modelValue", "change", "input", "select-input"],
19379
+ setup(__props, { expose: __expose, emit: __emit }) {
19380
+ const { t } = useLocale();
19465
19381
  const props = __props;
19466
19382
  const fselectRef = ref();
19467
19383
  const filteredOptionsCount = ref(1);
@@ -22045,148 +21961,129 @@ var _sfc_main$1 = /* @__PURE__ */ defineComponent({
22045
21961
 
22046
21962
  const FForm = _sfc_main$1;
22047
21963
 
22048
- function debounce(func, delay = 500, immediate, resultCallback) {
22049
- let timer = null;
22050
- let isInvoke = false;
22051
- const _debounce = function(...args) {
22052
- return new Promise((resolve, reject) => {
22053
- if (timer) clearTimeout(timer);
22054
- if (!isInvoke) {
22055
- try {
22056
- const result = func.apply(this, args);
22057
- if (resultCallback) ;
22058
- resolve(result);
22059
- } catch (e) {
22060
- reject(e);
22061
- }
22062
- isInvoke = true;
22063
- } else {
22064
- timer = setTimeout(() => {
22065
- try {
22066
- const result = func.apply(this, args);
22067
- if (resultCallback) ;
22068
- resolve(result);
22069
- } catch (e) {
22070
- reject(e);
22071
- }
22072
- isInvoke = false;
22073
- timer = null;
22074
- }, delay);
22075
- }
22076
- });
22077
- };
22078
- _debounce.cancel = function() {
22079
- if (timer) clearTimeout(timer);
22080
- isInvoke = false;
22081
- timer = null;
22082
- };
22083
- return _debounce;
22084
- }
22085
- function toLine(name) {
22086
- return name.replace(/([A-Z])/g, "_$1").toLowerCase();
22087
- }
22088
-
22089
- const _hoisted_1 = ["id"];
21964
+ const _hoisted_1 = ["src"];
22090
21965
  var _sfc_main = /* @__PURE__ */ defineComponent({
22091
21966
  ...{
22092
- name: "FChart"
21967
+ name: "svgIcon"
22093
21968
  },
22094
- __name: "index",
21969
+ __name: "svgicon",
22095
21970
  props: {
22096
- options: { default: () => ({}) },
22097
- id: { default: () => Math.random().toString(36).substring(2, 8) },
22098
- theme: { default: "" },
22099
- isEmpty: { type: [Boolean, Function], default: false },
22100
- description: { default: "\u6682\u65E0\u6570\u636E" }
21971
+ // svg 图标组件名字
21972
+ name: {
21973
+ type: String
21974
+ },
21975
+ // svg 大小
21976
+ size: {
21977
+ type: Number,
21978
+ default: () => 14
21979
+ },
21980
+ // svg 颜色
21981
+ color: {
21982
+ type: String
21983
+ }
22101
21984
  },
22102
- setup(__props, { emit: __emit }) {
22103
- const { proxy } = getCurrentInstance();
21985
+ setup(__props) {
22104
21986
  const props = __props;
22105
- const echartRef = ref();
22106
- const chart = ref();
22107
- const emits = __emit;
22108
- const events = Object.entries(useAttrs());
22109
- const renderChart = () => {
22110
- chart.value = markRaw(proxy.$echarts.init(echartRef.value, props.theme));
22111
- setOption(props.options);
22112
- emits("chart", chart.value);
22113
- events.forEach(([key, value]) => {
22114
- if (key.startsWith("on") && !key.startsWith("onChart")) {
22115
- const on = toLine(key).substring(3);
22116
- chart.value.on(on, (...args) => emits(on, ...args));
22117
- }
22118
- });
22119
- useResizeObserver(echartRef.value, resizeChart);
22120
- };
22121
- const resizeChart = debounce(
22122
- () => {
21987
+ const linesString = ["https", "http", "/src", "/assets", "data:image", window.__env__.VITE_PUBLIC_PATH];
21988
+ const getIconName = computed(() => {
21989
+ return props == null ? void 0 : props.name;
21990
+ });
21991
+ const isShowIconSvg = computed(() => {
21992
+ var _a;
21993
+ return (_a = props == null ? void 0 : props.name) == null ? void 0 : _a.startsWith("ele-");
21994
+ });
21995
+ const isShowIconImg = computed(() => {
21996
+ return linesString.find((str) => {
22123
21997
  var _a;
22124
- (_a = chart.value) == null ? void 0 : _a.resize();
22125
- },
22126
- 300);
22127
- const setOption = debounce(
22128
- async (data) => {
22129
- if (!chart.value) return;
22130
- chart.value.setOption(data, true, true);
22131
- await nextTick();
22132
- resizeChart();
22133
- },
22134
- 300);
22135
- const formatEmpty = computed(() => {
22136
- if (typeof props.isEmpty === "function") {
22137
- return props.isEmpty(props.options);
22138
- }
22139
- return props.isEmpty;
21998
+ return (_a = props.name) == null ? void 0 : _a.startsWith(str);
21999
+ });
22140
22000
  });
22141
- watch(
22142
- () => props.options,
22143
- async (nw) => {
22144
- await nextTick();
22145
- setOption(nw);
22146
- },
22147
- { deep: true }
22148
- );
22149
- watch(
22150
- () => props.theme,
22151
- async () => {
22152
- chart.value.dispose();
22153
- renderChart();
22154
- }
22155
- );
22156
- onMounted(() => {
22157
- renderChart();
22001
+ const setIconSvgStyle = computed(() => {
22002
+ return `font-size: ${props.size}px;color: ${props.color};`;
22158
22003
  });
22159
- onBeforeUnmount(() => {
22160
- chart.value.dispose();
22161
- chart.value = null;
22004
+ const setIconImgOutStyle = computed(() => {
22005
+ return `width: ${props.size}px;height: ${props.size}px;display: inline-block;overflow: hidden;`;
22006
+ });
22007
+ const setIconSvgInsStyle = computed(() => {
22008
+ const filterStyle = [];
22009
+ const compatibles = ["-webkit", "-ms", "-o", "-moz"];
22010
+ compatibles.forEach((j) => filterStyle.push(`${j}-filter: drop-shadow(${props.color} ${props.size}px 0);`));
22011
+ return `width: ${props.size}px;height: ${props.size}px;position: relative;left: -${props.size}px;${filterStyle.join("")}`;
22162
22012
  });
22163
22013
  return (_ctx, _cache) => {
22164
- const _component_el_empty = resolveComponent("el-empty");
22165
- return openBlock(), createElementBlock(
22014
+ return isShowIconSvg.value ? (openBlock(), createElementBlock(
22015
+ "i",
22016
+ {
22017
+ key: 0,
22018
+ class: "el-icon",
22019
+ style: normalizeStyle(setIconSvgStyle.value)
22020
+ },
22021
+ [
22022
+ (openBlock(), createBlock(resolveDynamicComponent(getIconName.value)))
22023
+ ],
22024
+ 4
22025
+ /* STYLE */
22026
+ )) : isShowIconImg.value ? (openBlock(), createElementBlock(
22166
22027
  "div",
22167
- mergeProps({ class: "f-chart" }, _ctx.$attrs),
22028
+ {
22029
+ key: 1,
22030
+ style: normalizeStyle(setIconImgOutStyle.value)
22031
+ },
22168
22032
  [
22169
- withDirectives(createElementVNode("div", {
22170
- class: "f-chart-container",
22171
- id: __props.id,
22172
- ref_key: "echartRef",
22173
- ref: echartRef
22174
- }, null, 8, _hoisted_1), [
22175
- [vShow, !formatEmpty.value]
22176
- ]),
22177
- formatEmpty.value ? renderSlot(_ctx.$slots, "empty", { key: 0 }, () => [
22178
- createVNode(_component_el_empty, mergeProps(_ctx.$attrs, { description: __props.description }), null, 16, ["description"])
22179
- ]) : createCommentVNode("v-if", true),
22180
- renderSlot(_ctx.$slots, "default")
22033
+ createElementVNode("img", {
22034
+ src: getIconName.value,
22035
+ style: normalizeStyle(setIconSvgInsStyle.value)
22036
+ }, null, 12, _hoisted_1)
22181
22037
  ],
22182
- 16
22183
- /* FULL_PROPS */
22184
- );
22038
+ 4
22039
+ /* STYLE */
22040
+ )) : (openBlock(), createElementBlock(
22041
+ "i",
22042
+ {
22043
+ key: 2,
22044
+ class: normalizeClass(getIconName.value),
22045
+ style: normalizeStyle(setIconSvgStyle.value)
22046
+ },
22047
+ null,
22048
+ 6
22049
+ /* CLASS, STYLE */
22050
+ ));
22185
22051
  };
22186
22052
  }
22187
22053
  });
22188
22054
 
22189
- const FChart = _sfc_main;
22055
+ function elSvg(app) {
22056
+ const icons = svg;
22057
+ for (const i in icons) {
22058
+ if (!app._context.components[`ele-${icons[i].name}`]) {
22059
+ app.component(`ele-${icons[i].name}`, icons[i]);
22060
+ }
22061
+ }
22062
+ if (!app._context.components[`SvgIcon`]) {
22063
+ app.component("SvgIcon", _sfc_main);
22064
+ }
22065
+ }
22066
+
22067
+ const makeInstaller = (components = []) => {
22068
+ const install = (app) => {
22069
+ components.forEach(
22070
+ (component) => {
22071
+ if (!app._context.components[component.name]) {
22072
+ app.component(component.name, component);
22073
+ }
22074
+ }
22075
+ );
22076
+ if (app) {
22077
+ app.use(pinia);
22078
+ elSvg(app);
22079
+ directive(app);
22080
+ app.use(setupVXETable);
22081
+ }
22082
+ };
22083
+ return {
22084
+ install
22085
+ };
22086
+ };
22190
22087
 
22191
22088
  const plugins = [
22192
22089
  FButton,
@@ -22202,6 +22099,214 @@ const plugins = [
22202
22099
 
22203
22100
  var installer = makeInstaller([...plugins]);
22204
22101
 
22102
+ const cssCdnUrlList = [
22103
+ // 调整为从本地引入,注释下面的 url
22104
+ // '//at.alicdn.com/t/c/font_2298093_rnp72ifj3ba.css',
22105
+ // '//netdna.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css',
22106
+ ];
22107
+ const jsCdnUrlList = [];
22108
+ function setCssCdn() {
22109
+ if (cssCdnUrlList.length <= 0) return false;
22110
+ cssCdnUrlList.map((v) => {
22111
+ let link = document.createElement("link");
22112
+ link.rel = "stylesheet";
22113
+ link.href = v;
22114
+ link.crossOrigin = "anonymous";
22115
+ document.getElementsByTagName("head")[0].appendChild(link);
22116
+ });
22117
+ }
22118
+ function setJsCdn() {
22119
+ if (jsCdnUrlList.length <= 0) return false;
22120
+ jsCdnUrlList.map((v) => {
22121
+ let link = document.createElement("script");
22122
+ link.src = v;
22123
+ document.body.appendChild(link);
22124
+ });
22125
+ }
22126
+ const setIntroduction = {
22127
+ // 设置css
22128
+ cssCdn: () => {
22129
+ setCssCdn();
22130
+ },
22131
+ // 设置js
22132
+ jsCdn: () => {
22133
+ setJsCdn();
22134
+ }
22135
+ };
22136
+
22137
+ const emitter = mitt();
22138
+
22139
+ const themeStore = useThemeConfig();
22140
+ function commonFunction() {
22141
+ const { t } = useI18n();
22142
+ const { copy, isSupported } = useClipboard();
22143
+ const percentFormat = (row, column, cellValue) => {
22144
+ return cellValue ? `${cellValue}%` : "-";
22145
+ };
22146
+ const dateFormatYMD = (row, column, cellValue) => {
22147
+ if (!cellValue) return "-";
22148
+ return formatDate(new Date(cellValue), "YYYY-mm-dd");
22149
+ };
22150
+ const dateFormatYMDHMS = (row, column, cellValue) => {
22151
+ if (!cellValue) return "-";
22152
+ return formatDate(new Date(cellValue), "YYYY-mm-dd HH:MM:SS");
22153
+ };
22154
+ const dateFormatHMS = (row, column, cellValue) => {
22155
+ if (!cellValue) return "-";
22156
+ let time = 0;
22157
+ if (typeof row === "number") time = row;
22158
+ if (typeof cellValue === "number") time = cellValue;
22159
+ return formatDate(new Date(time * 1e3), "HH:MM:SS");
22160
+ };
22161
+ const scaleFormat = (value = "0", scale = 4) => {
22162
+ return Number.parseFloat(value).toFixed(scale);
22163
+ };
22164
+ const scale2Format = (value = "0") => {
22165
+ return Number.parseFloat(value).toFixed(2);
22166
+ };
22167
+ const groupSeparator = (value, minimumFractionDigits = 2) => {
22168
+ return value.toLocaleString("en-US", {
22169
+ minimumFractionDigits,
22170
+ maximumFractionDigits: 2
22171
+ });
22172
+ };
22173
+ const copyText = (text) => {
22174
+ return new Promise((resolve, reject) => {
22175
+ try {
22176
+ if (!isSupported.value) {
22177
+ console.error("\u6D4F\u89C8\u5668\u4E0D\u652F\u6301\u526A\u8D34\u677F API");
22178
+ reject("\u6D4F\u89C8\u5668\u4E0D\u652F\u6301\u526A\u8D34\u677F API");
22179
+ } else {
22180
+ copy(text);
22181
+ ElMessage.success(t("message.layout.copyTextSuccess"));
22182
+ resolve(text);
22183
+ }
22184
+ } catch (e) {
22185
+ ElMessage.error(t("message.layout.copyTextError"));
22186
+ reject(e);
22187
+ }
22188
+ });
22189
+ };
22190
+ const removeHtmlSub = (value) => {
22191
+ var str = value.replace(/<[^>]+>/g, "");
22192
+ if (str.length > 50) return str.substring(0, 50) + "......";
22193
+ else return str;
22194
+ };
22195
+ const removeHtml = (value) => {
22196
+ return value.replace(/<[^>]+>/g, "");
22197
+ };
22198
+ const getEnumDesc = (key, lstEnum) => {
22199
+ var _a;
22200
+ return (_a = lstEnum.find((x) => x.value == key)) == null ? void 0 : _a.describe;
22201
+ };
22202
+ const appendQueryParams = (url, params) => {
22203
+ if (!params || Object.keys(params).length == 0) return url;
22204
+ const queryString = Object.keys(params).map((key) => `${encodeURIComponent(key)}=${encodeURIComponent(params[key])}`).join("&");
22205
+ return `${url}${url.includes("?") ? "&" : "?"}${queryString}`;
22206
+ };
22207
+ const getNameAbbr = (text, callback) => {
22208
+ if (!text) return ElMessage.error("\u83B7\u53D6\u7B80\u79F0\u6587\u672C\u4E0D\u80FD\u4E3A\u7A7A");
22209
+ try {
22210
+ return useBaseApi("sysCommon").post({ text }, "nameAbbr").then((res) => {
22211
+ if (callback) callback(res.data.result);
22212
+ return res.data.result;
22213
+ });
22214
+ } catch (e) {
22215
+ ElMessage.error("\u83B7\u53D6\u5931\u8D25");
22216
+ }
22217
+ };
22218
+ const handleConditionalClear = (condition, fieldValue, clearValue = void 0) => {
22219
+ if (condition) {
22220
+ return clearValue;
22221
+ }
22222
+ return fieldValue;
22223
+ };
22224
+ const getTimeRangePickerShortcuts = () => {
22225
+ return [
22226
+ {
22227
+ text: "\u8FD1\u4E00\u5468",
22228
+ value: () => {
22229
+ const now = new Date(themeStore.themeConfig.serverTime);
22230
+ const end = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 23, 59, 59, 999);
22231
+ const start = new Date(now.getFullYear(), now.getMonth(), now.getDate() - 7);
22232
+ return [start, end];
22233
+ }
22234
+ },
22235
+ {
22236
+ text: "\u8FD1\u4E00\u6708",
22237
+ value: () => {
22238
+ const now = new Date(themeStore.themeConfig.serverTime);
22239
+ const end = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 23, 59, 59, 999);
22240
+ const start = new Date(now.getFullYear(), now.getMonth() - 1, now.getDate());
22241
+ return [start, end];
22242
+ }
22243
+ },
22244
+ {
22245
+ text: "\u8FD1\u4E09\u6708",
22246
+ value: () => {
22247
+ const now = new Date(themeStore.themeConfig.serverTime);
22248
+ const end = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 23, 59, 59, 999);
22249
+ const start = new Date(now.getFullYear(), now.getMonth() - 3, now.getDate());
22250
+ return [start, end];
22251
+ }
22252
+ },
22253
+ {
22254
+ text: "\u8FD1\u534A\u5E74",
22255
+ value: () => {
22256
+ const now = new Date(themeStore.themeConfig.serverTime);
22257
+ const end = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 23, 59, 59, 999);
22258
+ const start = new Date(now.getFullYear(), now.getMonth() - 6, now.getDate());
22259
+ return [start, end];
22260
+ }
22261
+ },
22262
+ {
22263
+ text: "\u672C\u5E74",
22264
+ value: () => {
22265
+ const now = new Date(themeStore.themeConfig.serverTime);
22266
+ const end = new Date(now.getFullYear(), 11, 31, 23, 59, 59, 999);
22267
+ const start = new Date(now.getFullYear(), 0, 1);
22268
+ return [start, end];
22269
+ }
22270
+ },
22271
+ {
22272
+ text: "\u8FD1\u4E24\u5E74",
22273
+ value: () => {
22274
+ const now = new Date(themeStore.themeConfig.serverTime);
22275
+ const end = new Date(now.getFullYear(), 11, 31, 23, 59, 59, 999);
22276
+ const start = new Date(now.getFullYear() - 1, 0, 1);
22277
+ return [start, end];
22278
+ }
22279
+ },
22280
+ {
22281
+ text: "\u8FD1\u4E09\u5E74",
22282
+ value: () => {
22283
+ const now = new Date(themeStore.themeConfig.serverTime);
22284
+ const end = new Date(now.getFullYear(), 11, 31, 23, 59, 59, 999);
22285
+ const start = new Date(now.getFullYear() - 2, 0, 1);
22286
+ return [start, end];
22287
+ }
22288
+ }
22289
+ ];
22290
+ };
22291
+ return {
22292
+ percentFormat,
22293
+ dateFormatYMD,
22294
+ dateFormatYMDHMS,
22295
+ dateFormatHMS,
22296
+ scaleFormat,
22297
+ scale2Format,
22298
+ groupSeparator,
22299
+ copyText,
22300
+ removeHtmlSub,
22301
+ removeHtml,
22302
+ getEnumDesc,
22303
+ appendQueryParams,
22304
+ getNameAbbr,
22305
+ handleConditionalClear,
22306
+ getTimeRangePickerShortcuts
22307
+ };
22308
+ }
22309
+
22205
22310
  let pathPrefix = "/@";
22206
22311
  function setPathPrefix(prefix) {
22207
22312
  pathPrefix = prefix;
@@ -22578,8 +22683,136 @@ function initRouter() {
22578
22683
  return router;
22579
22684
  }
22580
22685
 
22686
+ function useTitle() {
22687
+ const stores = useThemeConfig(pinia);
22688
+ const { themeConfig } = storeToRefs(stores);
22689
+ nextTick(() => {
22690
+ let webTitle = "";
22691
+ let globalTitle = themeConfig.value.globalTitle;
22692
+ const { path, meta } = router.currentRoute.value;
22693
+ if (path === "/login") {
22694
+ webTitle = meta.title;
22695
+ } else {
22696
+ webTitle = setTagsViewNameI18n(router.currentRoute.value);
22697
+ }
22698
+ document.title = `${webTitle} - ${globalTitle}` || globalTitle;
22699
+ });
22700
+ }
22701
+ function setTagsViewNameI18n(item) {
22702
+ let tagsViewName = "";
22703
+ const { query, params, meta } = item;
22704
+ const pattern = /^\{("(zh-CN|en|zh-TW)":"[^,]+",?){1,3}}$/;
22705
+ if ((query == null ? void 0 : query.tagsViewName) || (params == null ? void 0 : params.tagsViewName)) {
22706
+ if (pattern.test(query == null ? void 0 : query.tagsViewName) || pattern.test(params == null ? void 0 : params.tagsViewName)) {
22707
+ const urlTagsParams = (query == null ? void 0 : query.tagsViewName) && JSON.parse(query == null ? void 0 : query.tagsViewName) || (params == null ? void 0 : params.tagsViewName) && JSON.parse(params == null ? void 0 : params.tagsViewName);
22708
+ tagsViewName = urlTagsParams[i18n.global.locale.value];
22709
+ } else {
22710
+ tagsViewName = (query == null ? void 0 : query.tagsViewName) || (params == null ? void 0 : params.tagsViewName);
22711
+ }
22712
+ } else {
22713
+ tagsViewName = i18n.global.t(`message.menu.${meta.title}`);
22714
+ }
22715
+ return tagsViewName;
22716
+ }
22717
+ const lazyImg = (el, arr) => {
22718
+ const io = new IntersectionObserver((res) => {
22719
+ res.forEach((v) => {
22720
+ if (v.isIntersecting) {
22721
+ const { img, key } = v.target.dataset;
22722
+ v.target.src = img;
22723
+ v.target.onload = () => {
22724
+ io.unobserve(v.target);
22725
+ arr[key]["loading"] = false;
22726
+ };
22727
+ }
22728
+ });
22729
+ });
22730
+ nextTick(() => {
22731
+ document.querySelectorAll(el).forEach((img) => io.observe(img));
22732
+ });
22733
+ };
22734
+ const globalComponentSize = () => {
22735
+ const stores = useThemeConfig(pinia);
22736
+ const { themeConfig } = storeToRefs(stores);
22737
+ return themeConfig.value.globalComponentSize;
22738
+ };
22739
+ function deepClone(obj) {
22740
+ let newObj;
22741
+ try {
22742
+ newObj = obj.push ? [] : {};
22743
+ } catch (error) {
22744
+ newObj = {};
22745
+ }
22746
+ for (let attr in obj) {
22747
+ if (obj[attr] && typeof obj[attr] === "object") {
22748
+ newObj[attr] = deepClone(obj[attr]);
22749
+ } else {
22750
+ newObj[attr] = obj[attr];
22751
+ }
22752
+ }
22753
+ return newObj;
22754
+ }
22755
+ function isMobile() {
22756
+ if (navigator.userAgent.match(/('phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone')/i)) {
22757
+ return true;
22758
+ } else {
22759
+ return false;
22760
+ }
22761
+ }
22762
+ function handleEmpty(list) {
22763
+ const arr = [];
22764
+ for (const i in list) {
22765
+ const d = [];
22766
+ for (const j in list[i]) {
22767
+ d.push(list[i][j]);
22768
+ }
22769
+ const leng = d.filter((item) => item === "").length;
22770
+ if (leng !== d.length) {
22771
+ arr.push(list[i]);
22772
+ }
22773
+ }
22774
+ return arr;
22775
+ }
22776
+ function handleOpenLink(val) {
22777
+ var _a, _b, _c;
22778
+ const { origin, pathname } = window.location;
22779
+ router.push(val.path);
22780
+ if (verifyUrl((_a = val.meta) == null ? void 0 : _a.isLink)) window.open((_b = val.meta) == null ? void 0 : _b.isLink);
22781
+ else window.open(`${origin}${pathname}#${(_c = val.meta) == null ? void 0 : _c.isLink}`);
22782
+ }
22783
+ const other = {
22784
+ // elSvg: (app: App) => {
22785
+ // elSvg(app);
22786
+ // },
22787
+ useTitle: () => {
22788
+ useTitle();
22789
+ },
22790
+ setTagsViewNameI18n(route) {
22791
+ return setTagsViewNameI18n(route);
22792
+ },
22793
+ lazyImg: (el, arr) => {
22794
+ lazyImg(el, arr);
22795
+ },
22796
+ globalComponentSize: () => {
22797
+ return globalComponentSize();
22798
+ },
22799
+ deepClone: (obj) => {
22800
+ return deepClone(obj);
22801
+ },
22802
+ isMobile: () => {
22803
+ return isMobile();
22804
+ },
22805
+ handleEmpty: (list) => {
22806
+ return handleEmpty(list);
22807
+ },
22808
+ handleOpenLink: (val) => {
22809
+ handleOpenLink(val);
22810
+ }
22811
+ };
22812
+
22581
22813
  const version = "1.0.0";
22582
22814
 
22815
+ const commonFun = commonFunction();
22583
22816
  const install = installer.install;
22584
22817
 
22585
- export { AccountTypeEnum, HttpMethodEnum, JobCreateTypeEnum, Local, NextLoading, Session, StringToObj, accessTokenKey, auth, authAll, auths, axiosInstance, base64ToFile, blobToFile, buildLocaleContext, buildTranslator, cancelAllRequest, cancelRequest, clearAccessTokens, clearTokens, clone, commonFun, commonFunction, 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, hasPrivilege, hasRoleCode, i18n, initBackEndControlRoutes, initFrontEndControlRoutes, initRouter, install, isAdmin, isMember, isNormalUser, isObjectValueEqual, isSupperAdmin, isTenantAdmin, iso_3166_1_CountryList, judgementIdCard, judgementSameArr, languageList, loadSysInfo, mergMessage, emitter as mittBus, openWindow, orgId, orgName, posId, posName, reLoadLoginAccessToken, refreshAccessTokenKey, removeDuplicate, request2, roles, saulVModel, service, setDynamicViewsModules, setIntroduction, setPathPrefix, setupI18n, signatureByKSort, sleep, tansParams, tenantId, translate, updateFavicon, urlToBase64, useApi, useBaseApi, useChangeColor, useDateTimeShortCust, useFormRulePresets, useKeepALiveNames, useLocale, useRequestOldRoutes, useRoutesList, useSysApi, useTagsViewRoutes, useThemeConfig, useUserInfo, useVxeTable, userAccount, userEmail, userFriendName, userId, userName, userPhone, 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 };
22818
+ export { AccountTypeEnum, HttpMethodEnum, JobCreateTypeEnum, Local, NextLoading, Session, StringToObj, watermark as Watermark, accessTokenKey, auth, authAll, auths, axiosInstance, base64ToFile, blobToFile, buildLocaleContext, buildTranslator, cancelAllRequest, cancelRequest, clearAccessTokens, clearTokens, clone, commonFun, commonFunction, 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, hasPrivilege, hasRoleCode, i18n, initBackEndControlRoutes, initFrontEndControlRoutes, initRouter, install, isAdmin, isMember, isNormalUser, isObjectValueEqual, isSupperAdmin, isTenantAdmin, iso_3166_1_CountryList, judgementIdCard, judgementSameArr, languageList, loadSysInfo, mergMessage, emitter as mittBus, openWindow, orgId, orgName, other, posId, posName, reLoadLoginAccessToken, refreshAccessTokenKey, removeDuplicate, request2, roles, saulVModel, service, setCssCdn, setDynamicViewsModules, setIntroduction, setJsCdn, setPathPrefix, setupI18n, signatureByKSort, sleep, tansParams, tenantId, translate, updateFavicon, urlToBase64, useApi, useBaseApi, useChangeColor, useDateTimeShortCust, useFormRulePresets, useKeepALiveNames, useLocale, useRequestOldRoutes, useRoutesList, useSysApi, useTagsViewRoutes, useThemeConfig, useUserInfo, useVxeTable, userAccount, userEmail, userFriendName, userId, userName, userPhone, 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 };