@spacego/fe-components 0.3.0 → 0.3.1

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 (49) hide show
  1. package/README.md +37 -37
  2. package/lib/fe-layouts/basics-layout/components/utils/index.js +8 -8
  3. package/lib/router/utils.js +31 -30
  4. package/lib/types/fe-auto-complete/auto-complete.d.ts +3 -1
  5. package/lib/types/fe-button/button.d.ts +15 -13
  6. package/lib/types/fe-cascader/cascader.d.ts +8 -6
  7. package/lib/types/fe-checkbox/checkbox.d.ts +6 -4
  8. package/lib/types/fe-checkbox-group/checkbox-group.d.ts +6 -4
  9. package/lib/types/fe-date-picker/date-picker.d.ts +4 -2
  10. package/lib/types/fe-description-render/description-render.d.ts +32 -30
  11. package/lib/types/fe-descriptions/descriptions.d.ts +3 -1
  12. package/lib/types/fe-empty/empty.d.ts +3 -1
  13. package/lib/types/fe-error-block/error-block.d.ts +7 -5
  14. package/lib/types/fe-form/fe-form/form.d.ts +338 -336
  15. package/lib/types/fe-form/fe-form-item/form-item.d.ts +66 -64
  16. package/lib/types/fe-form/fe-form-label/form-label.d.ts +44 -42
  17. package/lib/types/fe-input/input.d.ts +12 -10
  18. package/lib/types/fe-input-number/input-number.d.ts +3 -1
  19. package/lib/types/fe-layouts/basics-layout/components/utils/index.d.ts +7 -6
  20. package/lib/types/fe-layouts/context/global-context.d.ts +240 -238
  21. package/lib/types/fe-link/link.d.ts +6 -4
  22. package/lib/types/fe-map/map.d.ts +73 -73
  23. package/lib/types/fe-modal/modal.d.ts +20 -18
  24. package/lib/types/fe-pagination/pagination.d.ts +3 -1
  25. package/lib/types/fe-panel/panel-toolbar.d.ts +5 -3
  26. package/lib/types/fe-panel/panel.d.ts +60 -58
  27. package/lib/types/fe-permission/permission.d.ts +11 -9
  28. package/lib/types/fe-permission-provider/permission-provider.d.ts +8 -6
  29. package/lib/types/fe-radio/radio.d.ts +3 -1
  30. package/lib/types/fe-radio-group/radio-group.d.ts +3 -1
  31. package/lib/types/fe-rich-text/rich-text.d.ts +167 -165
  32. package/lib/types/fe-select/select.d.ts +9 -7
  33. package/lib/types/fe-switch/switch.d.ts +3 -1
  34. package/lib/types/fe-table/fe-table-link/table-link.d.ts +10 -8
  35. package/lib/types/fe-table/fe-table-render/table-render.d.ts +12 -10
  36. package/lib/types/fe-table/fe-table-toolbar/table-toolbar.d.ts +16 -14
  37. package/lib/types/fe-table/type/table-context.d.ts +60 -60
  38. package/lib/types/fe-table/type/table.d.ts +789 -787
  39. package/lib/types/fe-text-area/text-area.d.ts +5 -3
  40. package/lib/types/fe-time-picker/time-picker.d.ts +4 -2
  41. package/lib/types/fe-upload/upload.d.ts +83 -81
  42. package/lib/types/fe-upload-atomic/upload-atomic.d.ts +3 -1
  43. package/lib/types/hooks/use-descriptions.hook/use-descriptions.d.ts +151 -149
  44. package/lib/types/hooks/use-form.hook/use-form.d.ts +13 -11
  45. package/lib/types/hooks/use-permission.hook/use-permission.d.ts +10 -10
  46. package/lib/types/router/utils.d.ts +2 -1
  47. package/lib/types/typings/index.d.ts +98 -98
  48. package/lib/types/typings/shims-axios.d.ts +38 -38
  49. package/package.json +3 -3
@@ -4,790 +4,792 @@ import { DebouncedFunc } from 'lodash-es';
4
4
  import { default as React } from 'react';
5
5
  import { IFeFormItems } from '../../../form/fe-form/index.d';
6
6
  import { TableContext } from '../utils/table-utils';
