@mi-avalon/libs 0.0.6 → 0.0.8

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 (39) hide show
  1. package/dist/components/ItemsRow/index.d.ts +43 -0
  2. package/dist/components/MBreadcrumb/index.d.ts +18 -0
  3. package/dist/components/MDescriptions/index.d.ts +65 -0
  4. package/dist/components/MForm/MFormItemConst.d.ts +27 -0
  5. package/dist/components/MForm/index.d.ts +10 -0
  6. package/dist/components/MForm/type.d.ts +184 -0
  7. package/dist/components/MSearch/index.d.ts +27 -0
  8. package/dist/components/MTable/index.d.ts +12 -0
  9. package/dist/components/MiModal/index.d.ts +16 -0
  10. package/dist/components/ThemeContext/CompThemeProvider.d.ts +9 -0
  11. package/dist/components/ThemeContext/index.d.ts +8 -0
  12. package/dist/components/index.d.ts +9 -0
  13. package/dist/hooks/index.d.ts +7 -0
  14. package/dist/hooks/useFuncRequest.d.ts +16 -0
  15. package/dist/hooks/useInterval.d.ts +8 -0
  16. package/dist/hooks/usePagination.d.ts +42 -0
  17. package/dist/hooks/useQuery.d.ts +3 -0
  18. package/dist/hooks/useReactive.d.ts +2 -0
  19. package/dist/hooks/useTimeout.d.ts +8 -0
  20. package/dist/hooks/useVirtualList.d.ts +74 -0
  21. package/dist/index.d.ts +2 -0
  22. package/dist/libs.cjs.development.js +1534 -62
  23. package/dist/libs.cjs.development.js.map +1 -1
  24. package/dist/libs.cjs.production.min.js +1 -1
  25. package/dist/libs.cjs.production.min.js.map +1 -1
  26. package/dist/libs.esm.js +1518 -63
  27. package/dist/libs.esm.js.map +1 -1
  28. package/package.json +19 -7
  29. package/src/constants/date.ts +0 -11
  30. package/src/constants/index.ts +0 -3
  31. package/src/constants/pageInfo.ts +0 -1
  32. package/src/constants/pattern.ts +0 -53
  33. package/src/index.tsx +0 -4
  34. package/src/utils/calc.ts +0 -92
  35. package/src/utils/index.ts +0 -5
  36. package/src/utils/nextTick.ts +0 -89
  37. package/src/utils/openModal.tsx +0 -137
  38. package/src/utils/util.ts +0 -37
  39. package/src/utils/version.ts +0 -206
package/dist/libs.esm.js CHANGED
@@ -1,65 +1,8 @@
1
- import React from 'react';
1
+ import { theme, ConfigProvider, Button, Affix, Card, Breadcrumb, Descriptions, Input, InputNumber, DatePicker, Select, Radio, Checkbox, Upload, Mentions, Cascader, TreeSelect, Slider, Form, Row, Col, Modal, Table } from 'antd';
2
+ import React__default, { useContext, createContext, createElement, useRef, useCallback, useEffect, Component, useState } from 'react';
2
3
  import { createRoot as createRoot$1 } from 'react-dom/client';
