@fmdeui/fmui 1.0.6 → 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 (43) 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/index.js +144 -1
  16. package/index.min.js +4 -4
  17. package/index.min.mjs +4 -4
  18. package/index.mjs +123 -2
  19. package/lib/components/chart/index.d.ts +1 -1
  20. package/lib/components/chart/src/index.vue.d.ts +1 -1
  21. package/lib/components/index.d.ts +1 -0
  22. package/lib/components/svgIcon/index.d.ts +26 -0
  23. package/lib/components/svgIcon/index.vue.d.ts +27 -0
  24. package/lib/hooks/index.d.ts +3 -0
  25. package/lib/index.js +25 -0
  26. package/lib/packages/hooks/dateTimeShortCust.js +25 -0
  27. package/lib/packages/hooks/idleTimeout.js +131 -0
  28. package/lib/packages/hooks/index.js +25 -0
  29. package/lib/packages/hooks/sysInfo.js +62 -0
  30. package/lib/packages/hooks/useInfo.js +64 -0
  31. package/lib/packages/theme-chalk/assets/logo.png.js +7 -0
  32. package/lib/packages/utils/signalR.js +68 -0
  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/{defaults.css → make-installer.css} +0 -0
  43. /package/lib/{component.css → version.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 };
package/index.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! fmdeui-fmui v1.0.6 */
1
+ /*! fmdeui-fmui v1.0.7 */
2
2
  (function (global, factory) {
3
3
  typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('pinia'), require('crypto-js'), require('xlsx-js-style'), require('element-plus'), require('vue'), require('@element-plus/icons-vue'), require('mitt'), require('axios'), require('js-cookie'), require('vxe-table'), require('@vxe-ui/plugin-render-element'), require('@vxe-ui/plugin-export-xlsx'), require('vxe-pc-ui'), require('vue-i18n'), require('exceljs'), require('lodash-es'), require('@vueuse/core'), require('vue-router'), require('nprogress')) :
4
4
  typeof define === 'function' && define.amd ? define(['exports', 'pinia', 'crypto-js', 'xlsx-js-style', 'element-plus', 'vue', '@element-plus/icons-vue', 'mitt', 'axios', 'js-cookie', 'vxe-table', '@vxe-ui/plugin-render-element', '@vxe-ui/plugin-export-xlsx', 'vxe-pc-ui', 'vue-i18n', 'exceljs', 'lodash-es', '@vueuse/core', 'vue-router', 'nprogress'], factory) :
@@ -18729,6 +18729,127 @@
18729
18729
  return extras ? lodashEs.merge(options, extras) : options;
18730
18730
  };
18731
18731
 
