ronds-metadata 1.1.87 → 1.1.89
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.d.ts +1 -1
- package/es/api/index.js +21 -7
- package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/Date.js +3 -2
- package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/List.d.ts +2 -0
- package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/List.js +17 -0
- package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/MutiSelect.js +45 -3
- package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/Number.js +5 -2
- package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/Obj.d.ts +2 -0
- package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/Obj.js +22 -0
- package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/Select.js +47 -3
- package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/Switch.js +4 -2
- package/es/comps/FormGenerator/comps/Canvas/core/RenderField/Cell/TextArea.js +5 -2
- package/es/comps/FormGenerator/comps/Canvas/core/RenderField/HOC/index.js +122 -2
- package/es/comps/FormGenerator/comps/Canvas/core/RenderField/index.js +6 -2
- package/es/comps/FormGenerator/comps/Canvas/core/index.js +72 -14
- package/es/comps/FormGenerator/comps/Canvas/core/index.less +0 -1
- package/es/comps/FormGenerator/comps/Settings/index.js +1 -1
- package/es/comps/FormGenerator/comps/Sidebar/index.js +1 -1
- package/es/comps/FormGenerator/settings/index.d.ts +645 -17
- package/es/comps/FormGenerator/settings/index.js +71 -17
- package/es/comps/FormGenerator/settings/ruleConfig.d.ts +51 -2
- package/es/comps/FormGenerator/settings/ruleConfig.js +220 -7
- package/es/comps/FormGenerator/transformer.js +2 -2
- package/es/comps/MetadataForm/DataCell/Array.js +18 -4
- package/es/comps/MetadataForm/DataCell/Select.js +59 -9
- package/es/comps/MetadataForm/DataCell/layout/TableArray.d.ts +1 -1
- package/es/comps/MetadataForm/DataCell/layout/TableArray.js +75 -28
- package/es/comps/MetadataForm/utils.d.ts +1 -0
- package/es/comps/MetadataForm/utils.js +23 -2
- package/es/framework/metadata/MetadataService.d.ts +1 -1
- package/es/framework/metadata/MetadataService.js +8 -3
- package/es/framework/metadata/types.d.ts +98 -98
- package/es/utils.d.ts +3 -0
- package/es/utils.js +28 -2
- package/package.json +1 -1
package/es/api/index.d.ts
CHANGED
@@ -15,5 +15,5 @@ export default class Api implements IAPI {
|
|
15
15
|
/** 添加元数据 */
|
16
16
|
SaveMetadata(data: any, metadataTag: string): Promise<any>;
|
17
17
|
GetMetadataObjList(data: any): Promise<any>;
|
18
|
-
GetEnumDataByUrl(url: string): Promise<any>;
|
18
|
+
GetEnumDataByUrl(url: string, method: 'get' | 'post', body?: any): Promise<any>;
|
19
19
|
}
|
package/es/api/index.js
CHANGED
@@ -6,7 +6,7 @@ import _createClass from "@babel/runtime/helpers/esm/createClass";
|
|
6
6
|
/*
|
7
7
|
* @Author:wangxian
|
8
8
|
* @Date: 2021-09-18 14:15:04
|
9
|
-
* @LastEditTime:
|
9
|
+
* @LastEditTime: 2023-02-09 19:16:42
|
10
10
|
*/
|
11
11
|
import { guid, md5 } from '../utils';
|
12
12
|
import { addInterceptor, HttpHelper } from '../framework/http';
|
@@ -200,20 +200,34 @@ var Api = /*#__PURE__*/function () {
|
|
200
200
|
}, {
|
201
201
|
key: "GetEnumDataByUrl",
|
202
202
|
value: function () {
|
203
|
-
var _GetEnumDataByUrl = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(url) {
|
204
|
-
var res;
|
203
|
+
var _GetEnumDataByUrl = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(url, method, body) {
|
204
|
+
var res, _res;
|
205
|
+
|
205
206
|
return _regeneratorRuntime.wrap(function _callee5$(_context5) {
|
206
207
|
while (1) {
|
207
208
|
switch (_context5.prev = _context5.next) {
|
208
209
|
case 0:
|
209
|
-
|
210
|
+
if (!(method === 'get')) {
|
211
|
+
_context5.next = 7;
|
212
|
+
break;
|
213
|
+
}
|
214
|
+
|
215
|
+
_context5.next = 3;
|
210
216
|
return http.get(encodeURI(url));
|
211
217
|
|
212
|
-
case
|
218
|
+
case 3:
|
213
219
|
res = _context5.sent;
|
214
220
|
return _context5.abrupt("return", res.successed ? res.data : []);
|
215
221
|
|
216
|
-
case
|
222
|
+
case 7:
|
223
|
+
_context5.next = 9;
|
224
|
+
return http.post(encodeURI(url), body);
|
225
|
+
|
226
|
+
case 9:
|
227
|
+
_res = _context5.sent;
|
228
|
+
return _context5.abrupt("return", _res.successed ? _res.data : []);
|
229
|
+
|
230
|
+
case 11:
|
217
231
|
case "end":
|
218
232
|
return _context5.stop();
|
219
233
|
}
|
@@ -221,7 +235,7 @@ var Api = /*#__PURE__*/function () {
|
|
221
235
|
}, _callee5);
|
222
236
|
}));
|
223
237
|
|
224
|
-
function GetEnumDataByUrl(_x6) {
|
238
|
+
function GetEnumDataByUrl(_x6, _x7, _x8) {
|
225
239
|
return _GetEnumDataByUrl.apply(this, arguments);
|
226
240
|
}
|
227
241
|
|
@@ -5,10 +5,11 @@ import { withFieldCellWrapper } from '../HOC';
|
|
5
5
|
import { DEFAULT_DATE_FORMAT } from '../../../../../../../comps/MetadataForm/DataCell/Input';
|
6
6
|
|
7
7
|
var Index = function Index(props) {
|
8
|
-
var
|
8
|
+
var setting = props.setting;
|
9
9
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_DatePicker, {
|
10
10
|
showTime: true,
|
11
|
-
format: DEFAULT_DATE_FORMAT
|
11
|
+
format: DEFAULT_DATE_FORMAT,
|
12
|
+
disabled: setting === null || setting === void 0 ? void 0 : setting.disabled
|
12
13
|
}));
|
13
14
|
};
|
14
15
|
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import "antd/es/input/style";
|
2
|
+
import _Input from "antd/es/input";
|
3
|
+
import React from "react";
|
4
|
+
import { withFieldCellWrapper } from '../HOC';
|
5
|
+
|
6
|
+
var Index = function Index(props) {
|
7
|
+
var data = props.data,
|
8
|
+
fgStream = props.fgStream,
|
9
|
+
setting = props.setting;
|
10
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Input, {
|
11
|
+
disabled: setting === null || setting === void 0 ? void 0 : setting.disabled,
|
12
|
+
placeholder: setting === null || setting === void 0 ? void 0 : setting.placeholder,
|
13
|
+
allowClear: true
|
14
|
+
}));
|
15
|
+
};
|
16
|
+
|
17
|
+
export default withFieldCellWrapper(Index);
|
@@ -1,12 +1,54 @@
|
|
1
1
|
import "antd/es/select/style";
|
2
2
|
import _Select from "antd/es/select";
|
3
|
-
import React from
|
3
|
+
import React from 'react';
|
4
4
|
import { withFieldCellWrapper } from '../HOC';
|
5
|
+
import { deepClone } from '../../../../../../../utils';
|
5
6
|
|
6
7
|
var Index = function Index(props) {
|
7
|
-
var
|
8
|
+
var setting = props.setting;
|
9
|
+
var processNormalOptions = React.useCallback(function (opt) {
|
10
|
+
var _options = [];
|
11
|
+
|
12
|
+
var _enum = deepClone(opt);
|
13
|
+
|
14
|
+
_enum.forEach(function (it) {
|
15
|
+
var _it$key;
|
16
|
+
|
17
|
+
var obj = {
|
18
|
+
label: it.value,
|
19
|
+
value: (_it$key = it === null || it === void 0 ? void 0 : it.key) !== null && _it$key !== void 0 ? _it$key : it === null || it === void 0 ? void 0 : it.value
|
20
|
+
};
|
21
|
+
|
22
|
+
_options.push(obj);
|
23
|
+
});
|
24
|
+
|
25
|
+
return _options;
|
26
|
+
}, []);
|
27
|
+
var options = React.useMemo(function () {
|
28
|
+
var _setting$enum;
|
29
|
+
|
30
|
+
if (setting === null || setting === void 0 ? void 0 : (_setting$enum = setting.enum) === null || _setting$enum === void 0 ? void 0 : _setting$enum.value) {
|
31
|
+
var _setting$enum2;
|
32
|
+
|
33
|
+
return processNormalOptions(setting === null || setting === void 0 ? void 0 : (_setting$enum2 = setting.enum) === null || _setting$enum2 === void 0 ? void 0 : _setting$enum2.value);
|
34
|
+
}
|
35
|
+
|
36
|
+
return [{
|
37
|
+
label: 'uloveits1',
|
38
|
+
value: '1'
|
39
|
+
}, {
|
40
|
+
label: 'uloveits2',
|
41
|
+
value: '2'
|
42
|
+
}, {
|
43
|
+
label: 'uloveits3',
|
44
|
+
value: '3'
|
45
|
+
}];
|
46
|
+
}, [setting === null || setting === void 0 ? void 0 : setting.enum]);
|
8
47
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Select, {
|
9
|
-
|
48
|
+
options: options,
|
49
|
+
mode: "multiple",
|
50
|
+
placeholder: setting === null || setting === void 0 ? void 0 : setting.placeholder,
|
51
|
+
disabled: setting === null || setting === void 0 ? void 0 : setting.disabled
|
10
52
|
}));
|
11
53
|
};
|
12
54
|
|
@@ -4,8 +4,11 @@ import React from "react";
|
|
4
4
|
import { withFieldCellWrapper } from '../HOC';
|
5
5
|
|
6
6
|
var Index = function Index(props) {
|
7
|
-
var
|
8
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_InputNumber,
|
7
|
+
var setting = props.setting;
|
8
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_InputNumber, {
|
9
|
+
placeholder: setting === null || setting === void 0 ? void 0 : setting.placeholder,
|
10
|
+
disabled: setting === null || setting === void 0 ? void 0 : setting.disabled
|
11
|
+
}));
|
9
12
|
};
|
10
13
|
|
11
14
|
export default withFieldCellWrapper(Index);
|
@@ -0,0 +1,22 @@
|
|
1
|
+
import React from "react";
|
2
|
+
|
3
|
+
/*
|
4
|
+
* @Author: uloveits 719310130@qq.com
|
5
|
+
* @Date: 2023-02-06 15:05:42
|
6
|
+
* @LastEditors: uloveits 719310130@qq.com
|
7
|
+
* @LastEditTime: 2023-02-13 19:39:56
|
8
|
+
*/
|
9
|
+
import CanvasCore from '../../index';
|
10
|
+
import { withFieldCellWrapper } from '../HOC';
|
11
|
+
|
12
|
+
var Index = function Index(props) {
|
13
|
+
var data = props.data,
|
14
|
+
fgStream = props.fgStream,
|
15
|
+
setting = props.setting;
|
16
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(CanvasCore, {
|
17
|
+
onChange: function onChange(nodes) {// nodesRef.current = nodes;
|
18
|
+
}
|
19
|
+
}));
|
20
|
+
};
|
21
|
+
|
22
|
+
export default withFieldCellWrapper(Index);
|
@@ -1,11 +1,55 @@
|
|
1
1
|
import "antd/es/select/style";
|
2
2
|
import _Select from "antd/es/select";
|
3
|
-
import React from "react";
|
4
3
|
import { withFieldCellWrapper } from '../HOC';
|
4
|
+
import React from 'react';
|
5
|
+
import { deepClone } from '@/utils';
|
5
6
|
|
6
7
|
var Index = function Index(props) {
|
7
|
-
var
|
8
|
-
|
8
|
+
var setting = props.setting;
|
9
|
+
var processNormalOptions = React.useCallback(function (opt) {
|
10
|
+
var _options = [];
|
11
|
+
|
12
|
+
var _enum = deepClone(opt);
|
13
|
+
|
14
|
+
_enum.forEach(function (it) {
|
15
|
+
var _it$key;
|
16
|
+
|
17
|
+
var obj = {
|
18
|
+
label: it.value,
|
19
|
+
value: (_it$key = it === null || it === void 0 ? void 0 : it.key) !== null && _it$key !== void 0 ? _it$key : it === null || it === void 0 ? void 0 : it.value
|
20
|
+
};
|
21
|
+
|
22
|
+
_options.push(obj);
|
23
|
+
});
|
24
|
+
|
25
|
+
return _options;
|
26
|
+
}, []);
|
27
|
+
var options = React.useMemo(function () {
|
28
|
+
var _setting$enum;
|
29
|
+
|
30
|
+
if (setting === null || setting === void 0 ? void 0 : (_setting$enum = setting.enum) === null || _setting$enum === void 0 ? void 0 : _setting$enum.value) {
|
31
|
+
var _setting$enum2;
|
32
|
+
|
33
|
+
return processNormalOptions(setting === null || setting === void 0 ? void 0 : (_setting$enum2 = setting.enum) === null || _setting$enum2 === void 0 ? void 0 : _setting$enum2.value);
|
34
|
+
}
|
35
|
+
|
36
|
+
return [{
|
37
|
+
label: 'uloveits1',
|
38
|
+
value: '1'
|
39
|
+
}, {
|
40
|
+
label: 'uloveits2',
|
41
|
+
value: '2'
|
42
|
+
}, {
|
43
|
+
label: 'uloveits3',
|
44
|
+
value: '3'
|
45
|
+
}];
|
46
|
+
}, [setting === null || setting === void 0 ? void 0 : setting.enum]);
|
47
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Select, {
|
48
|
+
options: options,
|
49
|
+
placeholder: setting === null || setting === void 0 ? void 0 : setting.placeholder,
|
50
|
+
disabled: setting === null || setting === void 0 ? void 0 : setting.disabled,
|
51
|
+
allowClear: true
|
52
|
+
}));
|
9
53
|
};
|
10
54
|
|
11
55
|
export default withFieldCellWrapper(Index);
|
@@ -4,8 +4,10 @@ import React from "react";
|
|
4
4
|
import { withFieldCellWrapper } from '../HOC';
|
5
5
|
|
6
6
|
var Index = function Index(props) {
|
7
|
-
var
|
8
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Switch,
|
7
|
+
var setting = props.setting;
|
8
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Switch, {
|
9
|
+
disabled: setting === null || setting === void 0 ? void 0 : setting.disabled
|
10
|
+
}));
|
9
11
|
};
|
10
12
|
|
11
13
|
export default withFieldCellWrapper(Index);
|
@@ -4,8 +4,11 @@ import React from "react";
|
|
4
4
|
import { withFieldCellWrapper } from '../HOC';
|
5
5
|
|
6
6
|
var Index = function Index(props) {
|
7
|
-
var
|
8
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Input.TextArea,
|
7
|
+
var setting = props.setting;
|
8
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(_Input.TextArea, {
|
9
|
+
placeholder: setting === null || setting === void 0 ? void 0 : setting.placeholder,
|
10
|
+
disabled: setting === null || setting === void 0 ? void 0 : setting.disabled
|
11
|
+
}));
|
9
12
|
};
|
10
13
|
|
11
14
|
export default withFieldCellWrapper(Index);
|
@@ -3,24 +3,32 @@ import _Button from "antd/es/button";
|
|
3
3
|
import "antd/es/form/style";
|
4
4
|
import _Form from "antd/es/form";
|
5
5
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
6
|
+
import _objectDestructuringEmpty from "@babel/runtime/helpers/esm/objectDestructuringEmpty";
|
6
7
|
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
7
8
|
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
8
9
|
import React from 'react';
|
9
10
|
import { DragOutlined, SnippetsOutlined, DeleteOutlined } from '@ant-design/icons';
|
10
11
|
import { FGCtx } from '../../../../../Provider';
|
11
|
-
import { streamEventType } from '../../../../../settings';
|
12
|
+
import { dragItemType, streamEventType } from '../../../../../settings';
|
12
13
|
import useObservable from '../../../../../../../framework/rxjs-hooks/useObservable';
|
14
|
+
import { useDrag, useDrop } from 'react-dnd';
|
13
15
|
export function withFieldCellWrapper(WrappedComponent) {
|
14
16
|
return function (props) {
|
15
17
|
var data = props.data,
|
16
18
|
isShowAction = props.isShowAction;
|
17
19
|
var fGCtx = React.useContext(FGCtx) || {};
|
20
|
+
var boxRef = React.useRef(null);
|
18
21
|
|
19
22
|
var _React$useState = React.useState(),
|
20
23
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
21
24
|
cellSetting = _React$useState2[0],
|
22
25
|
setCellSetting = _React$useState2[1];
|
23
26
|
|
27
|
+
var _React$useState3 = React.useState(),
|
28
|
+
_React$useState4 = _slicedToArray(_React$useState3, 2),
|
29
|
+
position = _React$useState4[0],
|
30
|
+
setPosition = _React$useState4[1];
|
31
|
+
|
24
32
|
var processFgStreamData = React.useCallback(function (p) {
|
25
33
|
switch (p === null || p === void 0 ? void 0 : p.type) {
|
26
34
|
case streamEventType.onSettingValueChange:
|
@@ -35,6 +43,97 @@ export function withFieldCellWrapper(WrappedComponent) {
|
|
35
43
|
processFgStreamData(p);
|
36
44
|
}, [fGCtx.fgStream]);
|
37
45
|
|
46
|
+
var _useDrag = useDrag({
|
47
|
+
item: {
|
48
|
+
dragItem: data,
|
49
|
+
type: dragItemType
|
50
|
+
},
|
51
|
+
end: function end(item, monitor) {
|
52
|
+
var dropResult = monitor.getDropResult();
|
53
|
+
|
54
|
+
if (item && dropResult) {}
|
55
|
+
},
|
56
|
+
collect: function collect(monitor) {
|
57
|
+
return {
|
58
|
+
isDragging: monitor.isDragging()
|
59
|
+
};
|
60
|
+
}
|
61
|
+
}),
|
62
|
+
_useDrag2 = _slicedToArray(_useDrag, 3);
|
63
|
+
|
64
|
+
_objectDestructuringEmpty(_useDrag2[0]);
|
65
|
+
|
66
|
+
var drag = _useDrag2[1],
|
67
|
+
dragPreview = _useDrag2[2]; // 处理组件拖拽落下事件
|
68
|
+
|
69
|
+
var _useDrop = useDrop({
|
70
|
+
accept: [dragItemType],
|
71
|
+
drop: function drop(item, monitor) {
|
72
|
+
// 如果 children 已经作为了 drop target,不处理
|
73
|
+
var didDrop = monitor.didDrop();
|
74
|
+
|
75
|
+
if (didDrop) {
|
76
|
+
return;
|
77
|
+
}
|
78
|
+
|
79
|
+
(fGCtx === null || fGCtx === void 0 ? void 0 : fGCtx.fgStream) && fGCtx.fgStream.next({
|
80
|
+
type: streamEventType.onDropOver,
|
81
|
+
payload: {
|
82
|
+
dragItem: item.dragItem,
|
83
|
+
dropId: data.id,
|
84
|
+
position: position
|
85
|
+
}
|
86
|
+
}); // setPosition(undefined);
|
87
|
+
},
|
88
|
+
hover: function hover(item, monitor) {
|
89
|
+
// 只检查被hover的最小元素
|
90
|
+
var didHover = monitor.isOver({
|
91
|
+
shallow: true
|
92
|
+
});
|
93
|
+
|
94
|
+
if (didHover) {
|
95
|
+
if (item.dragItem.id === data.id) return; // Determine rectangle on screen
|
96
|
+
|
97
|
+
// Determine rectangle on screen
|
98
|
+
var hoverBoundingRect = boxRef.current && boxRef.current.getBoundingClientRect(); // Get vertical middle
|
99
|
+
|
100
|
+
// Get vertical middle
|
101
|
+
var hoverMiddleY = (hoverBoundingRect.bottom - hoverBoundingRect.top) / 2; // Determine mouse position
|
102
|
+
// const clientOffset = monitor.getClientOffset();
|
103
|
+
|
104
|
+
// Determine mouse position
|
105
|
+
// const clientOffset = monitor.getClientOffset();
|
106
|
+
var dragOffset = monitor.getSourceClientOffset(); // Get pixels to the top
|
107
|
+
|
108
|
+
// Get pixels to the top
|
109
|
+
var hoverClientY = dragOffset.y - hoverBoundingRect.top;
|
110
|
+
|
111
|
+
if (hoverClientY <= hoverMiddleY) {
|
112
|
+
setPosition('borderTop');
|
113
|
+
} // Dragging upwards
|
114
|
+
|
115
|
+
|
116
|
+
// Dragging upwards
|
117
|
+
if (hoverClientY > hoverMiddleY) {
|
118
|
+
setPosition('borderBottom');
|
119
|
+
}
|
120
|
+
}
|
121
|
+
},
|
122
|
+
collect: function collect(monitor) {
|
123
|
+
return {
|
124
|
+
isOver: monitor.isOver({
|
125
|
+
shallow: true
|
126
|
+
}),
|
127
|
+
canDrop: monitor.canDrop()
|
128
|
+
};
|
129
|
+
}
|
130
|
+
}),
|
131
|
+
_useDrop2 = _slicedToArray(_useDrop, 2),
|
132
|
+
_useDrop2$ = _useDrop2[0],
|
133
|
+
canDrop = _useDrop2$.canDrop,
|
134
|
+
isOver = _useDrop2$.isOver,
|
135
|
+
dropRef = _useDrop2[1];
|
136
|
+
|
38
137
|
var onNodeDelete = function onNodeDelete(e) {
|
39
138
|
e.stopPropagation();
|
40
139
|
fGCtx.fgStream && fGCtx.fgStream.next({
|
@@ -53,7 +152,27 @@ export function withFieldCellWrapper(WrappedComponent) {
|
|
53
152
|
});
|
54
153
|
};
|
55
154
|
|
56
|
-
|
155
|
+
var isActive = canDrop && isOver;
|
156
|
+
dragPreview(dropRef(boxRef));
|
157
|
+
|
158
|
+
var getBorder = function getBorder(_position) {
|
159
|
+
var _style = {
|
160
|
+
width: '100%',
|
161
|
+
height: '100%',
|
162
|
+
padding: '4px 10px'
|
163
|
+
};
|
164
|
+
|
165
|
+
if (_position && isActive) {
|
166
|
+
_style[_position] = '2px solid red';
|
167
|
+
}
|
168
|
+
|
169
|
+
return _style;
|
170
|
+
};
|
171
|
+
|
172
|
+
return /*#__PURE__*/React.createElement("div", {
|
173
|
+
ref: boxRef,
|
174
|
+
style: _objectSpread({}, getBorder(position))
|
175
|
+
}, /*#__PURE__*/React.createElement("div", {
|
57
176
|
style: {
|
58
177
|
fontSize: '12px',
|
59
178
|
textAlign: 'right'
|
@@ -84,6 +203,7 @@ export function withFieldCellWrapper(WrappedComponent) {
|
|
84
203
|
fgStream: fGCtx.fgStream,
|
85
204
|
setting: cellSetting
|
86
205
|
}))), isShowAction && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
206
|
+
ref: drag,
|
87
207
|
style: {
|
88
208
|
position: 'absolute',
|
89
209
|
top: '-3px',
|
@@ -1,7 +1,7 @@
|
|
1
1
|
/*
|
2
2
|
* @Author: wangxian
|
3
3
|
* @Date: 2023-02-06 11:35:45
|
4
|
-
* @LastEditTime: 2023-02-
|
4
|
+
* @LastEditTime: 2023-02-13 14:52:56
|
5
5
|
*/
|
6
6
|
import React from 'react';
|
7
7
|
import Input from './Cell/Input';
|
@@ -11,6 +11,8 @@ import Number from './Cell/Number';
|
|
11
11
|
import Switch from './Cell/Switch';
|
12
12
|
import Select from './Cell/Select';
|
13
13
|
import MutiSelect from './Cell/MutiSelect';
|
14
|
+
import Obj from './Cell/Obj';
|
15
|
+
import List from './Cell/List';
|
14
16
|
|
15
17
|
var RenderField = function RenderField(props) {
|
16
18
|
var data = props.data,
|
@@ -40,5 +42,7 @@ var DataCellMap = {
|
|
40
42
|
number: Number,
|
41
43
|
switch: Switch,
|
42
44
|
select: Select,
|
43
|
-
mutiSelect: MutiSelect
|
45
|
+
mutiSelect: MutiSelect,
|
46
|
+
obj: Obj,
|
47
|
+
list: List
|
44
48
|
};
|
@@ -12,7 +12,7 @@ import { useDrop } from 'react-dnd';
|
|
12
12
|
import { FGCtx } from '../../../../../comps/FormGenerator/Provider';
|
13
13
|
import { dragItemType, streamEventType } from '../../../settings';
|
14
14
|
import useObservable from '../../../../../framework/rxjs-hooks/useObservable';
|
15
|
-
import { guid } from '../../../../../utils';
|
15
|
+
import { arrayInsert, arrayMoveImmutable, guid } from '../../../../../utils';
|
16
16
|
import RenderField from './RenderField';
|
17
17
|
import './index.less';
|
18
18
|
|
@@ -39,28 +39,64 @@ var CanvasCore = function CanvasCore(props) {
|
|
39
39
|
formSetting = _React$useState6[0],
|
40
40
|
setFormSetting = _React$useState6[1];
|
41
41
|
|
42
|
+
var _React$useState7 = React.useState(),
|
43
|
+
_React$useState8 = _slicedToArray(_React$useState7, 2),
|
44
|
+
allSetting = _React$useState8[0],
|
45
|
+
setAllSetting = _React$useState8[1];
|
46
|
+
|
42
47
|
React.useEffect(function () {
|
43
|
-
onChange && onChange(
|
48
|
+
onChange && onChange(list);
|
44
49
|
}, [list]);
|
45
|
-
var addNewNode = React.useCallback(function (_node) {
|
50
|
+
var addNewNode = React.useCallback(function (_node, dropId, position) {
|
51
|
+
var _newNode;
|
52
|
+
|
46
53
|
var _list = listRef.current;
|
54
|
+
var newNode = _node;
|
47
55
|
|
48
|
-
var
|
49
|
-
id
|
56
|
+
var oldIdx = _list.findIndex(function (it) {
|
57
|
+
return it.id === _node.id;
|
50
58
|
});
|
51
59
|
|
52
|
-
|
60
|
+
if (dropId && position) {
|
61
|
+
//先判断是新增还是改变顺序
|
62
|
+
var newIdx = _list.findIndex(function (it) {
|
63
|
+
return it.id === dropId;
|
64
|
+
});
|
65
|
+
|
66
|
+
newIdx = position === 'borderTop' ? newIdx : newIdx + 1;
|
67
|
+
|
68
|
+
if (oldIdx === -1) {
|
69
|
+
newNode = _objectSpread(_objectSpread({}, _node), {}, {
|
70
|
+
id: "".concat(_node.id.split('-')[0], "-").concat(guid().substring(0, 4))
|
71
|
+
});
|
72
|
+
_list = arrayInsert(_list, newIdx, newNode);
|
73
|
+
} else {
|
74
|
+
newIdx = oldIdx < newIdx ? newIdx - 1 : newIdx;
|
75
|
+
_list = arrayMoveImmutable(_list, oldIdx, newIdx);
|
76
|
+
}
|
77
|
+
} else {
|
78
|
+
if (oldIdx === -1) {
|
79
|
+
newNode = _objectSpread(_objectSpread({}, _node), {}, {
|
80
|
+
id: "".concat(_node.id.split('-')[0], "-").concat(guid().substring(0, 4))
|
81
|
+
});
|
82
|
+
|
83
|
+
_list.push(newNode);
|
84
|
+
}
|
85
|
+
}
|
86
|
+
|
87
|
+
if ((_newNode = newNode) === null || _newNode === void 0 ? void 0 : _newNode.id) {
|
88
|
+
setCurNodeId(newNode.id);
|
89
|
+
fGCtx.fgStream && fGCtx.fgStream.next({
|
90
|
+
type: streamEventType.onNodeSelect,
|
91
|
+
payload: newNode
|
92
|
+
});
|
93
|
+
}
|
53
94
|
|
54
|
-
setCurNodeId(obj.id);
|
55
|
-
fGCtx.fgStream && fGCtx.fgStream.next({
|
56
|
-
type: streamEventType.onNodeSelect,
|
57
|
-
payload: obj
|
58
|
-
});
|
59
95
|
setList(_toConsumableArray(_list));
|
60
96
|
listRef.current = _list;
|
61
97
|
}, []);
|
62
98
|
var processFgStreamData = React.useCallback(function (p) {
|
63
|
-
var _p$payload;
|
99
|
+
var _p$payload, _p$payload3;
|
64
100
|
|
65
101
|
switch (p === null || p === void 0 ? void 0 : p.type) {
|
66
102
|
case streamEventType.onClearCanvas:
|
@@ -68,6 +104,10 @@ var CanvasCore = function CanvasCore(props) {
|
|
68
104
|
listRef.current = [];
|
69
105
|
break;
|
70
106
|
|
107
|
+
case streamEventType.onDropOver:
|
108
|
+
addNewNode(p.payload.dragItem, p.payload.dropId, p.payload.position);
|
109
|
+
break;
|
110
|
+
|
71
111
|
case streamEventType.onNodeCopy:
|
72
112
|
addNewNode(p.payload);
|
73
113
|
break;
|
@@ -97,6 +137,7 @@ var CanvasCore = function CanvasCore(props) {
|
|
97
137
|
setFormSetting(_objectSpread({}, p === null || p === void 0 ? void 0 : (_p$payload2 = p.payload) === null || _p$payload2 === void 0 ? void 0 : _p$payload2.formSetting));
|
98
138
|
}
|
99
139
|
|
140
|
+
setAllSetting(_objectSpread({}, p === null || p === void 0 ? void 0 : (_p$payload3 = p.payload) === null || _p$payload3 === void 0 ? void 0 : _p$payload3.allSetting));
|
100
141
|
break;
|
101
142
|
}
|
102
143
|
}, []);
|
@@ -107,6 +148,13 @@ var CanvasCore = function CanvasCore(props) {
|
|
107
148
|
var _useDrop = useDrop({
|
108
149
|
accept: [dragItemType],
|
109
150
|
drop: function drop(item, monitor) {
|
151
|
+
// 如果 children 已经作为了 drop target,不处理
|
152
|
+
var didDrop = monitor.didDrop();
|
153
|
+
|
154
|
+
if (didDrop) {
|
155
|
+
return;
|
156
|
+
}
|
157
|
+
|
110
158
|
addNewNode(item.dragItem);
|
111
159
|
}
|
112
160
|
}),
|
@@ -121,6 +169,16 @@ var CanvasCore = function CanvasCore(props) {
|
|
121
169
|
});
|
122
170
|
};
|
123
171
|
|
172
|
+
var processColSpan = function processColSpan(compColSpan, formColSpan) {
|
173
|
+
var _formColSpan = formColSpan !== null && formColSpan !== void 0 ? formColSpan : 24;
|
174
|
+
|
175
|
+
if (compColSpan) {
|
176
|
+
return compColSpan * _formColSpan <= 24 ? compColSpan * _formColSpan : 24;
|
177
|
+
}
|
178
|
+
|
179
|
+
return _formColSpan;
|
180
|
+
};
|
181
|
+
|
124
182
|
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
125
183
|
className: "canvas-wrapper",
|
126
184
|
ref: dropRef,
|
@@ -147,10 +205,10 @@ var CanvasCore = function CanvasCore(props) {
|
|
147
205
|
}, /*#__PURE__*/React.createElement(_Row, {
|
148
206
|
gutter: 8
|
149
207
|
}, list.map(function (it) {
|
150
|
-
var
|
208
|
+
var _allSetting$it$id;
|
151
209
|
|
152
210
|
return /*#__PURE__*/React.createElement(_Col, {
|
153
|
-
span: (
|
211
|
+
span: processColSpan(allSetting && ((_allSetting$it$id = allSetting[it.id]) === null || _allSetting$it$id === void 0 ? void 0 : _allSetting$it$id.colSpan), formSetting === null || formSetting === void 0 ? void 0 : formSetting.colSpan),
|
154
212
|
style: {
|
155
213
|
width: '100%'
|
156
214
|
}
|