ronds-metadata 1.2.38 → 1.2.39
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/api/index.js +83 -131
- package/es/comps/DynamicPorts/comps/ContextMenu.js +3 -11
- package/es/comps/DynamicPorts/comps/DragNode.js +2 -7
- package/es/comps/DynamicPorts/comps/GraphHandler/index.js +4 -5
- package/es/comps/DynamicPorts/comps/NodeElement.js +1 -4
- package/es/comps/DynamicPorts/comps/contextMenu/EdgeContextMenu/index.js +3 -6
- package/es/comps/DynamicPorts/comps/contextMenu/GraphContextMenu/index.js +3 -7
- package/es/comps/DynamicPorts/comps/contextMenu/NodeContextMenu/index.js +18 -21
- package/es/comps/DynamicPorts/comps/shape/edge.js +5 -18
- package/es/comps/DynamicPorts/comps/shape/node.js +4 -17
- package/es/comps/DynamicPorts/constant/index.js +2 -5
- package/es/comps/DynamicPorts/graph.d.ts +2 -2
- package/es/comps/DynamicPorts/graph.js +228 -312
- package/es/comps/DynamicPorts/index.js +39 -58
- package/es/comps/DynamicPorts/utils.js +21 -25
- package/es/comps/Editable/DataCell/ButtonCell.js +4 -10
- package/es/comps/Editable/DataCell/ColorPicker.js +2 -7
- package/es/comps/Editable/DataCell/Input.js +5 -14
- package/es/comps/Editable/DataCell/Number.js +3 -10
- package/es/comps/Editable/DataCell/Select.js +7 -14
- package/es/comps/Editable/DataCell/Switch.js +2 -7
- package/es/comps/Editable/comps/EditableAction.js +8 -12
- package/es/comps/Editable/comps/EditableCell.js +16 -26
- package/es/comps/Editable/comps/EditableHeardCell.js +21 -34
- package/es/comps/Editable/comps/EditableRow.js +49 -59
- package/es/comps/Editable/comps/Texty.js +36 -72
- package/es/comps/Editable/index.js +67 -112
- package/es/comps/Editable/interface.d.ts +1 -1
- package/es/comps/Editable/utils.js +0 -1
- package/es/comps/FileView/index.js +65 -101
- package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/Checkbox.js +8 -13
- package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/Color.js +8 -4
- package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/Date.js +6 -2
- package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/Input.js +8 -4
- package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/List.js +6 -11
- package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/MutiSelect.js +6 -10
- package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/Number.js +6 -2
- package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/Obj.js +6 -11
- package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/Password.js +8 -4
- package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/Radio.js +8 -13
- package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/Select.js +6 -10
- package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/Switch.js +6 -2
- package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/Table.js +6 -11
- package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/TextArea.js +6 -3
- package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/Upload.js +2 -5
- package/es/comps/FormGenerator/comps/Canvas/core/RenderField/HOC/index.js +86 -109
- package/es/comps/FormGenerator/comps/Canvas/core/RenderField/index.js +3 -7
- package/es/comps/FormGenerator/comps/Canvas/core/index.js +54 -91
- package/es/comps/FormGenerator/comps/Canvas/core/index.less +23 -23
- package/es/comps/FormGenerator/comps/Canvas/index.js +8 -15
- package/es/comps/FormGenerator/comps/Settings/index.js +16 -30
- package/es/comps/FormGenerator/comps/Sidebar/Elements.js +23 -22
- package/es/comps/FormGenerator/comps/Sidebar/index.js +6 -2
- package/es/comps/FormGenerator/index.js +3 -9
- package/es/comps/FormGenerator/interface.d.ts +1 -1
- package/es/comps/FormGenerator/settings/index.js +12 -11
- package/es/comps/FormGenerator/settings/ruleConfig.js +0 -1
- package/es/comps/FormGenerator/transformer.js +40 -105
- package/es/comps/Icons/index.js +4 -7
- package/es/comps/JsonEdit/index.js +25 -50
- package/es/comps/JsonView/index.js +7 -21
- package/es/comps/JsonView/index.less +41 -41
- package/es/comps/MdEdit/index.js +7 -10
- package/es/comps/MdEdit/index.less +6 -6
- package/es/comps/MdEditPro/index.d.ts +10 -0
- package/es/comps/MdEditPro/index.js +22 -0
- package/es/comps/MdEditPro/index.less +74 -0
- package/es/comps/MdNavbar/index.js +17 -40
- package/es/comps/MdNavbar/utils.js +0 -4
- package/es/comps/MdView/index.js +7 -11
- package/es/comps/MdView/index.less +353 -353
- package/es/comps/MetadataEdit/components/MetaFieldsEdit.js +129 -183
- package/es/comps/MetadataEdit/components/MetaPropsEdit.js +11 -27
- package/es/comps/MetadataEdit/hooks/index.js +3 -11
- package/es/comps/MetadataEdit/index.js +25 -58
- package/es/comps/MetadataEdit/index.less +10 -10
- package/es/comps/MetadataEdit/type.d.ts +20 -20
- package/es/comps/MetadataEditV2/components/MetaFieldsEdit.js +17 -33
- package/es/comps/MetadataEditV2/components/MetaPropsEdit.js +15 -29
- package/es/comps/MetadataEditV2/hooks/index.js +5 -12
- package/es/comps/MetadataEditV2/index.js +30 -65
- package/es/comps/MetadataForm/DataCell/Array.js +12 -23
- package/es/comps/MetadataForm/DataCell/Input.js +12 -32
- package/es/comps/MetadataForm/DataCell/Number.js +10 -21
- package/es/comps/MetadataForm/DataCell/Ref.js +87 -121
- package/es/comps/MetadataForm/DataCell/Select.js +127 -222
- package/es/comps/MetadataForm/DataCell/Switch.js +7 -14
- package/es/comps/MetadataForm/DataCell/layout/TableArray.js +93 -164
- package/es/comps/MetadataForm/HOC/index.js +20 -37
- package/es/comps/MetadataForm/HOC/index.less +41 -41
- package/es/comps/MetadataForm/hooks/index.js +12 -38
- package/es/comps/MetadataForm/index.js +37 -72
- package/es/comps/MetadataForm/interface.d.ts +3 -3
- package/es/comps/MetadataForm/utils.js +0 -14
- package/es/comps/Split/index.js +20 -22
- package/es/config.js +0 -4
- package/es/framework/RxStore/demo/index.js +9 -10
- package/es/framework/RxStore/hooks.d.ts +9 -9
- package/es/framework/RxStore/hooks.js +10 -35
- package/es/framework/RxStore/store.d.ts +4 -4
- package/es/framework/RxStore/store.js +0 -10
- package/es/framework/fg/index.js +18 -80
- package/es/framework/fg/interface.d.ts +2 -2
- package/es/framework/fg/utils.js +0 -10
- package/es/framework/graph/index.d.ts +2 -2
- package/es/framework/graph/index.js +55 -110
- package/es/framework/hooks/use-async-memo.js +3 -7
- package/es/framework/hooks/use-sync-scroll.js +2 -15
- package/es/framework/http/cache.js +25 -32
- package/es/framework/http/cancel.js +1 -7
- package/es/framework/http/index.js +22 -82
- package/es/framework/http/msgpack.js +0 -4
- package/es/framework/http/msgpack5/index.js +2 -12
- package/es/framework/http/msgpack5/lib/codecs/DateCodec.js +1 -13
- package/es/framework/http/msgpack5/lib/decoder.js +10 -68
- package/es/framework/http/msgpack5/lib/encoder.js +8 -36
- package/es/framework/http/msgpack5/lib/helpers.js +3 -2
- package/es/framework/http/msgpack5/lib/streams.js +0 -18
- package/es/framework/libs/jquery.min.js +1009 -1696
- package/es/framework/locale/dil8/di18n.js +4 -15
- package/es/framework/locale/dil8/translate.js +0 -14
- package/es/framework/locale/dil8/util.js +0 -3
- package/es/framework/locale/index.js +2 -3
- package/es/framework/metadata/MetadataService.js +39 -78
- package/es/framework/metadata/index.js +4 -70
- package/es/framework/metadata/types.d.ts +98 -98
- package/es/framework/rxjs-hooks/useMemoSubject.js +0 -2
- package/es/framework/rxjs-hooks/useObservable.js +2 -4
- package/es/framework/rxjs-hooks/useObservableState.js +8 -14
- package/es/index.d.ts +1 -0
- package/es/index.js +2 -1
- package/es/theme.less +79 -79
- package/es/utils.js +58 -97
- package/package.json +104 -102
|
@@ -8,6 +8,11 @@ import _message from "antd/es/message";
|
|
|
8
8
|
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
9
9
|
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
10
10
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
11
|
+
/*
|
|
12
|
+
* @Author: wangxain
|
|
13
|
+
* @Date: 2022-03-04 08:53:04
|
|
14
|
+
* @LastEditTime: 2023-02-25 11:11:58
|
|
15
|
+
*/
|
|
11
16
|
import React from 'react';
|
|
12
17
|
import { pick, isArray } from 'lodash';
|
|
13
18
|
import { DndProvider } from 'react-dnd';
|
|
@@ -22,80 +27,72 @@ import useMemoSubject from '../../framework/rxjs-hooks/useMemoSubject';
|
|
|
22
27
|
import useObservable from '../../framework/rxjs-hooks/useObservable';
|
|
23
28
|
import { tr } from '../../framework/locale';
|
|
24
29
|
import './index.less';
|
|
25
|
-
|
|
26
30
|
var Editable = function Editable(props) {
|
|
27
31
|
var _props$type = props.type,
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
32
|
+
type = _props$type === void 0 ? 'single' : _props$type,
|
|
33
|
+
readonly = props.readonly,
|
|
34
|
+
columns = props.columns,
|
|
35
|
+
dataSource = props.dataSource,
|
|
36
|
+
defaultValue = props.defaultValue,
|
|
37
|
+
_props$addPosition = props.addPosition,
|
|
38
|
+
addPosition = _props$addPosition === void 0 ? 'bottom' : _props$addPosition,
|
|
39
|
+
_props$isAddColumn = props.isAddColumn,
|
|
40
|
+
isAddColumn = _props$isAddColumn === void 0 ? false : _props$isAddColumn,
|
|
41
|
+
_props$isAddRow = props.isAddRow,
|
|
42
|
+
isAddRow = _props$isAddRow === void 0 ? true : _props$isAddRow,
|
|
43
|
+
_props$isAction = props.isAction,
|
|
44
|
+
isAction = _props$isAction === void 0 ? true : _props$isAction,
|
|
45
|
+
tableProps = props.tableProps,
|
|
46
|
+
onMove = props.onMove,
|
|
47
|
+
onRowClick = props.onRowClick,
|
|
48
|
+
onButtonCellClick = props.onButtonCellClick,
|
|
49
|
+
onRowConfirm = props.onRowConfirm,
|
|
50
|
+
onRowDelete = props.onRowDelete,
|
|
51
|
+
onMulChange = props.onMulChange,
|
|
52
|
+
getStreamInstance = props.getStreamInstance;
|
|
50
53
|
var _React$useState = React.useState([]),
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
54
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
55
|
+
records = _React$useState2[0],
|
|
56
|
+
setRecords = _React$useState2[1];
|
|
57
|
+
var recordsRef = React.useRef([]);
|
|
58
|
+
// 当type为single的时候 只能编辑该行数据
|
|
57
59
|
var _React$useState3 = React.useState(),
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
60
|
+
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
|
61
|
+
editRowKey = _React$useState4[0],
|
|
62
|
+
setEditRowkey = _React$useState4[1];
|
|
62
63
|
var _React$useState5 = React.useState('add'),
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
64
|
+
_React$useState6 = _slicedToArray(_React$useState5, 2),
|
|
65
|
+
editType = _React$useState6[0],
|
|
66
|
+
setEditType = _React$useState6[1];
|
|
67
|
+
var editRowKeyRef = React.useRef();
|
|
68
|
+
// 当type为freedom的时候可以编辑指定cell
|
|
69
69
|
var _React$useState7 = React.useState(),
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
70
|
+
_React$useState8 = _slicedToArray(_React$useState7, 2),
|
|
71
|
+
editCellKey = _React$useState8[0],
|
|
72
|
+
setEditCellkey = _React$useState8[1];
|
|
73
|
+
// 添加一列表头
|
|
75
74
|
var _React$useState9 = React.useState(),
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
75
|
+
_React$useState10 = _slicedToArray(_React$useState9, 2),
|
|
76
|
+
editHeardCellKey = _React$useState10[0],
|
|
77
|
+
setEditHeardCellkey = _React$useState10[1];
|
|
78
|
+
// 记录上一次发生改变的行值
|
|
79
|
+
var lastValueRef = React.useRef();
|
|
80
|
+
// 记录上一次的datasource
|
|
83
81
|
var lastDataSourceRef = React.useRef();
|
|
84
|
-
var firstLoadRef = React.useRef(true);
|
|
85
|
-
|
|
82
|
+
var firstLoadRef = React.useRef(true);
|
|
83
|
+
// 定义处理编辑表格的数据流
|
|
86
84
|
var editableStream = useMemoSubject();
|
|
87
85
|
var processStreamFactory = React.useCallback(function (data) {
|
|
88
86
|
switch (data === null || data === void 0 ? void 0 : data.type) {
|
|
89
87
|
case 'onValuesChange':
|
|
90
|
-
lastValueRef.current = data.payload;
|
|
91
|
-
|
|
88
|
+
lastValueRef.current = data.payload;
|
|
89
|
+
// type为multiple时候处理records
|
|
92
90
|
if (type === 'multiple') {
|
|
93
91
|
var _records = recordsRef.current;
|
|
94
92
|
_records[data.payload.rowIdx] = _objectSpread(_objectSpread({}, _records[data.payload.rowIdx]), data.payload.allValues);
|
|
95
93
|
onMulChange && onMulChange(_records);
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
|
|
94
|
+
}
|
|
95
|
+
// type为freedom时候处理records
|
|
99
96
|
if (type === 'freedom') {
|
|
100
97
|
var _records2 = recordsRef.current;
|
|
101
98
|
_records2[data.payload.rowIdx] = _objectSpread(_objectSpread({}, _records2[data.payload.rowIdx]), data.payload.allValues);
|
|
@@ -104,39 +101,31 @@ var Editable = function Editable(props) {
|
|
|
104
101
|
records: _records2
|
|
105
102
|
}));
|
|
106
103
|
}
|
|
107
|
-
|
|
108
104
|
break;
|
|
109
|
-
|
|
110
105
|
case 'editRowKey':
|
|
111
106
|
if (Object.keys(data.payload).length > 1) {
|
|
112
107
|
setEditType('edit');
|
|
113
108
|
} else {
|
|
114
109
|
setEditType('add');
|
|
115
110
|
}
|
|
116
|
-
|
|
117
111
|
setEditRowkey(data.payload._rowKey_);
|
|
118
112
|
editRowKeyRef.current = data.payload._rowKey_;
|
|
119
113
|
break;
|
|
120
|
-
|
|
121
114
|
case 'editCellKey':
|
|
122
115
|
setEditCellkey({
|
|
123
116
|
dataIndex: data.payload.dataIndex,
|
|
124
117
|
rowIndex: data.payload.rowIndex
|
|
125
118
|
});
|
|
126
119
|
break;
|
|
127
|
-
|
|
128
120
|
case 'editHeardCellKey':
|
|
129
121
|
setEditHeardCellkey(data.payload);
|
|
130
122
|
break;
|
|
131
|
-
|
|
132
123
|
case 'onRowClick':
|
|
133
124
|
onRowClick && onRowClick(data.payload);
|
|
134
125
|
break;
|
|
135
|
-
|
|
136
126
|
case 'onButtonCellClick':
|
|
137
127
|
onButtonCellClick && onButtonCellClick(data.payload);
|
|
138
128
|
break;
|
|
139
|
-
|
|
140
129
|
case 'onSingleSave':
|
|
141
130
|
if (lastValueRef.current && lastValueRef.current.rowIdx === data.payload._rowKey_) {
|
|
142
131
|
onRowConfirm && onRowConfirm({
|
|
@@ -149,9 +138,7 @@ var Editable = function Editable(props) {
|
|
|
149
138
|
} else {
|
|
150
139
|
_message.warn(tr('当前值无修改'));
|
|
151
140
|
}
|
|
152
|
-
|
|
153
141
|
break;
|
|
154
|
-
|
|
155
142
|
case 'onDelete':
|
|
156
143
|
if (type === 'single') {
|
|
157
144
|
// 如果删除的 是正在编辑的 重置状态
|
|
@@ -159,32 +146,24 @@ var Editable = function Editable(props) {
|
|
|
159
146
|
setEditRowkey(undefined);
|
|
160
147
|
editRowKeyRef.current = undefined;
|
|
161
148
|
}
|
|
162
|
-
|
|
163
149
|
onRowDelete && onRowDelete(data.payload);
|
|
164
150
|
}
|
|
165
|
-
|
|
166
151
|
if (type === 'multiple') {
|
|
167
152
|
var _records3 = recordsRef.current;
|
|
168
|
-
|
|
169
153
|
_records3.splice(data.payload._rowKey_, 1);
|
|
170
|
-
|
|
171
154
|
setRecords(_toConsumableArray(_records3));
|
|
172
155
|
recordsRef.current = _records3;
|
|
173
156
|
onMulChange && onMulChange(_records3);
|
|
174
157
|
}
|
|
175
|
-
|
|
176
158
|
if (type === 'freedom') {
|
|
177
159
|
// 正在全行编辑的直接删除,不需要回调
|
|
178
160
|
if (isFreeEditRow(editRowKeyRef.current, data.payload._rowKey_)) {
|
|
179
161
|
var _records4 = recordsRef.current;
|
|
180
|
-
|
|
181
162
|
_records4.splice(data.payload._rowKey_, 1);
|
|
182
|
-
|
|
183
163
|
setRecords(_toConsumableArray(_records4));
|
|
184
|
-
recordsRef.current = _records4;
|
|
185
|
-
|
|
164
|
+
recordsRef.current = _records4;
|
|
165
|
+
// 移除当前的行的编辑状态
|
|
186
166
|
var _editRowKey = removeCurKeyFromEditRow(editRowKeyRef.current, data.payload._rowKey_);
|
|
187
|
-
|
|
188
167
|
setEditRowkey(_editRowKey);
|
|
189
168
|
editRowKeyRef.current = _editRowKey;
|
|
190
169
|
editableStream.next({
|
|
@@ -195,23 +174,21 @@ var Editable = function Editable(props) {
|
|
|
195
174
|
});
|
|
196
175
|
return;
|
|
197
176
|
}
|
|
198
|
-
|
|
199
177
|
onRowDelete && onRowDelete(data.payload);
|
|
200
178
|
}
|
|
201
|
-
|
|
202
179
|
break;
|
|
203
180
|
}
|
|
204
|
-
}, [type]);
|
|
205
|
-
|
|
206
|
-
useObservable(processStreamFactory, [editableStream]);
|
|
207
|
-
|
|
181
|
+
}, [type]);
|
|
182
|
+
// 集中处理数据流
|
|
183
|
+
useObservable(processStreamFactory, [editableStream]);
|
|
184
|
+
// 返回stream的实例
|
|
208
185
|
React.useEffect(function () {
|
|
209
186
|
if (firstLoadRef && editableStream) {
|
|
210
187
|
getStreamInstance && getStreamInstance(editableStream);
|
|
211
188
|
firstLoadRef.current = false;
|
|
212
189
|
}
|
|
213
|
-
}, [editableStream]);
|
|
214
|
-
|
|
190
|
+
}, [editableStream]);
|
|
191
|
+
// 定义内部的record
|
|
215
192
|
React.useEffect(function () {
|
|
216
193
|
if (dataSource) {
|
|
217
194
|
setRecords(_toConsumableArray(dataSource));
|
|
@@ -222,7 +199,6 @@ var Editable = function Editable(props) {
|
|
|
222
199
|
var _column = _objectSpread(_objectSpread({}, column), {}, {
|
|
223
200
|
children: isArray(column === null || column === void 0 ? void 0 : column.children) ? column.children.map(getEditColumn) : undefined
|
|
224
201
|
});
|
|
225
|
-
|
|
226
202
|
if (column.editable && !readonly) {
|
|
227
203
|
_column.onCell = function (record, rowIndex) {
|
|
228
204
|
return _objectSpread(_objectSpread({
|
|
@@ -233,7 +209,6 @@ var Editable = function Editable(props) {
|
|
|
233
209
|
rowIndex: rowIndex
|
|
234
210
|
});
|
|
235
211
|
};
|
|
236
|
-
|
|
237
212
|
_column.onHeaderCell = function (col) {
|
|
238
213
|
return _objectSpread({
|
|
239
214
|
width: col.width,
|
|
@@ -241,15 +216,12 @@ var Editable = function Editable(props) {
|
|
|
241
216
|
}, pick(column, ['title', 'dataIndex']));
|
|
242
217
|
};
|
|
243
218
|
}
|
|
244
|
-
|
|
245
219
|
return _column;
|
|
246
|
-
}, [readonly, type]);
|
|
247
|
-
|
|
220
|
+
}, [readonly, type]);
|
|
221
|
+
// 处理一下编辑表格的数据
|
|
248
222
|
var _columns = React.useMemo(function () {
|
|
249
223
|
var __columns__ = columns;
|
|
250
|
-
|
|
251
224
|
var res = __columns__.map(getEditColumn);
|
|
252
|
-
|
|
253
225
|
if (!readonly && isAction) {
|
|
254
226
|
var _aciton_ = {
|
|
255
227
|
dataKey: '_aciton_',
|
|
@@ -264,67 +236,51 @@ var Editable = function Editable(props) {
|
|
|
264
236
|
}));
|
|
265
237
|
}
|
|
266
238
|
};
|
|
267
|
-
|
|
268
239
|
if (type === 'single') {
|
|
269
240
|
res.push(_aciton_);
|
|
270
241
|
} else if (defaultValue) {
|
|
271
242
|
res.push(_aciton_);
|
|
272
243
|
}
|
|
273
244
|
}
|
|
274
|
-
|
|
275
245
|
return res;
|
|
276
|
-
}, [columns, readonly, type]);
|
|
277
|
-
|
|
278
|
-
|
|
246
|
+
}, [columns, readonly, type]);
|
|
247
|
+
// 主要是自己加一层rowkey
|
|
279
248
|
var _dataSource = React.useMemo(function () {
|
|
280
249
|
var res = records.map(function (it, idx) {
|
|
281
250
|
return _objectSpread({
|
|
282
251
|
_rowKey_: idx
|
|
283
252
|
}, it);
|
|
284
253
|
});
|
|
285
|
-
|
|
286
254
|
if (res.length > 0) {
|
|
287
255
|
firstLoadRef.current = false;
|
|
288
256
|
}
|
|
289
|
-
|
|
290
257
|
lastDataSourceRef.current = res;
|
|
291
258
|
return res;
|
|
292
259
|
}, [records, type]);
|
|
293
|
-
|
|
294
260
|
var onAddRow = function onAddRow() {
|
|
295
261
|
if (defaultValue) {
|
|
296
262
|
if (type === 'freedom' && editRowKey) {
|
|
297
263
|
_message.warn(tr('请先保存正在编辑的行'));
|
|
298
|
-
|
|
299
264
|
return;
|
|
300
265
|
}
|
|
301
|
-
|
|
302
266
|
var _records = recordsRef.current;
|
|
303
|
-
|
|
304
267
|
if (addPosition === 'top') {
|
|
305
268
|
_records.unshift(defaultValue);
|
|
306
269
|
} else {
|
|
307
270
|
_records.push(defaultValue);
|
|
308
271
|
}
|
|
309
|
-
|
|
310
272
|
if (type === 'freedom') {
|
|
311
273
|
var _editRowKeyRef$curren;
|
|
312
|
-
|
|
313
274
|
var _editRowKeyArr = ((_editRowKeyRef$curren = editRowKeyRef.current) === null || _editRowKeyRef$curren === void 0 ? void 0 : _editRowKeyRef$curren.toString().split(',')) || ['undefined'];
|
|
314
|
-
|
|
315
275
|
var _curKey = addPosition === 'top' ? _editRowKeyArr.length - 1 : _records.length - 1;
|
|
316
|
-
|
|
317
276
|
var _editRowKey = "".concat(editRowKeyRef.current, ",").concat(_curKey);
|
|
318
|
-
|
|
319
277
|
setEditRowkey(_editRowKey);
|
|
320
278
|
editRowKeyRef.current = _editRowKey;
|
|
321
279
|
}
|
|
322
|
-
|
|
323
280
|
setRecords(_toConsumableArray(_records));
|
|
324
281
|
recordsRef.current = _records;
|
|
325
282
|
}
|
|
326
283
|
};
|
|
327
|
-
|
|
328
284
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(EditableContext.Provider, {
|
|
329
285
|
value: {
|
|
330
286
|
editableStream: editableStream,
|
|
@@ -382,5 +338,4 @@ var Editable = function Editable(props) {
|
|
|
382
338
|
onClick: onAddRow
|
|
383
339
|
}, tr('添加一行'))));
|
|
384
340
|
};
|
|
385
|
-
|
|
386
341
|
export default Editable;
|
|
@@ -32,7 +32,7 @@ export interface EditableRowProps extends React.HTMLAttributes<HTMLElement> {
|
|
|
32
32
|
index?: any;
|
|
33
33
|
onMove?: (data: any) => void;
|
|
34
34
|
}
|
|
35
|
-
export
|
|
35
|
+
export type InputType = 'bool' | 'number' | 'text' | 'enum' | string;
|
|
36
36
|
export interface EditColumnsType extends ColumnsType<any> {
|
|
37
37
|
type?: InputType;
|
|
38
38
|
enum?: {
|
|
@@ -1,34 +1,29 @@
|
|
|
1
|
-
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
2
1
|
import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
|
|
3
2
|
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
4
3
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
4
|
+
import _regeneratorRuntime from "@babel/runtime/regenerator";
|
|
5
5
|
import React from 'react';
|
|
6
6
|
import { ReactJexcel } from 'react-jexcel';
|
|
7
7
|
import * as XLSX from 'xlsx';
|
|
8
|
-
|
|
9
8
|
var FileView = function FileView(props) {
|
|
10
9
|
var path = props.path,
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
10
|
+
data = props.data,
|
|
11
|
+
file = props.file,
|
|
12
|
+
_props$limit = props.limit,
|
|
13
|
+
limit = _props$limit === void 0 ? 1000 : _props$limit;
|
|
15
14
|
var ref = React.useRef(null);
|
|
16
15
|
var firstLoadRef = React.useRef(true);
|
|
17
|
-
|
|
18
16
|
var _React$useState = React.useState(),
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
17
|
+
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
18
|
+
title = _React$useState2[0],
|
|
19
|
+
setTitle = _React$useState2[1];
|
|
23
20
|
var _React$useState3 = React.useState(),
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
21
|
+
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
|
22
|
+
value = _React$useState4[0],
|
|
23
|
+
setValue = _React$useState4[1];
|
|
28
24
|
var processDataToExcel = React.useCallback(function (data) {
|
|
29
25
|
var _title = [];
|
|
30
26
|
var _value = [];
|
|
31
|
-
|
|
32
27
|
if (data && data.length > 0) {
|
|
33
28
|
var p = data[0];
|
|
34
29
|
var f = Object.keys(p);
|
|
@@ -40,114 +35,89 @@ var FileView = function FileView(props) {
|
|
|
40
35
|
};
|
|
41
36
|
});
|
|
42
37
|
setTitle(_toConsumableArray(_title));
|
|
43
|
-
|
|
44
38
|
var _loop = function _loop(i) {
|
|
45
39
|
var arr = f.map(function (it) {
|
|
46
40
|
return data[i][it];
|
|
47
41
|
});
|
|
48
|
-
|
|
49
42
|
_value.push(arr);
|
|
50
|
-
|
|
51
43
|
if (i === limit - 1) return "break";
|
|
52
44
|
};
|
|
53
|
-
|
|
54
45
|
for (var i = 0; i < data.length; i++) {
|
|
55
46
|
var _ret = _loop(i);
|
|
56
|
-
|
|
57
47
|
if (_ret === "break") break;
|
|
58
48
|
}
|
|
59
|
-
|
|
60
49
|
setValue([].concat(_value));
|
|
61
50
|
firstLoadRef.current = false;
|
|
62
51
|
}
|
|
63
|
-
}, []);
|
|
64
|
-
|
|
52
|
+
}, []);
|
|
53
|
+
// 文件流转 base64
|
|
65
54
|
var fixdata = function fixdata(data) {
|
|
66
55
|
var o = '',
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
for (; l < data.byteLength / w; ++l) {
|
|
71
|
-
o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w, l * w + w)));
|
|
72
|
-
}
|
|
73
|
-
|
|
56
|
+
l = 0,
|
|
57
|
+
w = 10240;
|
|
58
|
+
for (; l < data.byteLength / w; ++l) o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w, l * w + w)));
|
|
74
59
|
o += String.fromCharCode.apply(null, new Uint8Array(data.slice(l * w)));
|
|
75
60
|
return o;
|
|
76
61
|
};
|
|
77
|
-
|
|
78
62
|
var getFileData = React.useCallback( /*#__PURE__*/function () {
|
|
79
63
|
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_file) {
|
|
80
64
|
var blob, res, fileReader;
|
|
81
65
|
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
82
|
-
while (1) {
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
if (!path) {
|
|
91
|
-
_context.next = 10;
|
|
92
|
-
break;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
_context.next = 4;
|
|
96
|
-
return fetch(path);
|
|
97
|
-
|
|
98
|
-
case 4:
|
|
99
|
-
res = _context.sent;
|
|
100
|
-
_context.next = 7;
|
|
101
|
-
return res.blob();
|
|
102
|
-
|
|
103
|
-
case 7:
|
|
104
|
-
blob = _context.sent;
|
|
105
|
-
_context.next = 11;
|
|
66
|
+
while (1) switch (_context.prev = _context.next) {
|
|
67
|
+
case 0:
|
|
68
|
+
if (!firstLoadRef.current) {
|
|
69
|
+
_context.next = 14;
|
|
70
|
+
break;
|
|
71
|
+
}
|
|
72
|
+
if (!path) {
|
|
73
|
+
_context.next = 10;
|
|
106
74
|
break;
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
75
|
+
}
|
|
76
|
+
_context.next = 4;
|
|
77
|
+
return fetch(path);
|
|
78
|
+
case 4:
|
|
79
|
+
res = _context.sent;
|
|
80
|
+
_context.next = 7;
|
|
81
|
+
return res.blob();
|
|
82
|
+
case 7:
|
|
83
|
+
blob = _context.sent;
|
|
84
|
+
_context.next = 11;
|
|
85
|
+
break;
|
|
86
|
+
case 10:
|
|
87
|
+
blob = _file;
|
|
88
|
+
case 11:
|
|
89
|
+
fileReader = new FileReader(); //二进制
|
|
90
|
+
// fileReader.readAsBinaryString(blob);
|
|
91
|
+
fileReader.onload = function (event) {
|
|
92
|
+
try {
|
|
93
|
+
var _data = [];
|
|
94
|
+
// 以二进制流方式读取得到整份excel表格对象
|
|
95
|
+
var result = event.target.result;
|
|
96
|
+
// 遍历每张工作表进行读取(这里默认只读取第一张表)
|
|
97
|
+
var workbook = XLSX.read(fixdata(result), {
|
|
98
|
+
type: 'binary',
|
|
99
|
+
codepage: 65001
|
|
100
|
+
});
|
|
101
|
+
for (var sheet in workbook.Sheets) {
|
|
102
|
+
if (workbook.Sheets.hasOwnProperty(sheet)) {
|
|
103
|
+
// 利用 sheet_to_json 方法将 excel 转成 json 数据
|
|
104
|
+
_data = _data.concat(XLSX.utils.sheet_to_json(workbook.Sheets[sheet]));
|
|
105
|
+
// 如果只取第一张表,就取消注释这行
|
|
106
|
+
break;
|
|
133
107
|
}
|
|
134
|
-
|
|
135
|
-
processDataToExcel(_data);
|
|
136
|
-
} catch (e) {
|
|
137
|
-
return;
|
|
138
108
|
}
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
109
|
+
processDataToExcel(_data);
|
|
110
|
+
} catch (e) {
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
};
|
|
114
|
+
fileReader.readAsArrayBuffer(blob);
|
|
115
|
+
case 14:
|
|
116
|
+
case "end":
|
|
117
|
+
return _context.stop();
|
|
147
118
|
}
|
|
148
119
|
}, _callee);
|
|
149
120
|
}));
|
|
150
|
-
|
|
151
121
|
return function (_x) {
|
|
152
122
|
return _ref.apply(this, arguments);
|
|
153
123
|
};
|
|
@@ -159,7 +129,6 @@ var FileView = function FileView(props) {
|
|
|
159
129
|
ref.current = null;
|
|
160
130
|
};
|
|
161
131
|
}
|
|
162
|
-
|
|
163
132
|
return function () {};
|
|
164
133
|
}, [getFileData, path]);
|
|
165
134
|
React.useEffect(function () {
|
|
@@ -169,7 +138,6 @@ var FileView = function FileView(props) {
|
|
|
169
138
|
ref.current = null;
|
|
170
139
|
};
|
|
171
140
|
}
|
|
172
|
-
|
|
173
141
|
return function () {};
|
|
174
142
|
}, [getFileData, file]);
|
|
175
143
|
React.useEffect(function () {
|
|
@@ -179,14 +147,11 @@ var FileView = function FileView(props) {
|
|
|
179
147
|
ref.current = null;
|
|
180
148
|
};
|
|
181
149
|
}
|
|
182
|
-
|
|
183
150
|
return function () {};
|
|
184
151
|
}, [getFileData, data]);
|
|
185
|
-
|
|
186
152
|
if (!value) {
|
|
187
153
|
return /*#__PURE__*/React.createElement(React.Fragment, null);
|
|
188
154
|
}
|
|
189
|
-
|
|
190
155
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ReactJexcel, {
|
|
191
156
|
ref: ref,
|
|
192
157
|
data: value,
|
|
@@ -194,5 +159,4 @@ var FileView = function FileView(props) {
|
|
|
194
159
|
rowResize: true
|
|
195
160
|
}));
|
|
196
161
|
};
|
|
197
|
-
|
|
198
162
|
export default FileView;
|