ronds-metadata 1.0.40 → 1.0.41
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.
- package/es/comps/Editable/index.d.ts +12 -3
- package/es/comps/Editable/index.js +33 -13
- package/package.json +1 -1
@@ -1,5 +1,6 @@
|
|
1
1
|
import { TableProps } from 'antd';
|
2
|
-
import {
|
2
|
+
import { BehaviorSubject } from 'rxjs';
|
3
|
+
import { EditColumnsType, IEditableStream, IMultipleProps } from './interface';
|
3
4
|
interface IEditableProps<R = any> {
|
4
5
|
/**
|
5
6
|
* 单行编辑或多行编辑。
|
@@ -30,11 +31,19 @@ interface IEditableProps<R = any> {
|
|
30
31
|
/**
|
31
32
|
* 每行确认回调函数
|
32
33
|
*/
|
33
|
-
onRowConfirm
|
34
|
+
onRowConfirm?: (record: any) => void;
|
34
35
|
/**
|
35
36
|
* 每行删除回调
|
36
37
|
*/
|
37
|
-
onRowDelete
|
38
|
+
onRowDelete?: (record: any) => void;
|
39
|
+
/**
|
40
|
+
* 表格数据的change触发事件
|
41
|
+
*/
|
42
|
+
onMulChange?: (records: any) => void;
|
43
|
+
/**
|
44
|
+
* editable的事件流回调
|
45
|
+
*/
|
46
|
+
getStreamInstance?: (subject: BehaviorSubject<IEditableStream | undefined>) => void;
|
38
47
|
}
|
39
48
|
declare const Editable: (props: IEditableProps) => JSX.Element;
|
40
49
|
export default Editable;
|
@@ -29,15 +29,18 @@ var Editable = function Editable(props) {
|
|
29
29
|
} : _props$multipleProps,
|
30
30
|
tableProps = props.tableProps,
|
31
31
|
onRowConfirm = props.onRowConfirm,
|
32
|
-
onRowDelete = props.onRowDelete
|
32
|
+
onRowDelete = props.onRowDelete,
|
33
|
+
onMulChange = props.onMulChange,
|
34
|
+
getStreamInstance = props.getStreamInstance;
|
33
35
|
var defaultValue = multipleProps.defaultValue,
|
34
36
|
addPosition = multipleProps.addPosition;
|
35
37
|
|
36
38
|
var _React$useState = React.useState([]),
|
37
39
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
38
40
|
records = _React$useState2[0],
|
39
|
-
setRecords = _React$useState2[1];
|
41
|
+
setRecords = _React$useState2[1];
|
40
42
|
|
43
|
+
var recordsRef = React.useRef([]); // 当type为single的时候 只能编辑该行数据
|
41
44
|
|
42
45
|
var _React$useState3 = React.useState(),
|
43
46
|
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
@@ -57,7 +60,14 @@ var Editable = function Editable(props) {
|
|
57
60
|
var processStreamFactory = React.useCallback(function (data) {
|
58
61
|
switch (data === null || data === void 0 ? void 0 : data.type) {
|
59
62
|
case 'onValuesChange':
|
60
|
-
lastValueRef.current = data.payload;
|
63
|
+
lastValueRef.current = data.payload; // type为multiple时候处理records
|
64
|
+
|
65
|
+
if (type === 'multiple') {
|
66
|
+
var _records = recordsRef.current;
|
67
|
+
_records[data.payload.rowIdx] = data.payload.allValues;
|
68
|
+
onMulChange && onMulChange(_records);
|
69
|
+
}
|
70
|
+
|
61
71
|
break;
|
62
72
|
|
63
73
|
case 'editRowKey':
|
@@ -87,13 +97,29 @@ var Editable = function Editable(props) {
|
|
87
97
|
onRowDelete && onRowDelete(data.payload);
|
88
98
|
}
|
89
99
|
|
100
|
+
if (type === 'multiple') {
|
101
|
+
var _records2 = recordsRef.current;
|
102
|
+
|
103
|
+
_records2.splice(data.payload._rowKey_, 1);
|
104
|
+
|
105
|
+
setRecords(_toConsumableArray(_records2));
|
106
|
+
recordsRef.current = _records2;
|
107
|
+
}
|
108
|
+
|
90
109
|
break;
|
91
110
|
}
|
92
|
-
}, []); //
|
111
|
+
}, [type]); // 返回stream的实例
|
112
|
+
|
113
|
+
React.useEffect(function () {
|
114
|
+
if (editableStream) {
|
115
|
+
getStreamInstance && getStreamInstance(editableStream);
|
116
|
+
}
|
117
|
+
}, [editableStream]); // 定义内部的record
|
93
118
|
|
94
119
|
React.useEffect(function () {
|
95
120
|
if (dataSource) {
|
96
121
|
setRecords(_toConsumableArray(dataSource));
|
122
|
+
recordsRef.current = dataSource;
|
97
123
|
}
|
98
124
|
}, [dataSource]); // 集中处理数据流
|
99
125
|
|
@@ -151,18 +177,11 @@ var Editable = function Editable(props) {
|
|
151
177
|
|
152
178
|
|
153
179
|
var _dataSource = React.useMemo(function () {
|
154
|
-
var _lastDataSourceRef$cu;
|
155
|
-
|
156
180
|
var res = records.map(function (it, idx) {
|
157
181
|
return _objectSpread({
|
158
182
|
_rowKey_: idx
|
159
183
|
}, it);
|
160
|
-
});
|
161
|
-
|
162
|
-
if (type === 'single' && !firstLoadRef.current && res.length > ((_lastDataSourceRef$cu = lastDataSourceRef.current) === null || _lastDataSourceRef$cu === void 0 ? void 0 : _lastDataSourceRef$cu.length)) {
|
163
|
-
setEditRowkey(res[res.length - 1]._rowKey_);
|
164
|
-
editRowKeyRef.current = res[res.length - 1]._rowKey_;
|
165
|
-
}
|
184
|
+
});
|
166
185
|
|
167
186
|
if (res.length > 0) {
|
168
187
|
firstLoadRef.current = false;
|
@@ -174,7 +193,7 @@ var Editable = function Editable(props) {
|
|
174
193
|
|
175
194
|
var onAddRow = function onAddRow() {
|
176
195
|
if (defaultValue) {
|
177
|
-
var _records =
|
196
|
+
var _records = recordsRef.current;
|
178
197
|
|
179
198
|
if (addPosition === 'top') {
|
180
199
|
_records.unshift(defaultValue);
|
@@ -183,6 +202,7 @@ var Editable = function Editable(props) {
|
|
183
202
|
}
|
184
203
|
|
185
204
|
setRecords(_toConsumableArray(_records));
|
205
|
+
recordsRef.current = _records;
|
186
206
|
}
|
187
207
|
};
|
188
208
|
|