@mi-avalon/libs 0.0.14 → 0.0.16

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.
@@ -1,1483 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
6
-
7
- var antd = require('antd');
8
- var React = require('react');
9
- var React__default = _interopDefault(React);
10
- var ReactDOMClient = require('react-dom/client');
11
-
12
- var MyButton = function MyButton(props) {
13
- return React__default.createElement(antd.Button, Object.assign({}, props), props.custom || props.children);
14
- };
15
-
16
- var DATE_FORMAT = {
17
- YMD_Hms: 'YYYY-MM-DD HH:mm:ss',
18
- YMD: 'YYYY-MM-DD',
19
- YMD2: 'YYYYMMDD',
20
- YMD_POINT: 'YYYY.M.DD',
21
- Hms: 'HH:mm:ss',
22
- Hm: 'HH:mm',
23
- YMD_000: 'YYYY-MM-DD 00:00:00',
24
- YMD_end: 'YYYY-MM-DD 23:59:59',
25
- YMD_Hm: 'YYYYMMDD HHmm'
26
- };
27
-
28
- var PAGE_SIZE = 10;
29
-
30
- var PatternType = function PatternType() {};
31
- // 整数
32
- PatternType.integerRegex = /^-?\d+$/;
33
- // 正整数
34
- PatternType.positiveIntegerRegex = /^[1-9]\d*$/;
35
- // 负整数
36
- PatternType.negativeIntegerRegex = /^-[1-9]\d*$/;
37
- // 浮点数
38
- PatternType.floatRegex = /^-?\d+(\.\d+)?$/;
39
- // 字母
40
- PatternType.letter = /^[a-zA-Z]+$/;
41
- // 汉字
42
- PatternType.chinese = /^[\u4e00-\u9fa5]+$/;
43
- // 数字
44
- PatternType.number = /^[0-9]*$/;
45
- // 用户名 字母开头,允许字母数字下划线,长度4-16
46
- PatternType.username = /^[a-zA-Z]\w{3,15}$/;
47
- // 强用户名 必须包含大小写字母和数字,6-20位
48
- PatternType.strongUsername = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{6,20}$/;
49
- // 密码 至少8位,包含字母和数字
50
- PatternType.password = /^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{8,}$/;
51
- // 强密码 至少8位,包含大小写字母、数字和特殊字符
52
- PatternType.strongPassword = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$/;
53
- // 中国大陆的手机号
54
- PatternType.phone = /^1[3-9]\d{9}$/;
55
- // 带区号的手机号
56
- PatternType.phoneWithAreaCode = /^\+?\d{2,3}-?\d{8,11}$/;
57
- // 邮箱
58
- PatternType.email = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
59
- // 身份证
60
- 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)$/;
61
- // 银行卡
62
- PatternType.bankCard = /^[1-9]\d{3,30}$/;
63
- // 邮政编码
64
- PatternType.zipCode = /^[1-9]\d{5}$/;
65
- // IP
66
- 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])$/;
67
- // URL
68
- PatternType.url = /^(https?:\/\/)?([\da-z.-]+)\.([a-z.]{2,6})([/\w .-]*)*\/?$/;
69
- // 车牌
70
- PatternType.carNumber = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-HJ-NP-Z][A-HJ-NP-Z0-9]{4,5}[A-HJ-NP-Z0-9挂学警港澳]$/;
71
- // 时间 hh:mm:ss
72
- PatternType.time = /^([0-1][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$/;
73
- // 日期 YYYY-MM-DD
74
- PatternType.date = /^(\d{4})-(\d{2})-(\d{2})$/;
75
-
76
- function _arrayLikeToArray(r, a) {
77
- (null == a || a > r.length) && (a = r.length);
78
- for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];
79
- return n;
80
- }
81
- function asyncGeneratorStep(n, t, e, r, o, a, c) {
82
- try {
83
- var i = n[a](c),
84
- u = i.value;
85
- } catch (n) {
86
- return void e(n);
87
- }
88
- i.done ? t(u) : Promise.resolve(u).then(r, o);
89
- }
90
- function _asyncToGenerator(n) {
91
- return function () {
92
- var t = this,
93
- e = arguments;
94
- return new Promise(function (r, o) {
95
- var a = n.apply(t, e);
96
- function _next(n) {
97
- asyncGeneratorStep(a, r, o, _next, _throw, "next", n);
98
- }
99
- function _throw(n) {
100
- asyncGeneratorStep(a, r, o, _next, _throw, "throw", n);
101
- }
102
- _next(void 0);
103
- });
104
- };
105
- }
106
- function _defineProperties(e, r) {
107
- for (var t = 0; t < r.length; t++) {
108
- var o = r[t];
109
- o.enumerable = o.enumerable || !1, o.configurable = !0, "value" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o);
110
- }
111
- }
112
- function _createClass(e, r, t) {
113
- return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, "prototype", {
114
- writable: !1
115
- }), e;
116
- }
117
- function _createForOfIteratorHelperLoose(r, e) {
118
- var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
119
- if (t) return (t = t.call(r)).next.bind(t);
120
- if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) {
121
- t && (r = t);
122
- var o = 0;
123
- return function () {
124
- return o >= r.length ? {
125
- done: !0
126
- } : {
127
- done: !1,
128
- value: r[o++]
129
- };
130
- };
131
- }
132
- throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
133
- }
134
- function _extends() {
135
- return _extends = Object.assign ? Object.assign.bind() : function (n) {
136
- for (var e = 1; e < arguments.length; e++) {
137
- var t = arguments[e];
138
- for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);
139
- }
140
- return n;
141
- }, _extends.apply(null, arguments);
142
- }
143
- function _regenerator() {
144
- /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */
145
- var e,
146
- t,
147
- r = "function" == typeof Symbol ? Symbol : {},
148
- n = r.iterator || "@@iterator",
149
- o = r.toStringTag || "@@toStringTag";
150
- function i(r, n, o, i) {
151
- var c = n && n.prototype instanceof Generator ? n : Generator,
152
- u = Object.create(c.prototype);
153
- return _regeneratorDefine(u, "_invoke", function (r, n, o) {
154
- var i,
155
- c,
156
- u,
157
- f = 0,
158
- p = o || [],
159
- y = !1,
160
- G = {
161
- p: 0,
162
- n: 0,
163
- v: e,
164
- a: d,
165
- f: d.bind(e, 4),
166
- d: function (t, r) {
167
- return i = t, c = 0, u = e, G.n = r, a;
168
- }
169
- };
170
- function d(r, n) {
171
- for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) {
172
- var o,
173
- i = p[t],
174
- d = G.p,
175
- l = i[2];
176
- 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));
177
- }
178
- if (o || r > 1) return a;
179
- throw y = !0, n;
180
- }
181
- return function (o, p, l) {
182
- if (f > 1) throw TypeError("Generator is already running");
183
- for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) {
184
- i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u);
185
- try {
186
- if (f = 2, i) {
187
- if (c || (o = "next"), t = i[o]) {
188
- if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object");
189
- if (!t.done) return t;
190
- u = t.value, c < 2 && (c = 0);
191
- } else 1 === c && (t = i.return) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1);
192
- i = e;
193
- } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break;
194
- } catch (t) {
195
- i = e, c = 1, u = t;
196
- } finally {
197
- f = 1;
198
- }
199
- }
200
- return {
201
- value: t,
202
- done: y
203
- };
204
- };
205
- }(r, o, i), !0), u;
206
- }
207
- var a = {};
208
- function Generator() {}
209
- function GeneratorFunction() {}
210
- function GeneratorFunctionPrototype() {}
211
- t = Object.getPrototypeOf;
212
- var c = [][n] ? t(t([][n]())) : (_regeneratorDefine(t = {}, n, function () {
213
- return this;
214
- }), t),
215
- u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c);
216
- function f(e) {
217
- return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e;
218
- }
219
- 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 () {
220
- return this;
221
- }), _regeneratorDefine(u, "toString", function () {
222
- return "[object Generator]";
223
- }), (_regenerator = function () {
224
- return {
225
- w: i,
226
- m: f
227
- };
228
- })();
229
- }
230
- function _regeneratorDefine(e, r, n, t) {
231
- var i = Object.defineProperty;
232
- try {
233
- i({}, "", {});
234
- } catch (e) {
235
- i = 0;
236
- }
237
- _regeneratorDefine = function (e, r, n, t) {
238
- if (r) i ? i(e, r, {
239
- value: n,
240
- enumerable: !t,
241
- configurable: !t,
242
- writable: !t
243
- }) : e[r] = n;else {
244
- function o(r, n) {
245
- _regeneratorDefine(e, r, function (e) {
246
- return this._invoke(r, n, e);
247
- });
248
- }
249
- o("next", 0), o("throw", 1), o("return", 2);
250
- }
251
- }, _regeneratorDefine(e, r, n, t);
252
- }
253
- function _toPrimitive(t, r) {
254
- if ("object" != typeof t || !t) return t;
255
- var e = t[Symbol.toPrimitive];
256
- if (void 0 !== e) {
257
- var i = e.call(t, r || "default");
258
- if ("object" != typeof i) return i;
259
- throw new TypeError("@@toPrimitive must return a primitive value.");
260
- }
261
- return ("string" === r ? String : Number)(t);
262
- }
263
- function _toPropertyKey(t) {
264
- var i = _toPrimitive(t, "string");
265
- return "symbol" == typeof i ? i : i + "";
266
- }
267
- function _unsupportedIterableToArray(r, a) {
268
- if (r) {
269
- if ("string" == typeof r) return _arrayLikeToArray(r, a);
270
- var t = {}.toString.call(r).slice(8, -1);
271
- return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;
272
- }
273
- }
274
-
275
- function useFuncRequest(
276
- // 异步函数
277
- asyncFunc,
278
- // 配置项
279
- options) {
280
- var _useState = React.useState(false),
281
- loading = _useState[0],
282
- setLoading = _useState[1];
283
- var _useState2 = React.useState(null),
284
- error = _useState2[0],
285
- setError = _useState2[1];
286
- var _useState3 = React.useState(null),
287
- data = _useState3[0],
288
- setData = _useState3[1];
289
- var abortControllerRef = React.useRef(undefined);
290
- var requestIdRef = React.useRef(0);
291
- var cancel = function cancel() {
292
- var _abortControllerRef$c;
293
- (_abortControllerRef$c = abortControllerRef.current) == null || _abortControllerRef$c.abort();
294
- setLoading(false);
295
- setError(null);
296
- };
297
- var run = /*#__PURE__*/function () {
298
- var _ref = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
299
- var currentRequestId,
300
- abortController,
301
- _len,
302
- args,
303
- _key,
304
- beforeRes,
305
- funcArgs,
306
- res,
307
- _args = arguments,
308
- _t;
309
- return _regenerator().w(function (_context) {
310
- while (1) switch (_context.p = _context.n) {
311
- case 0:
312
- currentRequestId = ++requestIdRef.current;
313
- cancel();
314
- abortController = new AbortController();
315
- abortControllerRef.current = abortController;
316
- _context.p = 1;
317
- setLoading(true);
318
- setError(null);
319
- for (_len = _args.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
320
- args[_key] = _args[_key];
321
- }
322
- if (!(options != null && options.onBefore)) {
323
- _context.n = 3;
324
- break;
325
- }
326
- _context.n = 2;
327
- return options == null || options.onBefore == null ? void 0 : options.onBefore.apply(options, args);
328
- case 2:
329
- beforeRes = _context.v;
330
- if (beforeRes) {
331
- _context.n = 3;
332
- break;
333
- }
334
- cancel();
335
- return _context.a(2);
336
- case 3:
337
- // 安全传递 AbortSignal
338
- funcArgs = args.length >= asyncFunc.length ? args : [].concat(args, [{
339
- signal: abortController.signal
340
- }]);
341
- _context.n = 4;
342
- return asyncFunc.apply(void 0, funcArgs);
343
- case 4:
344
- res = _context.v;
345
- if (!(!abortController.signal.aborted && currentRequestId === requestIdRef.current)) {
346
- _context.n = 5;
347
- break;
348
- }
349
- setData(res);
350
- _context.n = 5;
351
- return options == null || options.onSuccess == null ? void 0 : options.onSuccess(res);
352
- case 5:
353
- return _context.a(2, res);
354
- case 6:
355
- _context.p = 6;
356
- _t = _context.v;
357
- if (!(!abortController.signal.aborted && currentRequestId === requestIdRef.current)) {
358
- _context.n = 7;
359
- break;
360
- }
361
- setError(_t);
362
- _context.n = 7;
363
- return options == null || options.onError == null ? void 0 : options.onError(_t);
364
- case 7:
365
- throw _t;
366
- case 8:
367
- _context.p = 8;
368
- if (!(!abortController.signal.aborted && currentRequestId === requestIdRef.current)) {
369
- _context.n = 9;
370
- break;
371
- }
372
- setLoading(false);
373
- _context.n = 9;
374
- return options == null || options.onFinally == null ? void 0 : options.onFinally();
375
- case 9:
376
- return _context.f(8);
377
- case 10:
378
- return _context.a(2);
379
- }
380
- }, _callee, null, [[1, 6, 8, 10]]);
381
- }));
382
- return function run() {
383
- return _ref.apply(this, arguments);
384
- };
385
- }();
386
- React.useEffect(function () {
387
- if (options != null && options.autoRunArgs) {
388
- run.apply(void 0, options.autoRunArgs)["catch"](function () {});
389
- }
390
- return cancel;
391
- }, [JSON.stringify(options == null ? void 0 : options.autoRunArgs)]);
392
- return {
393
- run: run,
394
- cancel: cancel,
395
- loading: loading,
396
- error: error,
397
- data: data
398
- };
399
- }
400
-
401
- function useInterval(callback, delay, immediate) {
402
- if (immediate === void 0) {
403
- immediate = false;
404
- }
405
- var timerRef = React.useRef(undefined);
406
- var savedCallback = React.useRef(callback);
407
- // Update callback ref if callback changes
408
- React.useEffect(function () {
409
- savedCallback.current = callback;
410
- }, [callback]);
411
- var clear = React.useCallback(function () {
412
- if (timerRef.current) {
413
- clearInterval(timerRef.current);
414
- timerRef.current = undefined;
415
- }
416
- }, []);
417
- var start = React.useCallback(function () {
418
- clear();
419
- if (delay !== null && delay !== undefined) {
420
- timerRef.current = setInterval(function () {
421
- return savedCallback.current();
422
- }, delay);
423
- }
424
- }, [delay, clear]);
425
- React.useEffect(function () {
426
- if (immediate) {
427
- savedCallback.current();
428
- }
429
- start();
430
- return clear;
431
- }, [delay, start, clear, immediate]);
432
- return {
433
- start: start,
434
- clear: clear,
435
- isRunning: !!timerRef.current
436
- };
437
- }
438
-
439
- var CMX = function CMX() {
440
- /**
441
- ** 加
442
- **/
443
- this.add = function (arg1, arg2) {
444
- var r1, r2, m, c;
445
- try {
446
- r1 = arg1.toString().split('.')[1].length;
447
- } catch (e) {
448
- r1 = 0;
449
- }
450
- try {
451
- r2 = arg2.toString().split('.')[1].length;
452
- } catch (e) {
453
- r2 = 0;
454
- }
455
- c = Math.abs(r1 - r2);
456
- m = Math.pow(10, Math.max(r1, r2));
457
- if (c > 0) {
458
- var cm = Math.pow(10, c);
459
- if (r1 > r2) {
460
- arg1 = Number(arg1.toString().replace('.', ''));
461
- arg2 = Number(arg2.toString().replace('.', '')) * cm;
462
- } else {
463
- arg1 = Number(arg1.toString().replace('.', '')) * cm;
464
- arg2 = Number(arg2.toString().replace('.', ''));
465
- }
466
- } else {
467
- var _arg, _arg2;
468
- arg1 = Number((_arg = arg1) == null ? void 0 : _arg.toString().replace('.', ''));
469
- arg2 = Number((_arg2 = arg2) == null ? void 0 : _arg2.toString().replace('.', ''));
470
- }
471
- return (arg1 + arg2) / m;
472
- };
473
- /**
474
- ** 减
475
- **/
476
- this.sub = function (arg1, arg2) {
477
- var r1, r2, m, n;
478
- try {
479
- r1 = arg1.toString().split('.')[1].length;
480
- } catch (e) {
481
- r1 = 0;
482
- }
483
- try {
484
- r2 = arg2.toString().split('.')[1].length;
485
- } catch (e) {
486
- r2 = 0;
487
- }
488
- m = Math.pow(10, Math.max(r1, r2)); //last modify by deeka //动态控制精度长度
489
- n = r1 >= r2 ? r1 : r2;
490
- return Number(((arg1 * m - arg2 * m) / m).toFixed(n));
491
- };
492
- /**
493
- ** 乘
494
- **/
495
- this.mul = function (arg1, arg2) {
496
- var m = 0,
497
- s1 = arg1.toString(),
498
- s2 = arg2.toString();
499
- try {
500
- m += s1.split('.')[1].length;
501
- } catch (e) {}
502
- try {
503
- m += s2.split('.')[1].length;
504
- } catch (e) {}
505
- return Number(s1.replace('.', '')) * Number(s2.replace('.', '')) / Math.pow(10, m);
506
- };
507
- /**
508
- ** 除
509
- **/
510
- this.div = function (arg1, arg2) {
511
- var t1 = 0,
512
- t2 = 0,
513
- r1,
514
- r2;
515
- try {
516
- t1 = arg1.toString().split('.')[1].length;
517
- } catch (e) {}
518
- try {
519
- t2 = arg2.toString().split('.')[1].length;
520
- } catch (e) {}
521
- r1 = Number(arg1.toString().replace('.', ''));
522
- r2 = Number(arg2.toString().replace('.', ''));
523
- return r1 / r2 * Math.pow(10, t2 - t1);
524
- };
525
- };
526
- var cmx = /*#__PURE__*/new CMX();
527
-
528
- var NextTick = /*#__PURE__*/function () {
529
- function NextTick() {
530
- this.callbacks = [];
531
- this.pending = false;
532
- this.timerFunc = this.determineTimerFunc();
533
- }
534
- var _proto = NextTick.prototype;
535
- _proto.determineTimerFunc = function determineTimerFunc() {
536
- var _this = this;
537
- if (typeof Promise !== 'undefined') {
538
- var p = Promise.resolve();
539
- return function () {
540
- return p.then(_this.flushCallbacks.bind(_this));
541
- };
542
- }
543
- if (typeof MutationObserver !== 'undefined' && typeof window !== 'undefined') {
544
- var counter = 1;
545
- var observer = new MutationObserver(this.flushCallbacks.bind(this));
546
- var textNode = document.createTextNode(String(counter));
547
- observer.observe(textNode, {
548
- characterData: true
549
- });
550
- return function () {
551
- counter = (counter + 1) % 2;
552
- textNode.data = String(counter);
553
- };
554
- }
555
- // // 仅在 Node.js 环境中使用 setImmediate
556
- // if (typeof global !== 'undefined' && typeof setImmediate !== 'undefined') {
557
- // return () => setImmediate(this.flushCallbacks.bind(this));
558
- // }
559
- return function () {
560
- return setTimeout(_this.flushCallbacks.bind(_this), 0);
561
- };
562
- };
563
- _proto.flushCallbacks = function flushCallbacks() {
564
- this.pending = false;
565
- var copies = this.callbacks.slice(0);
566
- this.callbacks.length = 0;
567
- for (var i = 0; i < copies.length; i++) {
568
- copies[i]();
569
- }
570
- };
571
- _proto.nextTick = function nextTick(callback, ctx) {
572
- var _resolve;
573
- this.callbacks.push(function () {
574
- if (callback) {
575
- try {
576
- callback.call(ctx);
577
- } catch (e) {
578
- console.error('Error in nextTick:', e);
579
- }
580
- } else if (_resolve) {
581
- _resolve();
582
- }
583
- });
584
- if (!this.pending) {
585
- this.pending = true;
586
- this.timerFunc();
587
- }
588
- if (!callback && typeof Promise !== 'undefined') {
589
- return new Promise(function (resolve) {
590
- _resolve = resolve;
591
- });
592
- }
593
- };
594
- NextTick.nextTick = function nextTick(callback, ctx) {
595
- return NextTick.instance.nextTick(callback, ctx);
596
- };
597
- return _createClass(NextTick, null, [{
598
- key: "instance",
599
- get: function get() {
600
- if (!this._instance) {
601
- this._instance = new NextTick();
602
- }
603
- return this._instance;
604
- }
605
- }]);
606
- }();
607
- var nextTick = /*#__PURE__*/NextTick.instance.nextTick.bind(NextTick.instance);
608
-
609
- var createRoot = ReactDOMClient.createRoot;
610
- var modalContainer = null;
611
- var root = null;
612
- function getOrCreateContainer() {
613
- if (!modalContainer) {
614
- modalContainer = document.createElement('div');
615
- document.body.appendChild(modalContainer);
616
- }
617
- return modalContainer;
618
- }
619
- function openModal(DialogComponent, initialConfig) {
620
- var container = getOrCreateContainer();
621
- var currentConfig = _extends({
622
- open: true
623
- }, initialConfig, {
624
- // 默认自动关闭
625
- onClosed: initialConfig.onClosed || function (params) {
626
- unifiedDestroy(params);
627
- }
628
- });
629
- if (!root) {
630
- try {
631
- root = createRoot(container);
632
- } catch (error) {
633
- console.error('Failed to create root:', error);
634
- return {
635
- destroy: function destroy() {},
636
- update: function update() {}
637
- };
638
- }
639
- }
640
- var cleanup = function cleanup() {
641
- if (root) {
642
- root.unmount();
643
- root = null;
644
- }
645
- if (modalContainer && modalContainer.parentNode) {
646
- modalContainer.parentNode.removeChild(modalContainer);
647
- modalContainer = null;
648
- }
649
- };
650
- var _destroy = function destroy(params) {
651
- if (typeof currentConfig.onClosed === 'function') {
652
- currentConfig.onClosed(params);
653
- }
654
- // 销毁 modal
655
- cleanup();
656
- };
657
- var render = function render(props) {
658
- if (root) {
659
- root.render(React__default.createElement(DialogComponent, Object.assign({}, props)));
660
- }
661
- };
662
- var update = function update(configUpdate) {
663
- currentConfig = typeof configUpdate === 'function' ? configUpdate(currentConfig) : _extends({}, currentConfig, configUpdate);
664
- render(currentConfig);
665
- };
666
- // 统一的销毁函数
667
- var unifiedDestroy = function unifiedDestroy(params) {
668
- // 如果当前配置是打开的,关闭
669
- if (currentConfig.open) {
670
- currentConfig = _extends({}, currentConfig, {
671
- open: false,
672
- onClosed: function onClosed(closedParams) {
673
- if (initialConfig.onClosed) {
674
- initialConfig.onClosed(closedParams || params);
675
- }
676
- _destroy(closedParams || params);
677
- }
678
- });
679
- render(currentConfig);
680
- } else {
681
- console.warn('Modal is already closed.');
682
- }
683
- };
684
- render(currentConfig);
685
- return {
686
- destroy: unifiedDestroy,
687
- update: update
688
- };
689
- }
690
-
691
- var noop = function noop() {};
692
- // 生成类名
693
- var getClassName = function getClassName(key1, key2) {
694
- var cn = key1;
695
- var str = key1;
696
- if (key2.includes(' ')) {
697
- str = '';
698
- var nArr = key2 == null ? void 0 : key2.split(' ');
699
- for (var _iterator = _createForOfIteratorHelperLoose(nArr), _step; !(_step = _iterator()).done;) {
700
- var i = _step.value;
701
- str += " " + cn + "-" + i;
702
- }
703
- } else if (key2) {
704
- str = key1 + "-" + key2;
705
- }
706
- return str;
707
- };
708
- // 根据路径获取数据
709
- var getFieldsByPath = function getFieldsByPath(data, path) {
710
- var arr = path == null ? void 0 : path.split('.');
711
- var res = data;
712
- for (var _iterator2 = _createForOfIteratorHelperLoose(arr), _step2; !(_step2 = _iterator2()).done;) {
713
- var i = _step2.value;
714
- res = res[i];
715
- }
716
- return res;
717
- };
718
- // 删除空值
719
- var removeNull = function removeNull(obj) {
720
- for (var key in obj) {
721
- if (obj[key] === null) {
722
- delete obj[key];
723
- }
724
- }
725
- return obj;
726
- };
727
- // 防抖函数
728
- var debounce = function debounce(func, wait) {
729
- var timeout = null;
730
- return function () {
731
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
732
- args[_key] = arguments[_key];
733
- }
734
- if (timeout) {
735
- clearTimeout(timeout);
736
- }
737
- timeout = setTimeout(function () {
738
- func.apply(void 0, args);
739
- }, wait);
740
- };
741
- };
742
- // 节流函数
743
- var throttle = function throttle(func, wait) {
744
- var timeout = null;
745
- var lastTime = 0;
746
- return function () {
747
- var nowTime = Date.now();
748
- if (!timeout) {
749
- func.apply(void 0, arguments);
750
- lastTime = nowTime;
751
- timeout = setTimeout(function () {
752
- timeout = null;
753
- }, wait);
754
- } else {
755
- var diffTime = nowTime - lastTime;
756
- if (diffTime >= wait) {
757
- func.apply(void 0, arguments);
758
- lastTime = nowTime;
759
- }
760
- }
761
- };
762
- };
763
-
764
- /**
765
- * 版本号工具类
766
- * 支持语义化版本 (SemVer) 和基本版本号比较
767
- */
768
- var VersionUtil = /*#__PURE__*/function () {
769
- function VersionUtil() {}
770
- /**
771
- * 验证版本号格式是否有效
772
- * @param version 版本号字符串
773
- * @returns 是否有效
774
- */
775
- VersionUtil.isValid = function isValid(version) {
776
- var semverRegex = /^v?(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$/i;
777
- return semverRegex.test(version);
778
- }
779
- /**
780
- * 比较两个版本号
781
- * @param v1 版本号1
782
- * @param v2 版本号2
783
- * @returns 比较结果: 1(v1>v2), 0(v1=v2), -1(v1<v2)
784
- */;
785
- VersionUtil.compare = function compare(v1, v2) {
786
- if (!this.isValid(v1) || !this.isValid(v2)) {
787
- throw new Error('Invalid version format');
788
- }
789
- // 去除前缀v并分割版本号
790
- var normalize = function normalize(v) {
791
- return v.replace(/^v/, '').split(/[-+]/)[0].split('.');
792
- };
793
- var parts1 = normalize(v1);
794
- var parts2 = normalize(v2);
795
- for (var i = 0; i < 3; i++) {
796
- var num1 = parseInt(parts1[i] || '0', 10);
797
- var num2 = parseInt(parts2[i] || '0', 10);
798
- if (num1 > num2) return 1;
799
- if (num1 < num2) return -1;
800
- }
801
- // 比较预发布版本
802
- var preRelease1 = v1.match(/-(.+)/);
803
- var preRelease2 = v2.match(/-(.+)/);
804
- if (preRelease1 && !preRelease2) return -1;
805
- if (!preRelease1 && preRelease2) return 1;
806
- if (preRelease1 && preRelease2) {
807
- return preRelease1[1].localeCompare(preRelease2[1]);
808
- }
809
- return 0;
810
- }
811
- /**
812
- * 检查版本号是否满足范围要求
813
- * @param version 要检查的版本
814
- * @param range 版本范围 (如 ">=1.0.0 <2.0.0") 支持: >, >=, <, <=, ^, ~, ==, =
815
- * @returns 是否满足
816
- */;
817
- VersionUtil.satisfies = function satisfies(version, range) {
818
- var _this = this;
819
- if (!this.isValid(version)) return false;
820
- var rangeRegex = /([<>]=?|==?|\^|~)?\s*v?([0-9]+\.[0-9]+\.[0-9]+(?:-[0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*)?(?:\+[0-9A-Za-z-]+)?)/g;
821
- var ranges = range.match(rangeRegex);
822
- if (!ranges || ranges.length === 0) return false;
823
- return ranges.every(function (r) {
824
- var match = r.match(/([<>]=?|==?|\^|~)?\s*(v?[0-9].*)/);
825
- if (!match) return false;
826
- var operator = match[1] || '==';
827
- var rangeVersion = match[2];
828
- if (!_this.isValid(rangeVersion)) return false;
829
- var comparison = _this.compare(version, rangeVersion);
830
- switch (operator) {
831
- case '>':
832
- return comparison > 0;
833
- case '>=':
834
- return comparison >= 0;
835
- case '<':
836
- return comparison < 0;
837
- case '<=':
838
- return comparison <= 0;
839
- case '^':
840
- return _this.caretRange(version, rangeVersion);
841
- case '~':
842
- return _this.tildeRange(version, rangeVersion);
843
- case '=':
844
- case '==':
845
- default:
846
- return comparison === 0;
847
- }
848
- });
849
- }
850
- /**
851
- * 处理 ^ 范围 (允许不修改最左边的非零数字)
852
- * @param version 版本号
853
- * @param range 范围版本
854
- * @returns 是否匹配
855
- */;
856
- VersionUtil.caretRange = function caretRange(version, range) {
857
- var normalize = function normalize(v) {
858
- return v.replace(/^v/, '').split(/[-+]/)[0].split('.');
859
- };
860
- var vParts = normalize(version);
861
- var rParts = normalize(range);
862
- // 找到第一个非零部分
863
- var firstNonZero = 0;
864
- for (var i = 0; i < rParts.length; i++) {
865
- if (parseInt(rParts[i], 10) !== 0) {
866
- firstNonZero = i;
867
- break;
868
- }
869
- }
870
- for (var _i = 0; _i <= firstNonZero; _i++) {
871
- var vNum = parseInt(vParts[_i] || '0', 10);
872
- var rNum = parseInt(rParts[_i] || '0', 10);
873
- if (vNum !== rNum) return false;
874
- }
875
- return this.compare(version, range) >= 0;
876
- }
877
- /**
878
- * 处理 ~ 范围 (允许修改最后一位数字)
879
- * @param version 版本号
880
- * @param range 范围版本
881
- * @returns 是否匹配
882
- */;
883
- VersionUtil.tildeRange = function tildeRange(version, range) {
884
- var normalize = function normalize(v) {
885
- return v.replace(/^v/, '').split(/[-+]/)[0].split('.');
886
- };
887
- var vParts = normalize(version);
888
- var rParts = normalize(range);
889
- for (var i = 0; i < rParts.length - 1; i++) {
890
- var vNum = parseInt(vParts[i] || '0', 10);
891
- var rNum = parseInt(rParts[i] || '0', 10);
892
- if (vNum !== rNum) return false;
893
- }
894
- var lastVNum = parseInt(vParts[rParts.length - 1] || '0', 10);
895
- var lastRNum = parseInt(rParts[rParts.length - 1] || '0', 10);
896
- return lastVNum >= lastRNum;
897
- }
898
- /**
899
- * 获取主版本号 (major)
900
- * @param version 版本号
901
- * @returns 主版本号
902
- */;
903
- VersionUtil.getMajor = function getMajor(version) {
904
- if (!this.isValid(version)) throw new Error('Invalid version format');
905
- var parts = version.replace(/^v/, '').split('.');
906
- return parseInt(parts[0], 10);
907
- }
908
- /**
909
- * 获取次版本号 (minor)
910
- * @param version 版本号
911
- * @returns 次版本号
912
- */;
913
- VersionUtil.getMinor = function getMinor(version) {
914
- if (!this.isValid(version)) throw new Error('Invalid version format');
915
- var parts = version.replace(/^v/, '').split('.');
916
- return parseInt(parts[1] || '0', 10);
917
- }
918
- /**
919
- * 获取修订号 (patch)
920
- * @param version 版本号
921
- * @returns 修订号
922
- */;
923
- VersionUtil.getPatch = function getPatch(version) {
924
- if (!this.isValid(version)) throw new Error('Invalid version format');
925
- var parts = version.replace(/^v/, '').split('.');
926
- return parseInt(parts[2] || '0', 10);
927
- }
928
- /**
929
- * 获取预发布版本标识
930
- * @param version 版本号
931
- * @returns 预发布标识 (无则返回null)
932
- */;
933
- VersionUtil.getPrerelease = function getPrerelease(version) {
934
- if (!this.isValid(version)) throw new Error('Invalid version format');
935
- var match = version.match(/-([^+]+)/);
936
- return match ? match[1] : null;
937
- }
938
- /**
939
- * 获取构建元数据
940
- * @param version 版本号
941
- * @returns 构建元数据 (无则返回null)
942
- */;
943
- VersionUtil.getBuildMetadata = function getBuildMetadata(version) {
944
- if (!this.isValid(version)) throw new Error('Invalid version format');
945
- var match = version.match(/\+([^]+)/);
946
- return match ? match[1] : null;
947
- };
948
- return VersionUtil;
949
- }();
950
-
951
- var usePagination = function usePagination(server, deps,
952
- // 依赖条件 数据更新默认执行server
953
- option) {
954
- var _ref = option || {},
955
- _ref$isReady = _ref.isReady,
956
- isReady = _ref$isReady === void 0 ? true : _ref$isReady,
957
- _ref$dataSource = _ref.dataSource,
958
- propDataSource = _ref$dataSource === void 0 ? [] : _ref$dataSource,
959
- _ref$current = _ref.current,
960
- propCurrent = _ref$current === void 0 ? 1 : _ref$current,
961
- _ref$pageSize = _ref.pageSize,
962
- propPageSize = _ref$pageSize === void 0 ? 10 : _ref$pageSize;
963
- var _useState = React.useState(propCurrent),
964
- current = _useState[0],
965
- setCurrent = _useState[1];
966
- var _useState2 = React.useState(propPageSize),
967
- pageSize = _useState2[0],
968
- setPageSize = _useState2[1];
969
- var _useState3 = React.useState(propDataSource),
970
- dataSource = _useState3[0],
971
- setDataSource = _useState3[1];
972
- var _useState4 = React.useState(0),
973
- total = _useState4[0],
974
- setTotal = _useState4[1];
975
- var _useState5 = React.useState(false),
976
- loading = _useState5[0],
977
- setLoading = _useState5[1];
978
- var _useState6 = React.useState(false),
979
- isFirstComplete = _useState6[0],
980
- setIsFirstComplete = _useState6[1];
981
- var currentRef = React.useRef(current);
982
- var pageSizeRef = React.useRef(pageSize);
983
- // 在状态更新时同步更新ref
984
- var setCurrentAndRef = function setCurrentAndRef(val) {
985
- setCurrent(val);
986
- currentRef.current = val;
987
- };
988
- var setPageSizeAndRef = function setPageSizeAndRef(val) {
989
- setPageSize(val);
990
- pageSizeRef.current = val;
991
- };
992
- // 计数器
993
- var seq = React.useRef(0);
994
- var doSearch = /*#__PURE__*/function () {
995
- var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee() {
996
- var _current, _pageSize, _seq, offset, _yield$server, data_source, _total, totalPage, _yield$server2, _t;
997
- return _regenerator().w(function (_context) {
998
- while (1) switch (_context.p = _context.n) {
999
- case 0:
1000
- if (isReady) {
1001
- _context.n = 1;
1002
- break;
1003
- }
1004
- return _context.a(2);
1005
- case 1:
1006
- _current = currentRef.current;
1007
- _pageSize = pageSizeRef.current;
1008
- setLoading(true);
1009
- seq.current++;
1010
- _seq = seq.current;
1011
- _context.p = 2;
1012
- // 发送请求
1013
- offset = Math.round((_current - 1) * _pageSize);
1014
- if (offset < 0) {
1015
- offset = 0;
1016
- }
1017
- if (_pageSize < 1) {
1018
- _pageSize = 1;
1019
- }
1020
- _context.n = 3;
1021
- return server({
1022
- limit: _pageSize,
1023
- offset: offset,
1024
- current: _current
1025
- });
1026
- case 3:
1027
- _yield$server = _context.v;
1028
- data_source = _yield$server.dataSource;
1029
- _total = _yield$server.total;
1030
- if (!(_seq !== seq.current)) {
1031
- _context.n = 4;
1032
- break;
1033
- }
1034
- return _context.a(2);
1035
- case 4:
1036
- if (!(pageSize * (_current - 1) >= _total && _current !== 1)) {
1037
- _context.n = 7;
1038
- break;
1039
- }
1040
- _current = 1;
1041
- totalPage = Math.ceil(_total / pageSize);
1042
- _context.n = 5;
1043
- return server({
1044
- limit: _pageSize,
1045
- offset: offset,
1046
- current: _current
1047
- });
1048
- case 5:
1049
- _yield$server2 = _context.v;
1050
- data_source = _yield$server2.dataSource;
1051
- _total = _yield$server2.total;
1052
- if (!(_seq !== seq.current)) {
1053
- _context.n = 6;
1054
- break;
1055
- }
1056
- return _context.a(2);
1057
- case 6:
1058
- _current = totalPage;
1059
- case 7:
1060
- setDataSource(data_source);
1061
- setCurrentAndRef(_current);
1062
- setPageSizeAndRef(_pageSize);
1063
- setTotal(_total);
1064
- _context.n = 9;
1065
- break;
1066
- case 8:
1067
- _context.p = 8;
1068
- _t = _context.v;
1069
- // eslint-disable-next-line no-console
1070
- console.error('fetch err', _t);
1071
- if (!(_seq !== seq.current)) {
1072
- _context.n = 9;
1073
- break;
1074
- }
1075
- return _context.a(2);
1076
- case 9:
1077
- _context.p = 9;
1078
- setIsFirstComplete(true);
1079
- setLoading(false);
1080
- return _context.f(9);
1081
- case 10:
1082
- return _context.a(2);
1083
- }
1084
- }, _callee, null, [[2, 8, 9, 10]]);
1085
- }));
1086
- return function doSearch() {
1087
- return _ref2.apply(this, arguments);
1088
- };
1089
- }();
1090
- var refresh = /*#__PURE__*/function () {
1091
- var _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(resetPage) {
1092
- return _regenerator().w(function (_context2) {
1093
- while (1) switch (_context2.n) {
1094
- case 0:
1095
- if (resetPage) {
1096
- setDataSource([]);
1097
- setCurrentAndRef(propCurrent);
1098
- setPageSizeAndRef(propPageSize);
1099
- }
1100
- _context2.n = 1;
1101
- return doSearch();
1102
- case 1:
1103
- return _context2.a(2);
1104
- }
1105
- }, _callee2);
1106
- }));
1107
- return function refresh(_x) {
1108
- return _ref3.apply(this, arguments);
1109
- };
1110
- }();
1111
- var debounceRefresh = React.useCallback(debounce(refresh, 500), [refresh]);
1112
- /* 重置逻辑 */
1113
- var _deps = [].concat(deps || [], [isReady]);
1114
- React.useEffect(function () {
1115
- if (!isReady) return;
1116
- debounceRefresh(true);
1117
- }, _deps);
1118
- var onChange = /*#__PURE__*/function () {
1119
- var _ref4 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(page, pageSize) {
1120
- return _regenerator().w(function (_context3) {
1121
- while (1) switch (_context3.n) {
1122
- case 0:
1123
- setCurrentAndRef(page);
1124
- setPageSizeAndRef(pageSize);
1125
- _context3.n = 1;
1126
- return refresh();
1127
- case 1:
1128
- return _context3.a(2);
1129
- }
1130
- }, _callee3);
1131
- }));
1132
- return function onChange(_x2, _x3) {
1133
- return _ref4.apply(this, arguments);
1134
- };
1135
- }();
1136
- var onShowSizeChange = /*#__PURE__*/function () {
1137
- var _ref5 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee4(size, current) {
1138
- return _regenerator().w(function (_context4) {
1139
- while (1) switch (_context4.n) {
1140
- case 0:
1141
- setPageSizeAndRef(size);
1142
- setCurrentAndRef(current);
1143
- _context4.n = 1;
1144
- return refresh();
1145
- case 1:
1146
- return _context4.a(2);
1147
- }
1148
- }, _callee4);
1149
- }));
1150
- return function onShowSizeChange(_x4, _x5) {
1151
- return _ref5.apply(this, arguments);
1152
- };
1153
- }();
1154
- var paginationProps = {
1155
- current: current,
1156
- pageSize: pageSize,
1157
- total: total,
1158
- onChange: onChange,
1159
- onShowSizeChange: onShowSizeChange
1160
- };
1161
- return {
1162
- tableProps: {
1163
- loading: loading,
1164
- dataSource: dataSource
1165
- },
1166
- loading: loading,
1167
- dataSource: dataSource,
1168
- paginationProps: paginationProps,
1169
- isFirstComplete: isFirstComplete,
1170
- refresh: refresh,
1171
- debounceRefresh: debounceRefresh,
1172
- setDataSource: setDataSource
1173
- };
1174
- };
1175
-
1176
- function useQuery() {
1177
- var search = window.location.href.split('?')[1] || '';
1178
- var params = new URLSearchParams(search);
1179
- var query = Object.fromEntries(params.entries());
1180
- return query;
1181
- }
1182
-
1183
- var useReactive = function useReactive(initialState) {
1184
- var _useState = React.useState(initialState),
1185
- state = _useState[0],
1186
- setState = _useState[1];
1187
- var stateRef = React.useRef(state);
1188
- var updateState = React.useCallback(function (newState) {
1189
- setState(function (prev) {
1190
- var updatedPart = typeof newState === 'function' ? newState(prev) : newState;
1191
- var newFullState = _extends({}, prev, updatedPart);
1192
- stateRef.current = newFullState; // 同步更新ref
1193
- return newFullState;
1194
- });
1195
- }, []);
1196
- var getState = React.useCallback(function () {
1197
- return stateRef.current;
1198
- }, []);
1199
- var resetState = React.useCallback(function () {
1200
- setState(initialState);
1201
- stateRef.current = initialState;
1202
- }, [initialState]);
1203
- return [state, updateState, getState, resetState];
1204
- };
1205
-
1206
- function useTimeout(callback, delay, immediate) {
1207
- if (immediate === void 0) {
1208
- immediate = false;
1209
- }
1210
- var timerRef = React.useRef(undefined);
1211
- var savedCallback = React.useRef(callback);
1212
- // Update callback ref if callback changes
1213
- React.useEffect(function () {
1214
- savedCallback.current = callback;
1215
- }, [callback]);
1216
- var clear = React.useCallback(function () {
1217
- if (timerRef.current) {
1218
- clearTimeout(timerRef.current);
1219
- timerRef.current = undefined;
1220
- }
1221
- }, []);
1222
- var start = React.useCallback(function () {
1223
- clear();
1224
- if (delay !== null && delay !== undefined) {
1225
- timerRef.current = setTimeout(function () {
1226
- return savedCallback.current();
1227
- }, delay);
1228
- }
1229
- }, [delay, clear]);
1230
- React.useEffect(function () {
1231
- if (immediate) {
1232
- savedCallback.current();
1233
- }
1234
- start();
1235
- return clear;
1236
- }, [delay, start, clear, immediate]);
1237
- return {
1238
- start: start,
1239
- clear: clear,
1240
- isRunning: !!timerRef.current
1241
- };
1242
- }
1243
-
1244
- var useVirtualList = function useVirtualList(server, deps,
1245
- // 依赖条件 数据更新默认执行server
1246
- option) {
1247
- var _ref = option || {},
1248
- _ref$isReady = _ref.isReady,
1249
- isReady = _ref$isReady === void 0 ? true : _ref$isReady,
1250
- _ref$dataSource = _ref.dataSource,
1251
- propDataSource = _ref$dataSource === void 0 ? [] : _ref$dataSource,
1252
- _ref$current = _ref.current,
1253
- propCurrent = _ref$current === void 0 ? 1 : _ref$current,
1254
- _ref$pageSize = _ref.pageSize,
1255
- propPageSize = _ref$pageSize === void 0 ? PAGE_SIZE : _ref$pageSize;
1256
- // 是否完成了一次请求
1257
- var _useState = React.useState(false),
1258
- isFirstComplete = _useState[0],
1259
- setIsFirstComplete = _useState[1];
1260
- // 分页
1261
- var _useState2 = React.useState(propCurrent),
1262
- current = _useState2[0],
1263
- setCurrent = _useState2[1];
1264
- var _useState3 = React.useState(propPageSize),
1265
- pageSize = _useState3[0],
1266
- setPageSize = _useState3[1];
1267
- var _useState4 = React.useState(0),
1268
- total = _useState4[0],
1269
- setTotal = _useState4[1];
1270
- // 表格
1271
- var _useState5 = React.useState(false),
1272
- isLoading = _useState5[0],
1273
- setIsLoading = _useState5[1];
1274
- var _useState6 = React.useState(propDataSource),
1275
- dataSource = _useState6[0],
1276
- setDataSource = _useState6[1];
1277
- var currentRef = React.useRef(current);
1278
- var pageSizeRef = React.useRef(pageSize);
1279
- // 在状态更新时同步更新ref
1280
- var setCurrentAndRef = function setCurrentAndRef(val) {
1281
- setCurrent(val);
1282
- currentRef.current = val;
1283
- };
1284
- var setPageSizeAndRef = function setPageSizeAndRef(val) {
1285
- setPageSize(val);
1286
- pageSizeRef.current = val;
1287
- };
1288
- // 计数器
1289
- var seq = React.useRef(0);
1290
- var doSearch = /*#__PURE__*/function () {
1291
- var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(reset) {
1292
- var _current, _pageSize, _seq, offset, _yield$server, data0, total0, totalPage, _yield$server2, d, _t;
1293
- return _regenerator().w(function (_context) {
1294
- while (1) switch (_context.p = _context.n) {
1295
- case 0:
1296
- if (isReady) {
1297
- _context.n = 1;
1298
- break;
1299
- }
1300
- return _context.a(2);
1301
- case 1:
1302
- _current = currentRef.current;
1303
- _pageSize = pageSizeRef.current;
1304
- setIsLoading(true);
1305
- seq.current += 1;
1306
- _seq = seq.current;
1307
- _context.p = 2;
1308
- // 发送请求
1309
- offset = Math.round((_current - 1) * _pageSize);
1310
- if (offset < 0) {
1311
- offset = 0;
1312
- }
1313
- if (_pageSize < 1) {
1314
- _pageSize = 1;
1315
- }
1316
- _context.n = 3;
1317
- return server({
1318
- limit: _pageSize,
1319
- offset: offset,
1320
- current: _current
1321
- });
1322
- case 3:
1323
- _yield$server = _context.v;
1324
- data0 = _yield$server.dataSource;
1325
- total0 = _yield$server.total;
1326
- if (!(_seq !== seq.current)) {
1327
- _context.n = 4;
1328
- break;
1329
- }
1330
- return _context.a(2);
1331
- case 4:
1332
- if (!(pageSize * (_current - 1) >= total0 && _current !== 1)) {
1333
- _context.n = 7;
1334
- break;
1335
- }
1336
- totalPage = Math.ceil(total0 / pageSize);
1337
- _context.n = 5;
1338
- return server({
1339
- limit: _pageSize,
1340
- offset: Math.round((totalPage - 1) * _pageSize),
1341
- current: _current
1342
- });
1343
- case 5:
1344
- _yield$server2 = _context.v;
1345
- data0 = _yield$server2.dataSource;
1346
- total0 = _yield$server2.total;
1347
- if (!(_seq !== seq.current)) {
1348
- _context.n = 6;
1349
- break;
1350
- }
1351
- return _context.a(2);
1352
- case 6:
1353
- _current = totalPage;
1354
- // message.error('数据源发生变化,该页没有数据,自动加载最后一页');
1355
- case 7:
1356
- d = reset ? data0 : dataSource.concat(data0);
1357
- setDataSource(d);
1358
- setCurrentAndRef(_current);
1359
- setPageSizeAndRef(_pageSize);
1360
- setTotal(total0);
1361
- _context.n = 9;
1362
- break;
1363
- case 8:
1364
- _context.p = 8;
1365
- _t = _context.v;
1366
- console.error('fetch err', _t);
1367
- if (!(_seq !== seq.current)) {
1368
- _context.n = 9;
1369
- break;
1370
- }
1371
- return _context.a(2);
1372
- case 9:
1373
- setIsFirstComplete(true);
1374
- setIsLoading(false);
1375
- case 10:
1376
- return _context.a(2);
1377
- }
1378
- }, _callee, null, [[2, 8]]);
1379
- }));
1380
- return function doSearch(_x) {
1381
- return _ref2.apply(this, arguments);
1382
- };
1383
- }();
1384
- // 加载下一页数据
1385
- var _refresh = /*#__PURE__*/function () {
1386
- var _ref3 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee2(reset) {
1387
- var curTotal;
1388
- return _regenerator().w(function (_context2) {
1389
- while (1) switch (_context2.n) {
1390
- case 0:
1391
- if (!reset) {
1392
- _context2.n = 1;
1393
- break;
1394
- }
1395
- setDataSource([]);
1396
- setCurrentAndRef(propCurrent);
1397
- setPageSizeAndRef(propPageSize);
1398
- _context2.n = 3;
1399
- break;
1400
- case 1:
1401
- curTotal = pageSize * current;
1402
- if (!(total && total <= curTotal)) {
1403
- _context2.n = 2;
1404
- break;
1405
- }
1406
- return _context2.a(2);
1407
- case 2:
1408
- setCurrentAndRef(current + 1);
1409
- case 3:
1410
- _context2.n = 4;
1411
- return doSearch(reset);
1412
- case 4:
1413
- return _context2.a(2);
1414
- }
1415
- }, _callee2);
1416
- }));
1417
- return function refresh(_x2) {
1418
- return _ref3.apply(this, arguments);
1419
- };
1420
- }();
1421
- // 防抖 加载下一页数据
1422
- var debounceRefresh = React.useCallback(debounce(_refresh, 500), [_refresh]);
1423
- /* 重置逻辑 */
1424
- var _deps = [].concat(deps || [], [isReady]);
1425
- React.useEffect(function () {
1426
- if (!isReady) return;
1427
- debounceRefresh(true);
1428
- }, _deps);
1429
- return {
1430
- loading: isLoading,
1431
- dataSource: dataSource,
1432
- paginationProps: {
1433
- current: current,
1434
- pageSize: pageSize,
1435
- total: total
1436
- },
1437
- isFirstComplete: isFirstComplete,
1438
- refresh: function () {
1439
- var _refresh2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee3(reset) {
1440
- return _regenerator().w(function (_context3) {
1441
- while (1) switch (_context3.n) {
1442
- case 0:
1443
- _context3.n = 1;
1444
- return _refresh(reset);
1445
- case 1:
1446
- return _context3.a(2);
1447
- }
1448
- }, _callee3);
1449
- }));
1450
- function refresh(_x3) {
1451
- return _refresh2.apply(this, arguments);
1452
- }
1453
- return refresh;
1454
- }(),
1455
- debounceRefresh: debounceRefresh,
1456
- setDataSource: setDataSource,
1457
- setTotal: setTotal
1458
- };
1459
- };
1460
-
1461
- exports.DATE_FORMAT = DATE_FORMAT;
1462
- exports.MyButton = MyButton;
1463
- exports.NextTick = NextTick;
1464
- exports.PAGE_SIZE = PAGE_SIZE;
1465
- exports.PatternType = PatternType;
1466
- exports.VersionUtil = VersionUtil;
1467
- exports.cmx = cmx;
1468
- exports.debounce = debounce;
1469
- exports.getClassName = getClassName;
1470
- exports.getFieldsByPath = getFieldsByPath;
1471
- exports.nextTick = nextTick;
1472
- exports.noop = noop;
1473
- exports.openModal = openModal;
1474
- exports.removeNull = removeNull;
1475
- exports.throttle = throttle;
1476
- exports.useFuncRequest = useFuncRequest;
1477
- exports.useInterval = useInterval;
1478
- exports.usePagination = usePagination;
1479
- exports.useQuery = useQuery;
1480
- exports.useReactive = useReactive;
1481
- exports.useTimeout = useTimeout;
1482
- exports.useVirtualList = useVirtualList;
1483
- //# sourceMappingURL=libs.cjs.development.js.map