18732
+ var img = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEEAAABBCAYAAACO98lFAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFwmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDIgNzkuMTYwOTI0LCAyMDE3LzA3LzEzLTAxOjA2OjM5ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczpzdEV2dD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL3NUeXBlL1Jlc291cmNlRXZlbnQjIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgKFdpbmRvd3MpIiB4bXA6Q3JlYXRlRGF0ZT0iMjAyNS0wNC0wNFQwMToyMzozMCswODowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAyNS0wNC0wNFQwMToyMzozMCswODowMCIgeG1wOk1vZGlmeURhdGU9IjIwMjUtMDQtMDRUMDE6MjM6MzArMDg6MDAiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NDY0Mzc1NWEtZTM4ZC1hMzQxLWFmODgtNmFhY2FmYmI4ZDY0IiB4bXBNTTpEb2N1bWVudElEPSJhZG9iZTpkb2NpZDpwaG90b3Nob3A6MTdlYzEzMTgtNmY3Mi1mYjQ4LWI3YjUtMzg2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";
18733
+
18734
+ const { t } = useLocale();
18735
+ function updateIdleTimeout(timeout) {
18736
+ if (window.__IDLE_TIMEOUT__) {
18737
+ window.__IDLE_TIMEOUT__.updateIdleTimeout(timeout);
18738
+ }
18739
+ }
18740
+
18741
+ const storesThemeConfig$1 = useThemeConfig();
18742
+ const { themeConfig: themeConfig$1 } = pinia$1.storeToRefs(storesThemeConfig$1);
18743
+ async function loadSysInfo(tenantid) {
18744
+ var _a;
18745
+ const [err, res] = await feature(useBaseApi("sysTenant").gcomm(null, "sysInfo/" + Number(tenantid)));
18746
+ if (err) {
18747
+ themeConfig$1.value.logoUrl = img;
18748
+ Local.remove("themeConfig");
18749
+ Local.set("themeConfig", storesThemeConfig$1.themeConfig);
18750
+ return;
18751
+ } else {
18752
+ if (res.data.type != "success" || res.data.result == null) return;
18753
+ const data = res.data.result;
18754
+ themeConfig$1.value.logoUrl = data.logo;
18755
+ themeConfig$1.value.globalTitle = data.title;
18756
+ themeConfig$1.value.globalViceTitle = data.viceTitle;
18757
+ themeConfig$1.value.globalViceTitleMsg = data.viceDesc;
18758
+ themeConfig$1.value.icp = data.icp;
18759
+ themeConfig$1.value.icpUrl = data.icpUrl;
18760
+ themeConfig$1.value.isWatermark = data.watermark != null;
18761
+ themeConfig$1.value.watermarkText = data.watermark;
18762
+ themeConfig$1.value.copyright = data.copyright;
18763
+ themeConfig$1.value.version = data.version;
18764
+ themeConfig$1.value.carouselFiles = data.carouselFiles;
18765
+ themeConfig$1.value.primary = data.themeColor;
18766
+ themeConfig$1.value.layout = data.layout;
18767
+ themeConfig$1.value.animation = data.animation;
18768
+ themeConfig$1.value.secondVer = data.secondVer;
18769
+ themeConfig$1.value.captcha = data.captcha;
18770
+ themeConfig$1.value.forceChangePassword = data.forceChangePassword;
18771
+ themeConfig$1.value.passwordExpirationTime = data.passwordExpirationTime;
18772
+ themeConfig$1.value.i18NSwitch = data.i18NSwitch;
18773
+ themeConfig$1.value.idleTimeout = data.idleTimeout;
18774
+ themeConfig$1.value.onlineNotice = data.onlineNotice;
18775
+ themeConfig$1.value.mobileLogin = data.mobileLogin;
18776
+ themeConfig$1.value.scanLogin = data.scanLogin;
18777
+ themeConfig$1.value.signUp = data.signUp;
18778
+ window.__env__.VITE_SM_PUBLIC_KEY = data.publicKey;
18779
+ updateFavicon(data.logo);
18780
+ updateIdleTimeout((_a = themeConfig$1.value.idleTimeout) != null ? _a : 0);
18781
+ Local.remove("themeConfig");
18782
+ Local.set("themeConfig", storesThemeConfig$1.themeConfig);
18783
+ }
18784
+ }
18785
+ const updateFavicon = (url) => {
18786
+ const favicon = document.getElementById("favicon");
18787
+ favicon.href = url ? url : "data:;base64,=";
18788
+ };
18789
+
18790
+ const { userInfos } = useUserInfo();
18791
+ const isSupperAdmin = () => {
18792
+ return (userInfos == null ? void 0 : userInfos.accountType) === 999;
18793
+ };
18794
+ const isTenantAdmin = () => {
18795
+ return (userInfos == null ? void 0 : userInfos.accountType) === 888;
18796
+ };
18797
+ const isAdmin = () => {
18798
+ return isSupperAdmin() || isTenantAdmin();
18799
+ };
18800
+ const isNormalUser = () => {
18801
+ return (userInfos == null ? void 0 : userInfos.accountType) === 777;
18802
+ };
18803
+ const isMember = () => {
18804
+ return (userInfos == null ? void 0 : userInfos.accountType) === 666;
18805
+ };
18806
+ const userEmail = () => {
18807
+ return userInfos == null ? void 0 : userInfos.email;
18808
+ };
18809
+ const userName = () => {
18810
+ return userInfos == null ? void 0 : userInfos.userName;
18811
+ };
18812
+ 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;
18813
+ const tenantId = () => {
18814
+ return userInfos == null ? void 0 : userInfos.tenantId;
18815
+ };
18816
+ const userAccount = () => userInfos == null ? void 0 : userInfos.account;
18817
+ const userPhone = () => userInfos == null ? void 0 : userInfos.phone;
18818
+ const userId = () => userInfos == null ? void 0 : userInfos.id;
18819
+ const orgId = () => userInfos == null ? void 0 : userInfos.orgId;
18820
+ const orgName = () => userInfos == null ? void 0 : userInfos.orgName;
18821
+ const posId = () => userInfos == null ? void 0 : userInfos.posId;
18822
+ const posName = () => userInfos == null ? void 0 : userInfos.posName;
18823
+ const roles = () => userInfos == null ? void 0 : userInfos.roles;
18824
+ const hasRoleCode = (code) => {
18825
+ return userInfos.roles.find((u) => u.code === code) ? true : false;
18826
+ };
18827
+ const hasPrivilege = (privilege) => {
18828
+ return userInfos.authApiList.includes(privilege);
18829
+ };
18830
+
18831
+ const useDateTimeShortCust = () => {
18832
+ return [
18833
+ { text: "\u4ECA\u5929", value: /* @__PURE__ */ new Date() },
18834
+ {
18835
+ text: "\u6628\u5929",
18836
+ value: () => {
18837
+ const date = /* @__PURE__ */ new Date();
18838
+ date.setTime(date.getTime() - 3600 * 1e3 * 24);
18839
+ return date;
18840
+ }
18841
+ },
18842
+ {
18843
+ text: "\u4E0A\u5468",
18844
+ value: () => {
18845
+ const date = /* @__PURE__ */ new Date();
18846
+ date.setTime(date.getTime() - 3600 * 1e3 * 24 * 7);
18847
+ return date;
18848
+ }
18849
+ }
18850
+ ];
18851
+ };
18852
+
18732
18853
  const _hoisted_1$6 = { key: 0 };
