@zhenliang/sheet 0.1.22 → 0.1.23

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 (137) hide show
  1. package/dist/core/config.d.ts +13 -0
  2. package/dist/core/config.js +13 -0
  3. package/dist/core/editor/cascaderEditor/index.d.ts +5 -0
  4. package/dist/core/editor/cascaderEditor/index.js +54 -0
  5. package/dist/core/editor/cascaderEditor/index.less +28 -0
  6. package/dist/core/editor/dateEditor/index.d.ts +5 -0
  7. package/dist/core/editor/dateEditor/index.js +56 -0
  8. package/dist/core/editor/dateEditor/index.less +11 -0
  9. package/dist/core/editor/index.d.ts +4 -0
  10. package/dist/core/editor/index.js +4 -0
  11. package/dist/core/editor/numberEditor/index.d.ts +8 -0
  12. package/dist/core/editor/numberEditor/index.js +107 -0
  13. package/dist/core/editor/numberEditor/index.less +30 -0
  14. package/dist/core/editor/selectEditor/index.d.ts +6 -0
  15. package/dist/core/editor/selectEditor/index.js +96 -0
  16. package/dist/core/editor/selectEditor/index.less +43 -0
  17. package/dist/core/reducers/index.d.ts +9 -0
  18. package/dist/core/reducers/index.js +38 -0
  19. package/dist/core/reducers/keyboardReducer.d.ts +2 -0
  20. package/dist/core/reducers/keyboardReducer.js +93 -0
  21. package/dist/core/reducers/mouseReducer.d.ts +2 -0
  22. package/dist/core/reducers/mouseReducer.js +164 -0
  23. package/dist/core/reducers/sideEffectReducer.d.ts +4 -0
  24. package/dist/core/reducers/sideEffectReducer.js +378 -0
  25. package/dist/core/reducers/stateReducer.d.ts +2 -0
  26. package/dist/core/reducers/stateReducer.js +174 -0
  27. package/dist/core/sheet/Cell.d.ts +4 -0
  28. package/dist/core/sheet/Cell.js +181 -0
  29. package/dist/core/sheet/DataEditor.d.ts +3 -0
  30. package/dist/core/sheet/DataEditor.js +24 -0
  31. package/dist/core/sheet/DefaultCell.d.ts +11 -0
  32. package/dist/core/sheet/DefaultCell.js +31 -0
  33. package/dist/core/sheet/DefaultRow.d.ts +12 -0
  34. package/dist/core/sheet/DefaultRow.js +28 -0
  35. package/dist/core/sheet/DefaultRowMapper.d.ts +8 -0
  36. package/dist/core/sheet/DefaultRowMapper.js +15 -0
  37. package/dist/core/sheet/DefaultShell.d.ts +8 -0
  38. package/dist/core/sheet/DefaultShell.js +12 -0
  39. package/dist/core/sheet/Event.d.ts +5 -0
  40. package/dist/core/sheet/Event.js +17 -0
  41. package/dist/core/sheet/ValueViewer.d.ts +3 -0
  42. package/dist/core/sheet/ValueViewer.js +9 -0
  43. package/dist/core/sheet/index.d.ts +5 -0
  44. package/dist/core/sheet/index.js +265 -0
  45. package/dist/core/sheet/index.less +307 -0
  46. package/dist/core/sheet/useCellEvent.d.ts +3 -0
  47. package/dist/core/sheet/useCellEvent.js +22 -0
  48. package/dist/core/sheet/useContextMenu.d.ts +21 -0
  49. package/dist/core/sheet/useContextMenu.js +86 -0
  50. package/dist/core/sheet/useKeyBoardEvent.d.ts +3 -0
  51. package/dist/core/sheet/useKeyBoardEvent.js +66 -0
  52. package/dist/core/sheet/useMouseEvent.d.ts +3 -0
  53. package/dist/core/sheet/useMouseEvent.js +298 -0
  54. package/dist/core/sheet/useSelectVisible.d.ts +2 -0
  55. package/dist/core/sheet/useSelectVisible.js +57 -0
  56. package/dist/core/sheet/useVirtualList.d.ts +7 -0
  57. package/dist/core/sheet/useVirtualList.js +103 -0
  58. package/dist/core/sheet/var.less +41 -0
  59. package/dist/core/shell/draggableShell/index.d.ts +5 -0
  60. package/dist/core/shell/draggableShell/index.js +197 -0
  61. package/dist/core/shell/draggableShell/index.less +16 -0
  62. package/dist/core/shell/tableShell.d.ts +5 -0
  63. package/dist/core/shell/tableShell.js +109 -0
  64. package/dist/core/table/events.d.ts +15 -0
  65. package/dist/core/table/events.js +95 -0
  66. package/dist/core/table/index.d.ts +4 -0
  67. package/dist/core/table/index.js +313 -0
  68. package/dist/core/table/useGroupConfig.d.ts +2 -0
  69. package/dist/core/table/useGroupConfig.js +65 -0
  70. package/dist/core/table/useRowSelection.d.ts +2 -0
  71. package/dist/core/table/useRowSelection.js +24 -0
  72. package/dist/core/table/util.d.ts +8 -0
  73. package/dist/core/table/util.js +29 -0
  74. package/dist/core/util.d.ts +59 -0
  75. package/dist/core/util.js +490 -0
  76. package/dist/core/viewer/btnViewer/index.d.ts +2 -0
  77. package/dist/core/viewer/btnViewer/index.js +37 -0
  78. package/dist/core/viewer/cascaderViewer/index.d.ts +2 -0
  79. package/dist/core/viewer/cascaderViewer/index.js +11 -0
  80. package/dist/core/viewer/checkViewer/index.d.ts +2 -0
  81. package/dist/core/viewer/checkViewer/index.js +23 -0
  82. package/dist/core/viewer/editViewer/index.d.ts +2 -0
  83. package/dist/core/viewer/editViewer/index.js +31 -0
  84. package/dist/core/viewer/groupViewer/index.d.ts +2 -0
  85. package/dist/core/viewer/groupViewer/index.js +34 -0
  86. package/dist/core/viewer/index.d.ts +7 -0
  87. package/dist/core/viewer/index.js +7 -0
  88. package/dist/core/viewer/selectorViewer/index.d.ts +2 -0
  89. package/dist/core/viewer/selectorViewer/index.js +16 -0
  90. package/dist/core/viewer/switchViewer/index.d.ts +2 -0
  91. package/dist/core/viewer/switchViewer/index.js +22 -0
  92. package/dist/example/antComponent.d.ts +3 -0
  93. package/dist/example/antComponent.js +314 -0
  94. package/dist/example/basic.d.ts +4 -0
  95. package/dist/example/basic.js +121 -0
  96. package/dist/example/ellipsis.d.ts +3 -0
  97. package/dist/example/ellipsis.js +64 -0
  98. package/dist/example/fixed.d.ts +3 -0
  99. package/dist/example/fixed.js +89 -0
  100. package/dist/example/group.d.ts +3 -0
  101. package/dist/example/group.js +123 -0
  102. package/dist/example/index.less +5 -0
  103. package/dist/example/selection.d.ts +4 -0
  104. package/dist/example/selection.js +86 -0
  105. package/dist/example/sheet.d.ts +4 -0
  106. package/dist/example/sheet.js +393 -0
  107. package/dist/example/valuationAnalyze.d.ts +2 -0
  108. package/dist/example/valuationAnalyze.js +227 -0
  109. package/dist/hooks/index.d.ts +8 -0
  110. package/dist/hooks/index.js +7 -0
  111. package/dist/hooks/useEventBus.d.ts +4 -0
  112. package/dist/hooks/useEventBus.js +17 -0
  113. package/dist/hooks/useKeyboard.d.ts +18 -0
  114. package/dist/hooks/useKeyboard.js +108 -0
  115. package/dist/hooks/useMiddlewareReducer.d.ts +12 -0
  116. package/dist/hooks/useMiddlewareReducer.js +47 -0
  117. package/dist/hooks/useMouse.d.ts +11 -0
  118. package/dist/hooks/useMouse.js +68 -0
  119. package/dist/hooks/useSetState.d.ts +2 -0
  120. package/dist/hooks/useSetState.js +27 -0
  121. package/dist/hooks/useSheetEvent.d.ts +5 -0
  122. package/dist/hooks/useSheetEvent.js +5 -0
  123. package/dist/hooks/useWidthConfig.d.ts +4 -0
  124. package/dist/hooks/useWidthConfig.js +5 -0
  125. package/dist/index.d.ts +8 -0
  126. package/dist/index.js +8 -0
  127. package/dist/standardUtils/index.d.ts +9 -0
  128. package/dist/standardUtils/index.js +32 -0
  129. package/dist/type/index.d.ts +2 -0
  130. package/dist/type/index.js +4 -0
  131. package/dist/type/sheet.d.ts +205 -0
  132. package/dist/type/sheet.js +9 -0
  133. package/dist/type/sheetTable.d.ts +89 -0
  134. package/dist/type/sheetTable.js +1 -0
  135. package/dist/typings/index.d.ts +1 -0
  136. package/package.json +1 -1
  137. package/changes.md +0 -45
