@fmdeui/fmui 1.0.5 → 1.0.7

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 (97) hide show
  1. package/es/components/chart/index.d.ts +1 -1
  2. package/es/components/chart/src/index.vue.d.ts +1 -1
  3. package/es/components/index.d.ts +1 -0
  4. package/es/components/svgIcon/index.d.ts +26 -0
  5. package/es/components/svgIcon/index.vue.d.ts +27 -0
  6. package/es/hooks/index.d.ts +3 -0
  7. package/es/index.mjs +3 -0
  8. package/es/packages/hooks/dateTimeShortCust.mjs +23 -0
  9. package/es/packages/hooks/idleTimeout.mjs +127 -0
  10. package/es/packages/hooks/index.mjs +3 -0
  11. package/es/packages/hooks/sysInfo.mjs +59 -0
  12. package/es/packages/hooks/useInfo.mjs +44 -0
  13. package/es/packages/theme-chalk/assets/logo.png.mjs +3 -0
  14. package/es/packages/utils/signalR.mjs +47 -0
  15. package/es/utils/arrayOperation.d.ts +23 -0
  16. package/es/utils/auto-update.d.ts +11 -0
  17. package/es/utils/base64Conver.d.ts +30 -0
  18. package/es/utils/data-signature.d.ts +17 -0
  19. package/es/utils/download.d.ts +46 -0
  20. package/es/utils/exportExcel.d.ts +12 -0
  21. package/es/utils/flowLoading.d.ts +19 -0
  22. package/es/utils/fontts/font-awesome.d.ts +1 -0
  23. package/es/utils/fontts/font_2298093_rnp72ifj3ba.d.ts +1 -0
  24. package/es/utils/formRule.d.ts +36 -0
  25. package/es/utils/formValidate.d.ts +21 -0
  26. package/es/utils/formatTime.d.ts +37 -0
  27. package/es/utils/getStyleSheets.d.ts +12 -0
  28. package/es/utils/gpsConvertor.d.ts +30 -0
  29. package/es/utils/index.d.ts +23 -0
  30. package/es/utils/json-utils.d.ts +6 -0
  31. package/es/utils/loading.d.ts +4 -0
  32. package/es/utils/md5Signature.d.ts +1 -0
  33. package/es/utils/mitt.d.ts +4 -0
  34. package/es/utils/request.d.ts +53 -0
  35. package/es/utils/saulVModel.d.ts +4 -0
  36. package/es/utils/setIconfont.d.ts +12 -0
  37. package/es/utils/signalR.d.ts +3 -0
  38. package/es/utils/storage.d.ts +27 -0
  39. package/es/utils/theme.d.ts +13 -0
  40. package/es/utils/toolsValidate.d.ts +148 -0
  41. package/es/utils/watermark.d.ts +10 -0
  42. package/index.js +144 -1
  43. package/index.min.js +4 -4
  44. package/index.min.mjs +4 -4
  45. package/index.mjs +123 -2
  46. package/lib/components/chart/index.d.ts +1 -1
  47. package/lib/components/chart/src/index.vue.d.ts +1 -1
  48. package/lib/components/index.d.ts +1 -0
  49. package/lib/components/svgIcon/index.d.ts +26 -0
  50. package/lib/components/svgIcon/index.vue.d.ts +27 -0
  51. package/lib/hooks/index.d.ts +3 -0
  52. package/lib/index.js +25 -0
  53. package/lib/packages/hooks/dateTimeShortCust.js +25 -0
  54. package/lib/packages/hooks/idleTimeout.js +131 -0
  55. package/lib/packages/hooks/index.js +25 -0
  56. package/lib/packages/hooks/sysInfo.js +62 -0
  57. package/lib/packages/hooks/useInfo.js +64 -0
  58. package/lib/packages/theme-chalk/assets/logo.png.js +7 -0
  59. package/lib/packages/utils/signalR.js +68 -0
  60. package/lib/utils/arrayOperation.d.ts +23 -0
  61. package/lib/utils/auto-update.d.ts +11 -0
  62. package/lib/utils/base64Conver.d.ts +30 -0
  63. package/lib/utils/data-signature.d.ts +17 -0
  64. package/lib/utils/download.d.ts +46 -0
  65. package/lib/utils/exportExcel.d.ts +12 -0
  66. package/lib/utils/flowLoading.d.ts +19 -0
  67. package/lib/utils/fontts/font-awesome.d.ts +1 -0
  68. package/lib/utils/fontts/font_2298093_rnp72ifj3ba.d.ts +1 -0
  69. package/lib/utils/formRule.d.ts +36 -0
  70. package/lib/utils/formValidate.d.ts +21 -0
  71. package/lib/utils/formatTime.d.ts +37 -0
  72. package/lib/utils/getStyleSheets.d.ts +12 -0
  73. package/lib/utils/gpsConvertor.d.ts +30 -0
  74. package/lib/utils/index.d.ts +23 -0
  75. package/lib/utils/json-utils.d.ts +6 -0
  76. package/lib/utils/loading.d.ts +4 -0
  77. package/lib/utils/md5Signature.d.ts +1 -0
  78. package/lib/utils/mitt.d.ts +4 -0
  79. package/lib/utils/request.d.ts +53 -0
  80. package/lib/utils/saulVModel.d.ts +4 -0
  81. package/lib/utils/setIconfont.d.ts +12 -0
  82. package/lib/utils/signalR.d.ts +3 -0
  83. package/lib/utils/storage.d.ts +27 -0
  84. package/lib/utils/theme.d.ts +13 -0
  85. package/lib/utils/toolsValidate.d.ts +148 -0
  86. package/lib/utils/watermark.d.ts +10 -0
  87. package/{es/index.css → lib/version.css} +2 -2
  88. package/locale/en.js +1 -1
  89. package/locale/en.min.js +1 -1
  90. package/locale/en.min.mjs +1 -1
  91. package/locale/en.mjs +1 -1
  92. package/locale/zh-cn.js +1 -1
  93. package/locale/zh-cn.min.js +1 -1
  94. package/locale/zh-cn.min.mjs +1 -1
  95. package/locale/zh-cn.mjs +1 -1
  96. package/package.json +1 -1
  97. /package/{lib/component.css → es/make-installer.css} +0 -0