18733
18854
  const _hoisted_2$3 = { key: 0 };
18734
18855
  var _sfc_main$c = /* @__PURE__ */ vue.defineComponent({
@@ -22312,22 +22433,35 @@
22312
22433
  exports.hAuth = hAuth;
22313
22434
  exports.hAuthAll = hAuthAll;
22314
22435
  exports.hAuths = hAuths;
22436
+ exports.hasPrivilege = hasPrivilege;
22437
+ exports.hasRoleCode = hasRoleCode;
22315
22438
  exports.i18n = i18n;
22316
22439
  exports.initBackEndControlRoutes = initBackEndControlRoutes;
22317
22440
  exports.initFrontEndControlRoutes = initFrontEndControlRoutes;
22318
22441
  exports.initRouter = initRouter;
22319
22442
  exports.install = install;
22443
+ exports.isAdmin = isAdmin;
22444
+ exports.isMember = isMember;
22445
+ exports.isNormalUser = isNormalUser;
22320
22446
  exports.isObjectValueEqual = isObjectValueEqual;
22447
+ exports.isSupperAdmin = isSupperAdmin;
22448
+ exports.isTenantAdmin = isTenantAdmin;
22321
22449
  exports.iso_3166_1_CountryList = iso_3166_1_CountryList;
22322
22450
  exports.judgementIdCard = judgementIdCard;
22323
22451
  exports.judgementSameArr = judgementSameArr;
22324
22452
  exports.languageList = languageList;
22453
+ exports.loadSysInfo = loadSysInfo;
22325
22454
  exports.mergMessage = mergMessage;
22326
22455
  exports.openWindow = openWindow;
22456
+ exports.orgId = orgId;
22457
+ exports.orgName = orgName;
22458
+ exports.posId = posId;
22459
+ exports.posName = posName;
22327
22460
  exports.reLoadLoginAccessToken = reLoadLoginAccessToken;
22328
22461
  exports.refreshAccessTokenKey = refreshAccessTokenKey;
22329
22462
  exports.removeDuplicate = removeDuplicate;
22330
22463
  exports.request2 = request2;
22464
+ exports.roles = roles;
22331
22465
  exports.saulVModel = saulVModel;
22332
22466
  exports.service = service;
22333
22467
  exports.setCssCdn = setCssCdn;
@@ -22338,11 +22472,14 @@
22338
22472
  exports.signatureByKSort = signatureByKSort;
22339
22473
  exports.sleep = sleep;
22340
22474
  exports.tansParams = tansParams;
22475
+ exports.tenantId = tenantId;
22341
22476
  exports.translate = translate;
22477
+ exports.updateFavicon = updateFavicon;
22342
22478
  exports.urlToBase64 = urlToBase64;
22343
22479
  exports.useApi = useApi;
22344
22480
  exports.useBaseApi = useBaseApi;
22345
22481
  exports.useChangeColor = useChangeColor;
22482
+ exports.useDateTimeShortCust = useDateTimeShortCust;
22346
22483
  exports.useFormRulePresets = useFormRulePresets;
22347
22484
  exports.useKeepALiveNames = useKeepALiveNames;
22348
22485
  exports.useLocale = useLocale;
@@ -22353,6 +22490,12 @@
22353
22490
  exports.useThemeConfig = useThemeConfig;
22354
22491
  exports.useUserInfo = useUserInfo;
22355
22492
  exports.useVxeTable = useVxeTable;
22493
+ exports.userAccount = userAccount;
22494
+ exports.userEmail = userEmail;
22495
+ exports.userFriendName = userFriendName;
22496
+ exports.userId = userId;
22497
+ exports.userName = userName;
22498
+ exports.userPhone = userPhone;
22356
22499
  exports.validateFormWithScroll = validateFormWithScroll;
22357
22500
  exports.validateFormWithScrollCallback = validateFormWithScrollCallback;
22358
22501
  exports.verifiyNumberInteger = verifiyNumberInteger;