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.
@@ -1,5 +1,6 @@
1
1
  import { TableProps } from 'antd';
2
- import { EditColumnsType, IMultipleProps } from './interface';
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: (record: any) => void;
34
+ onRowConfirm?: (record: any) => void;
34
35
  /**
35
36
  * 每行删除回调
36
37
  */
37
- onRowDelete: (record: any) => void;
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]; // 当type为single的时候 只能编辑该行数据
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
- }, []); // 定义内部的record
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
- }); // 判断是否是新加行,如果是single类型的编辑框置为新加的一行
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 = 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
 
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "public": true,
3
3
  "name": "ronds-metadata",
4
- "version": "1.0.40",
4
+ "version": "1.0.41",
5
5
  "scripts": {
6
6
  "start": "dumi dev",
7
7
  "docs:build": "dumi build",