3
-
4
- var DATE_FORMAT = {
5
- YMD_Hms: 'YYYY-MM-DD HH:mm:ss',
6
- YMD: 'YYYY-MM-DD',
7
- YMD2: 'YYYYMMDD',
8
- YMD_POINT: 'YYYY.M.DD',
9
- Hms: 'HH:mm:ss',
10
- Hm: 'HH:mm',
11
- YMD_000: 'YYYY-MM-DD 00:00:00',
12
- YMD_end: 'YYYY-MM-DD 23:59:59',
13
- YMD_Hm: 'YYYYMMDD HHmm'
14
- };
15
-
16
- var PAGE_SIZE = 10;
17
-
18
- var PatternType = function PatternType() {};
19
- // 整数
20
- PatternType.integerRegex = /^-?\d+$/;
21
- // 正整数
22
- PatternType.positiveIntegerRegex = /^[1-9]\d*$/;
23
- // 负整数
24
- PatternType.negativeIntegerRegex = /^-[1-9]\d*$/;
25
- // 浮点数
26
- PatternType.floatRegex = /^-?\d+(\.\d+)?$/;
27
- // 字母
28
- PatternType.letter = /^[a-zA-Z]+$/;
29
- // 汉字
30
- PatternType.chinese = /^[\u4e00-\u9fa5]+$/;
31
- // 数字
32
- PatternType.number = /^[0-9]*$/;
33
- // 用户名 字母开头,允许字母数字下划线,长度4-16
34
- PatternType.username = /^[a-zA-Z]\w{3,15}$/;
35
- // 强用户名 必须包含大小写字母和数字,6-20位
36
- PatternType.strongUsername = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{6,20}$/;
37
- // 密码 至少8位,包含字母和数字
38
- PatternType.password = /^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$/;
39
- // 强密码 至少8位,包含大小写字母、数字和特殊字符
40
- PatternType.strongPassword = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$/;
41
- // 中国大陆的手机号
42
- PatternType.phone = /^1[3-9]\d{9}$/;
43
- // 带区号的手机号
44
- PatternType.phoneWithAreaCode = /^\+?\d{2,3}-?\d{8,11}$/;
45
- // 邮箱
46
- PatternType.email = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
47
- // 身份证
48
- PatternType.idCard = /^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/;
49
- // 银行卡
50
- PatternType.bankCard = /^[1-9]\d{3,30}$/;
51
- // 邮政编码
52
- PatternType.zipCode = /^[1-9]\d{5}$/;
53
- // IP
54
- PatternType.ip = /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/;
55
- // URL
56
- PatternType.url = /^(https?:\/\/)?([\da-z.-]+)\.([a-z.]{2,6})([/\w .-]*)*\/?$/;
57
- // 车牌
58
- PatternType.carNumber = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-HJ-NP-Z][A-HJ-NP-Z0-9]{4,5}[A-HJ-NP-Z0-9挂学警港澳]$/;
59
- // 时间 hh:mm:ss
60
- PatternType.time = /^([0-1][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$/;
61
- // 日期 YYYY-MM-DD
62
- PatternType.date = /^(\d{4})-(\d{2})-(\d{2})$/;
4
+ import { UploadOutlined, CaretUpOutlined, CaretDownOutlined } from '@ant-design/icons';
5
+ import { debounce } from 'lodash-es';
63
6
 
64
7
  var CMX = function CMX() {
65
8
  /**
@@ -155,6 +98,31 @@ function _arrayLikeToArray(r, a) {
155
98
  for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
156
99
  return n;
157
100
  }
101
+ function asyncGeneratorStep(n, t, e, r, o, a, c) {
102
+ try {
103
+ var i = n[a](c),
104
+ u = i.value;
105
+ } catch (n) {
106
+ return void e(n);
107
+ }
108
+ i.done ? t(u) : Promise.resolve(u).then(r, o);
109
+ }
110
+ function _asyncToGenerator(n) {
111
+ return function () {
112
+ var t = this,
113
+ e = arguments;
114
+ return new Promise(function (r, o) {
115
+ var a = n.apply(t, e);
116
+ function _next(n) {
117
+ asyncGeneratorStep(a, r, o, _next, _throw, "next", n);
118
+ }
119
+ function _throw(n) {
120
+ asyncGeneratorStep(a, r, o, _next, _throw, "throw", n);
121
+ }
122
+ _next(void 0);
123
+ });
124
+ };
125
+ }
158
126
  function _defineProperties(e, r) {
159
127
  for (var t = 0; t < r.length; t++) {
160
128
  var o = r[t];
@@ -192,6 +160,124 @@ function _extends() {
192
160
  return n;
193
161
  }, _extends.apply(null, arguments);
194
162
  }
163
+ function _inheritsLoose(t, o) {
164
+ t.prototype = Object.create(o.prototype), t.prototype.constructor = t, _setPrototypeOf(t, o);
165
+ }
166
+ function _regenerator() {
167
+ /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
168
+ var e,
169
+ t,
170
+ r = "function" == typeof Symbol ? Symbol : {},
171
+ n = r.iterator || "@@iterator",
172
+ o = r.toStringTag || "@@toStringTag";
173
+ function i(r, n, o, i) {
174
+ var c = n && n.prototype instanceof Generator ? n : Generator,
175
+ u = Object.create(c.prototype);
176
+ return _regeneratorDefine(u, "_invoke", function (r, n, o) {
177
+ var i,
178
+ c,
179
+ u,
180
+ f = 0,
181
+ p = o || [],
182
+ y = !1,
183
+ G = {
184
+ p: 0,
185
+ n: 0,
186
+ v: e,
187
+ a: d,
188
+ f: d.bind(e, 4),
189
+ d: function (t, r) {
190
+ return i = t, c = 0, u = e, G.n = r, a;
191
+ }
192
+ };
193
+ function d(r, n) {
194
+ for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) {
195
+ var o,
196
+ i = p[t],
197
+ d = G.p,
198
+ l = i[2];
199
+ r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0));
200
+ }
201
+ if (o || r > 1) return a;
202
+ throw y = !0, n;
203
+ }
204
+ return function (o, p, l) {
205
+ if (f > 1) throw TypeError("Generator is already running");
206
+ for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) {
207
+ i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u);
208
+ try {
209
+ if (f = 2, i) {
210
+ if (c || (o = "next"), t = i[o]) {
211
+ if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object");
212
+ if (!t.done) return t;
213
+ u = t.value, c < 2 && (c = 0);
214
+ } else 1 === c && (t = i.return) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1);
215
+ i = e;
216
+ } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break;
217
+ } catch (t) {
218
+ i = e, c = 1, u = t;
219
+ } finally {
220
+ f = 1;
221
+ }
222
+ }
223
+ return {
224
+ value: t,
225
+ done: y
226
+ };
227
+ };
228
+ }(r, o, i), !0), u;
229
+ }
230
+ var a = {};
231
+ function Generator() {}
232
+ function GeneratorFunction() {}
233
+ function GeneratorFunctionPrototype() {}
234
+ t = Object.getPrototypeOf;
235
+ var c = [][n] ? t(t([][n]())) : (_regeneratorDefine(t = {}, n, function () {
236
+ return this;
237
+ }), t),
238
+ u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c);
239
+ function f(e) {
240
+ return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e;
241
+ }
242
+ return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine(u), _regeneratorDefine(u, o, "Generator"), _regeneratorDefine(u, n, function () {
243
+ return this;
244
+ }), _regeneratorDefine(u, "toString", function () {
245
+ return "[object Generator]";
246
+ }), (_regenerator = function () {
247
+ return {
248
+ w: i,
249
+ m: f
250
+ };
251
+ })();
252
+ }
253
+ function _regeneratorDefine(e, r, n, t) {
254
+ var i = Object.defineProperty;
255
+ try {
256
+ i({}, "", {});
257
+ } catch (e) {
258
+ i = 0;
259
+ }
260
+ _regeneratorDefine = function (e, r, n, t) {
261
+ if (r) i ? i(e, r, {
262
+ value: n,
263
+ enumerable: !t,
264
+ configurable: !t,
265
+ writable: !t
266
+ }) : e[r] = n;else {
267
+ function o(r, n) {
268
+ _regeneratorDefine(e, r, function (e) {
269
+ return this._invoke(r, n, e);
270
+ });
271
+ }
272
+ o("next", 0), o("throw", 1), o("return", 2);
273
+ }
274
+ }, _regeneratorDefine(e, r, n, t);
275
+ }
276
+ function _setPrototypeOf(t, e) {
277
+ return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {
278
+ return t.__proto__ = e, t;
279
+ }, _setPrototypeOf(t, e);
280
+ }
195
281
  function _toPrimitive(t, r) {
196
282
  if ("object" != typeof t || !t) return t;
197
283
  var e = t[Symbol.toPrimitive];
@@ -345,7 +431,7 @@ function openModal(DialogComponent, initialConfig) {
345
431
  };
346
432
  var render = function render(props) {
347
433
  if (root) {
348
- root.render(React.createElement(DialogComponent, Object.assign({}, props)));
434
+ root.render(React__default.createElement(DialogComponent, Object.assign({}, props)));
349
435
  }
350
436
  };
351
437
  var update = function update(configUpdate) {
@@ -601,5 +687,1374 @@ var VersionUtil = /*#__PURE__*/function () {
601
687
  return VersionUtil;
602
688
  }();
603
689
 
604
- export { DATE_FORMAT, NextTick, PAGE_SIZE, PatternType, VersionUtil, cmx, getClassName, getFieldsByPath, nextTick, noop, openModal, removeNull };
690
+ var ThemeContext = /*#__PURE__*/createContext({
691
+ theme: {
692
+ cssVar: true,
693
+ algorithm: [theme.defaultAlgorithm]
694
+ }
695
+ });
696
+ var MiThemeProvider = ThemeContext.Provider;
697
+ function useMiThemeConfig() {
698
+ return useContext(ThemeContext);
699
+ }
700
+
701
+ /**
702
+ * CompThemeProvider
703
+ */
704
+ function CompThemeProvider(props) {
705
+ var _useMiThemeConfig = useMiThemeConfig(),
706
+ theme = _useMiThemeConfig.theme;
707
+ return React__default.createElement(ConfigProvider, {
708
+ theme: theme
709
+ }, props.children);
710
+ }
711
+ CompThemeProvider.displayName = 'CompThemeProvider';
712
+
713
+ var classname = function classname(n) {
714
+ if (n === void 0) {
715
+ n = '';
716
+ }
717
+ var cn = 'items-row';
718
+ return getClassName(cn, n);
719
+ };
720
+ var ItemsRow = function ItemsRow(props) {
721
+ if (!props.items) {
722
+ return null;
723
+ }
724
+ return createElement(CompThemeProvider, null, createElement("div", {
725
+ className: classname() + " " + (props.className || ''),
726
+ style: props.style
727
+ }, (props.items || []).map(function (item, index) {
728
+ var className = classname('item') + " " + item.className;
729
+ if (item.render) {
730
+ return createElement("span", {
731
+ key: index,
732
+ className: className
733
+ }, item.render());
734
+ }
735
+ return createElement(Button, Object.assign({
736
+ key: item.label,
737
+ className: className
738
+ }, item.btnProps, {
739
+ type: item.type || 'primary',
740
+ onClick: item.onClick
741
+ }), item.label);
742
+ })));
743
+ };
744
+
745
+ function styleInject(css, ref) {
746
+ if ( ref === void 0 ) ref = {};
747
+ var insertAt = ref.insertAt;
748
+
749
+ if (!css || typeof document === 'undefined') { return; }
750
+
751
+ var head = document.head || document.getElementsByTagName('head')[0];
752
+ var style = document.createElement('style');
753
+ style.type = 'text/css';
754
+
755
+ if (insertAt === 'top') {
756
+ if (head.firstChild) {
757
+ head.insertBefore(style, head.firstChild);
758
+ } else {
759
+ head.appendChild(style);
760
+ }
761
+ } else {
762
+ head.appendChild(style);
763
+ }
764
+
765
+ if (style.styleSheet) {
766
+ style.styleSheet.cssText = css;
767
+ } else {
768
+ style.appendChild(document.createTextNode(css));
769
+ }
770
+ }
771
+
772
+ var css_248z = "@keyframes m-breadcrumb_show_ani {\n 0% {\n opacity: 0;\n }\n 100% {\n opacity: 100;\n }\n}\n.m-breadcrumb {\n position: relative;\n height: 64px;\n width: 100%;\n}\n.m-breadcrumb-container {\n transition: padding 0.3s ease;\n}\n.m-breadcrumb-body {\n border-radius: 8px;\n height: 64px;\n line-height: 64px;\n}\n.m-breadcrumb .ant-card-body {\n width: 100%;\n padding: 0 12px;\n align-items: center;\n}\n.m-breadcrumb .ant-affix {\n z-index: 999;\n}\n.ant-affix > .m-breadcrumb-container {\n z-index: 100;\n width: auto;\n box-shadow: 0 6px 16px 0 rgba(0, 0, 0, 0.08), 0 3px 6px -4px rgba(0, 0, 0, 0.12), 0 9px 28px 8px rgba(0, 0, 0, 0.05);\n}\n.m-breadcrumb-inner-breadcrumb {\n display: inline-block;\n vertical-align: middle;\n line-height: 64px;\n}\n.m-breadcrumb-inner-breadcrumb .ant-breadcrumb-separator {\n margin: 0 8px;\n}\n.m-breadcrumb-inner-breadcrumb .ant-breadcrumb-link > a {\n transition: all 0.3s;\n padding: 4px 8px;\n display: inline-block;\n line-height: 1.5;\n}\n.m-breadcrumb-inner-breadcrumb .ant-breadcrumb-link > a:hover {\n font-weight: bold;\n text-decoration: none;\n opacity: 0.8;\n}\n.m-breadcrumb-custom-item-wrapper {\n float: right;\n height: 100%;\n display: flex;\n align-items: center;\n}";
773
+ styleInject(css_248z);
774
+
775
+ var classname$1 = function classname(n) {
776
+ if (n === void 0) {
777
+ n = '';
778
+ }
779
+ var cn = 'm-breadcrumb';
780
+ return getClassName(cn, n);
781
+ };
782
+ var MBreadcrumb = function MBreadcrumb(props) {
783
+ var routes = props.routes,
784
+ customItems = props.customItems,
785
+ style = props.style,
786
+ className = props.className,
787
+ _props$offsetTop = props.offsetTop,
788
+ offsetTop = _props$offsetTop === void 0 ? 64 : _props$offsetTop,
789
+ mainAppBaseUrl = props.mainAppBaseUrl,
790
+ microAppName = props.microAppName;
791
+ var affixRef = useRef(null);
792
+ var onScroll = useCallback(function () {
793
+ var _affixRef$current;
794
+ (_affixRef$current = affixRef.current) == null || _affixRef$current.updatePosition == null || _affixRef$current.updatePosition();
795
+ }, []);
796
+ useEffect(function () {
797
+ window.addEventListener('scroll', onScroll, true);
798
+ return function () {
799
+ return window.removeEventListener('scroll', onScroll);
800
+ };
801
+ }, [onScroll]);
802
+ var getUrl = useCallback(function (url) {
803
+ if (!url) return '';
804
+ var cleanedUrl = url.replace(/^\/+/, '');
805
+ var parts = [mainAppBaseUrl == null ? void 0 : mainAppBaseUrl.replace(/\/+$/, ''), microAppName == null ? void 0 : microAppName.replace(/\/+$/, ''), cleanedUrl].filter(Boolean);
806
+ return "/" + parts.join('/');
807
+ }, [mainAppBaseUrl, microAppName]);
808
+ return createElement(CompThemeProvider, null, createElement("div", {
809
+ className: classname$1() + " " + (className || ''),
810
+ style: style
811
+ }, createElement(Affix, {
812
+ ref: affixRef,
813
+ offsetTop: offsetTop
814
+ }, createElement(Card, {
815
+ className: classname$1('container'),
816
+ rootClassName: classname$1('body'),
817
+ variant: "borderless"
818
+ }, createElement(Breadcrumb, {
819
+ className: classname$1('inner-breadcrumb'),
820
+ style: {
821
+ fontSize: '18px'
822
+ }
823
+ }, routes == null ? void 0 : routes.map(function (v) {
824
+ return createElement(Breadcrumb.Item, {
825
+ key: v.url || v.name
826
+ }, v.url ? createElement("a", {
827
+ href: "#" + getUrl(v.url)
828
+ }, v.name) : v.name);
829
+ })), createElement("div", {
830
+ className: classname$1('custom-item-wrapper')
831
+ }, createElement(ItemsRow, {
832
+ items: customItems
833
+ }))))));
834
+ };
835
+
836
+ var DetailDescriptions = function DetailDescriptions(props) {
837
+ var data = props.data,
838
+ title = props.title,
839
+ _props$column = props.column,
840
+ column = _props$column === void 0 ? 3 : _props$column,
841
+ lineHeight = props.lineHeight,
842
+ _props$align = props.align,
843
+ align = _props$align === void 0 ? 'left' : _props$align,
844
+ itemLayout = props.itemLayout,
845
+ _props$colon = props.colon,
846
+ colon = _props$colon === void 0 ? true : _props$colon,
847
+ _props$bordered = props.bordered,
848
+ bordered = _props$bordered === void 0 ? false : _props$bordered,
849
+ style = props.style,
850
+ className = props.className,
851
+ labelStyle = props.labelStyle,
852
+ contentStyle = props.contentStyle;
853
+ // 合并样式
854
+ var mergedLabelStyle = _extends({}, lineHeight ? {
855
+ lineHeight: lineHeight + "px"
856
+ } : {}, {
857
+ textAlign: align
858
+ }, itemLayout != null && itemLayout.label ? {
859
+ width: itemLayout.label + "px"
860
+ } : {}, labelStyle);
861
+ var mergedContentStyle = _extends({}, lineHeight ? {
862
+ lineHeight: lineHeight + "px"
863
+ } : {}, itemLayout != null && itemLayout.value ? {
864
+ width: itemLayout.value + "px"
865
+ } : {}, contentStyle);
866
+ return React__default.createElement(CompThemeProvider, null, React__default.createElement(Descriptions, {
867
+ title: title,
868
+ column: column,
869
+ colon: colon,
870
+ bordered: bordered,
871
+ style: style,
872
+ className: className,
873
+ labelStyle: mergedLabelStyle,
874
+ contentStyle: mergedContentStyle
875
+ }, data.map(function (item, index) {
876
+ var _item$label;
877
+ return React__default.createElement(Descriptions.Item, {
878
+ label: item.label,
879
+ key: ((_item$label = item.label) == null ? void 0 : _item$label.toString()) || index,
880
+ span: item.span
881
+ }, item.value || '-');
882
+ })));
883
+ };
884
+ DetailDescriptions.displayName = 'DetailDescriptions';
885
+
886
+ var css_248z$1 = ".m-form-item-wrapper {\n max-width: 480px;\n}\n.m-form .error-message {\n color: red;\n font-size: 12px;\n margin-top: 4px;\n}";
887
+ styleInject(css_248z$1);
888
+
889
+ var MFormItemTypeEnum;
890
+ (function (MFormItemTypeEnum) {
891
+ MFormItemTypeEnum["Input"] = "input";
892
+ MFormItemTypeEnum["InputNumber"] = "inputNumber";
893
+ MFormItemTypeEnum["Text"] = "text";
894
+ MFormItemTypeEnum["Password"] = "password";
895
+ MFormItemTypeEnum["Radio"] = "radio";
896
+ MFormItemTypeEnum["Select"] = "select";
897
+ MFormItemTypeEnum["Checkbox"] = "checkbox";
898
+ MFormItemTypeEnum["DatePicker"] = "datePicker";
899
+ MFormItemTypeEnum["RangePicker"] = "rangePicker";
900
+ MFormItemTypeEnum["Upload"] = "upload";
901
+ MFormItemTypeEnum["Mentions"] = "mentions";
902
+ MFormItemTypeEnum["Cascader"] = "cascader";
903
+ MFormItemTypeEnum["TreeSelect"] = "treeSelect";
904
+ MFormItemTypeEnum["Slider"] = "slider";
905
+ })(MFormItemTypeEnum || (MFormItemTypeEnum = {}));
906
+
907
+ var RangePicker = DatePicker.RangePicker;
908
+ var MFormItemConst = /*#__PURE__*/function () {
909
+ function MFormItemConst() {}
910
+ MFormItemConst.getDefaultArrayPlaceholder = function getDefaultArrayPlaceholder(item) {
911
+ var placeholder;
912
+ switch (item.type) {
913
+ case 'rangePicker':
914
+ placeholder = ['开始时间', '结束时间'];
915
+ break;
916
+ }
917
+ return placeholder;
918
+ };
919
+ MFormItemConst.getDefaultPlaceholder = function getDefaultPlaceholder(item) {
920
+ var placeholder;
921
+ switch (item.type) {
922
+ case MFormItemTypeEnum.Input:
923
+ case MFormItemTypeEnum.Password:
924
+ case MFormItemTypeEnum.InputNumber:
925
+ case MFormItemTypeEnum.Text:
926
+ case MFormItemTypeEnum.Mentions:
927
+ placeholder = "\u8BF7\u8F93\u5165" + item.label;
928
+ break;
929
+ case MFormItemTypeEnum.Select:
930
+ case MFormItemTypeEnum.Checkbox:
931
+ case MFormItemTypeEnum.Radio:
932
+ case MFormItemTypeEnum.DatePicker:
933
+ case MFormItemTypeEnum.RangePicker:
934
+ case MFormItemTypeEnum.Cascader:
935
+ case MFormItemTypeEnum.Upload:
936
+ case MFormItemTypeEnum.TreeSelect:
937
+ placeholder = "\u8BF7\u9009\u62E9" + item.label;
938
+ break;
939
+ }
940
+ return placeholder;
941
+ };
942
+ return MFormItemConst;
943
+ }();
944
+ MFormItemConst.labelCol = {
945
+ span: 7
946
+ };
947
+ MFormItemConst.wrapperCol = {
948
+ span: 17
949
+ };
950
+ MFormItemConst.defaultRowGutter = 24;
951
+ MFormItemConst.input = function (item) {
952
+ return React__default.createElement(Input, Object.assign({
953
+ disabled: item.disabled,
954
+ maxLength: item.maxLength
955
+ }, item.props, {
956
+ placeholder: item.placeholder || MFormItemConst.getDefaultPlaceholder(item)
957
+ }));
958
+ };
959
+ MFormItemConst.password = function (item) {
960
+ return React__default.createElement(Input.Password, Object.assign({
961
+ disabled: item.disabled
962
+ }, item.props, {
963
+ placeholder: item.placeholder || MFormItemConst.getDefaultPlaceholder(item)
964
+ }));
965
+ };
966
+ MFormItemConst.text = function (item) {
967
+ return React__default.createElement(Input.TextArea, Object.assign({
968
+ disabled: item.disabled,
969
+ maxLength: item.maxLength
970
+ }, item.props, {
971
+ placeholder: item.placeholder || MFormItemConst.getDefaultPlaceholder(item)
972
+ }));
973
+ };
974
+ MFormItemConst.inputNumber = function (item) {
975
+ return React__default.createElement(InputNumber, Object.assign({
976
+ disabled: item.disabled,
977
+ maxLength: item.maxLength
978
+ }, item.props, {
979
+ placeholder: item.placeholder || MFormItemConst.getDefaultPlaceholder(item)
980
+ }));
981
+ };
982
+ MFormItemConst.datePicker = function (item) {
983
+ return React__default.createElement(DatePicker, Object.assign({
984
+ disabled: item.disabled
985
+ }, item.props, {
986
+ placeholder: item.placeholder || MFormItemConst.getDefaultPlaceholder(item)
987
+ }));
988
+ };
989
+ MFormItemConst.rangePicker = function (item) {
990
+ return React__default.createElement(RangePicker, Object.assign({
991
+ disabled: item.disabled
992
+ }, item.props, {
993
+ placeholder: item.placeholder || MFormItemConst.getDefaultArrayPlaceholder(item)
994
+ }));
995
+ };
996
+ MFormItemConst.select = function (item) {
997
+ return React__default.createElement(Select, Object.assign({}, item.props, {
998
+ disabled: item.disabled,
999
+ placeholder: item.placeholder || MFormItemConst.getDefaultPlaceholder(item)
1000
+ }));
1001
+ };
1002
+ MFormItemConst.radio = function (item) {
1003
+ return React__default.createElement(Radio.Group, Object.assign({
1004
+ disabled: item.disabled
1005
+ }, item.props));
1006
+ };
1007
+ MFormItemConst.checkbox = function (item) {
1008
+ return React__default.createElement(Checkbox.Group, Object.assign({
1009
+ disabled: item.disabled
1010
+ }, item.props));
1011
+ };
1012
+ MFormItemConst.upload = function (item) {
1013
+ return React__default.createElement(Upload, Object.assign({
1014
+ defaultFileList: item.initialValue
1015
+ }, item.props), item.children || React__default.createElement(Button, null, React__default.createElement(UploadOutlined, null), " \u70B9\u51FB\u4E0A\u4F20"));
1016
+ };
1017
+ MFormItemConst.mentions = function (item) {
1018
+ return React__default.createElement(Mentions, Object.assign({}, item.props, {
1019
+ placeholder: item.placeholder || MFormItemConst.getDefaultPlaceholder(item)
1020
+ }));
1021
+ };
1022
+ MFormItemConst.cascader = function (item) {
1023
+ return React__default.createElement(Cascader, Object.assign({}, item.props, {
1024
+ placeholder: item.placeholder || MFormItemConst.getDefaultPlaceholder(item)
1025
+ }));
1026
+ };
1027
+ MFormItemConst.treeSelect = function (item) {
1028
+ return React__default.createElement(TreeSelect, Object.assign({}, item.props, {
1029
+ placeholder: item.placeholder || MFormItemConst.getDefaultPlaceholder(item)
1030
+ }));
1031
+ };
1032
+ MFormItemConst.slider = function (item) {
1033
+ return React__default.createElement(Slider, Object.assign({}, item.props));
1034
+ };
1035
+
1036
+ var classname$2 = function classname(n) {
1037
+ if (n === void 0) {
1038
+ n = '';
1039
+ }
1040
+ var cn = 'm-form';
1041
+ return getClassName(cn, n);
1042
+ };
1043
+ function MForm(props) {
1044
+ var formProps = props.formProps,
1045
+ _props$formItems = props.formItems,
1046
+ formItems = _props$formItems === void 0 ? [] : _props$formItems,
1047
+ _props$column = props.column,
1048
+ column = _props$column === void 0 ? 1 : _props$column,
1049
+ form = props.form,
1050
+ itemLayout = props.itemLayout,
1051
+ formRowProps = props.formRowProps;
1052
+ var renderItem = function renderItem(item, form) {
1053
+ if (item.render) {
1054
+ return item.render(form);
1055
+ }
1056
+ var func = MFormItemConst[item.type];
1057
+ if (item && item.type && func) {
1058
+ var renderFunc = func;
1059
+ return renderFunc(item);
1060
+ }
1061
+ return React__default.createElement("div", {
1062
+ className: "error-message"
1063
+ }, "Invalid form item configuration");
1064
+ };
1065
+ var renderFormItem = function renderFormItem(item) {
1066
+ var _item$show = item.show,
1067
+ show = _item$show === void 0 ? true : _item$show;
1068
+ if (!show) return null;
1069
+ var rules = [].concat(item.rules || []);
1070
+ if (item.required) {
1071
+ rules.push({
1072
+ required: true,
1073
+ message: item.required
1074
+ });
1075
+ }
1076
+ var formItemLayout = _extends({
1077
+ labelCol: MFormItemConst.labelCol,
1078
+ wrapperCol: MFormItemConst.wrapperCol
1079
+ }, itemLayout, item.itemLayout);
1080
+ return React__default.createElement(Col, {
1081
+ key: "col-" + item.id,
1082
+ span: item.span || 24 / column
1083
+ }, React__default.createElement("div", {
1084
+ className: classname$2('item-wrapper')
1085
+ }, React__default.createElement(Form.Item, Object.assign({
1086
+ label: item.label,
1087
+ name: item.id,
1088
+ rules: rules,
1089
+ initialValue: item.initialValue
1090
+ }, formItemLayout, item.formItemProps), renderItem(item, form))));
1091
+ };
1092
+ return React__default.createElement(CompThemeProvider, null, React__default.createElement(Form, Object.assign({
1093
+ form: form
1094
+ }, formProps, {
1095
+ className: classname$2() + " " + (formProps == null ? void 0 : formProps.className)
1096
+ }), React__default.createElement(Row, Object.assign({
1097
+ gutter: MFormItemConst.defaultRowGutter
1098
+ }, formRowProps, {
1099
+ className: classname$2('grid') + " " + (formRowProps == null ? void 0 : formRowProps.className)
1100
+ }), formItems.map(function (e) {
1101
+ return renderFormItem(e);
1102
+ }))));
1103
+ }
1104
+ MForm.displayName = 'MForm';
1105
+
1106
+ // 全局状态管理
1107
+ var globalMode = 'default';
1108
+ var modalInstances = [];
1109
+ var getThemeConfig = function getThemeConfig(mode) {
1110
+ switch (mode) {
1111
+ case 'light':
1112
+ return {
1113
+ algorithm: [theme.defaultAlgorithm]
1114
+ };
1115
+ case 'dark':
1116
+ return {
1117
+ algorithm: [theme.darkAlgorithm]
1118
+ };
1119
+ default:
1120
+ return {
1121
+ algorithm: [theme.defaultAlgorithm]
1122
+ };
1123
+ }
1124
+ };
1125
+ var MiModal = /*#__PURE__*/function (_Component) {
1126
+ function MiModal() {
1127
+ var _this;
1128
+ _this = _Component.apply(this, arguments) || this;
1129
+ _this.handleCancel = function (e) {
1130
+ _this.props.onCancel == null || _this.props.onCancel(e);
1131
+ _this.props.onClosed == null || _this.props.onClosed({
1132
+ cancel: true
1133
+ });
1134
+ };
1135
+ _this.handleOk = function (e) {
1136
+ _this.props.onOk == null || _this.props.onOk(e);
1137
+ _this.props.onClosed == null || _this.props.onClosed({
1138
+ ok: true
1139
+ });
1140
+ };
1141
+ return _this;
1142
+ }
1143
+ _inheritsLoose(MiModal, _Component);
1144
+ var _proto = MiModal.prototype;
1145
+ _proto.getTheme = function getTheme() {
1146
+ var mode = this.props.mode || globalMode;
1147
+ return getThemeConfig(mode);
1148
+ };
1149
+ _proto.render = function render() {
1150
+ return React__default.createElement(ConfigProvider, {
1151
+ theme: this.getTheme(),
1152
+ componentSize: "middle",
1153
+ componentDisabled: false
1154
+ }, React__default.createElement(Modal, Object.assign({
1155
+ maskClosable: false,
1156
+ open: this.props.open,
1157
+ onCancel: this.handleCancel,
1158
+ onOk: this.handleOk,
1159
+ okText: "\u786E\u5B9A",
1160
+ cancelText: "\u53D6\u6D88"
1161
+ }, this.props), this.props.children));
1162
+ };
1163
+ return MiModal;
1164
+ }(Component); // 静态方法设置全局模式并更新所有弹窗
1165
+ MiModal.setMode = function (mode) {
1166
+ globalMode = mode;
1167
+ // 更新所有已打开的弹窗
1168
+ modalInstances.forEach(function (instance) {
1169
+ instance.update({
1170
+ mode: mode
1171
+ });
1172
+ });
1173
+ };
1174
+ // 静态方法设置全局ThemeConfig
1175
+ MiModal.setThemeConfig = function (fn) {
1176
+ getThemeConfig = fn;
1177
+ };
1178
+ MiModal.open = function (props) {
1179
+ var instance = openModal(MiModal, _extends({
1180
+ mode: globalMode
1181
+ }, props));
1182
+ // 注册实例以便全局更新
1183
+ modalInstances.push(instance);
1184
+ // 添加销毁时的清理逻辑
1185
+ var originalDestroy = instance.destroy;
1186
+ instance.destroy = function () {
1187
+ var index = modalInstances.indexOf(instance);
1188
+ if (index !== -1) {
1189
+ modalInstances.splice(index, 1);
1190
+ }
1191
+ return originalDestroy.apply(void 0, arguments);
1192
+ };
1193
+ return instance;
1194
+ };
1195
+
1196
+ var css_248z$2 = ".m-search {\n position: relative;\n border-radius: 8px;\n}\n.m-search .ant-card {\n margin: 0;\n padding: 16px 0;\n}\n.m-search .ant-card .ant-card-body {\n padding: 0;\n border-radius: 0;\n}\n.m-search-form {\n position: relative;\n margin-right: 20px;\n}\n.m-search-btn-wrapper {\n display: inline-block;\n}\n.m-search-collapsed .m-search-btn-wrapper {\n position: absolute;\n right: 0px;\n top: 0;\n display: flex;\n height: 100%;\n align-items: center;\n}\n.m-search .ant-form-item {\n margin-bottom: 10px;\n}\n.m-search-collapsed .ant-form-item {\n margin-bottom: 0;\n}\n.m-search-footer {\n text-align: right;\n padding: 10px 20px;\n}\n.m-search-btn {\n margin-left: 10px;\n}\n.m-search-btn-collapse {\n display: inline-block;\n cursor: pointer;\n}\n.m-search .ant-calendar-picker {\n width: auto !important;\n}";
1197
+ styleInject(css_248z$2);
1198
+
1199
+ var ENTER_KEY_CODE = 13; // 回车键的值为13
1200
+ var classname$3 = function classname(n) {
1201
+ if (n === void 0) {
1202
+ n = '';
1203
+ }
1204
+ var cn = 'm-search';
1205
+ return getClassName(cn, n);
1206
+ };
1207
+ var MSearch = function MSearch(props) {
1208
+ var className = props.className,
1209
+ _props$searchItems = props.searchItems,
1210
+ searchItems = _props$searchItems === void 0 ? [] : _props$searchItems,
1211
+ onSearch = props.onSearch,
1212
+ _props$defaultShowAll = props.defaultShowAll,
1213
+ defaultShowAll = _props$defaultShowAll === void 0 ? false : _props$defaultShowAll,
1214
+ _props$customButtons = props.customButtons,
1215
+ customButtons = _props$customButtons === void 0 ? [] : _props$customButtons,
1216
+ propsForm = props.form;
1217
+ var _useState = useState(defaultShowAll),
1218
+ showAll = _useState[0],
1219
+ setShowAll = _useState[1];
1220
+ var _Form$useForm = Form.useForm(),
1221
+ curForm = _Form$useForm[0];
1222
+ var searchWrap = useRef(null);
1223
+ var form = propsForm != null ? propsForm : curForm;
1224
+ // 键盘按下事件处理
1225
+ var onEnterKeySearch = function onEnterKeySearch(keyObj) {
1226
+ var keyCode = keyObj.keyCode;
1227
+ if (keyCode === ENTER_KEY_CODE) {
1228
+ search();
1229
+ }
1230
+ };
1231
+ // 添加和移除事件监听
1232
+ useEffect(function () {
1233
+ var currentWrap = searchWrap.current;
1234
+ currentWrap == null || currentWrap.addEventListener('keydown', onEnterKeySearch);
1235
+ return function () {
1236
+ currentWrap == null || currentWrap.removeEventListener('keydown', onEnterKeySearch);
1237
+ };
1238
+ }, []);
1239
+ // 重置表单
1240
+ var reset = function reset() {
1241
+ form == null || form.resetFields();
1242
+ search(true);
1243
+ };
1244
+ // 搜索函数
1245
+ var search = function search(isReset) {
1246
+ if (isReset === void 0) {
1247
+ isReset = false;
1248
+ }
1249
+ form == null || form.validateFields().then(function (values) {
1250
+ removeNull(values);
1251
+ onSearch == null || onSearch(values, isReset);
1252
+ });
1253
+ };
1254
+ // 渲染搜索按钮
1255
+ var renderSearchButtons = function renderSearchButtons() {
1256
+ var hasMore = searchItems.length > 2;
1257
+ return React__default.createElement("div", {
1258
+ className: classname$3('btn-wrapper')
1259
+ }, (customButtons == null ? void 0 : customButtons.length) > 0 ? React__default.createElement(React__default.Fragment, null, customButtons.map(function (buttonProps, index) {
1260
+ return React__default.createElement(Button, Object.assign({
1261
+ key: "custom-btn-" + index,
1262
+ className: classname$3('btn')
1263
+ }, buttonProps), buttonProps.children);
1264
+ })) : React__default.createElement(React__default.Fragment, null, React__default.createElement(Button, {
1265
+ className: classname$3('btn btn-reset'),
1266
+ onClick: reset
1267
+ }, "\u91CD\u7F6E"), React__default.createElement(Button, {
1268
+ className: classname$3('btn btn-search'),
1269
+ onClick: function onClick() {
1270
+ return search();
1271
+ },
1272
+ type: "primary"
1273
+ }, "\u641C\u7D22")), hasMore && React__default.createElement("div", {
1274
+ className: classname$3('btn btn-collapse'),
1275
+ onClick: function onClick() {
1276
+ return setShowAll(!showAll);
1277
+ }
1278
+ }, React__default.createElement("span", null, showAll ? '收起' : '展开'), showAll ? React__default.createElement(CaretUpOutlined, null) : React__default.createElement(CaretDownOutlined, null)));
1279
+ };
1280
+ // 处理搜索项显示/隐藏
1281
+ var processedSearchItems = searchItems.map(function (item, idx) {
1282
+ var newItem = _extends({}, item);
1283
+ if (searchItems.length > 2 && idx >= 2 && !showAll) {
1284
+ var _item$formItemProps;
1285
+ newItem.formItemProps = _extends({}, item.formItemProps, {
1286
+ style: _extends({}, (_item$formItemProps = item.formItemProps) == null ? void 0 : _item$formItemProps.style, {
1287
+ display: 'none'
1288
+ })
1289
+ });
1290
+ }
1291
+ return newItem;
1292
+ });
1293
+ var hasMore = searchItems.length > 2;
1294
+ return React__default.createElement(CompThemeProvider, null, React__default.createElement("div", {
1295
+ className: classname$3('') + " " + (showAll ? '' : classname$3('collapsed')) + " " + (className || ''),
1296
+ ref: searchWrap
1297
+ }, React__default.createElement(Card, null, React__default.createElement("div", {
1298
+ className: classname$3('form')
1299
+ }, React__default.createElement(MForm, {
1300
+ form: form,
1301
+ formItems: processedSearchItems,
1302
+ column: 3
1303
+ }), (!hasMore || hasMore && !showAll) && renderSearchButtons()), hasMore && showAll && React__default.createElement("div", {
1304
+ className: classname$3('footer')
1305
+ }, renderSearchButtons()))));
1306
+ };
1307
+
1308
+ function MTable(props) {
1309
+ var _props$columns$map, _props$columns;
1310
+ var columns = (_props$columns$map = (_props$columns = props.columns) == null ? void 0 : _props$columns.map(function (e) {
1311
+ return _extends({}, e, {
1312
+ dataIndex: e.key
1313
+ });
1314
+ })) != null ? _props$columns$map : [];
1315
+ return React__default.createElement(CompThemeProvider, null, React__default.createElement(Table, Object.assign({
1316
+ rowKey: function rowKey(e) {
1317
+ return e.id;
1318
+ }
1319
+ }, props, {
1320
+ columns: columns
1321
+ })), ";");
1322
+ }
1323
+ MTable.displayName = 'MTable';
1324
+
1325
+ var DATE_FORMAT = {
1326
+ YMD_Hms: 'YYYY-MM-DD HH:mm:ss',
1327
+ YMD: 'YYYY-MM-DD',
1328
+ YMD2: 'YYYYMMDD',
1329
+ YMD_POINT: 'YYYY.M.DD',
1330
+ Hms: 'HH:mm:ss',
1331
+ Hm: 'HH:mm',
1332
+ YMD_000: 'YYYY-MM-DD 00:00:00',
1333
+ YMD_end: 'YYYY-MM-DD 23:59:59',
1334
+ YMD_Hm: 'YYYYMMDD HHmm'
1335
+ };
1336
+
1337
+ var PAGE_SIZE = 10;
1338
+
1339
+ var PatternType = function PatternType() {};
1340
+ // 整数
1341
+ PatternType.integerRegex = /^-?\d+$/;
1342
+ // 正整数
1343
+ PatternType.positiveIntegerRegex = /^[1-9]\d*$/;
1344
+ // 负整数
1345
+ PatternType.negativeIntegerRegex = /^-[1-9]\d*$/;
1346
+ // 浮点数
1347
+ PatternType.floatRegex = /^-?\d+(\.\d+)?$/;
1348
+ // 字母
1349
+ PatternType.letter = /^[a-zA-Z]+$/;
1350
+ // 汉字
1351
+ PatternType.chinese = /^[\u4e00-\u9fa5]+$/;
1352
+ // 数字
1353
+ PatternType.number = /^[0-9]*$/;
1354
+ // 用户名 字母开头,允许字母数字下划线,长度4-16
1355
+ PatternType.username = /^[a-zA-Z]\w{3,15}$/;
1356
+ // 强用户名 必须包含大小写字母和数字,6-20位
1357
+ PatternType.strongUsername = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{6,20}$/;
1358
+ // 密码 至少8位,包含字母和数字
1359
+ PatternType.password = /^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$/;
1360
+ // 强密码 至少8位,包含大小写字母、数字和特殊字符
1361
+ PatternType.strongPassword = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$/;
1362
+ // 中国大陆的手机号
1363
+ PatternType.phone = /^1[3-9]\d{9}$/;
1364
+ // 带区号的手机号
1365
+ PatternType.phoneWithAreaCode = /^\+?\d{2,3}-?\d{8,11}$/;
1366
+ // 邮箱
1367
+ PatternType.email = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
1368
+ // 身份证
1369
+ PatternType.idCard = /^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/;
1370
+ // 银行卡
1371
+ PatternType.bankCard = /^[1-9]\d{3,30}$/;
1372
+ // 邮政编码
1373
+ PatternType.zipCode = /^[1-9]\d{5}$/;
1374
+ // IP
1375
+ PatternType.ip = /^(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])\.(\d{1,2}|1\d\d|2[0-4]\d|25[0-5])$/;
1376
+ // URL
1377
+ PatternType.url = /^(https?:\/\/)?([\da-z.-]+)\.([a-z.]{2,6})([/\w .-]*)*\/?$/;
1378
+ // 车牌
1379
+ PatternType.carNumber = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-HJ-NP-Z][A-HJ-NP-Z0-9]{4,5}[A-HJ-NP-Z0-9挂学警港澳]$/;
1380
+ // 时间 hh:mm:ss
1381
+ PatternType.time = /^([0-1][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$/;
1382
+ // 日期 YYYY-MM-DD
1383
+ PatternType.date = /^(\d{4})-(\d{2})-(\d{2})$/;
1384
+
1385
+ function useFuncRequest(
1386
+ // 异步函数
1387
+ asyncFunc,
1388
+ // 配置项
1389
+ options) {
1390
+ var _useState = useState(false),
1391
+ loading = _useState[0],
1392
+ setLoading = _useState[1];
1393
+ var _useState2 = useState(null),
1394
+ error = _useState2[0],
1395
+ setError = _useState2[1];
1396
+ var _useState3 = useState(null),
1397
+ data = _useState3[0],
1398
+ setData = _useState3[1];
1399
+ var abortControllerRef = useRef(undefined);
1400
+ var requestIdRef = useRef(0);
1401
+ var cancel = function cancel() {
1402
+ var _abortControllerRef$c;
1403
+ (_abortControllerRef$c = abortControllerRef.current) == null || _abortControllerRef$c.abort();
1404
+ setLoading(false);
1405
+ setError(null);
1406
+ };
1407
+ var run = /*#__PURE__*/function () {
1408
+ var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
1409
+ var currentRequestId,
1410
+ abortController,
1411
+ _len,
1412
+ args,
1413
+ _key,
1414
+ beforeRes,
1415
+ funcArgs,
1416
+ res,
1417
+ _args = arguments,
1418
+ _t;
1419
+ return _regenerator().w(function (_context) {
1420
+ while (1) switch (_context.p = _context.n) {
1421
+ case 0:
1422
+ currentRequestId = ++requestIdRef.current;
1423
+ cancel();
1424
+ abortController = new AbortController();
1425
+ abortControllerRef.current = abortController;
1426
+ _context.p = 1;
1427
+ setLoading(true);
1428
+ setError(null);
1429
+ for (_len = _args.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
1430
+ args[_key] = _args[_key];
1431
+ }
1432
+ if (!(options != null && options.onBefore)) {
1433
+ _context.n = 3;
1434
+ break;
1435
+ }
1436
+ _context.n = 2;
1437
+ return options == null || options.onBefore == null ? void 0 : options.onBefore.apply(options, args);
1438
+ case 2:
1439
+ beforeRes = _context.v;
1440
+ if (beforeRes) {
1441
+ _context.n = 3;
1442
+ break;
1443
+ }
1444
+ cancel();
1445
+ return _context.a(2);
1446
+ case 3:
1447
+ // 安全传递 AbortSignal
1448
+ funcArgs = args.length >= asyncFunc.length ? args : [].concat(args, [{
1449
+ signal: abortController.signal
1450
+ }]);
1451
+ _context.n = 4;
1452
+ return asyncFunc.apply(void 0, funcArgs);
1453
+ case 4:
1454
+ res = _context.v;
1455
+ if (!(!abortController.signal.aborted && currentRequestId === requestIdRef.current)) {
1456
+ _context.n = 5;
1457
+ break;
1458
+ }
1459
+ setData(res);
1460
+ _context.n = 5;
1461
+ return options == null || options.onSuccess == null ? void 0 : options.onSuccess(res);
1462
+ case 5:
1463
+ return _context.a(2, res);
1464
+ case 6:
1465
+ _context.p = 6;
1466
+ _t = _context.v;
1467
+ if (!(!abortController.signal.aborted && currentRequestId === requestIdRef.current)) {
1468
+ _context.n = 7;
1469
+ break;
1470
+ }
1471
+ setError(_t);
1472
+ _context.n = 7;
1473
+ return options == null || options.onError == null ? void 0 : options.onError(_t);
1474
+ case 7:
1475
+ throw _t;
1476
+ case 8:
1477
+ _context.p = 8;
1478
+ if (!(!abortController.signal.aborted && currentRequestId === requestIdRef.current)) {
1479
+ _context.n = 9;
1480
+ break;
1481
+ }
1482
+ setLoading(false);
1483
+ _context.n = 9;
1484
+ return options == null || options.onFinally == null ? void 0 : options.onFinally();
1485
+ case 9:
1486
+ return _context.f(8);
1487
+ case 10:
1488
+ return _context.a(2);
1489
+ }
1490
+ }, _callee, null, [[1, 6, 8, 10]]);
1491
+ }));
1492
+ return function run() {
1493
+ return _ref.apply(this, arguments);
1494
+ };
1495
+ }();
1496
+ useEffect(function () {
1497
+ if (options != null && options.autoRunArgs) {
1498
+ run.apply(void 0, options.autoRunArgs)["catch"](function () {});
1499
+ }
1500
+ return cancel;
1501
+ }, [JSON.stringify(options == null ? void 0 : options.autoRunArgs)]);
1502
+ return {
1503
+ run: run,
1504
+ cancel: cancel,
1505
+ loading: loading,
1506
+ error: error,
1507
+ data: data
1508
+ };
1509
+ }
1510
+
1511
+ function useInterval(callback, delay, immediate) {
1512
+ if (immediate === void 0) {
1513
+ immediate = false;
1514
+ }
1515
+ var timerRef = useRef(undefined);
1516
+ var savedCallback = useRef(callback);
1517
+ // Update callback ref if callback changes
1518
+ useEffect(function () {
1519
+ savedCallback.current = callback;
1520
+ }, [callback]);
1521
+ var clear = useCallback(function () {
1522
+ if (timerRef.current) {
1523
+ clearInterval(timerRef.current);
1524
+ timerRef.current = undefined;
1525
+ }
1526
+ }, []);
1527
+ var start = useCallback(function () {
1528
+ clear();
1529
+ if (delay !== null && delay !== undefined) {
1530
+ timerRef.current = setInterval(function () {
1531
+ return savedCallback.current();
1532
+ }, delay);
1533
+ }
1534
+ }, [delay, clear]);
1535
+ useEffect(function () {
1536
+ if (immediate) {
1537
+ savedCallback.current();
1538
+ }
1539
+ start();
1540
+ return clear;
1541
+ }, [delay, start, clear, immediate]);
1542
+ return {
1543
+ start: start,
1544
+ clear: clear,
1545
+ isRunning: !!timerRef.current
1546
+ };
1547
+ }
1548
+
1549
+ var usePagination = function usePagination(server, deps,
1550
+ // 依赖条件 数据更新默认执行server
1551
+ option) {
1552
+ var _ref = option || {},
1553
+ _ref$isReady = _ref.isReady,
1554
+ isReady = _ref$isReady === void 0 ? true : _ref$isReady,
1555
+ _ref$dataSource = _ref.dataSource,
1556
+ propDataSource = _ref$dataSource === void 0 ? [] : _ref$dataSource,
1557
+ _ref$current = _ref.current,
1558
+ propCurrent = _ref$current === void 0 ? 1 : _ref$current,
1559
+ _ref$pageSize = _ref.pageSize,
1560
+ propPageSize = _ref$pageSize === void 0 ? 10 : _ref$pageSize;
1561
+ var _useState = useState(propCurrent),
1562
+ current = _useState[0],
1563
+ setCurrent = _useState[1];
1564
+ var _useState2 = useState(propPageSize),
1565
+ pageSize = _useState2[0],
1566
+ setPageSize = _useState2[1];
1567
+ var _useState3 = useState(propDataSource),
1568
+ dataSource = _useState3[0],
1569
+ setDataSource = _useState3[1];
1570
+ var _useState4 = useState(0),
1571
+ total = _useState4[0],
1572
+ setTotal = _useState4[1];
1573
+ var _useState5 = useState(false),
1574
+ loading = _useState5[0],
1575
+ setLoading = _useState5[1];
1576
+ var _useState6 = useState(false),
1577
+ isFirstComplete = _useState6[0],
1578
+ setIsFirstComplete = _useState6[1];
1579
+ var currentRef = useRef(current);
1580
+ var pageSizeRef = useRef(pageSize);
1581
+ // 在状态更新时同步更新ref
1582
+ var setCurrentAndRef = function setCurrentAndRef(val) {
1583
+ setCurrent(val);
1584
+ currentRef.current = val;
1585
+ };
1586
+ var setPageSizeAndRef = function setPageSizeAndRef(val) {
1587
+ setPageSize(val);
1588
+ pageSizeRef.current = val;
1589
+ };
1590
+ // 计数器
1591
+ var seq = useRef(0);
1592
+ var doSearch = /*#__PURE__*/function () {
1593
+ var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
1594
+ var _current, _pageSize, _seq, offset, _yield$server, data_source, _total, totalPage, _yield$server2, _t;
1595
+ return _regenerator().w(function (_context) {
1596
+ while (1) switch (_context.p = _context.n) {
1597
+ case 0:
1598
+ if (isReady) {
1599
+ _context.n = 1;
1600
+ break;
1601
+ }
1602
+ return _context.a(2);
1603
+ case 1:
1604
+ _current = currentRef.current;
1605
+ _pageSize = pageSizeRef.current;
1606
+ setLoading(true);
1607
+ seq.current++;
1608
+ _seq = seq.current;
1609
+ _context.p = 2;
1610
+ // 发送请求
1611
+ offset = Math.round((_current - 1) * _pageSize);
1612
+ if (offset < 0) {
1613
+ offset = 0;
1614
+ }
1615
+ if (_pageSize < 1) {
1616
+ _pageSize = 1;
1617
+ }
1618
+ _context.n = 3;
1619
+ return server({
1620
+ limit: _pageSize,
1621
+ offset: offset,
1622
+ current: _current
1623
+ });
1624
+ case 3:
1625
+ _yield$server = _context.v;
1626
+ data_source = _yield$server.dataSource;
1627
+ _total = _yield$server.total;
1628
+ if (!(_seq !== seq.current)) {
1629
+ _context.n = 4;
1630
+ break;
1631
+ }
1632
+ return _context.a(2);
1633
+ case 4:
1634
+ if (!(pageSize * (_current - 1) >= _total && _current !== 1)) {
1635
+ _context.n = 7;
1636
+ break;
1637
+ }
1638
+ _current = 1;
1639
+ totalPage = Math.ceil(_total / pageSize);
1640
+ _context.n = 5;
1641
+ return server({
1642
+ limit: _pageSize,
1643
+ offset: offset,
1644
+ current: _current
1645
+ });
1646
+ case 5:
1647
+ _yield$server2 = _context.v;
1648
+ data_source = _yield$server2.dataSource;
1649
+ _total = _yield$server2.total;
1650
+ if (!(_seq !== seq.current)) {
1651
+ _context.n = 6;
1652
+ break;
1653
+ }
1654
+ return _context.a(2);
1655
+ case 6:
1656
+ _current = totalPage;
1657
+ case 7:
1658
+ setDataSource(data_source);
1659
+ setCurrentAndRef(_current);
1660
+ setPageSizeAndRef(_pageSize);
1661
+ setTotal(_total);
1662
+ _context.n = 9;
1663
+ break;
1664
+ case 8:
1665
+ _context.p = 8;
1666
+ _t = _context.v;
1667
+ // eslint-disable-next-line no-console
1668
+ console.error('fetch err', _t);
1669
+ if (!(_seq !== seq.current)) {
1670
+ _context.n = 9;
1671
+ break;
1672
+ }
1673
+ return _context.a(2);
1674
+ case 9:
1675
+ _context.p = 9;
1676
+ setIsFirstComplete(true);
1677
+ setLoading(false);
1678
+ return _context.f(9);
1679
+ case 10:
1680
+ return _context.a(2);
1681
+ }
1682
+ }, _callee, null, [[2, 8, 9, 10]]);
1683
+ }));
1684
+ return function doSearch() {
1685
+ return _ref2.apply(this, arguments);
1686
+ };
1687
+ }();
1688
+ var refresh = /*#__PURE__*/function () {
1689
+ var _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(resetPage) {
1690
+ return _regenerator().w(function (_context2) {
1691
+ while (1) switch (_context2.n) {
1692
+ case 0:
1693
+ if (resetPage) {
1694
+ setDataSource([]);
1695
+ setCurrentAndRef(propCurrent);
1696
+ setPageSizeAndRef(propPageSize);
1697
+ }
1698
+ _context2.n = 1;
1699
+ return doSearch();
1700
+ case 1:
1701
+ return _context2.a(2);
1702
+ }
1703
+ }, _callee2);
1704
+ }));
1705
+ return function refresh(_x) {
1706
+ return _ref3.apply(this, arguments);
1707
+ };
1708
+ }();
1709
+ var debounceRefresh = useCallback(debounce(refresh, 500), [refresh]);
1710
+ /* 重置逻辑 */
1711
+ var _deps = [].concat(deps || [], [isReady]);
1712
+ useEffect(function () {
1713
+ if (!isReady) return;
1714
+ debounceRefresh(true);
1715
+ }, _deps);
1716
+ var onChange = /*#__PURE__*/function () {
1717
+ var _ref4 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(page, pageSize) {
1718
+ return _regenerator().w(function (_context3) {
1719
+ while (1) switch (_context3.n) {
1720
+ case 0:
1721
+ setCurrentAndRef(page);
1722
+ setPageSizeAndRef(pageSize);
1723
+ _context3.n = 1;
1724
+ return refresh();
1725
+ case 1:
1726
+ return _context3.a(2);
1727
+ }
1728
+ }, _callee3);
1729
+ }));
1730
+ return function onChange(_x2, _x3) {
1731
+ return _ref4.apply(this, arguments);
1732
+ };
1733
+ }();
1734
+ var onShowSizeChange = /*#__PURE__*/function () {
1735
+ var _ref5 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee4(size, current) {
1736
+ return _regenerator().w(function (_context4) {
1737
+ while (1) switch (_context4.n) {
1738
+ case 0:
1739
+ setPageSizeAndRef(size);
1740
+ setCurrentAndRef(current);
1741
+ _context4.n = 1;
1742
+ return refresh();
1743
+ case 1:
1744
+ return _context4.a(2);
1745
+ }
1746
+ }, _callee4);
1747
+ }));
1748
+ return function onShowSizeChange(_x4, _x5) {
1749
+ return _ref5.apply(this, arguments);
1750
+ };
1751
+ }();
1752
+ var paginationProps = {
1753
+ current: current,
1754
+ pageSize: pageSize,
1755
+ total: total,
1756
+ onChange: onChange,
1757
+ onShowSizeChange: onShowSizeChange
1758
+ };
1759
+ return {
1760
+ tableProps: {
1761
+ loading: loading,
1762
+ dataSource: dataSource
1763
+ },
1764
+ loading: loading,
1765
+ dataSource: dataSource,
1766
+ paginationProps: paginationProps,
1767
+ isFirstComplete: isFirstComplete,
1768
+ refresh: refresh,
1769
+ debounceRefresh: debounceRefresh,
1770
+ setDataSource: setDataSource
1771
+ };
1772
+ };
1773
+
1774
+ function useQuery() {
1775
+ var search = window.location.href.split('?')[1] || '';
1776
+ var params = new URLSearchParams(search);
1777
+ var query = Object.fromEntries(params.entries());
1778
+ return query;
1779
+ }
1780
+
1781
+ var useReactive = function useReactive(initialState) {
1782
+ var _useState = useState(initialState),
1783
+ state = _useState[0],
1784
+ setState = _useState[1];
1785
+ var stateRef = useRef(state);
1786
+ var updateState = useCallback(function (newState) {
1787
+ setState(function (prev) {
1788
+ var updatedPart = typeof newState === 'function' ? newState(prev) : newState;
1789
+ var newFullState = _extends({}, prev, updatedPart);
1790
+ stateRef.current = newFullState; // 同步更新ref
1791
+ return newFullState;
1792
+ });
1793
+ }, []);
1794
+ var getState = useCallback(function () {
1795
+ return stateRef.current;
1796
+ }, []);
1797
+ var resetState = useCallback(function () {
1798
+ setState(initialState);
1799
+ stateRef.current = initialState;
1800
+ }, [initialState]);
1801
+ return [state, updateState, getState, resetState];
1802
+ };
1803
+
1804
+ function useTimeout(callback, delay, immediate) {
1805
+ if (immediate === void 0) {
1806
+ immediate = false;
1807
+ }
1808
+ var timerRef = useRef(undefined);
1809
+ var savedCallback = useRef(callback);
1810
+ // Update callback ref if callback changes
1811
+ useEffect(function () {
1812
+ savedCallback.current = callback;
1813
+ }, [callback]);
1814
+ var clear = useCallback(function () {
1815
+ if (timerRef.current) {
1816
+ clearTimeout(timerRef.current);
1817
+ timerRef.current = undefined;
1818
+ }
1819
+ }, []);
1820
+ var start = useCallback(function () {
1821
+ clear();
1822
+ if (delay !== null && delay !== undefined) {
1823
+ timerRef.current = setTimeout(function () {
1824
+ return savedCallback.current();
1825
+ }, delay);
1826
+ }
1827
+ }, [delay, clear]);
1828
+ useEffect(function () {
1829
+ if (immediate) {
1830
+ savedCallback.current();
1831
+ }
1832
+ start();
1833
+ return clear;
1834
+ }, [delay, start, clear, immediate]);
1835
+ return {
1836
+ start: start,
1837
+ clear: clear,
1838
+ isRunning: !!timerRef.current
1839
+ };
1840
+ }
1841
+
1842
+ var useVirtualList = function useVirtualList(server, deps,
1843
+ // 依赖条件 数据更新默认执行server
1844
+ option) {
1845
+ var _ref = option || {},
1846
+ _ref$isReady = _ref.isReady,
1847
+ isReady = _ref$isReady === void 0 ? true : _ref$isReady,
1848
+ _ref$dataSource = _ref.dataSource,
1849
+ propDataSource = _ref$dataSource === void 0 ? [] : _ref$dataSource,
1850
+ _ref$current = _ref.current,
1851
+ propCurrent = _ref$current === void 0 ? 1 : _ref$current,
1852
+ _ref$pageSize = _ref.pageSize,
1853
+ propPageSize = _ref$pageSize === void 0 ? PAGE_SIZE : _ref$pageSize;
1854
+ // 是否完成了一次请求
1855
+ var _useState = useState(false),
1856
+ isFirstComplete = _useState[0],
1857
+ setIsFirstComplete = _useState[1];
1858
+ // 分页
1859
+ var _useState2 = useState(propCurrent),
1860
+ current = _useState2[0],
1861
+ setCurrent = _useState2[1];
1862
+ var _useState3 = useState(propPageSize),
1863
+ pageSize = _useState3[0],
1864
+ setPageSize = _useState3[1];
1865
+ var _useState4 = useState(0),
1866
+ total = _useState4[0],
1867
+ setTotal = _useState4[1];
1868
+ // 表格
1869
+ var _useState5 = useState(false),
1870
+ isLoading = _useState5[0],
1871
+ setIsLoading = _useState5[1];
1872
+ var _useState6 = useState(propDataSource),
1873
+ dataSource = _useState6[0],
1874
+ setDataSource = _useState6[1];
1875
+ var currentRef = useRef(current);
1876
+ var pageSizeRef = useRef(pageSize);
1877
+ // 在状态更新时同步更新ref
1878
+ var setCurrentAndRef = function setCurrentAndRef(val) {
1879
+ setCurrent(val);
1880
+ currentRef.current = val;
1881
+ };
1882
+ var setPageSizeAndRef = function setPageSizeAndRef(val) {
1883
+ setPageSize(val);
1884
+ pageSizeRef.current = val;
1885
+ };
1886
+ // 计数器
1887
+ var seq = useRef(0);
1888
+ var doSearch = /*#__PURE__*/function () {
1889
+ var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(reset) {
1890
+ var _current, _pageSize, _seq, offset, _yield$server, data0, total0, totalPage, _yield$server2, d, _t;
1891
+ return _regenerator().w(function (_context) {
1892
+ while (1) switch (_context.p = _context.n) {
1893
+ case 0:
1894
+ if (isReady) {
1895
+ _context.n = 1;
1896
+ break;
1897
+ }
1898
+ return _context.a(2);
1899
+ case 1:
1900
+ _current = currentRef.current;
1901
+ _pageSize = pageSizeRef.current;
1902
+ setIsLoading(true);
1903
+ seq.current += 1;
1904
+ _seq = seq.current;
1905
+ _context.p = 2;
1906
+ // 发送请求
1907
+ offset = Math.round((_current - 1) * _pageSize);
1908
+ if (offset < 0) {
1909
+ offset = 0;
1910
+ }
1911
+ if (_pageSize < 1) {
1912
+ _pageSize = 1;
1913
+ }
1914
+ _context.n = 3;
1915
+ return server({
1916
+ limit: _pageSize,
1917
+ offset: offset,
1918
+ current: _current
1919
+ });
1920
+ case 3:
1921
+ _yield$server = _context.v;
1922
+ data0 = _yield$server.dataSource;
1923
+ total0 = _yield$server.total;
1924
+ if (!(_seq !== seq.current)) {
1925
+ _context.n = 4;
1926
+ break;
1927
+ }
1928
+ return _context.a(2);
1929
+ case 4:
1930
+ if (!(pageSize * (_current - 1) >= total0 && _current !== 1)) {
1931
+ _context.n = 7;
1932
+ break;
1933
+ }
1934
+ totalPage = Math.ceil(total0 / pageSize);
1935
+ _context.n = 5;
1936
+ return server({
1937
+ limit: _pageSize,
1938
+ offset: Math.round((totalPage - 1) * _pageSize),
1939
+ current: _current
1940
+ });
1941
+ case 5:
1942
+ _yield$server2 = _context.v;
1943
+ data0 = _yield$server2.dataSource;
1944
+ total0 = _yield$server2.total;
1945
+ if (!(_seq !== seq.current)) {
1946
+ _context.n = 6;
1947
+ break;
1948
+ }
1949
+ return _context.a(2);
1950
+ case 6:
1951
+ _current = totalPage;
1952
+ // message.error('数据源发生变化,该页没有数据,自动加载最后一页');
1953
+ case 7:
1954
+ d = reset ? data0 : dataSource.concat(data0);
1955
+ setDataSource(d);
1956
+ setCurrentAndRef(_current);
1957
+ setPageSizeAndRef(_pageSize);
1958
+ setTotal(total0);
1959
+ _context.n = 9;
1960
+ break;
1961
+ case 8:
1962
+ _context.p = 8;
1963
+ _t = _context.v;
1964
+ console.error('fetch err', _t);
1965
+ if (!(_seq !== seq.current)) {
1966
+ _context.n = 9;
1967
+ break;
1968
+ }
1969
+ return _context.a(2);
1970
+ case 9:
1971
+ setIsFirstComplete(true);
1972
+ setIsLoading(false);
1973
+ case 10:
1974
+ return _context.a(2);
1975
+ }
1976
+ }, _callee, null, [[2, 8]]);
1977
+ }));
1978
+ return function doSearch(_x) {
1979
+ return _ref2.apply(this, arguments);
1980
+ };
1981
+ }();
1982
+ // 加载下一页数据
1983
+ var _refresh = /*#__PURE__*/function () {
1984
+ var _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(reset) {
1985
+ var curTotal;
1986
+ return _regenerator().w(function (_context2) {
1987
+ while (1) switch (_context2.n) {
1988
+ case 0:
1989
+ if (!reset) {
1990
+ _context2.n = 1;
1991
+ break;
1992
+ }
1993
+ setDataSource([]);
1994
+ setCurrentAndRef(propCurrent);
1995
+ setPageSizeAndRef(propPageSize);
1996
+ _context2.n = 3;
1997
+ break;
1998
+ case 1:
1999
+ curTotal = pageSize * current;
2000
+ if (!(total && total <= curTotal)) {
2001
+ _context2.n = 2;
2002
+ break;
2003
+ }
2004
+ return _context2.a(2);
2005
+ case 2:
2006
+ setCurrentAndRef(current + 1);
2007
+ case 3:
2008
+ _context2.n = 4;
2009
+ return doSearch(reset);
2010
+ case 4:
2011
+ return _context2.a(2);
2012
+ }
2013
+ }, _callee2);
2014
+ }));
2015
+ return function refresh(_x2) {
2016
+ return _ref3.apply(this, arguments);
2017
+ };
2018
+ }();
2019
+ // 防抖 加载下一页数据
2020
+ var debounceRefresh = useCallback(debounce(_refresh, 500), [_refresh]);
2021
+ /* 重置逻辑 */
2022
+ var _deps = [].concat(deps || [], [isReady]);
2023
+ useEffect(function () {
2024
+ if (!isReady) return;
2025
+ debounceRefresh(true);
2026
+ }, _deps);
2027
+ return {
2028
+ loading: isLoading,
2029
+ dataSource: dataSource,
2030
+ paginationProps: {
2031
+ current: current,
2032
+ pageSize: pageSize,
2033
+ total: total
2034
+ },
2035
+ isFirstComplete: isFirstComplete,
2036
+ refresh: function () {
2037
+ var _refresh2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(reset) {
2038
+ return _regenerator().w(function (_context3) {
2039
+ while (1) switch (_context3.n) {
2040
+ case 0:
2041
+ _context3.n = 1;
2042
+ return _refresh(reset);
2043
+ case 1:
2044
+ return _context3.a(2);
2045
+ }
2046
+ }, _callee3);
2047
+ }));
2048
+ function refresh(_x3) {
2049
+ return _refresh2.apply(this, arguments);
2050
+ }
2051
+ return refresh;
2052
+ }(),
2053
+ debounceRefresh: debounceRefresh,
2054
+ setDataSource: setDataSource,
2055
+ setTotal: setTotal
2056
+ };
2057
+ };
2058
+
2059
+ export { DATE_FORMAT, ItemsRow as ItemRow, MBreadcrumb, DetailDescriptions as MDescriptions, MForm, MFormItemConst, MFormItemTypeEnum, MSearch, MTable, MiModal, MiThemeProvider, NextTick, PAGE_SIZE, PatternType, VersionUtil, cmx, getClassName, getFieldsByPath, nextTick, noop, openModal, removeNull, useFuncRequest, useInterval, useMiThemeConfig, usePagination, useQuery, useReactive, useTimeout, useVirtualList };
605
2060
  //# sourceMappingURL=libs.esm.js.map