@topthink/components 1.0.58 → 1.0.59

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 (103) hide show
  1. package/es/{editor-widget-ebec8493.js → editor-widget-CQ3zv-Xu.js} +0 -1
  2. package/es/{image-zoom-912e2b3b.js → image-zoom-OrIPGqh0.js} +0 -1
  3. package/es/index-PGfJO0Bp.js +39 -0
  4. package/es/index-PvFKqXZL.js +1 -0
  5. package/es/{index-563b11c6.js → index-XkUorbN_.js} +13 -14
  6. package/es/index.js +1 -2
  7. package/es/{steps-afba29a7.js → steps-b_BcYIwk.js} +1 -2
  8. package/package.json +15 -15
  9. package/types/components/button.d.ts +9 -9
  10. package/types/components/card.d.ts +7 -7
  11. package/types/components/dimmer.d.ts +7 -7
  12. package/types/components/error.d.ts +5 -5
  13. package/types/components/form.d.ts +4 -4
  14. package/types/components/image-zoom.d.ts +4 -4
  15. package/types/components/lazy/form/index.d.ts +19 -19
  16. package/types/components/lazy/form/widgets/editor-widget.d.ts +6 -5
  17. package/types/components/lazy/image-zoom.d.ts +3 -3
  18. package/types/components/lazy/steps.d.ts +9 -9
  19. package/types/components/lazy/table/context.d.ts +2 -2
  20. package/types/components/lazy/table/index.d.ts +45 -45
  21. package/types/components/lazy/table/search.d.ts +23 -23
  22. package/types/components/lazy/table/use-selection.d.ts +3 -3
  23. package/types/components/loader.d.ts +9 -9
  24. package/types/components/loading-button.d.ts +7 -7
  25. package/types/components/modal/confirm.d.ts +8 -8
  26. package/types/components/modal/index.d.ts +32 -32
  27. package/types/components/modal/message.d.ts +26 -26
  28. package/types/components/modal/show.d.ts +3 -3
  29. package/types/components/modal-button.d.ts +17 -17
  30. package/types/components/modal-form.d.ts +10 -10
  31. package/types/components/number-format.d.ts +10 -10
  32. package/types/components/pagination.d.ts +11 -11
  33. package/types/components/request-button.d.ts +13 -13
  34. package/types/components/result.d.ts +15 -15
  35. package/types/components/space.d.ts +9 -9
  36. package/types/components/statistic.d.ts +7 -7
  37. package/types/components/steps.d.ts +10 -10
  38. package/types/components/table.d.ts +4 -4
  39. package/types/components/tooltip.d.ts +9 -9
  40. package/types/hooks/use-callback-ref.d.ts +2 -2
  41. package/types/hooks/use-controllable-state.d.ts +8 -8
  42. package/types/hooks/use-debounce.d.ts +2 -2
  43. package/types/hooks/use-overlay-state.d.ts +16 -16
  44. package/types/hooks/use-request.d.ts +21 -21
  45. package/types/hooks/use-safe-state.d.ts +4 -4
  46. package/types/hooks/use-state-with-callback.d.ts +2 -2
  47. package/types/hooks/use-unmounted-ref.d.ts +3 -3
  48. package/types/index.d.ts +33 -33
  49. package/types/request.d.ts +32 -32
  50. package/types/utils/is-record.d.ts +1 -1
  51. package/types/utils/message.d.ts +11 -11
  52. package/types/utils/toast.d.ts +11 -11
  53. package/types/utils/types.d.ts +7 -7
  54. package/types/utils/wait-pay-complete.d.ts +11 -11
  55. package/es/editor-widget-ebec8493.js.map +0 -1
  56. package/es/form-01bf45e9.js +0 -233
  57. package/es/form-01bf45e9.js.map +0 -1
  58. package/es/form-0a372a24.js +0 -2
  59. package/es/form-0a372a24.js.map +0 -1
  60. package/es/form-1791ea39.js +0 -236
  61. package/es/form-1791ea39.js.map +0 -1
  62. package/es/form-74ef0417.js +0 -2
  63. package/es/form-74ef0417.js.map +0 -1
  64. package/es/form-8925a750.js +0 -231
  65. package/es/form-8925a750.js.map +0 -1
  66. package/es/form-95db7eac.js +0 -2
  67. package/es/form-95db7eac.js.map +0 -1
  68. package/es/form-9c0e638a.js +0 -231
  69. package/es/form-9c0e638a.js.map +0 -1
  70. package/es/image-zoom-912e2b3b.js.map +0 -1
  71. package/es/index-1930b692.js +0 -67
  72. package/es/index-1930b692.js.map +0 -1
  73. package/es/index-1d379f3a.js +0 -562
  74. package/es/index-1d379f3a.js.map +0 -1
  75. package/es/index-2b97b70d.js +0 -2
  76. package/es/index-2b97b70d.js.map +0 -1
  77. package/es/index-303e1845.js +0 -560
  78. package/es/index-303e1845.js.map +0 -1
  79. package/es/index-4f51cece.js +0 -1352
  80. package/es/index-4f51cece.js.map +0 -1
  81. package/es/index-5142110c.js +0 -67
  82. package/es/index-5142110c.js.map +0 -1
  83. package/es/index-563b11c6.js.map +0 -1
  84. package/es/index-6ae8237d.js +0 -67
  85. package/es/index-6ae8237d.js.map +0 -1
  86. package/es/index-7a7c06a9.js +0 -40
  87. package/es/index-7a7c06a9.js.map +0 -1
  88. package/es/index-9869b1c6.js +0 -1350
  89. package/es/index-9869b1c6.js.map +0 -1
  90. package/es/index-a214613e.js +0 -40
  91. package/es/index-a214613e.js.map +0 -1
  92. package/es/index-a48179db.js +0 -1382
  93. package/es/index-a48179db.js.map +0 -1
  94. package/es/index-b34ecf90.js +0 -40
  95. package/es/index-b34ecf90.js.map +0 -1
  96. package/es/index-d964165a.js +0 -560
  97. package/es/index-d964165a.js.map +0 -1
  98. package/es/index-e17dc6f0.js +0 -40
  99. package/es/index-e17dc6f0.js.map +0 -1
  100. package/es/index.js.map +0 -1
  101. package/es/steps-afba29a7.js.map +0 -1
  102. package/es/steps-c27a3885.js +0 -34
  103. package/es/steps-c27a3885.js.map +0 -1
