@fmdeui/fmui 1.0.25 → 1.0.27

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.
@@ -53,24 +53,62 @@ const initSignalR = () => {
53
53
  });
54
54
  return connection;
55
55
  };
56
+ const getSignalR = () => {
57
+ return window.__SIGNALR_INSTANCE__;
58
+ };
56
59
  if (!window.__SIGNALR_INSTANCE__) {
57
60
  const instance = initSignalR();
58
61
  if (instance) {
59
62
  window.__SIGNALR_INSTANCE__ = instance;
60
63
  }
61
64
  }
62
- const signalR = window.__SIGNALR_INSTANCE__ || initSignalR();
63
- const restartSignalR = () => {
64
- if (window.__SIGNALR_INSTANCE__) {
65
- window.__SIGNALR_INSTANCE__.stop().then(() => {
66
- const instance = initSignalR();
67
- if (instance)
68
- window.__SIGNALR_INSTANCE__ = instance;
69
- });
65
+ if (!window.__SIGNALR_INSTANCE__) {
66
+ const instance = initSignalR();
67
+ if (instance) {
68
+ window.__SIGNALR_INSTANCE__ = instance;
70
69
  } else {
71
- const instance = initSignalR();
72
- if (instance)
73
- window.__SIGNALR_INSTANCE__ = instance;
70
+ }
71
+ }
72
+ const signalR = {
73
+ on: (event, callback) => {
74
+ const instance = getSignalR();
75
+ if (instance) {
76
+ instance.on(event, callback);
77
+ } else {
78
+ console.warn(`SignalR \u672A\u8FDE\u63A5\uFF0C\u65E0\u6CD5\u76D1\u542C\u4E8B\u4EF6: ${event}`);
79
+ }
80
+ },
81
+ off: (event, callback) => {
82
+ const instance = getSignalR();
83
+ if (instance) {
84
+ instance.off(event, callback);
85
+ }
86
+ },
87
+ send: (method, ...args) => {
88
+ const instance = getSignalR();
89
+ if (instance) {
90
+ return instance.invoke(method, ...args);
91
+ } else {
92
+ console.warn("SignalR \u672A\u8FDE\u63A5\uFF0C\u65E0\u6CD5\u53D1\u9001\u6D88\u606F");
93
+ return Promise.reject("SignalR \u672A\u8FDE\u63A5");
94
+ }
95
+ },
96
+ stop: () => {
97
+ const instance = getSignalR();
98
+ if (instance) {
99
+ return instance.stop();
100
+ }
101
+ return Promise.resolve();
102
+ }
103
+ };
104
+ const restartSignalR = async () => {
105
+ const instance = getSignalR();
106
+ if (instance) {
107
+ await instance.stop();
108
+ }
109
+ const newInstance = initSignalR();
110
+ if (newInstance) {
111
+ window.__SIGNALR_INSTANCE__ = newInstance;
74
112
  }
75
113
  };
76
114
 
@@ -1,6 +1,11 @@
1
1
  import * as SignalR from '@microsoft/signalr';
2
- declare const signalR: SignalR.HubConnection;
3
- declare const restartSignalR: () => void;
2
+ declare const signalR: {
3
+ on: (event: any, callback: any) => void;
4
+ off: (event: any, callback: any) => void;
5
+ send: (method: any, ...args: any[]) => Promise<any>;
6
+ stop: () => Promise<void>;
7
+ };
8
+ declare const restartSignalR: () => Promise<void>;
4
9
  export { signalR, restartSignalR };
5
10
  declare global {
6
11
  interface Window {
package/index.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! fmdeui-fmui v1.0.25 */
1
+ /*! fmdeui-fmui v1.0.27 */
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('axios'), require('js-cookie'), require('@microsoft/signalr'), 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('mitt'), 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', 'axios', 'js-cookie', '@microsoft/signalr', 'vxe-table', '@vxe-ui/plugin-render-element', '@vxe-ui/plugin-export-xlsx', 'vxe-pc-ui', 'vue-i18n', 'exceljs', 'lodash-es', '@vueuse/core', 'mitt', 'vue-router', 'nprogress'], factory) :
@@ -1741,24 +1741,61 @@
1741
1741
  });
1742
1742
  return connection;
1743
1743
  };
1744
+ const getSignalR = () => {
1745
+ return window.__SIGNALR_INSTANCE__;
1746
+ };
1744
1747
  if (!window.__SIGNALR_INSTANCE__) {
1745
1748
  const instance = initSignalR();
1746
1749
  if (instance) {
1747
1750
  window.__SIGNALR_INSTANCE__ = instance;
1748
1751
  }
1749
1752
  }
1750
- const signalR = window.__SIGNALR_INSTANCE__ || initSignalR();
1751
- const restartSignalR = () => {
1752
- if (window.__SIGNALR_INSTANCE__) {
1753
- window.__SIGNALR_INSTANCE__.stop().then(() => {
1754
- const instance = initSignalR();
1755
- if (instance)
1756
- window.__SIGNALR_INSTANCE__ = instance;
1757
- });
1758
- } else {
1759
- const instance = initSignalR();
1760
- if (instance)
1761
- window.__SIGNALR_INSTANCE__ = instance;
1753
+ if (!window.__SIGNALR_INSTANCE__) {
1754
+ const instance = initSignalR();
1755
+ if (instance) {
1756
+ window.__SIGNALR_INSTANCE__ = instance;
1757
+ }
1758
+ }
1759
+ const signalR = {
1760
+ on: (event, callback) => {
1761
+ const instance = getSignalR();
1762
+ if (instance) {
1763
+ instance.on(event, callback);
1764
+ } else {
1765
+ console.warn(`SignalR \u672A\u8FDE\u63A5\uFF0C\u65E0\u6CD5\u76D1\u542C\u4E8B\u4EF6: ${event}`);
1766
+ }
1767
+ },
1768
+ off: (event, callback) => {
1769
+ const instance = getSignalR();
1770
+ if (instance) {
1771
+ instance.off(event, callback);
1772
+ }
1773
+ },
1774
+ send: (method, ...args) => {
1775
+ const instance = getSignalR();
1776
+ if (instance) {
1777
+ return instance.invoke(method, ...args);
1778
+ } else {
1779
+ console.warn("SignalR \u672A\u8FDE\u63A5\uFF0C\u65E0\u6CD5\u53D1\u9001\u6D88\u606F");
1780
+ return Promise.reject("SignalR \u672A\u8FDE\u63A5");
1781
+ }
1782
+ },
1783
+ stop: () => {
1784
+ const instance = getSignalR();
1785
+ if (instance) {
1786
+ return instance.stop();
1787
+ }
1788
+ return Promise.resolve();
1789
+ }
1790
+ };
1791
+ const restartSignalR = async () => {
1792
+ const instance = getSignalR();
1793
+ if (instance) {
1794
+ await instance.stop();
1795
+ }
1796
+ const newInstance = initSignalR();
1797
+ if (newInstance) {
1798
+ window.__SIGNALR_INSTANCE__ = newInstance;
1762
1799
  }
1763
1800
  };
1764
1801
 
@@ -19085,6 +19122,72 @@
19085
19122
  ];
19086
19123
  };
19087
19124
 
19125
+ function createEventBus(config) {
19126
+ const options = typeof config === "string" ? { name: config, strict: true } : config;
19127
+ const injectionKey = /* @__PURE__ */ Symbol(`eventBus:${options.name}`);
19128
+ return {
19129
+ /**
19130
+ * 在顶层组件中提供事件处理器
19131
+ */
19132
+ provideEvents(handlers, app) {
19133
+ if (app) {
19134
+ app.provide(injectionKey, handlers);
19135
+ } else {
19136
+ vue.provide(injectionKey, handlers);
19137
+ }
19138
+ },
19139
+ /**
19140
+ * 在子组件中注入事件处理器
19141
+ */
19142
+ useEvents() {
19143
+ const events = vue.inject(injectionKey);
19144
+ if (options.strict && !events) {
19145
+ console.warn(
19146
+ `[EventBus] \u26A0\uFE0F "${options.name}" \u672A\u627E\u5230 provide\uFF01
19147
+ \u8BF7\u786E\u4FDD\u5728\u9876\u5C42\u7EC4\u4EF6\u4E2D\u8C03\u7528\u4E86 provideEvents()`
19148
+ );
19149
+ }
19150
+ return events || options.defaultHandlers || {};
19151
+ },
19152
+ /**
19153
+ * 获取注入键(用于高级场景)
19154
+ */
19155
+ getKey() {
19156
+ return injectionKey;
19157
+ }
19158
+ };
19159
+ }
19160
+
19161
+ const defaultHandlers = {
19162
+ onFormSubmit: async () => {
19163
+ console.warn("[FormEvents] onFormSubmit \u672A\u5B9E\u73B0");
19164
+ },
19165
+ onFormReset: () => {
19166
+ console.warn("[FormEvents] onFormReset \u672A\u5B9E\u73B0");
19167
+ },
19168
+ onFieldChange: () => {
19169
+ console.warn("[FormEvents] onFieldChange \u672A\u5B9E\u73B0");
19170
+ },
19171
+ onFormValidate: () => {
19172
+ console.warn("[FormEvents] onFormValidate \u672A\u5B9E\u73B0");
19173
+ },
19174
+ onFormDialogClose: () => {
19175
+ console.warn("[FormEvents] onFormDialogClose \u672A\u5B9E\u73B0");
19176
+ },
19177
+ onFormDialogOpen: () => {
19178
+ console.warn("[FormEvents] onFormDialogOpen \u672A\u5B9E\u73B0");
19179
+ }
19180
+ };
19181
+ const {
19182
+ provideEvents: provideFormEvents,
19183
+ useEvents: useFormEvents
19184
+ } = createEventBus({
19185
+ name: "formEvents",
19186
+ defaultHandlers,
19187
+ strict: true
19188
+ // 开发环境严格检查
19189
+ });
19190
+
19088
19191
  const _hoisted_1$7 = { key: 0 };
19089
19192
  const _hoisted_2$3 = { key: 0 };
19090
19193
  var _sfc_main$d = /* @__PURE__ */ vue.defineComponent({
@@ -23164,6 +23267,7 @@
23164
23267
  exports.other = other;
23165
23268
  exports.posId = posId;
23166
23269
  exports.posName = posName;
23270
+ exports.provideFormEvents = provideFormEvents;
23167
23271
  exports.reLoadLoginAccessToken = reLoadLoginAccessToken;
23168
23272
  exports.refreshAccessTokenKey = refreshAccessTokenKey;
23169
23273
  exports.removeDuplicate = removeDuplicate;
@@ -23192,6 +23296,7 @@
23192
23296
  exports.useBaseApi = useBaseApi;
23193
23297
  exports.useChangeColor = useChangeColor;
23194
23298
  exports.useDateTimeShortCust = useDateTimeShortCust;
23299
+ exports.useFormEvents = useFormEvents;
23195
23300
  exports.useFormRulePresets = useFormRulePresets;
23196
23301
  exports.useKeepALiveNames = useKeepALiveNames;
23197
23302
  exports.useLocale = useLocale;