@luck-design-biz/luckda 1.0.0-4-alpha → 1.0.0-6-alpha

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 (89) hide show
  1. package/es/components/ComplexItem/index.js +65 -49
  2. package/es/components/LdGridForm/index.js +2 -1
  3. package/es/helper/ldBuilder.js +8 -3
  4. package/es/locales/zh-CN.js +35 -0
  5. package/es/lowcode/engine/meta/fieldcomplex.props.default.json +1 -0
  6. package/es/lowcode/engine/meta/fieldcomplex.props.json +7 -0
  7. package/es/lowcode/engine/meta/form.props.json +3 -3
  8. package/es/lowcode/engine/meta/js-editor/auto-complete.json +18 -0
  9. package/es/lowcode/engine/meta/page.props.json +6 -0
  10. package/es/lowcode/engine/provider/ContextProvider/index.js +28 -5
  11. package/es/lowcode/engine/provider/ContextProvider/router.js +1 -1
  12. package/es/lowcode/engine/{tools → provider/ContextProvider}/usePageDataStore.js +9 -7
  13. package/es/lowcode/engine/{tools → provider/ContextProvider}/useTodo.js +4 -6
  14. package/es/lowcode/engine/provider/RemoteSourceProvider.js +2 -3
  15. package/es/lowcode/engine/tools/helper.js +7 -2
  16. package/es/lowcode/engine/tools/initDS.js +263 -0
  17. package/es/lowcode/engine/tools/useCombinedRefs.js +3 -2
  18. package/es/lowcode/painter/components/TipIcon.js +16 -0
  19. package/es/lowcode/painter/components/VarEditor.js +456 -0
  20. package/es/lowcode/painter/components/code-editor/JSEditor.js +3 -1
  21. package/es/lowcode/painter/components/code-editor/VisionEditor.js +81 -0
  22. package/es/lowcode/painter/components/field-setting/SettingUI.js +17 -3
  23. package/es/lowcode/painter/components/field-setting/index.js +1 -1
  24. package/es/lowcode/painter/index.js +1 -0
  25. package/es/lowcode/painter/panel-section/ComplexPop.js +241 -0
  26. package/es/lowcode/painter/panel-section/DataSetSelector.js +8 -0
  27. package/es/lowcode/painter/panel-section/FieldsSetting.js +9 -1
  28. package/es/lowcode/painter/panel-section/ImpExp.js +1 -27
  29. package/es/lowcode/painter/panel-section/PageVars.js +296 -0
  30. package/es/lowcode/painter/services/complexPop.js +21 -0
  31. package/es/lowcode/painter/style/page-vars.less +25 -0
  32. package/es/lowcode/preview/index.js +1 -0
  33. package/es/lowcode/view/Canvas.js +11 -34
  34. package/es/lowcode/view/Loading.js +5 -7
  35. package/es/lowcode/view/Page.js +37 -15
  36. package/es/lowcode/view/index.js +1 -0
  37. package/es/lowcode/view/lc-components/FieldComplex/meta.json +7 -0
  38. package/es/lowcode/view/lc-components/Form/index.js +11 -4
  39. package/es/lowcode/view/lc-components/Form/meta.json +3 -3
  40. package/es/lowcode/view/lc-components/Page/meta.json +6 -0
  41. package/es/lowcode/view/lc-components/Table/index.js +17 -3
  42. package/es/lowcode/view/style/loading.less +14 -0
  43. package/es/utils/form.js +3 -3
  44. package/es/utils/grid.js +1 -1
  45. package/lib/components/ComplexItem/index.js +62 -47
  46. package/lib/components/LdGridForm/index.js +2 -1
  47. package/lib/helper/ldBuilder.js +8 -3
  48. package/lib/locales/zh-CN.js +35 -0
  49. package/lib/lowcode/engine/meta/fieldcomplex.props.default.json +1 -0
  50. package/lib/lowcode/engine/meta/fieldcomplex.props.json +7 -0
  51. package/lib/lowcode/engine/meta/form.props.json +3 -3
  52. package/lib/lowcode/engine/meta/js-editor/auto-complete.json +18 -0
  53. package/lib/lowcode/engine/meta/page.props.json +6 -0
  54. package/lib/lowcode/engine/provider/ContextProvider/index.js +29 -12
  55. package/lib/lowcode/engine/provider/ContextProvider/router.js +1 -1
  56. package/lib/lowcode/engine/{tools → provider/ContextProvider}/usePageDataStore.js +9 -7
  57. package/lib/lowcode/engine/{tools → provider/ContextProvider}/useTodo.js +4 -6
  58. package/lib/lowcode/engine/provider/RemoteSourceProvider.js +3 -4
  59. package/lib/lowcode/engine/tools/helper.js +7 -2
  60. package/lib/lowcode/engine/tools/initDS.js +270 -0
  61. package/lib/lowcode/engine/tools/useCombinedRefs.js +2 -1
  62. package/lib/lowcode/painter/components/TipIcon.js +23 -0
  63. package/lib/lowcode/painter/components/VarEditor.js +463 -0
  64. package/lib/lowcode/painter/components/code-editor/JSEditor.js +3 -1
  65. package/lib/lowcode/painter/components/code-editor/VisionEditor.js +88 -0
  66. package/lib/lowcode/painter/components/field-setting/SettingUI.js +17 -3
  67. package/lib/lowcode/painter/components/field-setting/index.js +1 -1
  68. package/lib/lowcode/painter/index.js +1 -0
  69. package/lib/lowcode/painter/panel-section/ComplexPop.js +249 -0
  70. package/lib/lowcode/painter/panel-section/DataSetSelector.js +8 -0
  71. package/lib/lowcode/painter/panel-section/FieldsSetting.js +9 -1
  72. package/lib/lowcode/painter/panel-section/ImpExp.js +0 -26
  73. package/lib/lowcode/painter/panel-section/PageVars.js +304 -0
  74. package/lib/lowcode/painter/services/complexPop.js +28 -0
  75. package/lib/lowcode/painter/style/page-vars.less +25 -0
  76. package/lib/lowcode/preview/index.js +1 -0
  77. package/lib/lowcode/view/Canvas.js +12 -35
  78. package/lib/lowcode/view/Loading.js +5 -7
  79. package/lib/lowcode/view/Page.js +35 -13
  80. package/lib/lowcode/view/index.js +1 -0
  81. package/lib/lowcode/view/lc-components/FieldComplex/meta.json +7 -0
  82. package/lib/lowcode/view/lc-components/Form/index.js +11 -4
  83. package/lib/lowcode/view/lc-components/Form/meta.json +3 -3
  84. package/lib/lowcode/view/lc-components/Page/meta.json +6 -0
  85. package/lib/lowcode/view/lc-components/Table/index.js +18 -4
  86. package/lib/lowcode/view/style/loading.less +14 -0
  87. package/lib/utils/form.js +2 -2
  88. package/lib/utils/grid.js +1 -1
  89. package/package.json +1 -1