@@ -1,562 +0,0 @@
1
- import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
- import RcTable from 'rc-table';
3
- import { unstable_batchedUpdates } from 'react-dom';
4
- import { FormControl, Table as Table$1 } from 'react-bootstrap';
5
- import { useUrlSearchParams } from 'use-url-search-params';
6
- import * as React from 'react';
7
- import { useState, useCallback, useRef, useEffect, memo, forwardRef, useImperativeHandle, useMemo } from 'react';
8
- import { B as Button, a as useDebounce, P as Pagination, b as useControllableState, r as request, N as NumberFormat, L as Loader, T as TableContext, C as Card, S as Space } from './index-a48179db.js';
9
- import styled from 'styled-components';
10
- import Form from './form-01bf45e9.js';
11
- import 'sweetalert2/dist/sweetalert2.js';
12
- import 'sweetalert2-react-content';
13
- import 'lodash';
14
- import 'axios';
15
- import 'query-string';
16
- import 'retry-axios';
17
- import '@babel/runtime/helpers/defineProperty';
18
- import 'rc-notification';
19
- import 'classnames';
20
- import 'rc-steps';
21
- import 'rc-steps/assets/index.css';
22
- import 'react-async-hook';
23
- import '@topthink/json-form';
24
-
25
- const Checkbox = function (_ref) {
26
- let {
27
- indeterminate = false,
28
- ...props
29
- } = _ref;
30
- const ref = useRef(null);
31
- useEffect(() => {
32
- if (ref.current) {
33
- ref.current.indeterminate = indeterminate;
34
- }
35
- }, [indeterminate]);
36
- return jsx("input", {
37
- ref: ref,
38
- ...props,
39
- className: 'form-check-input',
40
- type: 'checkbox'
41
- });
42
- };
43
- function useSelection(rowSelection, rowKey, data) {
44
- const [keys, setKeys] = useState(() => new Set(rowSelection?.selectedRowKeys || []));
45
- const getRowKey = record => {
46
- if (typeof rowKey === 'string') {
47
- // @ts-ignore
48
- return record[rowKey];
49
- } else {
50
- return rowKey(record);
51
- }
52
- };
53
- const getRecordByKey = key => {
54
- return data.find(record => {
55
- return getRowKey(record) === key;
56
- });
57
- };
58
- const setSelectedKeys = useCallback(keys => {
59
- if (!(keys instanceof Set)) {
60
- keys = new Set(keys);
61
- }
62
- setKeys(keys);
63
- const changedKeys = Array.from(keys);
64
- const records = changedKeys.map(function (key) {
65
- return getRecordByKey(key);
66
- });
67
- if (rowSelection?.onChange) {
68
- rowSelection?.onChange(changedKeys, records);
69
- }
70
- }, [getRecordByKey]);
71
- const transformColumns = useCallback(columns => {
72
- if (!rowSelection) {
73
- return columns;
74
- }
75
- const recordKeys = data.map(getRowKey);
76
- const checkedCurrentAll = recordKeys.every(function (key) {
77
- return keys.has(key);
78
- });
79
- const checkedCurrentSome = recordKeys.some(function (key) {
80
- return keys.has(key);
81
- });
82
- return [{
83
- key: 'selection',
84
- title: jsx(Checkbox, {
85
- checked: checkedCurrentAll && data.length > 0,
86
- indeterminate: !checkedCurrentAll && checkedCurrentSome,
87
- onChange: () => {
88
- if (checkedCurrentAll) {
89
- recordKeys.forEach(function (key) {
90
- keys.delete(key);
91
- });
92
- } else {
93
- recordKeys.forEach(function (key) {
94
- keys.add(key);
95
- });
96
- }
97
- setSelectedKeys(new Set(keys));
98
- }
99
- }),
100
- width: 30,
101
- align: 'center',
102
- render(_ref2) {
103
- let {
104
- record
105
- } = _ref2;
106
- const key = getRowKey(record);
107
- const checked = keys.has(key);
108
- return jsx(Checkbox, {
109
- checked: checked,
110
- onChange: () => {
111
- if (checked) {
112
- keys.delete(key);
113
- } else {
114
- keys.add(key);
115
- }
116
- setSelectedKeys(new Set(keys));
117
- }
118
- });
119
- }
120
- }, ...columns];
121
- }, [data, rowSelection, keys]);
122
- return [transformColumns, setSelectedKeys];
123
- }
124
-
125
- var _path$1;
126
- function _extends$1() { _extends$1 = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends$1.apply(this, arguments); }
127
- const SvgPlusSquare = props => /*#__PURE__*/React.createElement("svg", _extends$1({
128
- viewBox: "0 0 1024 1024",
129
- xmlns: "http://www.w3.org/2000/svg",
130
- width: 16,
131
- height: 16,
132
- fill: "currentColor"
133
- }, props), _path$1 || (_path$1 = /*#__PURE__*/React.createElement("path", {
134
- d: "M252.069 906.496h520.283c89.582 0 134.144-44.562 134.144-132.846V250.331c0-88.283-44.562-132.845-134.144-132.845H252.069c-89.143 0-134.583 44.141-134.583 132.845V773.67c0 88.704 45.44 132.845 134.583 132.845zm1.28-68.992c-42.844 0-66.853-22.71-66.853-67.291V253.806c0-44.58 24.01-67.292 66.853-67.292h517.723c42.423 0 66.432 22.711 66.432 67.292v516.388c0 44.58-24.01 67.292-66.432 67.292zM511.78 714.496c22.71 0 36.425-15.854 36.425-40.704V547.365H682.35c24.009 0 40.722-12.874 40.722-35.584 0-23.132-15.854-36.426-40.722-36.426H548.206V340.773c0-24.85-13.715-40.704-36.425-40.704s-35.566 16.713-35.566 40.722v134.583H342.49c-24.85 0-41.142 13.275-41.142 36.407 0 22.71 17.152 35.584 41.142 35.584h133.724v126.427c0 23.99 12.855 40.704 35.566 40.704z"
135
- })));
136
-
137
- var _path;
138
- function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
139
- const SvgMinusSquare = props => /*#__PURE__*/React.createElement("svg", _extends({
140
- viewBox: "0 0 1024 1024",
141
- xmlns: "http://www.w3.org/2000/svg",
142
- width: 16,
143
- height: 16,
144
- fill: "currentColor"
145
- }, props), _path || (_path = /*#__PURE__*/React.createElement("path", {
146
- d: "M252.069 906.496h520.283c89.582 0 134.144-44.562 134.144-132.846V250.331c0-88.283-44.562-132.845-134.144-132.845H252.069c-89.143 0-134.583 44.141-134.583 132.845V773.67c0 88.704 45.44 132.845 134.583 132.845zm1.28-68.992c-42.844 0-66.853-22.71-66.853-67.291V253.806c0-44.58 24.01-67.292 66.853-67.292h517.723c42.423 0 66.432 22.711 66.432 67.292v516.388c0 44.58-24.01 67.292-66.432 67.292zm86.582-289.719h344.576c23.991 0 40.704-12.855 40.704-35.566 0-23.15-15.433-36.425-40.704-36.425H339.931c-24.868 0-40.722 13.276-40.722 36.425 0 22.711 16.713 35.566 40.722 35.566z"
147
- })));
148
-
149
- function Search(_ref) {
150
- let {
151
- data,
152
- options,
153
- columns,
154
- onSearch
155
- } = _ref;
156
- const [key, setKey] = useState(0);
157
- const uiSchema = {
158
- 'ui:col': 10,
159
- 'ui:order': options.order
160
- };
161
- const properties = {};
162
- options.fields.forEach(field => {
163
- const column = columns.find(column => column.dataIndex === field);
164
- if (column) {
165
- const title = column.title;
166
- if (typeof title === 'string') {
167
- uiSchema[field] = {
168
- 'ui:col': 4,
169
- 'ui:labelCol': 3,
170
- 'ui:placeholder': '请输入',
171
- ...options.ui?.[field]
172
- };
173
- if (column.valueEnum) {
174
- const valueEnum = column.valueEnum;
175
- uiSchema[field]['ui:placeholder'] = '请选择';
176
- return properties[field] = {
177
- title,
178
- type: 'string',
179
- enum: Object.keys(valueEnum).flatMap(key => {
180
- const text = valueEnum[key].text;
181
- if (typeof text === 'string') {
182
- return [key];
183
- }
184
- return [];
185
- }),
186
- enumNames: Object.keys(valueEnum).flatMap(key => {
187
- const text = valueEnum[key].text;
188
- if (typeof text === 'string') {
189
- return [text];
190
- }
191
- return [];
192
- })
193
- };
194
- }
195
- return properties[field] = {
196
- title,
197
- type: 'string'
198
- };
199
- }
200
- }
201
- });
202
- if (options.extraFields) {
203
- Object.entries(options.extraFields).forEach(_ref2 => {
204
- let [field, title] = _ref2;
205
- uiSchema[field] = {
206
- 'ui:col': 4,
207
- 'ui:labelCol': 3,
208
- 'ui:placeholder': '请输入',
209
- ...options.ui?.[field]
210
- };
211
- properties[field] = {
212
- title,
213
- type: 'string'
214
- };
215
- });
216
- }
217
- const schema = {
218
- type: 'object',
219
- properties
220
- };
221
- const onSubmit = useCallback(_ref3 => {
222
- let {
223
- formData
224
- } = _ref3;
225
- onSearch(formData);
226
- }, [onSearch]);
227
- const onReset = useCallback(() => {
228
- setKey(key => key + 1);
229
- onSearch({});
230
- }, []);
231
- return jsx(Container, {
232
- children: jsx(Form, {
233
- formContext: {
234
- layout: 'horizontal'
235
- },
236
- schema: schema,
237
- uiSchema: uiSchema,
238
- onSubmit: onSubmit,
239
- formData: data,
240
- children: jsx("div", {
241
- className: 'col-2 ms-auto mt-auto',
242
- children: jsxs("div", {
243
- className: 'justify-content-end d-flex gap-2 ',
244
- children: [jsx(Button, {
245
- className: 'px-4',
246
- onClick: onReset,
247
- variant: 'secondary',
248
- children: "\u91CD\u7F6E"
249
- }), jsx(Button, {
250
- className: 'px-4',
251
- type: 'submit',
252
- variant: 'primary',
253
- children: "\u67E5\u8BE2"
254
- })]
255
- })
256
- })
257
- })
258
- }, key);
259
- }
260
- const Container = styled.div`
261
- margin-bottom: 1rem;
262
- `;
263
- function LightSearch(_ref4) {
264
- let {
265
- keyword,
266
- onKeywordChange
267
- } = _ref4;
268
- const [value, setValue] = useState(keyword);
269
- const debouncedOnKeywordChange = useDebounce(onKeywordChange, 500);
270
- useEffect(() => {
271
- setValue(keyword);
272
- }, [keyword]);
273
- const onChange = useCallback(e => {
274
- setValue(e.target.value);
275
- debouncedOnKeywordChange(e.target.value);
276
- }, [debouncedOnKeywordChange, setValue]);
277
- return jsx(FormControl, {
278
- value: value,
279
- onChange: onChange,
280
- type: 'search',
281
- placeholder: 'Search...'
282
- });
283
- }
284
-
285
- const CustomTHead = styled.thead`
286
- th {
287
- padding: 0.5rem 0.5rem;
288
- border-bottom-width: 1px;
289
- border-color: var(--bs-border-color);
290
- }
291
- `;
292
- const components = {
293
- table: props => {
294
- return jsx(Table$1, {
295
- ...props,
296
- className: 'mb-0 align-middle table-hover'
297
- });
298
- },
299
- header: {
300
- wrapper(props) {
301
- return jsx(CustomTHead, {
302
- ...props
303
- });
304
- }
305
- }
306
- };
307
- const ExpandIconContainer = styled.a`
308
- cursor: pointer;
309
- width: 28px;
310
- height: 28px;
311
- display: inline-flex;
312
- align-items: center;
313
- justify-content: center;
314
- vertical-align: middle;
315
- `;
316
- const ExpandIcon = function (_ref) {
317
- let {
318
- record,
319
- expanded,
320
- expandable,
321
- onExpand
322
- } = _ref;
323
- if (!expandable) return jsx(ExpandIconContainer, {});
324
- return jsx(ExpandIconContainer, {
325
- onClick: e => onExpand(record, e),
326
- children: expanded ? jsx(SvgMinusSquare, {}) : jsx(SvgPlusSquare, {})
327
- });
328
- };
329
- const CustomPagination = styled(Pagination)`
330
- margin-bottom: 0;
331
- justify-content: flex-end;
332
- margin-top: 1rem;
333
- `;
334
- function isPagination(data) {
335
- return 'current_page' in data;
336
- }
337
- const Table = forwardRef((_ref2, ref) => {
338
- let {
339
- source,
340
- rowKey = 'id',
341
- paginate = true,
342
- toolBarRender,
343
- columns = [],
344
- search,
345
- rowSelection,
346
- card = true,
347
- expandable = {},
348
- sync = false,
349
- ...props
350
- } = _ref2;
351
- const [data, setData] = useState([]);
352
- const [pagination, setPagination] = useState(paginate ? {
353
- total: 0,
354
- current: 1,
355
- pageSize: 10
356
- } : null);
357
- const [loading, setLoading] = useState(true);
358
- const [params, setParams] = useUrlSearchParams({});
359
- //多选
360
- const [transformColumns, setSelectionRowKeys] = useSelection(rowSelection, rowKey, data);
361
- const [filters, setFilters] = useControllableState({
362
- value: sync ? params || {} : undefined,
363
- defaultValue: {},
364
- onChange: value => {
365
- if (sync) {
366
- setParams(value);
367
- }
368
- }
369
- });
370
- const [keyword, setKeyword] = useControllableState({
371
- value: sync ? params.q || '' : undefined,
372
- defaultValue: '',
373
- onChange: value => {
374
- if (sync) {
375
- setParams({
376
- q: value || undefined
377
- });
378
- }
379
- }
380
- });
381
- const [page, setPage] = useControllableState({
382
- value: sync ? params.page || 1 : undefined,
383
- defaultValue: 1,
384
- onChange: value => {
385
- if (sync) {
386
- setParams({
387
- page: value || undefined
388
- });
389
- }
390
- }
391
- });
392
- const fetchData = useCallback(async () => {
393
- setLoading(true);
394
- setSelectionRowKeys([]);
395
- try {
396
- let result;
397
- const params = {
398
- ...filters,
399
- q: keyword,
400
- page: page > 1 ? page : undefined
401
- };
402
- if (typeof source === 'string') {
403
- result = await request({
404
- url: source,
405
- params
406
- });
407
- } else {
408
- result = await source(params);
409
- }
410
- if (paginate && isPagination(result)) {
411
- setPagination({
412
- total: result.total,
413
- current: result.current_page,
414
- pageSize: result.per_page
415
- });
416
- result = result.data;
417
- }
418
- setData(result);
419
- } catch (e) {} finally {
420
- setLoading(false);
421
- }
422
- }, [source, setData, keyword, page, filters]);
423
- useEffect(() => {
424
- fetchData();
425
- }, [keyword, page, filters]);
426
- const action = useRef({
427
- reload: fetchData
428
- });
429
- useEffect(() => {
430
- action.current = {
431
- reload: fetchData
432
- };
433
- }, [fetchData]);
434
- useImperativeHandle(ref, () => action.current);
435
- const customColumns = useMemo(() => {
436
- return transformColumns(columns).map(_ref3 => {
437
- let {
438
- render,
439
- valueType,
440
- valueEnum,
441
- ...column
442
- } = _ref3;
443
- const customColumn = {
444
- ...column
445
- };
446
- if (render) {
447
- customColumn.render = (value, record, index) => {
448
- return render({
449
- value,
450
- record,
451
- index,
452
- action: action.current
453
- });
454
- };
455
- } else if (valueType === 'currency') {
456
- customColumn.render = value => {
457
- return jsx(NumberFormat, {
458
- value: value
459
- });
460
- };
461
- } else if (valueEnum) {
462
- customColumn.render = value => {
463
- if (valueEnum[value]) {
464
- if (valueEnum[value].status) {
465
- return jsx("span", {
466
- className: `text-${valueEnum[value].status}`,
467
- children: valueEnum[value].text
468
- });
469
- }
470
- return valueEnum[value].text;
471
- }
472
- return value;
473
- };
474
- }
475
- return customColumn;
476
- });
477
- }, [columns, transformColumns, action]);
478
- const children = jsxs(Fragment, {
479
- children: [jsx(Loader, {
480
- loading: loading
481
- }), typeof search === 'object' && jsx(Search, {
482
- data: filters,
483
- columns: columns,
484
- options: search,
485
- onSearch: data => {
486
- unstable_batchedUpdates(() => {
487
- setPage(1);
488
- setFilters(data);
489
- });
490
- }
491
- }), toolBarRender !== false && jsxs(Header, {
492
- children: [jsx(LeftTools, {
493
- size: 12,
494
- children: toolBarRender && toolBarRender(action.current)
495
- }), jsxs(RightTools, {
496
- size: 12,
497
- children: [search === true && jsx(LightSearch, {
498
- keyword: keyword,
499
- onKeywordChange: value => {
500
- unstable_batchedUpdates(() => {
501
- setPage(1);
502
- setKeyword(value);
503
- });
504
- }
505
- }), jsx(Action, {
506
- onClick: action.current.reload,
507
- children: jsx("i", {
508
- className: 'bi bi-arrow-repeat'
509
- })
510
- })]
511
- })]
512
- }), jsx(TableContext.Provider, {
513
- value: true,
514
- children: jsx(RcTable, {
515
- ...props,
516
- expandable: {
517
- expandIcon: ExpandIcon,
518
- ...expandable
519
- },
520
- rowKey: rowKey,
521
- columns: customColumns,
522
- components: components,
523
- data: data
524
- })
525
- }), pagination && jsx(CustomPagination, {
526
- ...pagination,
527
- onChange: setPage
528
- })]
529
- });
530
- if (card) {
531
- return jsx(Card, {
532
- children: children
533
- });
534
- }
535
- return children;
536
- });
537
- var index = memo(Table);
538
- const Header = styled.div`
539
- display: flex;
540
- justify-content: space-between;
541
- padding-bottom: 1rem;
542
- height: 48px;
543
- border-bottom: 2px solid #212529;
544
- `;
545
- const RightTools = styled(Space)`
546
-
547
- `;
548
- const LeftTools = styled(Space)`
549
-
550
- `;
551
- const Action = styled.span`
552
- cursor: pointer;
553
- font-size: 20px;
554
- line-height: 1;
555
-
556
- &:hover {
557
- color: var(--bs-primary);
558
- }
559
- `;
560
-
561
- export { index as default };
562
- //# sourceMappingURL=index-1d379f3a.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-1d379f3a.js","sources":["../src/components/lazy/table/use-selection.tsx","../src/images/plus_square.svg","../src/images/minus_square.svg","../src/components/lazy/table/search.tsx","../src/components/lazy/table/index.tsx"],"sourcesContent":["import { Columns, TableProps, TableRowSelection } from './index';\r\nimport { InputHTMLAttributes, Key, useCallback, useEffect, useRef, useState } from 'react';\r\n\r\nconst Checkbox = function({\r\n indeterminate = false,\r\n ...props\r\n}: InputHTMLAttributes<HTMLInputElement> & { indeterminate?: boolean }) {\r\n\r\n const ref = useRef<HTMLInputElement>(null);\r\n\r\n useEffect(() => {\r\n if (ref.current) {\r\n ref.current.indeterminate = indeterminate;\r\n }\r\n }, [indeterminate]);\r\n\r\n return <input\r\n ref={ref}\r\n {...props}\r\n className='form-check-input'\r\n type='checkbox'\r\n />;\r\n};\r\n\r\nexport default function useSelection<T = any>(\r\n rowSelection: TableRowSelection<T> | undefined,\r\n rowKey: Required<TableProps<T>>['rowKey'],\r\n data: T[]\r\n): [(columns: Columns<T>) => Columns<T>, (keys: Key[]) => void] {\r\n const [keys, setKeys] = useState(() => new Set(rowSelection?.selectedRowKeys || []));\r\n\r\n const getRowKey = (record: T) => {\r\n if (typeof rowKey === 'string') {\r\n // @ts-ignore\r\n return record[rowKey];\r\n } else {\r\n return rowKey(record);\r\n }\r\n };\r\n\r\n const getRecordByKey = (key: Key) => {\r\n return data.find((record) => {\r\n return getRowKey(record) === key;\r\n })!;\r\n };\r\n\r\n const setSelectedKeys = useCallback((keys: Set<Key> | Key[]) => {\r\n if (!(keys instanceof Set)) {\r\n keys = new Set(keys);\r\n }\r\n\r\n setKeys(keys);\r\n const changedKeys = Array.from(keys);\r\n\r\n const records = changedKeys.map(function(key) {\r\n return getRecordByKey(key);\r\n });\r\n\r\n if (rowSelection?.onChange) {\r\n rowSelection?.onChange(changedKeys, records);\r\n }\r\n }, [getRecordByKey]);\r\n\r\n const transformColumns = useCallback((columns: Columns): Columns => {\r\n if (!rowSelection) {\r\n return columns;\r\n }\r\n\r\n const recordKeys = data.map(getRowKey);\r\n\r\n const checkedCurrentAll = recordKeys.every(function(key) {\r\n return keys.has(key);\r\n });\r\n\r\n const checkedCurrentSome = recordKeys.some(function(key) {\r\n return keys.has(key);\r\n });\r\n\r\n return [{\r\n key: 'selection',\r\n title: <Checkbox\r\n checked={checkedCurrentAll && data.length > 0}\r\n indeterminate={!checkedCurrentAll && checkedCurrentSome}\r\n onChange={() => {\r\n if (checkedCurrentAll) {\r\n recordKeys.forEach(function(key) {\r\n keys.delete(key);\r\n });\r\n } else {\r\n recordKeys.forEach(function(key) {\r\n keys.add(key);\r\n });\r\n }\r\n setSelectedKeys(new Set(keys));\r\n }}\r\n />,\r\n width: 30,\r\n align: 'center',\r\n render({ record }) {\r\n const key = getRowKey(record);\r\n const checked = keys.has(key);\r\n return <Checkbox\r\n checked={checked}\r\n onChange={() => {\r\n if (checked) {\r\n keys.delete(key);\r\n } else {\r\n keys.add(key);\r\n }\r\n setSelectedKeys(new Set(keys));\r\n }}\r\n />;\r\n }\r\n }, ...columns];\r\n }, [data, rowSelection, keys]);\r\n\r\n return [transformColumns, setSelectedKeys];\r\n}\r\n","var img = \"data:image/svg+xml,%3csvg t='1681378941268' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg' p-id='11434' width='16' height='16' fill='currentColor'%3e %3cpath d='M252.068571 906.496h520.283429c89.581714 0 134.144-44.562286 134.144-132.845714V250.331429c0-88.283429-44.562286-132.845714-134.144-132.845715H252.068571c-89.142857 0-134.582857 44.141714-134.582857 132.845715V773.668571c0 88.704 45.44 132.845714 134.582857 132.845715z m1.28-68.992c-42.843429 0-66.852571-22.710857-66.852571-67.291429V253.805714c0-44.580571 24.009143-67.291429 66.852571-67.291428h517.723429c42.422857 0 66.432 22.710857 66.432 67.291428V770.194286c0 44.580571-24.009143 67.291429-66.432 67.291428z m258.432-123.008c22.710857 0 36.425143-15.853714 36.425143-40.704v-126.427429h134.144c24.009143 0 40.722286-12.873143 40.722286-35.584 0-23.131429-15.853714-36.425143-40.722286-36.425142H548.205714v-134.582858c0-24.850286-13.714286-40.704-36.425143-40.704s-35.565714 16.713143-35.565714 40.722286v134.582857H342.491429c-24.850286 0-41.142857 13.275429-41.142858 36.406857 0 22.710857 17.152 35.584 41.142858 35.584h133.723428v126.427429c0 23.990857 12.854857 40.704 35.565714 40.704z' p-id='11435'%3e%3c/path%3e%3c/svg%3e\";\n export default img;","var img = \"data:image/svg+xml,%3csvg t='1681378996359' viewBox='0 0 1024 1024' version='1.1' xmlns='http://www.w3.org/2000/svg' p-id='12821' width='16' height='16' fill='currentColor'%3e %3cpath d='M252.068571 906.496h520.283429c89.581714 0 134.144-44.562286 134.144-132.845714V250.331429c0-88.283429-44.562286-132.845714-134.144-132.845715H252.068571c-89.142857 0-134.582857 44.141714-134.582857 132.845715V773.668571c0 88.704 45.44 132.845714 134.582857 132.845715z m1.28-68.992c-42.843429 0-66.852571-22.710857-66.852571-67.291429V253.805714c0-44.580571 24.009143-67.291429 66.852571-67.291428h517.723429c42.422857 0 66.432 22.710857 66.432 67.291428V770.194286c0 44.580571-24.009143 67.291429-66.432 67.291428z m86.582858-289.718857h344.576c23.990857 0 40.704-12.854857 40.704-35.565714 0-23.149714-15.433143-36.425143-40.704-36.425143H339.931429c-24.868571 0-40.722286 13.275429-40.722286 36.425143 0 22.710857 16.713143 35.565714 40.722286 35.565714z' p-id='12822'%3e%3c/path%3e%3c/svg%3e\";\n export default img;","import { ChangeEvent, useCallback, useEffect, useState } from 'react';\r\nimport useDebounce from '../../../hooks/use-debounce';\r\nimport styled from 'styled-components';\r\nimport Button from '../../button';\r\nimport Form from '../form';\r\nimport { FormControl } from 'react-bootstrap';\r\nimport type { Columns } from './index';\r\nimport { Schema, UiSchema } from '@topthink/json-form';\r\n\r\nexport type SearchOptions = {\r\n fields: string[];\r\n extraFields?: Record<string, string>;\r\n ui?: Record<string, UiSchema>;\r\n order?: string[];\r\n};\r\n\r\ninterface SearchProps {\r\n data: Record<string, string>;\r\n options: SearchOptions;\r\n columns: Columns;\r\n onSearch: (params: Record<string, any>) => void;\r\n}\r\n\r\nexport default function Search({ data, options, columns, onSearch }: SearchProps) {\r\n\r\n const [key, setKey] = useState(0);\r\n\r\n const uiSchema: UiSchema = {\r\n 'ui:col': 10,\r\n 'ui:order': options.order\r\n };\r\n\r\n const properties: Schema['properties'] = {};\r\n\r\n options.fields.forEach(field => {\r\n const column = columns.find(column => column.dataIndex === field);\r\n\r\n if (column) {\r\n const title = column.title;\r\n if (typeof title === 'string') {\r\n uiSchema[field] = {\r\n 'ui:col': 4,\r\n 'ui:labelCol': 3,\r\n 'ui:placeholder': '请输入',\r\n ...options.ui?.[field]\r\n };\r\n\r\n if (column.valueEnum) {\r\n const valueEnum = column.valueEnum;\r\n\r\n uiSchema[field]['ui:placeholder'] = '请选择';\r\n\r\n return properties[field] = {\r\n title,\r\n type: 'string',\r\n enum: Object.keys(valueEnum).flatMap(key => {\r\n const text = valueEnum[key].text;\r\n if (typeof text === 'string') {\r\n return [key];\r\n }\r\n return [];\r\n }),\r\n enumNames: Object.keys(valueEnum).flatMap(key => {\r\n const text = valueEnum[key].text;\r\n if (typeof text === 'string') {\r\n return [text];\r\n }\r\n return [];\r\n }),\r\n };\r\n }\r\n\r\n return properties[field] = {\r\n title,\r\n type: 'string',\r\n };\r\n }\r\n }\r\n });\r\n\r\n if (options.extraFields) {\r\n Object.entries(options.extraFields).forEach(([field, title]) => {\r\n uiSchema[field] = {\r\n 'ui:col': 4,\r\n 'ui:labelCol': 3,\r\n 'ui:placeholder': '请输入',\r\n ...options.ui?.[field]\r\n };\r\n properties[field] = {\r\n title,\r\n type: 'string',\r\n };\r\n });\r\n }\r\n\r\n const schema: Schema = {\r\n type: 'object',\r\n properties\r\n };\r\n\r\n const onSubmit = useCallback(({ formData }) => {\r\n onSearch(formData);\r\n }, [onSearch]);\r\n\r\n const onReset = useCallback(() => {\r\n setKey(key => key + 1);\r\n onSearch({});\r\n }, []);\r\n\r\n return <Container key={key}>\r\n <Form\r\n formContext={{ layout: 'horizontal' }}\r\n schema={schema}\r\n uiSchema={uiSchema}\r\n onSubmit={onSubmit}\r\n formData={data}\r\n >\r\n <div className='col-2 ms-auto mt-auto'>\r\n <div className='justify-content-end d-flex gap-2 '>\r\n <Button className={'px-4'} onClick={onReset} variant='secondary'>重置</Button>\r\n <Button className={'px-4'} type='submit' variant='primary'>查询</Button>\r\n </div>\r\n </div>\r\n </Form>\r\n </Container>;\r\n}\r\n\r\nconst Container = styled.div`\r\n margin-bottom: 1rem;\r\n`;\r\n\r\ninterface Props {\r\n keyword: string;\r\n onKeywordChange: (value: string) => void;\r\n}\r\n\r\nexport function LightSearch({ keyword, onKeywordChange }: Props) {\r\n\r\n const [value, setValue] = useState(keyword);\r\n\r\n const debouncedOnKeywordChange = useDebounce(onKeywordChange, 500);\r\n\r\n useEffect(() => {\r\n setValue(keyword);\r\n }, [keyword]);\r\n\r\n const onChange = useCallback((e: ChangeEvent<HTMLInputElement>) => {\r\n setValue(e.target.value);\r\n debouncedOnKeywordChange(e.target.value);\r\n }, [debouncedOnKeywordChange, setValue]);\r\n\r\n return <FormControl value={value} onChange={onChange} type={'search'} placeholder={'Search...'} />;\r\n}\r\n","import RcTable, { TableProps as RcTableProps } from 'rc-table';\r\nimport { unstable_batchedUpdates } from 'react-dom';\r\nimport { ColumnType as BsColumnType, RenderedCell, RenderExpandIconProps } from 'rc-table/es/interface';\r\nimport { Table as BsTable } from 'react-bootstrap';\r\nimport { useUrlSearchParams } from 'use-url-search-params';\r\nimport {\r\n forwardRef,\r\n ForwardRefExoticComponent,\r\n Key,\r\n memo,\r\n PropsWithChildren,\r\n PropsWithoutRef,\r\n ReactNode,\r\n RefAttributes,\r\n useCallback,\r\n useEffect,\r\n useImperativeHandle,\r\n useMemo,\r\n useRef,\r\n useState\r\n} from 'react';\r\nimport Pagination from '../../pagination';\r\nimport styled from 'styled-components';\r\nimport request from '../../../request';\r\nimport Card from '../../card';\r\nimport Loader from '../../loader';\r\nimport Space from '../../space';\r\nimport useSelection from './use-selection';\r\nimport { PaginationType } from '../../../utils/types';\r\nimport { ReactComponent as PlusIcon } from '../../../images/plus_square.svg';\r\nimport { ReactComponent as MinusIcon } from '../../../images/minus_square.svg';\r\nimport useControllableState from '../../../hooks/use-controllable-state';\r\nimport Search, { LightSearch, SearchOptions } from './search';\r\nimport NumberFormat from '../../number-format';\r\nimport { TableContext } from './context';\r\n\r\nexport interface TableType {\r\n reload: () => void;\r\n}\r\n\r\ninterface ColumnType<RecordType> extends BsColumnType<RecordType> {\r\n render?: (data: {\r\n value: any,\r\n record: RecordType,\r\n index: number,\r\n action: TableType\r\n }) => ReactNode | RenderedCell<RecordType>;\r\n valueType?: 'currency';\r\n valueEnum?: Record<number | string, {\r\n text: ReactNode;\r\n status?: string;\r\n }>;\r\n}\r\n\r\nexport type Columns<RecordType = any> = ColumnType<RecordType>[]\r\n\r\nconst CustomTHead = styled.thead`\r\n th {\r\n padding: 0.5rem 0.5rem;\r\n border-bottom-width: 1px;\r\n border-color: var(--bs-border-color);\r\n }\r\n`;\r\n\r\nconst components: RcTableProps['components'] = {\r\n table: (props) => {\r\n return <BsTable {...props} className='mb-0 align-middle table-hover' />;\r\n },\r\n header: {\r\n wrapper(props) {\r\n return <CustomTHead {...props} />;\r\n }\r\n }\r\n};\r\n\r\nconst ExpandIconContainer = styled.a`\r\n cursor: pointer;\r\n width: 28px;\r\n height: 28px;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n vertical-align: middle;\r\n`;\r\n\r\nconst ExpandIcon = function <RecordType>({\r\n record,\r\n expanded,\r\n expandable,\r\n onExpand\r\n}: RenderExpandIconProps<RecordType>) {\r\n if (!expandable) return <ExpandIconContainer />;\r\n return <ExpandIconContainer onClick={e => onExpand(record, e)}>\r\n {expanded ? <MinusIcon /> : <PlusIcon />}\r\n </ExpandIconContainer>;\r\n};\r\n\r\nconst CustomPagination = styled(Pagination)`\r\n margin-bottom: 0;\r\n justify-content: flex-end;\r\n margin-top: 1rem;\r\n`;\r\n\r\nfunction isPagination<T>(data: any): data is PaginationType<T> {\r\n return 'current_page' in data;\r\n}\r\n\r\nexport interface TableRowSelection<RecordType = any> {\r\n selectedRowKeys?: Key[];\r\n onChange?: (selectedRowKeys: Key[], selectedRows: RecordType[]) => void;\r\n}\r\n\r\nexport interface TableProps<RecordType = any> extends Omit<RcTableProps<RecordType>, 'children' | 'columns'> {\r\n source: string | ((params: Params) => Promise<RecordType>);\r\n paginate?: boolean;\r\n columns: Columns<RecordType>;\r\n toolBarRender?: ((action: TableType) => ReactNode) | false;\r\n search?: boolean | SearchOptions;\r\n rowSelection?: TableRowSelection<RecordType>;\r\n card?: boolean;\r\n sync?: boolean;\r\n}\r\n\r\ntype Params = {\r\n page?: number;\r\n sortField?: string;\r\n sortOrder?: number;\r\n q?: string;\r\n [key: string]: any;\r\n};\r\n\r\ntype CustomTableType<T = any> = ForwardRefExoticComponent<PropsWithoutRef<PropsWithChildren<TableProps<T>>>\r\n & RefAttributes<TableType>>\r\n\r\nconst Table: CustomTableType = forwardRef((\r\n {\r\n source,\r\n rowKey = 'id',\r\n paginate = true,\r\n toolBarRender,\r\n columns = [],\r\n search,\r\n rowSelection,\r\n card = true,\r\n expandable = {},\r\n sync = false,\r\n ...props\r\n },\r\n ref\r\n) => {\r\n const [data, setData] = useState<any[]>([]);\r\n const [pagination, setPagination] = useState(paginate ? { total: 0, current: 1, pageSize: 10 } : null);\r\n const [loading, setLoading] = useState(true);\r\n\r\n const [params, setParams] = useUrlSearchParams({});\r\n\r\n //多选\r\n const [transformColumns, setSelectionRowKeys] = useSelection(rowSelection, rowKey, data);\r\n\r\n const [filters, setFilters] = useControllableState<Record<string, string>>({\r\n value: sync ? (params as Record<string, string> || {}) : undefined,\r\n defaultValue: {},\r\n onChange: (value) => {\r\n if (sync) {\r\n setParams(value);\r\n }\r\n }\r\n });\r\n\r\n const [keyword, setKeyword] = useControllableState<string>({\r\n value: sync ? (params.q as string || '') : undefined,\r\n defaultValue: '',\r\n onChange: (value) => {\r\n if (sync) {\r\n setParams({ q: value || undefined });\r\n }\r\n }\r\n });\r\n\r\n const [page, setPage] = useControllableState<number>({\r\n value: sync ? (params.page as number || 1) : undefined,\r\n defaultValue: 1,\r\n onChange: (value) => {\r\n if (sync) {\r\n setParams({ page: value || undefined });\r\n }\r\n }\r\n });\r\n\r\n const fetchData = useCallback(async () => {\r\n setLoading(true);\r\n setSelectionRowKeys([]);\r\n try {\r\n let result;\r\n const params: Params = {\r\n ...filters,\r\n q: keyword,\r\n page: page > 1 ? page : undefined,\r\n };\r\n\r\n if (typeof source === 'string') {\r\n result = await request({\r\n url: source,\r\n params,\r\n });\r\n } else {\r\n result = await source(params);\r\n }\r\n\r\n if (paginate && isPagination<any>(result)) {\r\n setPagination({\r\n total: result.total,\r\n current: result.current_page,\r\n pageSize: result.per_page\r\n });\r\n result = result.data;\r\n }\r\n setData(result);\r\n } catch (e) {\r\n\r\n } finally {\r\n setLoading(false);\r\n }\r\n }, [source, setData, keyword, page, filters]);\r\n\r\n useEffect(() => {\r\n fetchData();\r\n }, [keyword, page, filters]);\r\n\r\n const action = useRef<TableType>({\r\n reload: fetchData\r\n });\r\n\r\n useEffect(() => {\r\n action.current = {\r\n reload: fetchData\r\n };\r\n }, [fetchData]);\r\n\r\n useImperativeHandle(ref, () => action.current);\r\n\r\n const customColumns = useMemo(() => {\r\n return transformColumns(columns).map(({ render, valueType, valueEnum, ...column }) => {\r\n const customColumn: BsColumnType<any> = { ...column };\r\n\r\n if (render) {\r\n customColumn.render = (value, record, index) => {\r\n return render({ value, record, index, action: action.current });\r\n };\r\n } else if (valueType === 'currency') {\r\n customColumn.render = (value) => {\r\n return <NumberFormat value={value} />;\r\n };\r\n } else if (valueEnum) {\r\n customColumn.render = (value) => {\r\n if (valueEnum[value]) {\r\n if (valueEnum[value].status) {\r\n return <span className={`text-${valueEnum[value].status}`}>{valueEnum[value].text}</span>;\r\n }\r\n return valueEnum[value].text;\r\n }\r\n return value;\r\n };\r\n }\r\n return customColumn;\r\n });\r\n }, [columns, transformColumns, action]);\r\n\r\n const children = <>\r\n <Loader loading={loading} />\r\n {typeof search === 'object' && <Search\r\n data={filters}\r\n columns={columns}\r\n options={search}\r\n onSearch={(data) => {\r\n unstable_batchedUpdates(() => {\r\n setPage(1);\r\n setFilters(data);\r\n });\r\n }}\r\n />}\r\n {toolBarRender !== false && <Header>\r\n <LeftTools size={12}>\r\n {toolBarRender && toolBarRender(action.current)}\r\n </LeftTools>\r\n <RightTools size={12}>\r\n {search === true && <LightSearch keyword={keyword} onKeywordChange={(value) => {\r\n unstable_batchedUpdates(() => {\r\n setPage(1);\r\n setKeyword(value);\r\n });\r\n }} />}\r\n <Action onClick={action.current.reload}><i className='bi bi-arrow-repeat' /></Action>\r\n </RightTools>\r\n </Header>}\r\n <TableContext.Provider value={true}>\r\n <RcTable {...props} expandable={{ expandIcon: ExpandIcon, ...expandable }} rowKey={rowKey} columns={customColumns} components={components} data={data} />\r\n </TableContext.Provider>\r\n {pagination && <CustomPagination {...pagination} onChange={setPage} />}\r\n </>;\r\n\r\n if (card) {\r\n return <Card>\r\n {children}\r\n </Card>;\r\n }\r\n return children;\r\n});\r\n\r\nexport default memo(Table) as CustomTableType;\r\n\r\nconst Header = styled.div`\r\n display: flex;\r\n justify-content: space-between;\r\n padding-bottom: 1rem;\r\n height: 48px;\r\n border-bottom: 2px solid #212529;\r\n`;\r\n\r\nconst RightTools = styled(Space)`\r\n\r\n`;\r\nconst LeftTools = styled(Space)`\r\n\r\n`;\r\n\r\nconst Action = styled.span`\r\n cursor: pointer;\r\n font-size: 20px;\r\n line-height: 1;\r\n\r\n &:hover {\r\n color: var(--bs-primary);\r\n }\r\n`;\r\n"],"names":["Checkbox","indeterminate","props","ref","useRef","useEffect","current","_jsx","className","type","useSelection","rowSelection","rowKey","data","keys","setKeys","useState","Set","selectedRowKeys","getRowKey","record","getRecordByKey","key","find","setSelectedKeys","useCallback","changedKeys","Array","from","records","map","onChange","transformColumns","columns","recordKeys","checkedCurrentAll","every","has","checkedCurrentSome","some","title","checked","length","forEach","delete","add","width","align","render","_path","_extends","Search","options","onSearch","setKey","uiSchema","order","properties","fields","field","column","dataIndex","ui","valueEnum","enum","Object","flatMap","text","enumNames","extraFields","entries","schema","onSubmit","formData","onReset","Container","children","Form","formContext","layout","_jsxs","Button","onClick","variant","styled","div","LightSearch","keyword","onKeywordChange","value","setValue","debouncedOnKeywordChange","useDebounce","e","target","FormControl","placeholder","CustomTHead","thead","components","table","BsTable","header","wrapper","ExpandIconContainer","a","ExpandIcon","expanded","expandable","onExpand","MinusIcon","PlusIcon","CustomPagination","Pagination","isPagination","Table","forwardRef","source","paginate","toolBarRender","search","card","sync","setData","pagination","setPagination","total","pageSize","loading","setLoading","params","setParams","useUrlSearchParams","setSelectionRowKeys","filters","setFilters","useControllableState","undefined","defaultValue","setKeyword","q","page","setPage","fetchData","result","request","url","current_page","per_page","action","reload","useImperativeHandle","customColumns","useMemo","valueType","customColumn","index","NumberFormat","status","_Fragment","Loader","unstable_batchedUpdates","Header","LeftTools","size","RightTools","Action","TableContext","Provider","RcTable","expandIcon","Card","memo","Space","span"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{jsx as t}from"react/jsx-runtime";import o,{getRegistry as r}from"@topthink/json-form";import*as e from"react";import{forwardRef as a,useState as n,useCallback as i}from"react";import s from"axios";import{u as l,r as m,B as p}from"./index-563b11c6.js";import{mapValues as c}from"lodash";import"sweetalert2/dist/sweetalert2.js";import"sweetalert2-react-content";import"react-bootstrap";import"query-string";import"retry-axios";import"rc-notification";import"styled-components";import"classnames";import"react-async-hook";const d=require("ajv-i18n/localize/zh"),u=e.lazy((()=>import("./editor-widget-ebec8493.js"))),f=o=>t(e.Suspense,{fallback:null,children:t(u,{...o})}),y={upload:function(o){let{options:e,...a}=o;const{widgets:n}=r();return e.endpoint&&(e.onUpload=async t=>{const o=new FormData;o.set("file",t);const{url:r,value:a}=await m({url:e.endpoint,method:"post",data:o});return{url:r,value:a}}),t(n.upload,{...a,options:e})},editor:function(o){let{options:r,...e}=o;return r.endpoint&&(r.onUpload=async t=>{const o=new FormData;o.set("file",t);const{url:e}=await m({url:r.endpoint,method:"post",data:o});return e}),t(f,{...e,options:r})},typeahead:function(o){let{options:e,...a}=o;const{widgets:n}=r();return e.endpoint&&(e.onSearch=async t=>{let{value:o,query:r}=t;return await m({url:e.endpoint,params:{value:o,query:r}})}),t(n.typeahead,{...a,options:e})}},h=a(((r,e)=>{let{action:a,method:u="post",onSuccess:f,formData:h,onSubmitting:w,onSubmit:g,onChange:b,submitText:x="提交",transformData:v,children:D,...j}=r;const[S,k]=n(),[q,_]=l(!1),[z,E]=n(h),C=i((async(t,o)=>{if(!q)try{if(_(!0),w&&w(!0),a){let{formData:o}=t;v&&(o=v(o));try{const t=await m({url:a,method:u,data:o});return k(void 0),f&&await f(t),t}catch(t){if(!s.isAxiosError(t))throw t;k((t=>{const o=t.errors;return"string"==typeof o?{__errors:[o]}:c(o,(t=>({__errors:[t]})))})(t))}}else if(g)return await g(t,o)}finally{_(!1),w&&w(!1)}}),[a,u,g]),F=i((t=>{const{formData:o}=t;E(o),b&&b(t)}),[E,b]),N=i((t=>(t=t.map((t=>({keyword:t.name,dataPath:t.property,...t}))),d(t),t)),[]),U=t(p,{className:"px-4",loading:q,type:"submit",variant:"primary",children:x});return"function"==typeof D&&(D=D({submit:U,loading:q})),t(o,{ref:e,extraErrors:S,onSubmit:C,transformErrors:N,noHtml5Validate:!0,noValidate:!0,...j,formData:z,onChange:F,widgets:y,children:D||t("div",{className:"col-12",children:U})})}));export{h as default};
2
- //# sourceMappingURL=index-2b97b70d.js.map