7
- export interface FeTableProps {
8
- [key: string]: any;
9
- tableKey?: string;
10
- columnSetting?: boolean;
11
- }
12
-
13
- export interface FeEditTableProps extends FeTableProps {
14
- onTableValueChange?: (values: any) => void;
15
- onInternalStateChange?: (params: { values: Record<string, any>; record: Record<string, any> }) => void;
16
- formData?: any;
17
- editTable?: boolean;
18
- }
19
-
20
- export interface FeFullTableProps extends FeTableProps, FeEditTableProps {
21
- edit?: boolean;
22
- }
23
-
24
- interface FeTableTitlePropsType {
25
- width: number;
26
- onResize: (e: React.SyntheticEvent<Element>, data: ResizeCallbackData) => void;
27
- }
28
-
29
- // 基础分页响应接口
30
- interface IBasePageRsp<T> {
31
- pageNo: number;
32
- pageSize: number;
33
- totalCount: number;
34
- totalPage?: number;
35
- records: T[];
36
- }
37
-
38
- // 子表格配置接口
39
- interface ISubTableConfig extends TableProps {
40
- /**
41
- * 子表格列配置
42
- */
43
- columns: ITableColumns[];
44
- /**
45
- * 默认展开所有行
46
- */
47
- defaultExpandAllRows?: boolean;
48
- /**
49
- * 通过点击行来展开子行
50
- */
51
- expandRowByClick?: boolean;
52
- /**
53
- * 是否显示序号列
54
- */
55
- showIndex?: boolean;
56
- /**
57
- * 子表格行键
58
- */
59
- rowKey?: string;
60
- /**
61
- * 子表格操作列配置
62
- */
63
- columnsHandleConfig?: any[];
64
- /**
65
- * 按钮权限列表
66
- */
67
- btnPermissionList?: string[];
68
- /**
69
- * 子表格初始数据
70
- */
71
- initDataSource?: any[];
72
- /**
73
- * 子表格展开行key
74
- */
75
- expandRowKey?: string;
76
- /**
77
- * 子表格数据获取函数
78
- */
79
- fetchModel?: (
80
- record: DataType,
81
- pageOption: ITablePageOption & Record<string, any>
82
- ) => Promise<IBasePageRsp<SubDataType>>;
83
- /**
84
- * 分页配置
85
- */
86
- pageOption?: ITablePageOption;
87
- /**
88
- * 是否启用分页
89
- */
90
- pagination?: boolean;
91
-
92
- expandableConfig?: TableProps['expandable'];
93
-
94
- columnsHandleAttr?: {
95
- fixed?: false | 'left' | 'right';
96
- width?: number;
97
- };
98
- }
99
-
100
- interface FeSubTableProps<MainData = any, SubData = any> {
101
- /**
102
- * 子表格列配置
103
- */
104
- columns: ITableColumns<SubData>[];
105
- /**
106
- * 父行数据
107
- */
108
- record: MainData;
109
- /**
110
- * 子表格配置
111
- */
112
- config: ISubTableConfig;
113
- }
114
-
115
- interface SubTableState<T> {
116
- data: T[];
117
- pageInfo: ITablePageOption;
118
- }
119
-
120
- // 请求结果类型
121
- interface RequestResult<T> {
122
- data: T[];
123
- pageInfo: ITablePageOption;
124
- }
125
-
126
- type SubData = any;
127
-
128
- export interface EditableCellProps extends ITableColumns {
129
- /*
130
- * 数据索引
131
- */
132
- dataIndex: string;
133
- /*
134
- * 标签
135
- */
136
- label: string;
137
- /*
138
- * 是否编辑
139
- */
140
- editing: boolean;
141
- /*
142
- * 记录
143
- */
144
- record: any;
145
- /*
146
- * 行key
147
- */
148
- rowKey: string;
149
- /*
150
- * 索引
151
- */
152
- index: number;
153
- /*
154
- * 子元素
155
- */
156
- children: React.ReactNode;
157
- /*
158
- * 表单引用
159
- */
160
- formRef: React.RefObject<any>;
161
- /*
162
- * 表格值变化
163
- */
164
- onTableValueChange: (values: any) => void;
165
- /*
166
- * 错误
167
- */
168
- errorKey: Array<string>;
169
- /*
170
- * 其他属性
171
- */
172
- [key: string]: any;
173
- }
174
-
175
- interface IFeTableFormItems extends IFeFormItems {
176
- /**
177
- * @name 与实体映射的key
178
- */
179
- dataIndex?: keyof DataType;
180
- /**
181
- * @name 标题
182
- */
183
- label?: string;
184
- }
185
-
186
- export interface IEditRenderParams {
187
- /**
188
- * @name 是否可编辑
189
- */
190
- editable: boolean;
191
- /**
192
- * @name 是否需要提示
193
- */
194
- formProps?: IFeTableFormItems | ((ctx: TableContext) => IFeTableFormItems);
195
- }
196
-
197
- export interface ITableColumns<T = any> {
198
- /**
199
- * T
200
- *
201
- * @name 与实体映射的key
202
- */
203
- dataIndex: keyof T | 'handle';
204
- /**
205
- * @name 确定这个列的唯一值,一般用于 dataIndex 重复的情况
206
- */
207
- key?: React.Key;
208
- /**
209
- * @name 标题
210
- */
211
- title: string | React.ReactNode;
212
- /**
213
- * @name 自定义标题渲染
214
- */
215
- titleRender?: React.ReactNode;
216
- /**
217
- * @name 是否开启标题hint
218
- */
219
- showHint?: boolean;
220
- /**
221
- * @name 标题hint内容
222
- */
223
- hintText?: string | React.ReactNode;
224
- /**
225
- * @name 是否开启ellipsis
226
- */
227
- ellipsis?: boolean | { showTitle: boolean };
228
- /**
229
- * Render 方法只管理的只读模式,编辑模式需要使用 renderFormItem
230
- *
231
- * @name 自定义只读模式的dom
232
- */
233
- render?: (text: any, record: any, index: number) => React.ReactNode;
234
- /**
235
- * @name 对齐方式 left | center | right
236
- * @default center
237
- */
238
- align?: 'left' | 'center' | 'right';
239
- /**
240
- * @name 固定列
241
- * @default false
242
- */
243
- fixed?: false | 'left' | 'right';
244
- /**
245
- * @name 列宽
246
- */
247
- width?: number;
248
- /**
249
- * @name 数据类型
250
- * @default string
251
- */
252
- dataType?: 'string' | 'integer' | 'double' | 'dict';
253
- /**
254
- * @name 渲染类型
255
- * @default default
256
- * @options default:纯文本静态展示
257
- * tag:枚举tag展示,支持多个tag
258
- */
259
- renderType?: TRenderType;
260
- /**
261
- * 默认过滤器猜数
262
- */
263
- renderParams?: {
264
- /**
265
- * 是否开启tooltip
266
- */
267
- tooltip: boolean;
268
- /**
269
- * 是否开启省略
270
- */
271
- ellipsis: boolean;
272
- /**
273
- * 溢出省略时最多展示行数
274
- * */
275
- maxLines?: number;
276
- };
277
- /**
278
- * @name 默认渲染器参数
279
- */
280
- defaultRenderParams?: {
281
- /**
282
- * @name 过滤器
283
- */
284
- filter?: any;
285
- /**
286
- * @name 过滤器参数
287
- */
288
- dictfilterParams?: {
289
- dictList: Array<{ dataIndex: string; label: string }>;
290
- };
291
- };
292
- /**
293
- * @name 枚举字典配置
294
- */
295
- tagRenderParams?: {
296
- /**
297
- * @name 过滤器
298
- */
299
- filter?: any;
300
- /**
301
- * @name 过滤器参数
302
- */
303
- dictfilterParams?: {
304
- dictList: Array<{ dataIndex: string; label: string }>;
305
- };
306
- /**
307
- * @name 分割符
308
- * @default |
309
- */
310
- separator?: string;
311
- /**
312
- * @name 颜色类型枚举
313
- */
314
- themeEnums?: Record<string, 'processing' | 'success' | 'error' | 'default' | 'warning'>;
315
- };
316
- /**
317
- * @name 编辑器配置
318
- */
319
- editRenderParams?: IEditRenderParams;
320
- /**
321
- * @name 千分位配置
322
- */
323
- thousandsParams?: {
324
- /**
325
- * @name 小数位
326
- */
327
- precision?: number;
328
- /**
329
- * @name 是否补0
330
- * @default false
331
- */
332
- fillZero?: boolean;
333
- /**
334
- * @name 千分位分隔符
335
- * @default ,
336
- */
337
- separator?: string;
338
- };
339
- /**
340
- * @name 是否在列配置中隐藏
341
- * @description 设置为true时,该列不会出现在列配置面板中
342
- * @default false
343
- */
344
- hideInSetting?: boolean;
345
- }
346
-
347
- /**
348
- * @name 渲染类型
349
- * @default default
350
- * @options default:纯文本静态展示
351
- * tag:枚举tag展示,支持多个tag
352
- *
353
- */
354
- export type TRenderType = 'default' | 'tag' | 'thousands';
355
-
356
- export interface ITablePageOption {
357
- /**
358
- * @name 当前页码
359
- */
360
- pageNo: number;
361
- /**
362
- * @name 每页条数
363
- */
364
- pageSize: number;
365
- /**
366
- * @name 总条数
367
- */
368
- totalCount?: number;
369
- }
370
-
371
- export interface ITableParams<DataType> {
372
- /**
373
- * @name 列表加载类型
374
- * @default page
375
- */
376
- loadType?: 'static' | 'page';
377
- /**
378
- * @name 表格列配置
379
- */
380
- columns: ITableColumns<DataType>[];
381
- /**
382
- * @name 表格数据
383
- */
384
- initDataSource?: DataType[];
385
- /**
386
- * @name 表格最大宽度,超过此宽度会出现横向滚动条
387
- */
388
- scrollX?: string;
389
- /**
390
- * @name 表格最大高度,超过此高度会出现纵向滚动条
391
- */
392
- scrollY?: string;
393
- /**
394
- * @name 表格行唯一标识,默认id
395
- */
396
- rowKey?: string;
397
- /**
398
- * @name 是否展示分页
399
- */
400
- pageVisible?: boolean;
401
- /**
402
- * @name 表格搜索配置
403
- */
404
- searchOption?: Record<string, any>;
405
- /**
406
- * @name 分页配置
407
- */
408
- pageOption?: ITablePageOption;
409
- /**
410
- * @name 表格标题
411
- */
412
- headerTitle?: string | React.ReactNode;
413
- /**
414
- * @name 表格副标题
415
- */
416
- subTitle?: string;
417
- /**
418
- * @name 表格功能区按钮配置
419
- */
420
- toolBarConfig?: IToolBarBtnConfig[];
421
- /**
422
- * @name 表格操作列配置属性
423
- */
424
- columnsHandleAttr?: {
425
- fixed?: false | 'left' | 'right';
426
- width?: number;
427
- };
428
- /**
429
- * @name 表格操作列配置
430
- */
431
- columnsHandleConfig?: IColumnsHandleConfig[];
432
- /**
433
- * @name 是否展示索引
434
- * @default true
435
- */
436
- showIndex?: boolean;
437
- /**
438
- * @name 表格功能区
439
- */
440
- toolBarRender?: () => React.ReactNode[];
441
- /**
442
- * @name 获取列表数据
443
- */
444
- fetchModel?: (pageOption: ITablePageOption & Record<string, any>) => Promise<IBasePageRsp<DataType>>;
445
- /**
446
- * @name 唯一标识,更改后刷新columns
447
- */
448
- rawKeyRef?: React.RefObject<string>;
449
- /**
450
- * @name 按钮权限
451
- */
452
- btnPermissionList?: string[];
453
- /**
454
- * @name 行展开配置
455
- */
456
- rowExpandable?: (record: DataType) => boolean;
457
- /**
458
- * @name 子表格配置
459
- */
460
- subTableConfig?: ISubTableConfig;
461
- /**
462
- * 扩展属性
463
- */
464
- expandable?: ExpandableConfig;
465
- /**
466
- * @name 批量操作工具栏渲染函数
467
- * @description 自定义批量操作工具栏左侧信息区域,false 时不显示
468
- */
469
- tableAlertRender?:
470
- | ((params: { selectedRowKeys: Key[]; selectedRows: DataType[]; onCleanSelected: () => void }) => React.ReactNode)
471
- | false;
472
- /**
473
- * @name 表格行选择配置
474
- * @description 表格行是否可选择,配置项
475
- */
476
- rowSelection?: TableProps<DataType>['rowSelection'];
477
- /**
478
- * @name 是否启用列配置功能
479
- * @description 是否显示列设置按钮,支持拖拽排序和显示/隐藏列
480
- * @default true
481
- */
482
- columnSetting?: boolean;
483
- /**
484
- * @name 默认隐藏的列
485
- * @description 默认隐藏的列的dataIndex数组
486
- */
487
- }
488
-
489
- export interface IColumnsHandleConfig {
490
- /**
491
- * @name 按钮文字
492
- */
493
- label: string;
494
- /**
495
- * @name 按钮点击事件
496
- * @param record 表格行数据
497
- * @param index 表格行索引
498
- * @returns
499
- */
500
- onClick: (record: any, index: number) => Promise<void>;
501
- /**
502
- * @name 是否需要二次确认
503
- */
504
- needConfirm?: boolean;
505
- /**
506
- * @name 确认文案
507
- * @default 确定{$label}吗?
508
- */
509
- confirmText?: string | ((record?: any) => string);
510
- /**
511
- * @name 是否隐藏
512
- * @param record 表格行数据
513
- * @param index 表格行索引
514
- * @returns
515
- */
516
- hidden?: (record: any, index: number) => boolean;
517
- /**
518
- * @name 按钮权限
519
- */
520
- btnPermission?: string;
521
- /**
522
- * @name 是否禁用
523
- */
524
- disabled?: (record: any, index: number) => boolean;
525
- /**
526
- * @name 按钮禁用文案
527
- */
528
- disabledText?: string;
529
- }
530
-
531
- export interface IToolBarBtnConfig {
532
- /**
533
- * @name 按钮类型
534
- * @default primary
535
- */
536
- type?: 'primary' | 'default';
537
- /**
538
- * @name 按钮文案
539
- */
540
- label: string;
541
- /**
542
- * @name 按钮权限
543
- */
544
- btnPermission?: string;
545
- /**
546
- * @name 是否禁用
547
- */
548
- disabled?: () => boolean;
549
- /**
550
- * @name 按钮禁用文案
551
- */
552
- disabledText?: string;
553
- /**
554
- * @name 按钮点击事件
555
- */
556
- onClick: () => void;
557
- /**
558
- * @name 是否需要二次确认
559
- */
560
- needConfirm?: boolean;
561
- /**
562
- * @name 确认文案
563
- * @default 确定{$label}吗?
564
- */
565
- confirmText?: string;
566
- }
567
-
568
- export interface IUseTableRsp<DataType = Record<string, any>> {
569
- tableProps: {
570
- actionRef: React.MutableRefObject<any>;
571
- columns: any[];
572
- dataSource: any[];
573
- scroll: { x: string; y: string };
574
- rowKey: string;
575
- headerTitle: string;
576
- toolBarRender: any;
577
- pagination: any;
578
- options: any;
579
- search: any;
580
- cardProps: any;
581
- tableLayout: any;
582
- subTableConfig: any;
583
- expandable: any;
584
- tableAlertRender?:
585
- | ((params: { selectedRowKeys: Key[]; selectedRows: DataType[]; onCleanSelected: () => void }) => React.ReactNode)
586
- | false;
587
- rowSelection?: any;
588
- columnSetting?: boolean;
589
- };
590
- fetchPageOption: () => any;
591
- search: (searchOption?: Record<string, any>) => void;
592
- refresh: () => void;
593
- shouldRequestPreviousPage: (record: any[], pageNo: number) => boolean;
594
- }
595
-
596
- export interface UseTableSelectionProps<T = any> {
597
- /**
598
- * 表格行选择配置
599
- */
600
- rowSelection?: TableProps<T>['rowSelection'];
601
- /**
602
- * 表格数据源,用于根据selectedRowKeys获取selectedRows
603
- */
604
- dataSource?: T[];
605
- /**
606
- * 行唯一标识键名,默认为 'id'
607
- */
608
- rowKey?: string | ((record: T) => string);
609
- }
610
-
611
- export interface UseTableSelectionReturn<T = any> {
612
- /**
613
- * 当前选中的行keys
614
- */
615
- selectedRowKeys: Key[];
616
- /**
617
- * 当前选中的行数据
618
- */
619
- selectedRows: T[];
620
- /**
621
- * 处理后的rowSelection配置,传递给Table组件
622
- */
623
- rowSelection: TableProps<T>['rowSelection'] | undefined;
624
- /**
625
- * 清空选择
626
- */
627
- onCleanSelected: () => void;
628
- /**
629
- * 是否为受控模式
630
- */
631
- isControlled: boolean;
632
- }
633
-
634
- export interface IEditTableHookProps<DataType = Record<string, any>> {
635
- /**
636
- * @name 表格属性
637
- */
638
- tableProps: IUseTableRsp<DataType>['tableProps'];
639
- /**
640
- * @name 表格变化事件
641
- */
642
- onTableChange?: (params: {
643
- key: string;
644
- value: any;
645
- record: DataType;
646
- form: {
647
- setFieldValue: (key: string, value: any) => void;
648
- setFieldsValue: (values: Record<string, any>) => void;
649
- validate: (key?: string) => Promise<any>;
650
- onReload: () => void;
651
- };
652
- }) => void;
653
- /**
654
- * @name 是否开启编辑
655
- */
656
- editTable?: boolean;
657
- }
658
-
659
- export type IUseEditTableRsp<DataType = Record<string, any>> = {
660
- /**
661
- * @name 表单引用
662
- */
663
- formRef: React.MutableRefObject<{
664
- validate: (key?: string) => Promise<any>;
665
- setFieldsValue: (values: Record<string, any>) => void;
666
- setFieldValue: (key: string, value: any) => void;
667
- onReload: () => void;
668
- }>;
669
- /**
670
- * @name 表格变化事件
671
- */
672
- onTableValueChange: DebouncedFunc<(params: { values: Record<string, any>; record: DataType }) => void>;
673
- /**
674
- * @name 更新内部状态(不触发外部回调)
675
- */
676
- onInternalStateChange: (params: { values: Record<string, any>; record: Record<string, any> }) => void;
677
- /**
678
- * @name 表单数据
679
- */
680
- formData: Record<string, any>;
681
- /**
682
- * @name 表格数据
683
- */
684
- tableData: Record<string, any>[];
685
- /**
686
- * @name 读取最新表格数据
687
- */
688
- getTableData: () => Record<string, any>[];
689
- /**
690
- * @name 错误key
691
- */
692
- errorKey: string[];
693
- /**
694
- * @name 是否全部使用编辑功能
695
- */
696
- editTable: boolean;
697
- /**
698
- * @name 是否使用编辑组件
699
- */
700
- edit: boolean;
701
- /**
702
- * @name 表格变化事件
703
- */
704
- onEditingChange: (record: Record<string, any>) => void;
705
- /**
706
- * @name 取消变化事件
707
- */
708
- onCancelChange: () => void;
709
- /**
710
- * @name 验证事件
711
- */
712
- onValidate: () => Promise<any>;
713
- /**
714
- * @name 是否开启编辑单行功能
715
- */
716
- isEditing: (record: Record<string, any>, rowKey: string) => boolean;
717
- /**
718
- * @name 重置表单数据
719
- */
720
- onReload: () => void;
721
- };
722
-
723
- // 分页Hook所需类型定义
724
- export type Data = Record<string, any>;
725
-
726
- export interface Params {
727
- [key: string]: any;
728
- }
729
-
730
- export interface PaginationOptions<TData extends Data, TParams extends Params> {
731
- defaultPageSize?: number;
732
- defaultCurrent?: number;
733
- onSuccess?: (data: IBasePageRsp<TData>, params: [TParams & Partial<ITablePageOption>]) => void;
734
- onError?: (e: Error) => void;
735
- refreshDeps?: any[];
736
- manual?: boolean;
737
- ready?: boolean;
738
- }
739
-
740
- export type Service<TData extends Data, TParams extends Params> = (
741
- params: TParams & Partial<ITablePageOption>
742
- ) => Promise<IBasePageRsp<TData>>;
743
-
744
- export interface PaginationResult<TData extends Data, TParams extends Params> {
745
- data: TData[];
746
- pageInfo: ITablePageOption;
747
- pagination: {
748
- pageNo: number;
749
- pageSize: number;
750
- totalCount: number;
751
- totalPage: number;
752
- onChange: (page: number, pageSize: number) => void;
753
- changePageNo: (page: number) => void;
754
- changePageSize: (pageSize: number) => void;
755
- };
756
- loading: boolean;
757
- run: (params?: TParams & Partial<ITablePageOption>) => void;
758
- params: (TParams & Partial<ITablePageOption>)[];
759
- refresh: () => void;
760
- mutate: (data: IBasePageRsp<TData> | ((oldData: IBasePageRsp<TData>) => IBasePageRsp<TData>)) => void;
761
- error?: Error;
762
- }
763
-
764
- /**
765
- * 表格校验上下文类型
766
- *
767
- * 使用方式:
768
- * validator: (rule, value, callback, tableContext) => {
769
- * const { currentRecord, allTableData, form } = tableContext;
770
- * // 校验逻辑...
771
- * }
772
- *
773
- * 注意:保持antd原有的callback参数顺序,tableContext作为第4个参数
774
- */
775
- export interface ITableValidatorContext {
776
- /**
777
- * 当前行的记录数据(已合并最新的表单输入值)
778
- * 包含原始record数据和用户当前输入的最新值
779
- */
780
- currentRecord: any;
781
- /**
782
- * 所有行的数据,按行ID分组
783
- * 每行数据都是最新的表单值
784
- * 开发者可以从中过滤出需要的其他行数据
785
- */
786
- allTableData: Record<string, any>;
787
- /**
788
- * 表单实例,可用于获取表单数据或执行表单操作
789
- */
790
- form: any;
791
- }
792
-
793
- declare const FeTable: React.ForwardRefExoticComponent<FeTableProps>;
7
+
8
+
9
+ export interface FeTableProps {
10
+ [key: string]: any;
11
+ tableKey?: string;
12
+ columnSetting?: boolean;
13
+ }
14
+
15
+ export interface FeEditTableProps extends FeTableProps {
16
+ onTableValueChange?: (values: any) => void;
17
+ onInternalStateChange?: (params: { values: Record<string, any>; record: Record<string, any> }) => void;
18
+ formData?: any;
19
+ editTable?: boolean;
20
+ }
21
+
22
+ export interface FeFullTableProps extends FeTableProps, FeEditTableProps {
23
+ edit?: boolean;
24
+ }
25
+
26
+ interface FeTableTitlePropsType {
27
+ width: number;
28
+ onResize: (e: React.SyntheticEvent<Element>, data: ResizeCallbackData) => void;
29
+ }
30
+
31
+ // 基础分页响应接口
32
+ interface IBasePageRsp<T> {
33
+ pageNo: number;
34
+ pageSize: number;
35
+ totalCount: number;
36
+ totalPage?: number;
37
+ records: T[];
38
+ }
39
+
40
+ // 子表格配置接口
41
+ interface ISubTableConfig extends TableProps {
42
+ /**
43
+ * 子表格列配置
44
+ */
45
+ columns: ITableColumns[];
46
+ /**
47
+ * 默认展开所有行
48
+ */
49
+ defaultExpandAllRows?: boolean;
50
+ /**
51
+ * 通过点击行来展开子行
52
+ */
53
+ expandRowByClick?: boolean;
54
+ /**
55
+ * 是否显示序号列
56
+ */
57
+ showIndex?: boolean;
58
+ /**
59
+ * 子表格行键
60
+ */
61
+ rowKey?: string;
62
+ /**
63
+ * 子表格操作列配置
64
+ */
65
+ columnsHandleConfig?: any[];
66
+ /**
67
+ * 按钮权限列表
68
+ */
69
+ btnPermissionList?: string[];
70
+ /**
71
+ * 子表格初始数据
72
+ */
73
+ initDataSource?: any[];
74
+ /**
75
+ * 子表格展开行key
76
+ */
77
+ expandRowKey?: string;
78
+ /**
79
+ * 子表格数据获取函数
80
+ */
81
+ fetchModel?: (
82
+ record: DataType,
83
+ pageOption: ITablePageOption & Record<string, any>
84
+ ) => Promise<IBasePageRsp<SubDataType>>;
85
+ /**
86
+ * 分页配置
87
+ */
88
+ pageOption?: ITablePageOption;
89
+ /**
90
+ * 是否启用分页
91
+ */
92
+ pagination?: boolean;
93
+
94
+ expandableConfig?: TableProps['expandable'];
95
+
96
+ columnsHandleAttr?: {
97
+ fixed?: false | 'left' | 'right';
98
+ width?: number;
99
+ };
100
+ }
101
+
102
+ interface FeSubTableProps<MainData = any, SubData = any> {
103
+ /**
104
+ * 子表格列配置
105
+ */
106
+ columns: ITableColumns<SubData>[];
107
+ /**
108
+ * 父行数据
109
+ */
110
+ record: MainData;
111
+ /**
112
+ * 子表格配置
113
+ */
114
+ config: ISubTableConfig;
115
+ }
116
+
117
+ interface SubTableState<T> {
118
+ data: T[];
119
+ pageInfo: ITablePageOption;
120
+ }
121
+
122
+ // 请求结果类型
123
+ interface RequestResult<T> {
124
+ data: T[];
125
+ pageInfo: ITablePageOption;
126
+ }
127
+
128
+ type SubData = any;
129
+
130
+ export interface EditableCellProps extends ITableColumns {
131
+ /*
132
+ * 数据索引
133
+ */
134
+ dataIndex: string;
135
+ /*
136
+ * 标签
137
+ */
138
+ label: string;
139
+ /*
140
+ * 是否编辑
141
+ */
142
+ editing: boolean;
143
+ /*
144
+ * 记录
145
+ */
146
+ record: any;
147
+ /*
148
+ * 行key
149
+ */
150
+ rowKey: string;
151
+ /*
152
+ * 索引
153
+ */
154
+ index: number;
155
+ /*
156
+ * 子元素
157
+ */
158
+ children: React.ReactNode;
159
+ /*
160
+ * 表单引用
161
+ */
162
+ formRef: React.RefObject<any>;
163
+ /*
164
+ * 表格值变化
165
+ */
166
+ onTableValueChange: (values: any) => void;
167
+ /*
168
+ * 错误
169
+ */
170
+ errorKey: Array<string>;
171
+ /*
172
+ * 其他属性
173
+ */
174
+ [key: string]: any;
175
+ }
176
+
177
+ interface IFeTableFormItems extends IFeFormItems {
178
+ /**
179
+ * @name 与实体映射的key
180
+ */
181
+ dataIndex?: keyof DataType;
182
+ /**
183
+ * @name 标题
184
+ */
185
+ label?: string;
186
+ }
187
+
188
+ export interface IEditRenderParams {
189
+ /**
190
+ * @name 是否可编辑
191
+ */
192
+ editable: boolean;
193
+ /**
194
+ * @name 是否需要提示
195
+ */
196
+ formProps?: IFeTableFormItems | ((ctx: TableContext) => IFeTableFormItems);
197
+ }
198
+
199
+ export interface ITableColumns<T = any> {
200
+ /**
201
+ * T
202
+ *
203
+ * @name 与实体映射的key
204
+ */
205
+ dataIndex: keyof T | 'handle';
206
+ /**
207
+ * @name 确定这个列的唯一值,一般用于 dataIndex 重复的情况
208
+ */
209
+ key?: React.Key;
210
+ /**
211
+ * @name 标题
212
+ */
213
+ title: string | React.ReactNode;
214
+ /**
215
+ * @name 自定义标题渲染
216
+ */
217
+ titleRender?: React.ReactNode;
218
+ /**
219
+ * @name 是否开启标题hint
220
+ */
221
+ showHint?: boolean;
222
+ /**
223
+ * @name 标题hint内容
224
+ */
225
+ hintText?: string | React.ReactNode;
226
+ /**
227
+ * @name 是否开启ellipsis
228
+ */
229
+ ellipsis?: boolean | { showTitle: boolean };
230
+ /**
231
+ * Render 方法只管理的只读模式,编辑模式需要使用 renderFormItem
232
+ *
233
+ * @name 自定义只读模式的dom
234
+ */
235
+ render?: (text: any, record: any, index: number) => React.ReactNode;
236
+ /**
237
+ * @name 对齐方式 left | center | right
238
+ * @default center
239
+ */
240
+ align?: 'left' | 'center' | 'right';
241
+ /**
242
+ * @name 固定列
243
+ * @default false
244
+ */
245
+ fixed?: false | 'left' | 'right';
246
+ /**
247
+ * @name 列宽
248
+ */
249
+ width?: number;
250
+ /**
251
+ * @name 数据类型
252
+ * @default string
253
+ */
254
+ dataType?: 'string' | 'integer' | 'double' | 'dict';
255
+ /**
256
+ * @name 渲染类型
257
+ * @default default
258
+ * @options default:纯文本静态展示
259
+ * tag:枚举tag展示,支持多个tag
260
+ */
261
+ renderType?: TRenderType;
262
+ /**
263
+ * 默认过滤器猜数
264
+ */
265
+ renderParams?: {
266
+ /**
267
+ * 是否开启tooltip
268
+ */
269
+ tooltip: boolean;
270
+ /**
271
+ * 是否开启省略
272
+ */
273
+ ellipsis: boolean;
274
+ /**
275
+ * 溢出省略时最多展示行数
276
+ * */
277
+ maxLines?: number;
278
+ };
279
+ /**
280
+ * @name 默认渲染器参数
281
+ */
282
+ defaultRenderParams?: {
283
+ /**
284
+ * @name 过滤器
285
+ */
286
+ filter?: any;
287
+ /**
288
+ * @name 过滤器参数
289
+ */
290
+ dictfilterParams?: {
291
+ dictList: Array<{ dataIndex: string; label: string }>;
292
+ };
293
+ };
294
+ /**
295
+ * @name 枚举字典配置
296
+ */
297
+ tagRenderParams?: {
298
+ /**
299
+ * @name 过滤器
300
+ */
301
+ filter?: any;
302
+ /**
303
+ * @name 过滤器参数
304
+ */
305
+ dictfilterParams?: {
306
+ dictList: Array<{ dataIndex: string; label: string }>;
307
+ };
308
+ /**
309
+ * @name 分割符
310
+ * @default |
311
+ */
312
+ separator?: string;
313
+ /**
314
+ * @name 颜色类型枚举
315
+ */
316
+ themeEnums?: Record<string, 'processing' | 'success' | 'error' | 'default' | 'warning'>;
317
+ };
318
+ /**
319
+ * @name 编辑器配置
320
+ */
321
+ editRenderParams?: IEditRenderParams;
322
+ /**
323
+ * @name 千分位配置
324
+ */
325
+ thousandsParams?: {
326
+ /**
327
+ * @name 小数位
328
+ */
329
+ precision?: number;
330
+ /**
331
+ * @name 是否补0
332
+ * @default false
333
+ */
334
+ fillZero?: boolean;
335
+ /**
336
+ * @name 千分位分隔符
337
+ * @default ,
338
+ */
339
+ separator?: string;
340
+ };
341
+ /**
342
+ * @name 是否在列配置中隐藏
343
+ * @description 设置为true时,该列不会出现在列配置面板中
344
+ * @default false
345
+ */
346
+ hideInSetting?: boolean;
347
+ }
348
+
349
+ /**
350
+ * @name 渲染类型
351
+ * @default default
352
+ * @options default:纯文本静态展示
353
+ * tag:枚举tag展示,支持多个tag
354
+ *
355
+ */
356
+ export type TRenderType = 'default' | 'tag' | 'thousands';
357
+
358
+ export interface ITablePageOption {
359
+ /**
360
+ * @name 当前页码
361
+ */
362
+ pageNo: number;
363
+ /**
364
+ * @name 每页条数
365
+ */
366
+ pageSize: number;
367
+ /**
368
+ * @name 总条数
369
+ */
370
+ totalCount?: number;
371
+ }
372
+
373
+ export interface ITableParams<DataType> {
374
+ /**
375
+ * @name 列表加载类型
376
+ * @default page
377
+ */
378
+ loadType?: 'static' | 'page';
379
+ /**
380
+ * @name 表格列配置
381
+ */
382
+ columns: ITableColumns<DataType>[];
383
+ /**
384
+ * @name 表格数据
385
+ */
386
+ initDataSource?: DataType[];
387
+ /**
388
+ * @name 表格最大宽度,超过此宽度会出现横向滚动条
389
+ */
390
+ scrollX?: string;
391
+ /**
392
+ * @name 表格最大高度,超过此高度会出现纵向滚动条
393
+ */
394
+ scrollY?: string;
395
+ /**
396
+ * @name 表格行唯一标识,默认id
397
+ */
398
+ rowKey?: string;
399
+ /**
400
+ * @name 是否展示分页
401
+ */
402
+ pageVisible?: boolean;
403
+ /**
404
+ * @name 表格搜索配置
405
+ */
406
+ searchOption?: Record<string, any>;
407
+ /**
408
+ * @name 分页配置
409
+ */
410
+ pageOption?: ITablePageOption;
411
+ /**
412
+ * @name 表格标题
413
+ */
414
+ headerTitle?: string | React.ReactNode;
415
+ /**
416
+ * @name 表格副标题
417
+ */
418
+ subTitle?: string;
419
+ /**
420
+ * @name 表格功能区按钮配置
421
+ */
422
+ toolBarConfig?: IToolBarBtnConfig[];
423
+ /**
424
+ * @name 表格操作列配置属性
425
+ */
426
+ columnsHandleAttr?: {
427
+ fixed?: false | 'left' | 'right';
428
+ width?: number;
429
+ };
430
+ /**
431
+ * @name 表格操作列配置
432
+ */
433
+ columnsHandleConfig?: IColumnsHandleConfig[];
434
+ /**
435
+ * @name 是否展示索引
436
+ * @default true
437
+ */
438
+ showIndex?: boolean;
439
+ /**
440
+ * @name 表格功能区
441
+ */
442
+ toolBarRender?: () => React.ReactNode[];
443
+ /**
444
+ * @name 获取列表数据
445
+ */
446
+ fetchModel?: (pageOption: ITablePageOption & Record<string, any>) => Promise<IBasePageRsp<DataType>>;
447
+ /**
448
+ * @name 唯一标识,更改后刷新columns
449
+ */
450
+ rawKeyRef?: React.RefObject<string>;
451
+ /**
452
+ * @name 按钮权限
453
+ */
454
+ btnPermissionList?: string[];
455
+ /**
456
+ * @name 行展开配置
457
+ */
458
+ rowExpandable?: (record: DataType) => boolean;
459
+ /**
460
+ * @name 子表格配置
461
+ */
462
+ subTableConfig?: ISubTableConfig;
463
+ /**
464
+ * 扩展属性
465
+ */
466
+ expandable?: ExpandableConfig;
467
+ /**
468
+ * @name 批量操作工具栏渲染函数
469
+ * @description 自定义批量操作工具栏左侧信息区域,false 时不显示
470
+ */
471
+ tableAlertRender?:
472
+ | ((params: { selectedRowKeys: Key[]; selectedRows: DataType[]; onCleanSelected: () => void }) => React.ReactNode)
473
+ | false;
474
+ /**
475
+ * @name 表格行选择配置
476
+ * @description 表格行是否可选择,配置项
477
+ */
478
+ rowSelection?: TableProps<DataType>['rowSelection'];
479
+ /**
480
+ * @name 是否启用列配置功能
481
+ * @description 是否显示列设置按钮,支持拖拽排序和显示/隐藏列
482
+ * @default true
483
+ */
484
+ columnSetting?: boolean;
485
+ /**
486
+ * @name 默认隐藏的列
487
+ * @description 默认隐藏的列的dataIndex数组
488
+ */
489
+ }
490
+
491
+ export interface IColumnsHandleConfig {
492
+ /**
493
+ * @name 按钮文字
494
+ */
495
+ label: string;
496
+ /**
497
+ * @name 按钮点击事件
498
+ * @param record 表格行数据
499
+ * @param index 表格行索引
500
+ * @returns
501
+ */
502
+ onClick: (record: any, index: number) => Promise<void>;
503
+ /**
504
+ * @name 是否需要二次确认
505
+ */
506
+ needConfirm?: boolean;
507
+ /**
508
+ * @name 确认文案
509
+ * @default 确定{$label}吗?
510
+ */
511
+ confirmText?: string | ((record?: any) => string);
512
+ /**
513
+ * @name 是否隐藏
514
+ * @param record 表格行数据
515
+ * @param index 表格行索引
516
+ * @returns
517
+ */
518
+ hidden?: (record: any, index: number) => boolean;
519
+ /**
520
+ * @name 按钮权限
521
+ */
522
+ btnPermission?: string;
523
+ /**
524
+ * @name 是否禁用
525
+ */
526
+ disabled?: (record: any, index: number) => boolean;
527
+ /**
528
+ * @name 按钮禁用文案
529
+ */
530
+ disabledText?: string;
531
+ }
532
+
533
+ export interface IToolBarBtnConfig {
534
+ /**
535
+ * @name 按钮类型
536
+ * @default primary
537
+ */
538
+ type?: 'primary' | 'default';
539
+ /**
540
+ * @name 按钮文案
541
+ */
542
+ label: string;
543
+ /**
544
+ * @name 按钮权限
545
+ */
546
+ btnPermission?: string;
547
+ /**
548
+ * @name 是否禁用
549
+ */
550
+ disabled?: () => boolean;
551
+ /**
552
+ * @name 按钮禁用文案
553
+ */
554
+ disabledText?: string;
555
+ /**
556
+ * @name 按钮点击事件
557
+ */
558
+ onClick: () => void;
559
+ /**
560
+ * @name 是否需要二次确认
561
+ */
562
+ needConfirm?: boolean;
563
+ /**
564
+ * @name 确认文案
565
+ * @default 确定{$label}吗?
566
+ */
567
+ confirmText?: string;
568
+ }
569
+
570
+ export interface IUseTableRsp<DataType = Record<string, any>> {
571
+ tableProps: {
572
+ actionRef: React.MutableRefObject<any>;
573
+ columns: any[];
574
+ dataSource: any[];
575
+ scroll: { x: string; y: string };
576
+ rowKey: string;
577
+ headerTitle: string;
578
+ toolBarRender: any;
579
+ pagination: any;
580
+ options: any;
581
+ search: any;
582
+ cardProps: any;
583
+ tableLayout: any;
584
+ subTableConfig: any;
585
+ expandable: any;
586
+ tableAlertRender?:
587
+ | ((params: { selectedRowKeys: Key[]; selectedRows: DataType[]; onCleanSelected: () => void }) => React.ReactNode)
588
+ | false;
589
+ rowSelection?: any;
590
+ columnSetting?: boolean;
591
+ };
592
+ fetchPageOption: () => any;
593
+ search: (searchOption?: Record<string, any>) => void;
594
+ refresh: () => void;
595
+ shouldRequestPreviousPage: (record: any[], pageNo: number) => boolean;
596
+ }
597
+
598
+ export interface UseTableSelectionProps<T = any> {
599
+ /**
600
+ * 表格行选择配置
601
+ */
602
+ rowSelection?: TableProps<T>['rowSelection'];
603
+ /**
604
+ * 表格数据源,用于根据selectedRowKeys获取selectedRows
605
+ */
606
+ dataSource?: T[];
607
+ /**
608
+ * 行唯一标识键名,默认为 'id'
609
+ */
610
+ rowKey?: string | ((record: T) => string);
611
+ }
612
+
613
+ export interface UseTableSelectionReturn<T = any> {
614
+ /**
615
+ * 当前选中的行keys
616
+ */
617
+ selectedRowKeys: Key[];
618
+ /**
619
+ * 当前选中的行数据
620
+ */
621
+ selectedRows: T[];
622
+ /**
623
+ * 处理后的rowSelection配置,传递给Table组件
624
+ */
625
+ rowSelection: TableProps<T>['rowSelection'] | undefined;
626
+ /**
627
+ * 清空选择
628
+ */
629
+ onCleanSelected: () => void;
630
+ /**
631
+ * 是否为受控模式
632
+ */
633
+ isControlled: boolean;
634
+ }
635
+
636
+ export interface IEditTableHookProps<DataType = Record<string, any>> {
637
+ /**
638
+ * @name 表格属性
639
+ */
640
+ tableProps: IUseTableRsp<DataType>['tableProps'];
641
+ /**
642
+ * @name 表格变化事件
643
+ */
644
+ onTableChange?: (params: {
645
+ key: string;
646
+ value: any;
647
+ record: DataType;
648
+ form: {
649
+ setFieldValue: (key: string, value: any) => void;
650
+ setFieldsValue: (values: Record<string, any>) => void;
651
+ validate: (key?: string) => Promise<any>;
652
+ onReload: () => void;
653
+ };
654
+ }) => void;
655
+ /**
656
+ * @name 是否开启编辑
657
+ */
658
+ editTable?: boolean;
659
+ }
660
+
661
+ export type IUseEditTableRsp<DataType = Record<string, any>> = {
662
+ /**
663
+ * @name 表单引用
664
+ */
665
+ formRef: React.MutableRefObject<{
666
+ validate: (key?: string) => Promise<any>;
667
+ setFieldsValue: (values: Record<string, any>) => void;
668
+ setFieldValue: (key: string, value: any) => void;
669
+ onReload: () => void;
670
+ }>;
671
+ /**
672
+ * @name 表格变化事件
673
+ */
674
+ onTableValueChange: DebouncedFunc<(params: { values: Record<string, any>; record: DataType }) => void>;
675
+ /**
676
+ * @name 更新内部状态(不触发外部回调)
677
+ */
678
+ onInternalStateChange: (params: { values: Record<string, any>; record: Record<string, any> }) => void;
679
+ /**
680
+ * @name 表单数据
681
+ */
682
+ formData: Record<string, any>;
683
+ /**
684
+ * @name 表格数据
685
+ */
686
+ tableData: Record<string, any>[];
687
+ /**
688
+ * @name 读取最新表格数据
689
+ */
690
+ getTableData: () => Record<string, any>[];
691
+ /**
692
+ * @name 错误key
693
+ */
694
+ errorKey: string[];
695
+ /**
696
+ * @name 是否全部使用编辑功能
697
+ */
698
+ editTable: boolean;
699
+ /**
700
+ * @name 是否使用编辑组件
701
+ */
702
+ edit: boolean;
703
+ /**
704
+ * @name 表格变化事件
705
+ */
706
+ onEditingChange: (record: Record<string, any>) => void;
707
+ /**
708
+ * @name 取消变化事件
709
+ */
710
+ onCancelChange: () => void;
711
+ /**
712
+ * @name 验证事件
713
+ */
714
+ onValidate: () => Promise<any>;
715
+ /**
716
+ * @name 是否开启编辑单行功能
717
+ */
718
+ isEditing: (record: Record<string, any>, rowKey: string) => boolean;
719
+ /**
720
+ * @name 重置表单数据
721
+ */
722
+ onReload: () => void;
723
+ };
724
+
725
+ // 分页Hook所需类型定义
726
+ export type Data = Record<string, any>;
727
+
728
+ export interface Params {
729
+ [key: string]: any;
730
+ }
731
+
732
+ export interface PaginationOptions<TData extends Data, TParams extends Params> {
733
+ defaultPageSize?: number;
734
+ defaultCurrent?: number;
735
+ onSuccess?: (data: IBasePageRsp<TData>, params: [TParams & Partial<ITablePageOption>]) => void;
736
+ onError?: (e: Error) => void;
737
+ refreshDeps?: any[];
738
+ manual?: boolean;
739
+ ready?: boolean;
740
+ }
741
+
742
+ export type Service<TData extends Data, TParams extends Params> = (
743
+ params: TParams & Partial<ITablePageOption>
744
+ ) => Promise<IBasePageRsp<TData>>;
745
+
746
+ export interface PaginationResult<TData extends Data, TParams extends Params> {
747
+ data: TData[];
748
+ pageInfo: ITablePageOption;
749
+ pagination: {
750
+ pageNo: number;
751
+ pageSize: number;
752
+ totalCount: number;
753
+ totalPage: number;
754
+ onChange: (page: number, pageSize: number) => void;
755
+ changePageNo: (page: number) => void;
756
+ changePageSize: (pageSize: number) => void;
757
+ };
758
+ loading: boolean;
759
+ run: (params?: TParams & Partial<ITablePageOption>) => void;
760
+ params: (TParams & Partial<ITablePageOption>)[];
761
+ refresh: () => void;
762
+ mutate: (data: IBasePageRsp<TData> | ((oldData: IBasePageRsp<TData>) => IBasePageRsp<TData>)) => void;
763
+ error?: Error;
764
+ }
765
+
766
+ /**
767
+ * 表格校验上下文类型
768
+ *
769
+ * 使用方式:
770
+ * validator: (rule, value, callback, tableContext) => {
771
+ * const { currentRecord, allTableData, form } = tableContext;
772
+ * // 校验逻辑...
773
+ * }
774
+ *
775
+ * 注意:保持antd原有的callback参数顺序,tableContext作为第4个参数
776
+ */
777
+ export interface ITableValidatorContext {
778
+ /**
779
+ * 当前行的记录数据(已合并最新的表单输入值)
780
+ * 包含原始record数据和用户当前输入的最新值
781
+ */
782
+ currentRecord: any;
783
+ /**
784
+ * 所有行的数据,按行ID分组
785
+ * 每行数据都是最新的表单值
786
+ * 开发者可以从中过滤出需要的其他行数据
787
+ */
788
+ allTableData: Record<string, any>;
789
+ /**
790
+ * 表单实例,可用于获取表单数据或执行表单操作
791
+ */
792
+ form: any;
793
+ }
794
+
795
+ declare const FeTable: React.ForwardRefExoticComponent<FeTableProps>;