@@ -0,0 +1,249 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
10
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
12
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
+ var _react = _interopRequireWildcard(require("react"));
14
+ var _ahooks = require("ahooks");
15
+ var _lodash = require("lodash");
16
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
17
+ var _antd = require("luck-design/antd");
18
+ var _utils = require("@luck-design-biz/base/utils");
19
+ var _ListEditor = require("../components/ListEditor");
20
+ var _Collapse = _interopRequireDefault(require("../components/Collapse"));
21
+ var _SortBox = require("../components/SortBox");
22
+ var _PanelItem = _interopRequireDefault(require("@luck-design-biz/luckda/lowcode/painter/components/PanelItem"));
23
+ var _complexPop = require("../services/complexPop");
24
+ var _excluded = ["field", "fieldName", "renderItemRight", "onChange", "sortable", "editable"];
25
+ var _I18N_PREFIX_ = 'luckda.lowcode.painter.panel-section.complexPop';
26
+ var DividerSpan = _styledComponents.default.span.withConfig({
27
+ displayName: "DividerSpan",
28
+ componentId: "luckda-6530__sc-lmsle1-0"
29
+ })(["font-size:12px;color:var(--luck-text-color);"]);
30
+ var FieldKey = _styledComponents.default.div.withConfig({
31
+ displayName: "FieldKey",
32
+ componentId: "luckda-6530__sc-lmsle1-1"
33
+ })(["width:200px;margin-left:4px;display:inline-block;white-space:nowrap;word-break:keep-all;text-overflow:ellipsis;overflow:hidden;"]);
34
+ var ListItem = function ListItem(_ref) {
35
+ var field = _ref.field,
36
+ fieldName = _ref.fieldName,
37
+ renderItemRight = _ref.renderItemRight,
38
+ _onChange = _ref.onChange,
39
+ sortable = _ref.sortable,
40
+ editable = _ref.editable,
41
+ props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
42
+ return /*#__PURE__*/_react.default.createElement(_ListEditor.ListEditorItem, (0, _extends2.default)({
43
+ key: field,
44
+ left: /*#__PURE__*/_react.default.createElement(_antd.Tooltip, {
45
+ title: field
46
+ }, editable ? /*#__PURE__*/_react.default.createElement(_antd.Input, {
47
+ value: fieldName,
48
+ size: "small",
49
+ style: {
50
+ width: '200px'
51
+ },
52
+ onChange: function onChange(e) {
53
+ return _onChange(field, e.target.value);
54
+ }
55
+ }) : /*#__PURE__*/_react.default.createElement(FieldKey, null, " ", fieldName, " ")),
56
+ right: renderItemRight({
57
+ field: field,
58
+ title: fieldName
59
+ }),
60
+ item: field,
61
+ sortable: sortable
62
+ }, props));
63
+ };
64
+ var ComplexPop = function ComplexPop(_ref2) {
65
+ var nodeId = _ref2.nodeId,
66
+ settings = _ref2.settings,
67
+ defaultValue = _ref2.defaultValue,
68
+ onChange = _ref2.onChange;
69
+ var _useState = (0, _react.useState)(defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.show),
70
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
71
+ show = _useState2[0],
72
+ setShow = _useState2[1];
73
+ var _useState3 = (0, _react.useState)((defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.fields) || []),
74
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
75
+ fields = _useState4[0],
76
+ setFields = _useState4[1];
77
+ var _useState5 = (0, _react.useState)(null),
78
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
79
+ allFields = _useState6[0],
80
+ setAllFields = _useState6[1];
81
+ var _useCreation = (0, _ahooks.useCreation)(function () {
82
+ var _nodeId$split = nodeId.split('.'),
83
+ _nodeId$split2 = (0, _slicedToArray2.default)(_nodeId$split, 3),
84
+ _ = _nodeId$split2[0],
85
+ blockid = _nodeId$split2[1],
86
+ fieldid = _nodeId$split2[2];
87
+ var blocksObj = (0, _lodash.keyBy)(settings === null || settings === void 0 ? void 0 : settings.blocks, 'id');
88
+ if (blocksObj[blockid]) {
89
+ var _fieldObj$fieldid;
90
+ var fieldObj = (0, _lodash.keyBy)(blocksObj[blockid].fields, 'field');
91
+ return ((_fieldObj$fieldid = fieldObj[fieldid]) === null || _fieldObj$fieldid === void 0 ? void 0 : _fieldObj$fieldid.complexConfig) || {};
92
+ }
93
+ return {};
94
+ }, [nodeId, settings === null || settings === void 0 ? void 0 : settings.blocks]),
95
+ isTree = _useCreation.isTree,
96
+ datasetKey = _useCreation.datasetKey,
97
+ dataModelKey = _useCreation.dataModelKey;
98
+ (0, _react.useEffect)(function () {
99
+ if (!isTree && show && datasetKey && dataModelKey && !allFields) {
100
+ (0, _complexPop.getFields)({
101
+ datasetCode: datasetKey,
102
+ dataModelKey: dataModelKey
103
+ }).then(function (res) {
104
+ var code = res.code,
105
+ data = res.data;
106
+ if (code === 1) {
107
+ var _data = (0, _lodash.reduce)(data, function (result, item) {
108
+ result[item.field] = item.field_name;
109
+ return result;
110
+ }, {});
111
+ setAllFields(_data);
112
+ }
113
+ });
114
+ }
115
+ }, [isTree, show, datasetKey, dataModelKey, allFields]);
116
+ (0, _react.useLayoutEffect)(function () {
117
+ onChange({
118
+ show: show,
119
+ fields: fields
120
+ });
121
+ }, [show, fields]);
122
+ var renderItemDeleteRight = (0, _ahooks.useMemoizedFn)(function (data) {
123
+ return /*#__PURE__*/_react.default.createElement(_antd.Icon, {
124
+ type: "delete",
125
+ style: {
126
+ margin: '0 4px',
127
+ cursor: 'pointer',
128
+ color: 'var(--luck-color-danger)'
129
+ },
130
+ onClick: function onClick() {
131
+ var _fields = (0, _lodash.cloneDeep)(fields);
132
+ (0, _lodash.remove)(_fields, function (item) {
133
+ return item.field === data.field;
134
+ });
135
+ setFields(_fields);
136
+ }
137
+ });
138
+ });
139
+ var renderItemAddRight = (0, _ahooks.useMemoizedFn)(function (data) {
140
+ return /*#__PURE__*/_react.default.createElement(_antd.Icon, {
141
+ type: "plus-circle",
142
+ style: {
143
+ margin: '0 4px',
144
+ cursor: 'pointer',
145
+ color: 'var(--ant-primary-color)'
146
+ },
147
+ onClick: function onClick() {
148
+ return setFields(fields.concat(data));
149
+ }
150
+ });
151
+ });
152
+ var handleChange = (0, _ahooks.useMemoizedFn)(function (field, value) {
153
+ setFields(fields.map(function (item) {
154
+ return item.field === field ? (0, _objectSpread2.default)((0, _objectSpread2.default)({}, item), {}, {
155
+ title: value
156
+ }) : item;
157
+ }));
158
+ });
159
+ var handleSortFields = (0, _ahooks.useMemoizedFn)(function (sortItems) {
160
+ var oldItems = (0, _lodash.cloneDeep)(fields);
161
+ var newItems = oldItems.sort(function (a, b) {
162
+ var indexA = sortItems.indexOf(a.field);
163
+ var indexB = sortItems.indexOf(b.field);
164
+ return indexA - indexB;
165
+ });
166
+ setFields(newItems);
167
+ });
168
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_PanelItem.default, {
169
+ label: (0, _utils.formatMessage)({
170
+ id: "".concat(_I18N_PREFIX_, ".assisted"),
171
+ label: "辅助选择"
172
+ })
173
+ }, /*#__PURE__*/_react.default.createElement(_antd.Switch, {
174
+ size: "small",
175
+ defaultChecked: defaultValue === null || defaultValue === void 0 ? void 0 : defaultValue.show,
176
+ onChange: function onChange(val) {
177
+ setShow(val);
178
+ if (!val) setFields([]);
179
+ }
180
+ })), !isTree && show && /*#__PURE__*/_react.default.createElement(_Collapse.default, {
181
+ label: (0, _utils.formatMessage)({
182
+ id: "".concat(_I18N_PREFIX_, ".assistedGrid"),
183
+ label: '辅助弹窗显示字段'
184
+ })
185
+ }, /*#__PURE__*/_react.default.createElement("div", {
186
+ style: {
187
+ height: 'auto',
188
+ padding: '0 16px'
189
+ }
190
+ }, /*#__PURE__*/_react.default.createElement(_antd.Spin, {
191
+ spinning: !allFields
192
+ }, /*#__PURE__*/_react.default.createElement(_antd.Divider, {
193
+ orientation: "left",
194
+ style: {
195
+ marginTop: 0
196
+ }
197
+ }, /*#__PURE__*/_react.default.createElement(DividerSpan, null, (0, _utils.formatMessage)({
198
+ id: "".concat(_I18N_PREFIX_, ".assistedGridFields"),
199
+ label: '展示区'
200
+ }))), /*#__PURE__*/_react.default.createElement(_SortBox.SortBox, {
201
+ datas: fields.map(function (f) {
202
+ return f.field;
203
+ }),
204
+ onChange: handleSortFields
205
+ }, /*#__PURE__*/_react.default.createElement(_ListEditor.ListEditor, {
206
+ style: {
207
+ marginTop: 8
208
+ },
209
+ suppressAdd: true
210
+ }, fields.map(function (_ref3) {
211
+ var field = _ref3.field,
212
+ title = _ref3.title;
213
+ return /*#__PURE__*/_react.default.createElement(_SortBox.SortItem, {
214
+ key: field,
215
+ id: field
216
+ }, /*#__PURE__*/_react.default.createElement(ListItem, {
217
+ field: field,
218
+ fieldName: title,
219
+ renderItemRight: renderItemDeleteRight,
220
+ sortable: true,
221
+ editable: true,
222
+ onChange: handleChange
223
+ }));
224
+ }))), /*#__PURE__*/_react.default.createElement(_antd.Divider, {
225
+ orientation: "left",
226
+ style: {
227
+ marginTop: 0
228
+ }
229
+ }, /*#__PURE__*/_react.default.createElement(DividerSpan, null, (0, _utils.formatMessage)({
230
+ id: "".concat(_I18N_PREFIX_, ".gridFields"),
231
+ label: '可选区'
232
+ }))), /*#__PURE__*/_react.default.createElement(_ListEditor.ListEditor, {
233
+ style: {
234
+ marginTop: 8
235
+ },
236
+ suppressAdd: true
237
+ }, (0, _lodash.map)((0, _lodash.omit)(allFields, fields.map(function (f) {
238
+ return f.field;
239
+ })), function (fieldName, field) {
240
+ return /*#__PURE__*/_react.default.createElement(ListItem, {
241
+ key: field,
242
+ field: field,
243
+ fieldName: fieldName,
244
+ renderItemRight: renderItemAddRight,
245
+ sortable: false
246
+ });
247
+ }))))));
248
+ };
249
+ var _default = exports.default = ComplexPop;
@@ -103,6 +103,14 @@ var DataSetSelector = function DataSetSelector(_ref) {
103
103
  restProps.align = alignMapping[_extra.scell_alignment];
104
104
  restProps.headerAlign = alignMapping[_extra.sheading_alignment];
105
105
  }