@@ -0,0 +1,32 @@
1
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
2
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
4
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
5
+ function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
6
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
7
+ export var formatPrecision = function formatPrecision(value) {
8
+ var precision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;
9
+ if (Number.isNaN(Number(value)) || value === null || value === 0) {
10
+ return '0';
11
+ }
12
+ var b = Math.pow(10, precision);
13
+ var res = Math.round(Number(value) * b) / b;
14
+ return res.toFixed(precision);
15
+ };
16
+
17
+ /**
18
+ * 千位分隔符
19
+ * @param value 需要千分符格式化的数据
20
+ * @returns 含千分符的字符串
21
+ */
22
+ export var thousandsSeparator = function thousandsSeparator(value) {
23
+ var _String$split = String(value).split('.'),
24
+ _String$split2 = _slicedToArray(_String$split, 2),
25
+ integer = _String$split2[0],
26
+ decimal = _String$split2[1];
27
+ var formattedData = integer === null || integer === void 0 ? void 0 : integer.replace(/(\d{1,3})(?=(\d{3})+$)/g, '$1,');
28
+ if (decimal && decimal.length) {
29
+ formattedData += ".".concat(decimal);
30
+ }
31
+ return formattedData;
32
+ };
@@ -0,0 +1,2 @@
1
+ export * as SheetType from './sheet';
2
+ export * as SheetTableType from './sheetTable';
@@ -0,0 +1,4 @@
1
+ import * as _SheetType from "./sheet";
2
+ export { _SheetType as SheetType };
3
+ import * as _SheetTableType from "./sheetTable";
4
+ export { _SheetTableType as SheetTableType };
@@ -0,0 +1,205 @@
1
+ /// <reference types="react" />
2
+ /// <reference types="node" />
3
+ import type { EventEmitter } from 'events';
4
+ import { SheetTableType, SheetType } from '.';
5
+ export declare enum CellAlign {
6
+ left = "left",
7
+ center = "center",
8
+ right = "right",
9
+ unset = "unset"
10
+ }
11
+ export declare type Cell = {
12
+ id: string;
13
+ key?: string;
14
+ readonly?: boolean;
15
+ component?: CellViewer;
16
+ editable?: boolean;
17
+ colSpan?: number;
18
+ rowSpan?: number;
19
+ width?: number;
20
+ record?: Record<string, unknown>;
21
+ disableEvents?: boolean;
22
+ dataEditor?: CellEditor;
23
+ valueViewer?: CellViewer;
24
+ className?: string;
25
+ align?: CellAlign;
26
+ fixed?: Omit<CellAlign, 'center'>;
27
+ value?: string | number | null;
28
+ };
29
+ export declare type CellViewerProps = {
30
+ value: unknown;
31
+ record?: Record<string, unknown>;
32
+ row?: number;
33
+ col?: number;
34
+ cell?: Cell;
35
+ };
36
+ export declare type CellEditorProps = {
37
+ value: unknown;
38
+ cell?: Cell;
39
+ onChange: (value: unknown) => void;
40
+ onConfirm: (value: unknown) => void;
41
+ } & CellViewerProps;
42
+ export declare type CellEditor = React.FC<CellEditorProps> & {
43
+ checker?: (value: unknown, record?: Record<string, unknown>) => boolean;
44
+ formatter?: (value: unknown, record?: Record<string, unknown>) => unknown;
45
+ parser?: (value: unknown, record?: Record<string, unknown>) => unknown;
46
+ };
47
+ export declare type CellViewer = React.FC<CellViewerProps>;
48
+ export declare type CellPosition = {
49
+ row: number;
50
+ col: number;
51
+ };
52
+ export declare type CellData = {
53
+ id: string;
54
+ cell: Cell;
55
+ row: number;
56
+ col: number;
57
+ value?: string;
58
+ };
59
+ export declare type CellNavigable = (cell?: Cell, row?: number, col?: number) => boolean;
60
+ export declare type CellChangeHandler = (cells: CellData[], additions?: CellData[]) => void;
61
+ export declare type RowGroup = {
62
+ groupName: string;
63
+ groupStart: number;
64
+ groupEnd: number;
65
+ };
66
+ export declare type RowGroupConfig = {
67
+ defaultOpen?: boolean;
68
+ groups: RowGroup[];
69
+ groupOpen: boolean[];
70
+ };
71
+ export declare type MenuRenderProps = {
72
+ position?: {
73
+ top: number;
74
+ left: number;
75
+ };
76
+ cell?: CellPosition;
77
+ onContextMenu?: (event: any) => void;
78
+ };
79
+ export declare type SheetInstance = {
80
+ zoomTo: (row?: number) => void;
81
+ pushToHistory: (value: OperateHistory) => void;
82
+ selectRow: (row?: number) => void;
83
+ select: (props: {
84
+ start: SheetType.CellPosition;
85
+ end: SheetType.CellPosition;
86
+ }) => void;
87
+ popHistory: () => OperateHistory;
88
+ };
89
+ export declare type SheetProps = {
90
+ sheetInstance?: React.MutableRefObject<SheetInstance | null>;
91
+ sheetRenderer?: any;
92
+ rowRenderer?: any;
93
+ className?: string;
94
+ data: Cell[][];
95
+ freePaste?: boolean;
96
+ virtualized?: boolean;
97
+ showBackEdit?: boolean;
98
+ backEditStyle?: Partial<CSSStyleDeclaration>;
99
+ sticky?: boolean;
100
+ groupConfig?: RowGroupConfig;
101
+ onCellsChanged?: CellChangeHandler;
102
+ menuRenderer?: React.FC<MenuRenderProps>;
103
+ onContextMenu?: (event: any) => void;
104
+ scroll?: {
105
+ x?: number | string;
106
+ y?: number | string;
107
+ };
108
+ rowClassName?: string | ((record: Record<string, unknown>, index: number) => string);
109
+ children?: any[];
110
+ };
111
+ export declare type WidthConfig = {
112
+ onChange?: (value: Record<number | string, number>) => void;
113
+ widths?: Record<number | string, number>;
114
+ };
115
+ export declare type SheetShell = Pick<SheetTableType.TableProps, 'columns'> & {
116
+ className?: string;
117
+ showGroup?: boolean;
118
+ showSelect?: boolean;
119
+ controlWidth?: number;
120
+ controlProps?: {
121
+ check?: {
122
+ checked: boolean;
123
+ indeterminate?: boolean;
124
+ };
125
+ group?: {
126
+ open: boolean;
127
+ };
128
+ };
129
+ };
130
+ export declare type SheetRow = {
131
+ row: number;
132
+ cells: Cell[];
133
+ selected: boolean;
134
+ children: React.ElementType;
135
+ };
136
+ export declare type windowAssertion = {
137
+ clipboardData?: {
138
+ getData?: (type: string) => string;
139
+ setData?: (type: string, data: string) => string;
140
+ };
141
+ };
142
+ export declare type refAssertion = {
143
+ contains?: (target: EventTarget | null) => boolean;
144
+ focus?: () => boolean;
145
+ } & HTMLSpanElement;
146
+ export declare type AttributesRenderer = (cell: Cell, row: number, col: number) => Record<string, string>;
147
+ export declare type CellProps = {
148
+ row: number;
149
+ col: number;
150
+ cell: Cell;
151
+ cellRenderer?: React.ElementType;
152
+ dataEditor?: React.ElementType;
153
+ valueViewer?: React.ElementType;
154
+ attributesRenderer?: AttributesRenderer;
155
+ };
156
+ export declare type UpdateStateType = {
157
+ eventBus: EventEmitter;
158
+ start: CellPosition;
159
+ end: CellPosition;
160
+ selecting: boolean;
161
+ forceEdit: boolean;
162
+ clear: CellPosition;
163
+ editing: CellPosition & {
164
+ value?: string;
165
+ };
166
+ history: OperateHistory[];
167
+ freePaste?: boolean;
168
+ data: Cell[][];
169
+ mouseDown: boolean;
170
+ lastSelected?: {
171
+ start?: CellPosition;
172
+ end?: CellPosition;
173
+ };
174
+ groupConfig?: {
175
+ groups: RowGroup[];
176
+ groupOpen: boolean[];
177
+ };
178
+ lastFocus: {
179
+ id: string;
180
+ col: number;
181
+ }[];
182
+ lastEditing: CellPosition & {
183
+ confirm?: boolean;
184
+ };
185
+ cellChangeHandler: (cells: CellData[], additions?: CellData[]) => void;
186
+ };
187
+ export declare type UpdateFocus = (start: CellPosition, end: CellPosition) => void;
188
+ export declare type Options<T = any> = {
189
+ value: string | number;
190
+ label: string;
191
+ } & T;
192
+ export declare type OptionsType = Options<{
193
+ disabled?: boolean;
194
+ children?: OptionsType[];
195
+ }>;
196
+ export declare type OperateHistory = {
197
+ changes: Partial<CellData>[];
198
+ type: OperateType;
199
+ rowInfo?: {
200
+ newRow?: number;
201
+ deleteRow?: number;
202
+ };
203
+ extraInfo?: Record<string, unknown>;
204
+ };
205
+ export declare type OperateType = 'Edit' | 'Paste' | 'Delete' | 'DeleteRow' | 'NewRow' | 'Custom';
@@ -0,0 +1,9 @@
1
+ export var CellAlign = /*#__PURE__*/function (CellAlign) {
2
+ CellAlign["left"] = "left";
3
+ CellAlign["center"] = "center";
4
+ CellAlign["right"] = "right";
5
+ CellAlign["unset"] = "unset";
6
+ return CellAlign;
7
+ }({});
8
+
9
+ // todo
@@ -0,0 +1,89 @@
1
+ import { ReactNode } from 'react';
2
+ import { SheetType } from '.';
3
+ export declare type refAssertion = {
4
+ contains?: (target: EventTarget | null) => boolean;
5
+ focus?: () => boolean;
6
+ } & HTMLTableSectionElement;
7
+ export declare type CellFixed = SheetType.CellAlign;
8
+ export declare type RecordRowMap<T> = (value: unknown, record: Record<string, unknown>, index: number, colIndex?: number) => T;
9
+ export declare type ColumnProps = {
10
+ /**
11
+ * @description 对齐
12
+ * @default "left"
13
+ */
14
+ align?: SheetType.CellAlign;
15
+ /**
16
+ * @description 固定
17
+ * @default "undefined"
18
+ */
19
+ fixed?: Omit<CellFixed, 'center'>;
20
+ /**
21
+ * @description 列宽
22
+ * @default "undefined"
23
+ */
24
+ width?: string | number;
25
+ dataIndex?: string;
26
+ title: string | ReactNode | ReactNode[] | React.FC;
27
+ titleConfig?: {
28
+ colSpan?: number;
29
+ className?: string;
30
+ };
31
+ cellConfig?: {
32
+ className?: string | RecordRowMap<string>;
33
+ };
34
+ key?: string;
35
+ editable?: boolean | RecordRowMap<boolean>;
36
+ readonly?: boolean | RecordRowMap<boolean>;
37
+ render?: SheetType.CellViewer;
38
+ editor?: SheetType.CellEditor;
39
+ };
40
+ export declare type TableChange = {
41
+ col?: number;
42
+ row: number;
43
+ id: string;
44
+ key: string;
45
+ value: unknown;
46
+ };
47
+ export declare type TableRowSelection = {
48
+ rowSelected?: string[];
49
+ onChange?: (selectedRowKeys: string[], selectedRows: Record<string, unknown>[]) => void;
50
+ };
51
+ export declare type TableGroupConfig = {
52
+ defaultOpen?: boolean;
53
+ rowGroup?: SheetType.RowGroupConfig;
54
+ onChange?: (value: SheetType.RowGroupConfig) => void;
55
+ };
56
+ export declare type EventHandler = (value: any) => void;
57
+ export declare type TableProps = {
58
+ /**
59
+ * @description 表格类名
60
+ * @default "undefined"
61
+ */
62
+ className?: string;
63
+ /**
64
+ * @description sheet的一些定义方法可执行
65
+ * @default "object"
66
+ */
67
+ sheetInstance?: React.MutableRefObject<SheetType.SheetInstance | null>;
68
+ columns: ColumnProps[];
69
+ virtualized?: boolean;
70
+ dataSource: Record<string, unknown>[];
71
+ rowClassName?: string | ((record: Record<string, unknown>, index: number) => string);
72
+ rowKey?: string | ((record: Record<string, unknown>, index: number) => string);
73
+ scroll?: {
74
+ x?: number | string;
75
+ y?: number | string;
76
+ };
77
+ sticky?: boolean;
78
+ draggable?: boolean;
79
+ freePaste?: boolean;
80
+ showBackEdit?: boolean;
81
+ backEditStyle?: Partial<CSSStyleDeclaration>;
82
+ rowSelection?: TableRowSelection;
83
+ groupConfig?: TableGroupConfig;
84
+ menuRenderer?: React.FC<SheetType.MenuRenderProps>;
85
+ onContextMenu?: (event: any) => void;
86
+ onChange: (changes: TableChange[], extChanges?: TableChange[]) => void;
87
+ handleAdd?: () => void;
88
+ eventHandler?: Record<'reverse' | 'btn-click' | 'cell-edit' | 'cell-switch' | string, undefined | EventHandler>;
89
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1 @@
1
+ declare module '*.less';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zhenliang/sheet",
3
- "version": "0.1.22",
3
+ "version": "0.1.23",
4
4
  "description": "A react library developed with dumi",
5
5
  "license": "MIT",
6
6
  "module": "dist/index.js",
package/changes.md DELETED
@@ -1,45 +0,0 @@
1
- ### 为什么要重写
2
-
3
- #### 存在问题
4
-
5
- 1、表格选择逻辑与虚拟列表的冲突
6
- 2、表格的刷新机制: setRefresh(在多人开发的时候不便维护)
7
- 3、回调地狱
8
- 4、无法从 jll-portal 中剥离,有些地方与业务字段耦合
9
-
10
- #### 后果
11
-
12
- 1、新增功能难度大
13
- 2、修改容易出 bug
14
- 3、不利于业务代码优化和重构
15
-
16
- ### 重写后的表格
17
-
18
- #### 优点
19
-
20
- 1、维护性
21
- 2、扩展性
22
- 3、新的功能
23
-
24
- #### 新的 API
25
-
26
- 1、TableProps
27
-
28
- | 表头 | 表头 | 表头 |
29
- | -------------------------------------------- | ----------------------- | ---- |
30
- | className | container 类名 | 无 | |
31
- | | sheetInstance | sheet 对外暴露的一些 API | 选中行,参与回滚等 | |
32
-
33
- | columns | 表格列 | 无 ,必填 |
34
- | dataSource | 数据源 | 无,必填 |
35
- | virtualized |虚拟列表 | false |
36
- | draggable | 列宽可调整 | false |
37
- | rowClassName | 行类名 | 无 |
38
- | rowKey | 唯一标识字段 | key , id |
39
- | scroll | 同 antd table | {y:Math.min(400,row \* 40)} |
40
- | rowSelection | 选中行的配置 | 尚未完全实现 |
41
- | groupConfig | 表格分组 | 表格内部自动支持,对外配置尚未完全实现 |
42
- | onChange | 表格 cell change handler | 无 |
43
- | eventHandler | 自定义事件 handler | Record<string,(value:unknown)=>void> |
44
-
45
- 2、 ColumnProps