@@ -9,8 +9,8 @@ export declare const FChart: {
9
9
  id: string;
10
10
  options: Record<string, any>;
11
11
  theme: string;
12
- isEmpty: boolean | ((options: Record<string, any>) => boolean);
13
12
  description: string;
13
+ isEmpty: boolean | ((options: Record<string, any>) => boolean);
14
14
  }, {}, string, {}, GlobalComponents, GlobalDirectives, string, ComponentProvideOptions> & VNodeProps & AllowedComponentProps & ComponentCustomProps & (new () => {
15
15
  $slots: {
16
16
  empty?(_: {}): any;
@@ -16,8 +16,8 @@ declare const __VLS_component: DefineComponent<FChartProps, {}, {}, {}, {}, Comp
16
16
  id: string;
17
17
  options: Record<string, any>;
18
18
  theme: string;
19
- isEmpty: boolean | ((options: Record<string, any>) => boolean);
20
19
  description: string;
20
+ isEmpty: boolean | ((options: Record<string, any>) => boolean);
21
21
  }, {}, {}, {}, string, ComponentProvideOptions, false, {
22
22
  echartRef: HTMLDivElement;
23
23
  }, HTMLDivElement>;
@@ -7,3 +7,4 @@ export * from './select';
7
7
  export * from './select-table';
8
8
  export * from './query-condition';
9
9
  export * from './form';
10
+ export * from './svgIcon';
@@ -0,0 +1,26 @@
1
+ import { DefineComponent, ExtractPropTypes, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
2
+ export declare const FSvgIcon: DefineComponent<ExtractPropTypes<{
3
+ name: {
4
+ type: StringConstructor;
5
+ };
6
+ size: {
7
+ type: NumberConstructor;
8
+ default: () => number;
9
+ };
10
+ color: {
11
+ type: StringConstructor;
12
+ };
13
+ }>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly< ExtractPropTypes<{
14
+ name: {
15
+ type: StringConstructor;
16
+ };
17
+ size: {
18
+ type: NumberConstructor;
19
+ default: () => number;
20
+ };
21
+ color: {
22
+ type: StringConstructor;
23
+ };
24
+ }>> & Readonly<{}>, {
25
+ size: number;
26
+ }, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
@@ -0,0 +1,27 @@
1
+ import { DefineComponent, ExtractPropTypes, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
2
+ declare const _default: DefineComponent<ExtractPropTypes<{
3
+ name: {
4
+ type: StringConstructor;
5
+ };
6
+ size: {
7
+ type: NumberConstructor;
8
+ default: () => number;
9
+ };
10
+ color: {
11
+ type: StringConstructor;
12
+ };
13
+ }>, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly< ExtractPropTypes<{
14
+ name: {
15
+ type: StringConstructor;
16
+ };
17
+ size: {
18
+ type: NumberConstructor;
19
+ default: () => number;
20
+ };
21
+ color: {
22
+ type: StringConstructor;
23
+ };
24
+ }>> & Readonly<{}>, {
25
+ size: number;
26
+ }, {}, {}, {}, string, ComponentProvideOptions, true, {}, any>;
27
+ export default _default;
@@ -1,3 +1,6 @@
1
1
  export * from './useLocale';
2
2
  export * from './authFunction';
3
3
  export * from './useVxeTableOptionsHook';
4
+ export * from './sysInfo';
5
+ export * from './useInfo';
6
+ export * from './dateTimeShortCust';
package/es/index.mjs CHANGED
@@ -23,14 +23,17 @@ export { feature, useSysApi } from './packages/api/sys/index.mjs';
23
23
  export { flowLoading } from './packages/utils/flowLoading.mjs';
24
24
  export { formatAxis, formatDate, formatPast, getWeek } from './packages/utils/formatTime.mjs';
25
25
  export { gcj02ToBd09, wgs84ToBd09, wgs84ToGcj02 } from './packages/utils/gpsConvertor.mjs';
26
+ export { hasPrivilege, hasRoleCode, isAdmin, isMember, isNormalUser, isSupperAdmin, isTenantAdmin, orgId, orgName, posId, posName, roles, tenantId, userAccount, userEmail, userFriendName, userId, userName, userPhone } from './packages/hooks/useInfo.mjs';
26
27
  export { initBackEndControlRoutes, setDynamicViewsModules } from './packages/router/backEnd.mjs';
27
28
  export { initFrontEndControlRoutes } from './packages/router/frontEnd.mjs';
28
29
  export { judgementIdCard, verifiyNumberInteger, verifyAccount, verifyAndSpace, verifyCarNum, verifyCnAndSpace, verifyEmail, verifyEnAndSpace, verifyFullName, verifyIPAddress, verifyIdCard, verifyNumberCnUppercase, verifyNumberComma, verifyNumberIntegerAndFloat, verifyNumberPercentage, verifyNumberPercentageFloat, verifyPassword, verifyPasswordPowerful, verifyPasswordStrength, verifyPhone, verifyPostalCode, verifyTelPhone, verifyTextColor, verifyUrl } from './packages/utils/toolsValidate.mjs';
30
+ export { loadSysInfo, updateFavicon } from './packages/hooks/sysInfo.mjs';
29
31
  export { saulVModel } from './packages/utils/saulVModel.mjs';
30
32
  export { setCssCdn, setJsCdn } from './packages/utils/setIconfont.mjs';
31
33
  export { signatureByKSort } from './packages/utils/data-signature.mjs';
32
34
  export { useApi, useBaseApi } from './packages/api/base/index.mjs';
33
35
  export { useChangeColor } from './packages/utils/theme.mjs';
36
+ export { useDateTimeShortCust } from './packages/hooks/dateTimeShortCust.mjs';
34
37
  export { useFormRulePresets } from './packages/utils/formRule.mjs';
35
38
  export { useKeepALiveNames } from './packages/stores/keepAliveNames.mjs';
36
39
  export { useRequestOldRoutes } from './packages/stores/requestOldRoutes.mjs';
@@ -0,0 +1,23 @@
1
+ const useDateTimeShortCust = () => {
2
+ return [
3
+ { text: "\u4ECA\u5929", value: /* @__PURE__ */ new Date() },
4
+ {
5
+ text: "\u6628\u5929",
6
+ value: () => {
7
+ const date = /* @__PURE__ */ new Date();
8
+ date.setTime(date.getTime() - 3600 * 1e3 * 24);
9
+ return date;
10
+ }
11
+ },
12
+ {
13
+ text: "\u4E0A\u5468",
14
+ value: () => {
15
+ const date = /* @__PURE__ */ new Date();
16
+ date.setTime(date.getTime() - 3600 * 1e3 * 24 * 7);
17
+ return date;
18
+ }
19
+ }
20
+ ];
21
+ };
22
+
23
+ export { useDateTimeShortCust };
@@ -0,0 +1,127 @@
1
+ import { debounce } from 'lodash-es';
2
+ import { Local, Session } from '../utils/storage.mjs';
3
+ import { ElMessageBox } from 'element-plus';
4
+ import { accessTokenKey, refreshAccessTokenKey } from '../utils/request.mjs';
5
+ import { useLocale } from './useLocale.mjs';
6
+
7
+ var __defProp = Object.defineProperty;
8
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
9
+ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
10
+ let signalR;
11
+ async function loadSignalR() {
12
+ if (!signalR) {
13
+ const module = await import('../utils/signalR.mjs');
14
+ signalR = module.signalR;
15
+ }
16
+ return signalR;
17
+ }
18
+ const { t } = useLocale();
19
+ class IdleTimeoutManager {
20
+ constructor(config = {}) {
21
+ __publicField(this, "timerId", null);
22
+ __publicField(this, "config");
23
+ __publicField(this, "debouncedReset");
24
+ /** 检查闲置超时时间间隔 */
25
+ __publicField(this, "checkTimeoutInterval", 2 * 1e3);
26
+ __publicField(this, "handleVisibilityChange", () => {
27
+ if (document.visibilityState === "visible") {
28
+ this.setLastActivityTime();
29
+ }
30
+ });
31
+ this.config = {
32
+ timeout: 30 * 60,
33
+ events: ["mousewheel", "keydown", "click"],
34
+ onTimeout: this.timeOutExec.bind(this),
35
+ debounceInterval: 200,
36
+ ...config
37
+ };
38
+ this.debouncedReset = this.config.debounceInterval > 0 ? debounce(this.setLastActivityTime.bind(this), this.config.debounceInterval) : this.setLastActivityTime.bind(this);
39
+ this.init();
40
+ }
41
+ init() {
42
+ this.config.events.forEach((event) => {
43
+ window.addEventListener(event, this.debouncedReset);
44
+ });
45
+ document.addEventListener("visibilitychange", this.handleVisibilityChange);
46
+ this.setLastActivityTime();
47
+ this.updateIdleTimeout(this.config.timeout);
48
+ }
49
+ /** 设置最后活动时间 */
50
+ setLastActivityTime() {
51
+ Local.set("lastActivityTime", (/* @__PURE__ */ new Date()).getTime());
52
+ }
53
+ /**
54
+ * 更新空闲超时时间
55
+ * @param timeout - 新的超时时间(毫秒)
56
+ */
57
+ updateIdleTimeout(timeout) {
58
+ this.config.timeout = timeout;
59
+ if (this.config.timeout > 0 && this.timerId == null) {
60
+ this.timerId = window.setInterval(this.checkTimeout.bind(this), this.checkTimeoutInterval);
61
+ } else if (this.config.timeout == 0 && this.timerId != null) {
62
+ window.clearInterval(this.timerId);
63
+ this.timerId = null;
64
+ }
65
+ }
66
+ /** 检查是否超时 */
67
+ checkTimeout() {
68
+ const currentTime = (/* @__PURE__ */ new Date()).getTime();
69
+ const lastActivityTime = Number(Local.get("lastActivityTime"));
70
+ if (lastActivityTime == 0) return;
71
+ const accessToken = Local.get(accessTokenKey);
72
+ if (!accessToken || accessToken == "invalid_token") return;
73
+ const timeout = this.config.timeout * 1e3;
74
+ if (currentTime - lastActivityTime > timeout) {
75
+ this.destroy();
76
+ this.config.onTimeout();
77
+ }
78
+ }
79
+ /** 销毁实例 */
80
+ destroy() {
81
+ this.config.events.forEach((event) => {
82
+ window.removeEventListener(event, this.debouncedReset);
83
+ });
84
+ document.removeEventListener("visibilitychange", this.handleVisibilityChange);
85
+ if (this.timerId !== null) {
86
+ window.clearInterval(this.timerId);
87
+ this.timerId = null;
88
+ }
89
+ }
90
+ /** 超时时执行 */
91
+ timeOutExec() {
92
+ const appEl = document.getElementById("app");
93
+ appEl == null ? void 0 : appEl.remove();
94
+ loadSignalR().then((signalR2) => {
95
+ signalR2.stop();
96
+ });
97
+ Local.remove(accessTokenKey);
98
+ Local.remove(refreshAccessTokenKey);
99
+ Session.clear();
100
+ ElMessageBox.alert(t("plus.list.idleTimeoutMessage"), t("plus.list.sysMessage"), {
101
+ type: "warning",
102
+ draggable: true,
103
+ callback: () => {
104
+ window.location.reload();
105
+ }
106
+ });
107
+ }
108
+ }
109
+ function initIdleTimeout(config) {
110
+ if (!window.__IDLE_TIMEOUT__) {
111
+ window.__IDLE_TIMEOUT__ = new IdleTimeoutManager(config);
112
+ }
113
+ return window.__IDLE_TIMEOUT__;
114
+ }
115
+ function destroyIdleTimeout() {
116
+ if (window.__IDLE_TIMEOUT__) {
117
+ window.__IDLE_TIMEOUT__.destroy();
118
+ window.__IDLE_TIMEOUT__ = void 0;
119
+ }
120
+ }
121
+ function updateIdleTimeout(timeout) {
122
+ if (window.__IDLE_TIMEOUT__) {
123
+ window.__IDLE_TIMEOUT__.updateIdleTimeout(timeout);
124
+ }
125
+ }
126
+
127
+ export { destroyIdleTimeout, initIdleTimeout, updateIdleTimeout };
@@ -1,3 +1,6 @@
1
1
  export { buildLocaleContext, buildTranslator, translate, useLocale } from './useLocale.mjs';
2
2
  export { auth, authAll, auths, hAuth, hAuthAll, hAuths } from './authFunction.mjs';
3
3
  export { useVxeTable } from './useVxeTableOptionsHook.mjs';
4
+ export { loadSysInfo, updateFavicon } from './sysInfo.mjs';
5
+ export { hasPrivilege, hasRoleCode, isAdmin, isMember, isNormalUser, isSupperAdmin, isTenantAdmin, orgId, orgName, posId, posName, roles, tenantId, userAccount, userEmail, userFriendName, userId, userName, userPhone } from './useInfo.mjs';
6
+ export { useDateTimeShortCust } from './dateTimeShortCust.mjs';
@@ -0,0 +1,59 @@
1
+ import { Local } from '../utils/storage.mjs';
2
+ import { storeToRefs } from 'pinia';
3
+ import { useThemeConfig } from '../stores/themeConfig.mjs';
4
+ import img from '../theme-chalk/assets/logo.png.mjs';
5
+ import { updateIdleTimeout } from './idleTimeout.mjs';
6
+ import '../api/index.mjs';
7
+ import { feature } from '../api/sys/index.mjs';
8
+ import { useBaseApi } from '../api/base/index.mjs';
9
+
10
+ const storesThemeConfig = useThemeConfig();
11
+ const { themeConfig } = storeToRefs(storesThemeConfig);
12
+ async function loadSysInfo(tenantid) {
13
+ var _a;
14
+ const [err, res] = await feature(useBaseApi("sysTenant").gcomm(null, "sysInfo/" + Number(tenantid)));
15
+ if (err) {
16
+ themeConfig.value.logoUrl = img;
17
+ Local.remove("themeConfig");
18
+ Local.set("themeConfig", storesThemeConfig.themeConfig);
19
+ return;
20
+ } else {
21
+ if (res.data.type != "success" || res.data.result == null) return;
22
+ const data = res.data.result;
23
+ themeConfig.value.logoUrl = data.logo;
24
+ themeConfig.value.globalTitle = data.title;
25
+ themeConfig.value.globalViceTitle = data.viceTitle;
26
+ themeConfig.value.globalViceTitleMsg = data.viceDesc;
27
+ themeConfig.value.icp = data.icp;
28
+ themeConfig.value.icpUrl = data.icpUrl;
29
+ themeConfig.value.isWatermark = data.watermark != null;
30
+ themeConfig.value.watermarkText = data.watermark;
31
+ themeConfig.value.copyright = data.copyright;
32
+ themeConfig.value.version = data.version;
33
+ themeConfig.value.carouselFiles = data.carouselFiles;
34
+ themeConfig.value.primary = data.themeColor;
35
+ themeConfig.value.layout = data.layout;
36
+ themeConfig.value.animation = data.animation;
37
+ themeConfig.value.secondVer = data.secondVer;
38
+ themeConfig.value.captcha = data.captcha;
39
+ themeConfig.value.forceChangePassword = data.forceChangePassword;
40
+ themeConfig.value.passwordExpirationTime = data.passwordExpirationTime;
41
+ themeConfig.value.i18NSwitch = data.i18NSwitch;
42
+ themeConfig.value.idleTimeout = data.idleTimeout;
43
+ themeConfig.value.onlineNotice = data.onlineNotice;
44
+ themeConfig.value.mobileLogin = data.mobileLogin;
45
+ themeConfig.value.scanLogin = data.scanLogin;
46
+ themeConfig.value.signUp = data.signUp;
47
+ window.__env__.VITE_SM_PUBLIC_KEY = data.publicKey;
48
+ updateFavicon(data.logo);
49
+ updateIdleTimeout((_a = themeConfig.value.idleTimeout) != null ? _a : 0);
50
+ Local.remove("themeConfig");
51
+ Local.set("themeConfig", storesThemeConfig.themeConfig);
52
+ }
53
+ }
54
+ const updateFavicon = (url) => {
55
+ const favicon = document.getElementById("favicon");
56
+ favicon.href = url ? url : "data:;base64,=";
57
+ };
58
+
59
+ export { loadSysInfo, updateFavicon };
@@ -0,0 +1,44 @@
1
+ import { useUserInfo } from '../stores/userInfo.mjs';
2
+
3
+ const { userInfos } = useUserInfo();
4
+ const isSupperAdmin = () => {
5
+ return (userInfos == null ? void 0 : userInfos.accountType) === 999;
6
+ };
7
+ const isTenantAdmin = () => {
8
+ return (userInfos == null ? void 0 : userInfos.accountType) === 888;
9
+ };
10
+ const isAdmin = () => {
11
+ return isSupperAdmin() || isTenantAdmin();
12
+ };
13
+ const isNormalUser = () => {
14
+ return (userInfos == null ? void 0 : userInfos.accountType) === 777;
15
+ };
16
+ const isMember = () => {
17
+ return (userInfos == null ? void 0 : userInfos.accountType) === 666;
18
+ };
19
+ const userEmail = () => {
20
+ return userInfos == null ? void 0 : userInfos.email;
21
+ };
22
+ const userName = () => {
23
+ return userInfos == null ? void 0 : userInfos.userName;
24
+ };
25
+ const userFriendName = () => (userInfos == null ? void 0 : userInfos.realName) ? userInfos == null ? void 0 : userInfos.realName : (userInfos == null ? void 0 : userInfos.account) ? userInfos == null ? void 0 : userInfos.account : userInfos == null ? void 0 : userInfos.email;
26
+ const tenantId = () => {
27
+ return userInfos == null ? void 0 : userInfos.tenantId;
28
+ };
29
+ const userAccount = () => userInfos == null ? void 0 : userInfos.account;
30
+ const userPhone = () => userInfos == null ? void 0 : userInfos.phone;
31
+ const userId = () => userInfos == null ? void 0 : userInfos.id;
32
+ const orgId = () => userInfos == null ? void 0 : userInfos.orgId;
33
+ const orgName = () => userInfos == null ? void 0 : userInfos.orgName;
34
+ const posId = () => userInfos == null ? void 0 : userInfos.posId;
35
+ const posName = () => userInfos == null ? void 0 : userInfos.posName;
36
+ const roles = () => userInfos == null ? void 0 : userInfos.roles;
37
+ const hasRoleCode = (code) => {
38
+ return userInfos.roles.find((u) => u.code === code) ? true : false;
39
+ };
40
+ const hasPrivilege = (privilege) => {
41
+ return userInfos.authApiList.includes(privilege);
42
+ };
43
+
44
+ export { hasPrivilege, hasRoleCode, isAdmin, isMember, isNormalUser, isSupperAdmin, isTenantAdmin, orgId, orgName, posId, posName, roles, tenantId, userAccount, userEmail, userFriendName, userId, userName, userPhone };
@@ -0,0 +1,3 @@
1
+ var img = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEEAAABBCAYAAACO98lFAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFwmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDIgNzkuMTYwOTI0LCAyMDE3LzA3LzEzLTAxOjA2OjM5ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpIiB4bXA6Q3JlYXRlRGF0ZT0iMjAyNS0wNC0wNFQwMToyMzozMCswODowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyNS0wNC0wNFQwMToyMzozMCswODowMCIgeG1wOk1vZGlmeURhdGU9IjIwMjUtMDQtMDRUMDE6MjM6MzArMDg6MDAiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDY0Mzc1NWEtZTM4ZC1hMzQxLWFmODgtNmFhY2FmYmI4ZDY0IiB4bXBNTTpEb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6MTdlYzEzMTgtNmY3Mi1mYjQ4LWI3YjUtMzg2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";
2
+
3
+ export { img as default };
@@ -0,0 +1,47 @@
1
+ import * as SignalR from '@microsoft/signalr';
2
+ import { ElNotification } from 'element-plus';
3
+ import { getToken } from './request.mjs';
4
+
5
+ const connection = new SignalR.HubConnectionBuilder().configureLogging(SignalR.LogLevel.Warning).withUrl(`${window.__env__.VITE_API_URL}/hubs/onlineUser?token=${getToken()}`, { transport: SignalR.HttpTransportType.WebSockets, skipNegotiation: true }).withAutomaticReconnect({
6
+ nextRetryDelayInMilliseconds: () => {
7
+ return 5e3;
8
+ }
9
+ }).build();
10
+ connection.keepAliveIntervalInMilliseconds = 15 * 1e3;
11
+ connection.serverTimeoutInMilliseconds = 30 * 1e3;
12
+ connection.start().then(() => {
13
+ });
14
+ connection.onclose(async () => {
15
+ });
16
+ connection.onreconnecting(() => {
17
+ ElNotification({
18
+ title: "\u63D0\u793A",
19
+ message: "\u8FDE\u63A5\u5DF2\u65AD\u5F00 >>>>>",
20
+ type: "error",
21
+ position: "bottom-right"
22
+ });
23
+ });
24
+ connection.onreconnected(() => {
25
+ ElNotification({
26
+ title: "\u63D0\u793A",
27
+ message: "\u8FDE\u63A5\u5DF2\u6062\u590D >>>>>",
28
+ type: "success",
29
+ position: "bottom-right"
30
+ });
31
+ });
32
+ connection.on("OnlineUserList", () => {
33
+ });
34
+ connection.on("ReceiveMessage", (message) => {
35
+ var tmpMsg = `<div style="white-space: pre-wrap;">${message.message}<div><br/>`;
36
+ tmpMsg += `<p style="color:#808080; font-size:10px;float:right"> ${message.sendUserName} ${message.sendTime}<p>`;
37
+ ElNotification({
38
+ title: `${message.title}`,
39
+ message: tmpMsg,
40
+ type: message.messageType.toString().toLowerCase(),
41
+ position: "top-right",
42
+ dangerouslyUseHTMLString: true,
43
+ duration: 5e3
44
+ });
45
+ });
46
+
47
+ export { connection as signalR };
@@ -0,0 +1,23 @@
1
+ /**
2
+ * 判断两数组字符串是否相同(用于按钮权限验证),数组字符串中存在相同时会自动去重(按钮权限标识不会重复)
3
+ * @param news 新数据
4
+ * @param old 源数据
5
+ * @returns 两数组相同返回 `true`,反之则反
6
+ */
7
+ export declare function judgementSameArr(newArr: unknown[] | string[], oldArr: string[]): boolean;
8
+ /**
9
+ * 判断两个对象是否相同
10
+ * @param a 要比较的对象一
11
+ * @param b 要比较的对象二
12
+ * @returns 相同返回 true,反之则反
13
+ */
14
+ export declare function isObjectValueEqual<T extends Record<string, any>>(a: T, b: T): boolean;
15
+ /**
16
+ * 数组、数组对象去重
17
+ * 支持普通数组和对象数组去重,类型安全,且兼容原有所有调用方式
18
+ * @param arr 数组内容
19
+ * @param attr 需要去重的键值(数组对象)
20
+ * @returns
21
+ */
22
+ export declare function removeDuplicate<T>(arr: T[], attr?: string): T[];
23
+ export declare const clone: <T>(value: T) => T;
@@ -0,0 +1,11 @@
1
+ /**
2
+ *通过监听当前页面的JS的SRC来判断当前网页是否有更新
3
+ *使用方法 main.js import checkUpdate from "/@/utils/auto-update";
4
+ */
5
+ /**
6
+ * 定时器定时检测是否更新,有更新则执行回调函数
7
+ * @param callbackFn
8
+ * @param interval
9
+ */
10
+ declare function checkUpdateInterval(callbackFn: any, interval?: number): void;
11
+ export default checkUpdateInterval;
@@ -0,0 +1,30 @@
1
+ /**
2
+ * @description: base64 to blob
3
+ */
4
+ export declare function dataURLtoBlob(base64Buf: string): Blob;
5
+ /**
6
+ * img url to base64
7
+ * @param url
8
+ */
9
+ export declare function urlToBase64(url: string, mineType?: string): Promise<string>;
10
+ /**
11
+ * File转Base64
12
+ * @param file
13
+ */
14
+ export declare function fileToBase64(file: Blob): Promise<unknown>;
15
+ /**
16
+ * Base64转File
17
+ * @param dataURL {String} base64
18
+ * @param fileName {String} 文件名
19
+ * @param mimeType {String} [可选]文件类型,默认为base64中的类型
20
+ * @returns {File}
21
+ */
22
+ export declare function base64ToFile(dataURL: string, fileName: string, mimeType?: null): File;
23
+ /**
24
+ * Blob转File
25
+ * @param blob {Blob} blob
26
+ * @param fileName {String} 文件名
27
+ * @param mimeType {String} 文件类型
28
+ * @return {File}
29
+ */
30
+ export declare function blobToFile(blob: Blob, fileName: string, mimeType?: string): File;
@@ -0,0 +1,17 @@
1
+ /**
2
+ * 生成 KSort 签名
3
+ * @param appId APP_ID
4
+ * @param appKey APP_KEY
5
+ * @param command 命令
6
+ * @param data 数据
7
+ * @param timestamp 时间戳(可选)
8
+ * @returns
9
+ */
10
+ export declare function signatureByKSort(appId: string, appKey: string, command: string, data: any, timestamp?: number | null): {
11
+ app_id: string;
12
+ app_key: string;
13
+ command: string;
14
+ data: string;
15
+ timestamp: number;
16
+ signature: any;
17
+ };
@@ -0,0 +1,46 @@
1
+ import { AxiosResponseHeaders, RawAxiosResponseHeaders } from 'axios';
2
+ /**
3
+ * Download online pictures
4
+ * @param url
5
+ * @param filename
6
+ * @param mime
7
+ * @param bom
8
+ */
9
+ export declare function downloadByOnlineUrl(url: string, filename: string, mime?: string, bom?: BlobPart): void;
10
+ /**
11
+ * Download pictures based on base64
12
+ * @param buf
13
+ * @param filename
14
+ * @param mime
15
+ * @param bom
16
+ */
17
+ export declare function downloadByBase64(buf: string, filename: string, mime?: string, bom?: BlobPart): void;
18
+ /**
19
+ * Download according to the background interface file stream
20
+ * @param {*} data
21
+ * @param {*} filename
22
+ * @param {*} mime
23
+ * @param {*} bom
24
+ */
25
+ export declare function downloadByData(data: BlobPart, filename: string, mime?: string, bom?: BlobPart): void;
26
+ /**
27
+ * Download file according to file address
28
+ * @param {*} sUrl
29
+ */
30
+ export declare function downloadByUrl({ url, target, fileName }: {
31
+ url: string;
32
+ target?: string;
33
+ fileName?: string;
34
+ }): boolean;
35
+ export declare function openWindow(url: string, opt?: {
36
+ target?: string | string;
37
+ noopener?: boolean;
38
+ noreferrer?: boolean;
39
+ }): void;
40
+ export declare function getFileName(headers: RawAxiosResponseHeaders | AxiosResponseHeaders): any;
41
+ /**
42
+ * 文件流下载
43
+ * @param res
44
+ * @param fileName 文件名
45
+ */
46
+ export declare function downloadStreamFile(res: any, fileName?: string | undefined): void;
@@ -0,0 +1,12 @@
1
+ import { EmptyObjectType } from 'fmdeui-fmui/es/types';
2
+ /**
3
+ * @description:
4
+ * @param {Object} json 服务端发过来的数据
5
+ * @param {String} name 导出Excel文件名字
6
+
7
+ * @param {String} titleArr 导出Excel表头
8
+
9
+ * @param {String} sheetName 导出sheetName名字
10
+ * @return:
11
+ **/
12
+ export declare function exportExcel(jsonarr: Array<EmptyObjectType>, name: string, header: Array<EmptyObjectType>, sheetName: string): void;
@@ -0,0 +1,19 @@
1
+ import { Component, Ref } from 'vue';
2
+ import { LoadingOptions } from 'element-plus/es/components/loading/src/types';
3
+ interface LoadingController {
4
+ step: (text: string | Ref<string>) => LoadingController;
5
+ end: () => void;
6
+ }
7
+ type CustomLoadingOptions = Omit<LoadingOptions, 'text'> & {
8
+ text?: string | Ref<string>;
9
+ spinner?: string | Component;
10
+ };
11
+ declare class FlowLoadingManager {
12
+ private instance;
13
+ start(options?: string | Ref<string> | CustomLoadingOptions): LoadingController;
14
+ private normalizeOptions;
15
+ private validateConfig;
16
+ private createController;
17
+ }
18
+ export declare const flowLoading: FlowLoadingManager;
19
+ export {};
@@ -0,0 +1 @@
1
+ export declare const fontAwesomeClassList: Array<string>;
@@ -0,0 +1 @@
1
+ export declare const iconfonntClassList: Array<string>;
@@ -0,0 +1,36 @@
1
+ import { FormItemRule } from 'element-plus';
2
+ import { Ref } from 'vue';
3
+ import { Arrayable } from 'element-plus/es/utils';
4
+ export declare function useFormRulePresets(): {
5
+ required: (label?: string, trigger?: FormItemRule["trigger"]) => FormItemRule;
6
+ requiredIf: (required?: boolean, label?: string, trigger?: FormItemRule["trigger"]) => FormItemRule;
7
+ validatorIf: (shouldError: () => boolean, formRef?: Ref<any>, label?: string) => {
8
+ validator: (_: any, __: any, callback: (error?: Error) => void) => void;
9
+ trigger: readonly ["blur", "change"];
10
+ };
11
+ maxLen: (len: number, label?: string, trigger?: Arrayable<string> | undefined) => FormItemRule;
12
+ minLen: (len: number, label?: string, trigger?: Arrayable<string> | undefined) => FormItemRule;
13
+ pattern: (re: RegExp, msg: string, trigger?: Arrayable<string> | undefined) => FormItemRule;
14
+ validator: (fn: (value: any) => true | string | Promise<true | string>, trigger?: Arrayable<string> | undefined) => FormItemRule;
15
+ phone: () => FormItemRule;
16
+ idCard: () => FormItemRule;
17
+ email: () => FormItemRule;
18
+ digits: (label?: string, trigger?: Arrayable<string> | undefined) => FormItemRule;
19
+ intRange: (min: number, max: number, label?: string) => FormItemRule;
20
+ confirmSame: (getOther: () => any, label?: string) => FormItemRule;
21
+ dateAfterToday: (label?: string, trigger?: Arrayable<string> | undefined) => FormItemRule;
22
+ dateBeforeToday: (label?: string, trigger?: Arrayable<string> | undefined) => FormItemRule;
23
+ numberPrecision: (maxIntDigits: number | null, maxFracDigits: number | null, label?: string) => FormItemRule;
24
+ validateRequired: (value: any, fieldName?: string) => boolean;
25
+ validateNumber: (value: any, fieldName?: string) => boolean;
26
+ validateIntRange: (value: any, min: number, max: number, fieldName?: string) => boolean;
27
+ validateChinese: (value: any, fieldName?: string) => boolean;
28
+ validateLength: (value: any, maxLength: number, fieldName?: string) => boolean;
29
+ validateEmail: (value: any, fieldName?: string) => boolean;
30
+ validatePhone: (value: any, fieldName?: string) => boolean;
31
+ validateIdCard: (value: any, fieldName?: string) => boolean;
32
+ validatePattern: (value: any, pattern: RegExp, message: string) => boolean;
33
+ validateMultiple: (value: any, validators: Array<(value: any) => boolean>) => boolean;
34
+ validateField: (value: any, type: string, fieldName: string, options?: any) => boolean;
35
+ validateDecimalPrecision: (value: any, maxIntDigits: number, maxFracDigits: number, fieldName?: string) => boolean;
36
+ };