106
+ if (f.property === "complex") {
107
+ var _extra2 = JSON.parse(f.extra || '{}');
108
+ restProps.complexConfig = {
109
+ isTree: _extra2.opt_show_tree,
110
+ datasetKey: _extra2.opt_dataset,
111
+ dataModelKey: _extra2.opt_data_model
112
+ };
113
+ }
106
114
  return (0, _objectSpread2.default)({
107
115
  uid: f.uid,
108
116
  field: f.field
@@ -24,7 +24,7 @@ var _apiUrl = require("../../constants/api-url");
24
24
  var _helper = require("../../engine/tools/helper");
25
25
  var _fieldsSetting = _interopRequireDefault(require("../style/fields-setting.less"));
26
26
  var _I18N_PREFIX_ = 'luckda.lowcode.painter.panel-section.fieldsSetting';
27
- var _PICK_KEYS_ = ['id', 'uid', 'field', 'width', 'align', 'headerAlign', 'pinned', 'tip', 'col', 'row', 'note', 'placeholder', 'fieldAliasName'];
27
+ var _PICK_KEYS_ = ['id', 'uid', 'field', 'width', 'align', 'headerAlign', 'pinned', 'tip', 'render', 'col', 'row', 'note', 'placeholder', 'fieldAliasName', 'complexConfig'];
28
28
  var Header = _styledComponents.default.div.withConfig({
29
29
  displayName: "Header",
30
30
  componentId: "luckda-6530__sc-gcwvp1-0"
@@ -108,6 +108,14 @@ var FieldsSetting = function FieldsSetting(_ref) {
108
108
  restProps.align = alignMapping[extra.scell_alignment];
109
109
  restProps.headerAlign = alignMapping[extra.sheading_alignment];
110
110
  }
111
+ if (_fieldData.property === "complex") {
112
+ var _extra = JSON.parse(_fieldData.extra || '{}');
113
+ restProps.complexConfig = {
114
+ isTree: _extra.opt_show_tree,
115
+ datasetKey: _extra.opt_dataset,
116
+ dataModelKey: _extra.opt_data_model
117
+ };
118
+ }
111
119
  return (0, _objectSpread2.default)({
112
120
  uid: id,
113
121
  field: detail[id].field
@@ -14,7 +14,6 @@ var _utils = require("@luck-design-biz/base/utils");
14
14
  var _lodash = require("lodash");
15
15
  var _ContextProvider = require("../../engine/provider/ContextProvider");
16
16
  var _PanelItem = _interopRequireDefault(require("../components/PanelItem"));
17
- var _impexp = _interopRequireDefault(require("../style/impexp.less"));
18
17
  var _I18N_PREFIX_ = 'luckda.lowcode.painter.panel-section.impexp';
19
18
  var ImpExp = function ImpExp(_ref) {
20
19
  var defaultValue = _ref.defaultValue,
@@ -34,17 +33,6 @@ var ImpExp = function ImpExp(_ref) {
34
33
  (0, _ahooks.useUpdateEffect)(function () {
35
34
  onChange(state);
36
35
  }, [state]);
37
- var handleCheckboxChange = (0, _ahooks.useMemoizedFn)(function (e) {
38
- if (e.target.value === 'import') {
39
- setState({
40
- import: e.target.checked
41
- });
42
- } else if (e.target.value === 'export') {
43
- setState({
44
- export: e.target.checked
45
- });
46
- }
47
- });
48
36
  var handleInputChange = (0, _ahooks.useMemoizedFn)(function (field, e) {
49
37
  var value = e.target.value.trim();
50
38
  var _val = value === '' ? true : value;
@@ -59,20 +47,6 @@ var ImpExp = function ImpExp(_ref) {
59
47
  });
60
48
  }
61
49
  });
62
- var handleSwitchChangeExport = (0, _ahooks.useMemoizedFn)(function (field, e) {
63
- var _value = field;
64
- setState({
65
- exportType: _value,
66
- export: true
67
- });
68
- });
69
- var handleSwitchChangeImport = (0, _ahooks.useMemoizedFn)(function (field, e) {
70
- var _value = field;
71
- setState({
72
- importType: _value,
73
- import: true
74
- });
75
- });
76
50
  var handleRadioChangeExport = (0, _ahooks.useMemoizedFn)(function (value, _ref2) {
77
51
  var key = _ref2.key;
78
52
  var _value = value;
@@ -0,0 +1,304 @@
1
+ "use strict";
2
+
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
10
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
+ var _react = _interopRequireWildcard(require("react"));
12
+ var _ahooks = require("ahooks");
13
+ var _antd = require("luck-design/antd");
14
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
15
+ var _lodash = require("lodash");
16
+ var _utils = require("@luck-design-biz/base/utils");
17
+ var _SortBox = require("../components/SortBox");
18
+ var _ListEditor = require("../components/ListEditor");
19
+ var _helper = require("../../engine/tools/helper");
20
+ var _VarEditor = _interopRequireDefault(require("../components/VarEditor"));
21
+ var _TipIcon = _interopRequireDefault(require("../components/TipIcon"));
22
+ var _pageVars = _interopRequireDefault(require("../style/page-vars.less"));
23
+ var _I18N_PREFIX_ = 'luckda.lowcode.painter.pageVars';
24
+ var Wrapper = _styledComponents.default.div.withConfig({
25
+ displayName: "Wrapper",
26
+ componentId: "luckda-6530__sc-1qdz6c5-0"
27
+ })(["padding:0 12px;"]);
28
+ var SearchBar = _styledComponents.default.div.withConfig({
29
+ displayName: "SearchBar",
30
+ componentId: "luckda-6530__sc-1qdz6c5-1"
31
+ })(["display:flex;margin-bottom:8px;"]);
32
+ var ItemWrapper = _styledComponents.default.div.withConfig({
33
+ displayName: "ItemWrapper",
34
+ componentId: "luckda-6530__sc-1qdz6c5-2"
35
+ })(["display:flex;align-items:center;"]);
36
+ var _TYPES_ = {
37
+ var: {
38
+ name: (0, _utils.formatMessage)({
39
+ id: "".concat(_I18N_PREFIX_, ".var"),
40
+ label: '变量'
41
+ }),
42
+ color: '#87d068'
43
+ },
44
+ api: {
45
+ name: (0, _utils.formatMessage)({
46
+ id: "".concat(_I18N_PREFIX_, ".api"),
47
+ label: '远程 API'
48
+ }),
49
+ color: '#108ee9'
50
+ }
51
+ };
52
+ var _TYPE_KEYS_ = Object.keys(_TYPES_);
53
+ var PageVars = function PageVars(_ref) {
54
+ var _ref$defaultValue = _ref.defaultValue,
55
+ defaultValue = _ref$defaultValue === void 0 ? [] : _ref$defaultValue,
56
+ onChange = _ref.onChange;
57
+ var _useReducer = (0, _react.useReducer)(_helper.listReducer, defaultValue),
58
+ _useReducer2 = (0, _slicedToArray2.default)(_useReducer, 2),
59
+ vars = _useReducer2[0],
60
+ dispatch = _useReducer2[1];
61
+ var _useSetState = (0, _ahooks.useSetState)({}),
62
+ _useSetState2 = (0, _slicedToArray2.default)(_useSetState, 2),
63
+ filter = _useSetState2[0],
64
+ setFilter = _useSetState2[1];
65
+ (0, _ahooks.useUpdateEffect)(function () {
66
+ onChange(vars);
67
+ }, [vars]);
68
+ var _useState = (0, _react.useState)(null),
69
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
70
+ currentItem = _useState2[0],
71
+ setCurrentItem = _useState2[1];
72
+ var handleSortChange = (0, _ahooks.useMemoizedFn)(function (sortItems) {
73
+ dispatch({
74
+ type: 'sort',
75
+ payload: sortItems
76
+ });
77
+ });
78
+ var handleAdd = (0, _ahooks.useMemoizedFn)(function (_item) {
79
+ dispatch({
80
+ type: 'add',
81
+ payload: _item
82
+ });
83
+ setCurrentItem(_item);
84
+ });
85
+ var _useDebounceFn = (0, _ahooks.useDebounceFn)(function (keyword) {
86
+ return setFilter({
87
+ keyword: (0, _lodash.isNil)(keyword) || keyword === '' ? void 0 : keyword
88
+ });
89
+ }, {
90
+ wait: 400
91
+ }),
92
+ handleSearch = _useDebounceFn.run;
93
+ var renderItemLeft = (0, _ahooks.useMemoizedFn)(function (item) {
94
+ var _TYPES_$item$type = _TYPES_[item.type],
95
+ name = _TYPES_$item$type.name,
96
+ color = _TYPES_$item$type.color;
97
+ return /*#__PURE__*/_react.default.createElement(ItemWrapper, null, /*#__PURE__*/_react.default.createElement("span", {
98
+ style: {
99
+ color: color
100
+ }
101
+ }, name.substring(0, 2)), /*#__PURE__*/_react.default.createElement("span", {
102
+ style: {
103
+ marginLeft: 4,
104
+ fontWeight: 'bold'
105
+ }
106
+ }, item.name));
107
+ });
108
+ var renderItemRight = (0, _ahooks.useMemoizedFn)(function (item) {
109
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_TipIcon.default, {
110
+ type: "edit",
111
+ onClick: function onClick() {
112
+ return setCurrentItem(item);
113
+ },
114
+ style: {
115
+ marginRight: 4,
116
+ cursor: 'pointer'
117
+ },
118
+ title: (0, _utils.formatMessage)({
119
+ id: "".concat(_I18N_PREFIX_, ".edit"),
120
+ label: '编辑'
121
+ })
122
+ }), /*#__PURE__*/_react.default.createElement(_TipIcon.default, {
123
+ type: "copy",
124
+ onClick: function onClick() {
125
+ return handleAdd((0, _objectSpread2.default)((0, _objectSpread2.default)({}, item), {}, {
126
+ id: (0, _utils.suid)(),
127
+ name: "".concat(item.name, "_copy")
128
+ }));
129
+ },
130
+ style: {
131
+ marginRight: 4,
132
+ cursor: 'pointer'
133
+ },
134
+ title: (0, _utils.formatMessage)({
135
+ id: "".concat(_I18N_PREFIX_, ".copy"),
136
+ label: '拷贝'
137
+ })
138
+ }), /*#__PURE__*/_react.default.createElement(_TipIcon.default, {
139
+ type: "delete",
140
+ onClick: function onClick() {
141
+ return _antd.Modal.confirm({
142
+ title: (0, _utils.formatMessage)({
143
+ id: "".concat(_I18N_PREFIX_, ".confirm.delete"),
144
+ label: "\u786E\u8BA4\u5220\u9664\u5417\uFF1F"
145
+ }),
146
+ onOk: function onOk() {
147
+ if (currentItem.id === item.id) {
148
+ setCurrentItem(null);
149
+ }
150
+ dispatch({
151
+ type: 'delete',
152
+ payload: item.id
153
+ });
154
+ }
155
+ });
156
+ },
157
+ style: {
158
+ marginRight: 4,
159
+ cursor: 'pointer'
160
+ },
161
+ title: (0, _utils.formatMessage)({
162
+ id: "".concat(_I18N_PREFIX_, ".delete"),
163
+ label: '删除'
164
+ })
165
+ }));
166
+ });
167
+ var menu = (0, _ahooks.useCreation)(function () {
168
+ return /*#__PURE__*/_react.default.createElement(_antd.Menu, {
169
+ onClick: function onClick(_ref2) {
170
+ var key = _ref2.key;
171
+ var id = (0, _utils.suid)();
172
+ handleAdd({
173
+ id: id,
174
+ type: key,
175
+ name: id,
176
+ data: (0, _objectSpread2.default)({}, {
177
+ api: {
178
+ auto: true,
179
+ taskType: 'parallel',
180
+ method: 'get'
181
+ }
182
+ }[key])
183
+ });
184
+ }
185
+ }, _TYPE_KEYS_.map(function (key) {
186
+ return /*#__PURE__*/_react.default.createElement(_antd.Menu.Item, {
187
+ key: key
188
+ }, _TYPES_[key].name);
189
+ }));
190
+ }, []);
191
+ var _vars = (0, _ahooks.useCreation)(function () {
192
+ var keyword = filter.keyword,
193
+ type = filter.type;
194
+ var _vars = (0, _lodash.isNil)(type) ? vars : vars.filter(function (_item) {
195
+ return _item.type === type;
196
+ });
197
+ if ((0, _lodash.isNil)(keyword) || keyword === '') {
198
+ return _vars;
199
+ }
200
+ return (0, _lodash.reduce)(_vars, function (ret, _item) {
201
+ if (JSON.stringify(_item).includes(keyword)) {
202
+ ret.push(_item);
203
+ }
204
+ return ret;
205
+ }, []);
206
+ }, [filter, vars]);
207
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(Wrapper, null, /*#__PURE__*/_react.default.createElement(SearchBar, null, /*#__PURE__*/_react.default.createElement(_antd.Select, {
208
+ size: "small",
209
+ defaultValue: "all",
210
+ style: {
211
+ width: 100,
212
+ marginRight: 8
213
+ },
214
+ onSelect: function onSelect(key) {
215
+ return setFilter({
216
+ type: key === 'all' ? void 0 : key
217
+ });
218
+ }
219
+ }, /*#__PURE__*/_react.default.createElement(_antd.Select.Option, {
220
+ value: "all"
221
+ }, (0, _utils.formatMessage)({
222
+ id: "".concat(_I18N_PREFIX_, ".all"),
223
+ label: '全部'
224
+ })), _TYPE_KEYS_.map(function (key) {
225
+ return /*#__PURE__*/_react.default.createElement(_antd.Select.Option, {
226
+ key: key,
227
+ value: key
228
+ }, _TYPES_[key].name);
229
+ })), /*#__PURE__*/_react.default.createElement(_antd.Input.Search, {
230
+ size: "small",
231
+ allowClear: true,
232
+ style: {
233
+ flex: 1
234
+ },
235
+ placeholder: (0, _utils.formatMessage)({
236
+ id: "".concat(_I18N_PREFIX_, ".placeholder.search"),
237
+ label: '请输入'
238
+ }),
239
+ onChange: function onChange(e) {
240
+ return handleSearch(e.target.value);
241
+ },
242
+ onSearch: handleSearch
243
+ })), /*#__PURE__*/_react.default.createElement(_antd.Dropdown, {
244
+ overlay: menu,
245
+ trigger: ['click'],
246
+ getPopupContainer: function getPopupContainer() {
247
+ return document.getElementById('lc-design-workspace');
248
+ }
249
+ }, /*#__PURE__*/_react.default.createElement(_antd.Button, {
250
+ size: "small",
251
+ type: "primary"
252
+ }, (0, _utils.formatMessage)({
253
+ id: "".concat(_I18N_PREFIX_, ".add"),
254
+ label: '添加'
255
+ }))), /*#__PURE__*/_react.default.createElement(_SortBox.SortBox, {
256
+ datas: vars.map(function (_ref3) {
257
+ var id = _ref3.id;
258
+ return id;
259
+ }),
260
+ onChange: handleSortChange
261
+ }, /*#__PURE__*/_react.default.createElement(_ListEditor.ListEditor, {
262
+ style: {
263
+ marginTop: 8
264
+ },
265
+ suppressAdd: true
266
+ }, _vars.map(function (item) {
267
+ return /*#__PURE__*/_react.default.createElement(_SortBox.SortItem, {
268
+ key: item.id,
269
+ id: item.id
270
+ }, /*#__PURE__*/_react.default.createElement(_ListEditor.ListEditorItem, {
271
+ sortable: (0, _lodash.isNil)(filter.keyword) && (0, _lodash.isNil)(filter.type),
272
+ left: renderItemLeft(item),
273
+ right: renderItemRight(item),
274
+ item: item,
275
+ dispatch: dispatch
276
+ }));
277
+ })))), currentItem ? /*#__PURE__*/_react.default.createElement(_antd.Drawer, {
278
+ visible: true,
279
+ width: 420,
280
+ mask: false,
281
+ onClose: function onClose() {
282
+ return setCurrentItem(null);
283
+ },
284
+ title: (0, _utils.formatMessage)({
285
+ id: "".concat(_I18N_PREFIX_, ".edit"),
286
+ label: '编辑数据源'
287
+ }),
288
+ getContainer: function getContainer() {
289
+ return document.getElementById('lc-design-workspace');
290
+ },
291
+ destroyOnClose: true,
292
+ className: _pageVars.default['lc-painter-panel-page-vars-drawer'],
293
+ style: {
294
+ position: 'absolute',
295
+ transform: 'none',
296
+ right: 320
297
+ }
298
+ }, /*#__PURE__*/_react.default.createElement(_VarEditor.default, {
299
+ key: currentItem.id,
300
+ item: currentItem,
301
+ dispatch: dispatch
302
+ })) : null);
303
+ };
304
+ var _default = exports.default = PageVars;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.getFields = void 0;
8
+ var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
9
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
+ var _qs = require("qs");
11
+ var _utils = require("@luck-design-biz/base/utils");
12
+ var _ApiConfig = _interopRequireDefault(require("@/services/ApiConfig"));
13
+ var getFields = exports.getFields = /*#__PURE__*/function () {
14
+ var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee(get) {
15
+ return (0, _regeneratorRuntime2.default)().wrap(function _callee$(_context) {
16
+ while (1) switch (_context.prev = _context.next) {
17
+ case 0:
18
+ return _context.abrupt("return", (0, _utils.request)("".concat(_ApiConfig.default.BASE_HOST, "/logic/field/noAuthGetFields?").concat((0, _qs.stringify)(get))));
19
+ case 1:
20
+ case "end":
21
+ return _context.stop();
22
+ }
23
+ }, _callee);
24
+ }));
25
+ return function getFields(_x) {
26
+ return _ref.apply(this, arguments);
27
+ };
28
+ }();
@@ -0,0 +1,25 @@
1
+ .lc-painter-panel-page-vars-drawer {
2
+ :global {
3
+ .ant-drawer-header {
4
+ height: 38px;
5
+ padding: 8px 16px;
6
+ .ant-drawer-close {
7
+ width: 38px !important;
8
+ height: 38px !important;
9
+ line-height: 38px !important;
10
+ }
11
+ }
12
+ .ant-drawer-body {
13
+ height: calc(100% - 38px);
14
+ overflow-y: auto;
15
+ padding: 8px 0;
16
+ }
17
+
18
+ input,
19
+ button,
20
+ .ant-radio-wrapper,
21
+ .ant-select-sm {
22
+ font-size: 12px;
23
+ }
24
+ }
25
+ }