@luck-design-biz/luckda 0.0.25-1 → 0.0.25-2

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 (139) hide show
  1. package/es/locales/zh-CN.js +9 -0
  2. package/es/lowcode/constants/api-url.js +184 -100
  3. package/es/lowcode/constants/index.js +2 -1
  4. package/es/lowcode/engine/meta/box.props.default.json +1 -1
  5. package/es/lowcode/engine/meta/box.props.json +1 -1
  6. package/es/lowcode/engine/meta/button.props.json +1 -1
  7. package/es/lowcode/engine/meta/cardlist.props.json +1 -1
  8. package/es/lowcode/engine/meta/components-list.json +1 -1
  9. package/es/lowcode/engine/meta/dialog.props.json +1 -1
  10. package/es/lowcode/engine/meta/drawer.props.json +1 -1
  11. package/es/lowcode/engine/meta/form.props.default.json +4 -5
  12. package/es/lowcode/engine/meta/form.props.json +33 -30
  13. package/es/lowcode/engine/meta/image.props.json +2 -2
  14. package/es/lowcode/engine/meta/imex.props.json +1 -1
  15. package/es/lowcode/engine/meta/link.props.json +1 -1
  16. package/es/lowcode/engine/meta/section.props.default.json +4 -6
  17. package/es/lowcode/engine/meta/section.props.json +52 -49
  18. package/es/lowcode/engine/meta/text.props.json +2 -2
  19. package/es/lowcode/engine/meta/tree.props.json +2 -2
  20. package/es/lowcode/engine/provider/ContextProvider/index.js +10 -2
  21. package/es/lowcode/engine/provider/RemoteSourceProvider.js +28 -15
  22. package/es/lowcode/engine/tools/helper.js +23 -21
  23. package/es/lowcode/engine/tools/useCanvasRender.js +5 -7
  24. package/es/lowcode/engine/tools/usePromiseState.js +23 -14
  25. package/es/lowcode/painter/Design.js +34 -2
  26. package/es/lowcode/painter/DesignOperator.js +6 -8
  27. package/es/lowcode/painter/DesignToolbar.js +258 -21
  28. package/es/lowcode/painter/Panel.js +8 -9
  29. package/es/lowcode/painter/components/AttrsPanel.js +6 -6
  30. package/es/lowcode/painter/components/DragDrop/DragDropWrapper.js +5 -2
  31. package/es/lowcode/painter/components/ListEditor.js +8 -2
  32. package/es/lowcode/painter/components/field-setting/BatchSetting.js +13 -3
  33. package/es/lowcode/painter/components/field-setting/SettingUI.js +26 -7
  34. package/es/lowcode/painter/components/field-setting/index.js +18 -8
  35. package/es/lowcode/painter/index.js +1 -28
  36. package/es/lowcode/painter/panel-section/ActionsColumnWidth.js +25 -0
  37. package/es/lowcode/painter/panel-section/BlockEditor/index.js +7 -4
  38. package/es/lowcode/painter/panel-section/BlocksEditor/BlockEditorItem.js +4 -3
  39. package/es/lowcode/painter/panel-section/BlocksEditor/index.js +48 -15
  40. package/es/lowcode/painter/panel-section/FieldsSetting.js +48 -27
  41. package/es/lowcode/painter/panel-section/I18nInput.js +20 -0
  42. package/es/lowcode/painter/style/design.less +6 -2
  43. package/es/lowcode/painter/style/list-editor.less +36 -0
  44. package/es/lowcode/preview/index.js +17 -4
  45. package/es/lowcode/view/lc-components/Box/meta.json +1 -1
  46. package/es/lowcode/view/lc-components/Button/meta.json +1 -1
  47. package/es/lowcode/view/lc-components/CardList/meta.json +1 -1
  48. package/es/lowcode/view/lc-components/Dialog/FunctionDesign.js +2 -4
  49. package/es/lowcode/view/lc-components/Dialog/meta.json +1 -1
  50. package/es/lowcode/view/lc-components/Drawer/meta.json +1 -1
  51. package/es/lowcode/view/lc-components/Form/FunctionDesign.js +66 -4
  52. package/es/lowcode/view/lc-components/Form/index.js +232 -61
  53. package/es/lowcode/view/lc-components/Form/meta.json +33 -30
  54. package/es/lowcode/view/lc-components/ImEx/meta.json +1 -1
  55. package/es/lowcode/view/lc-components/Image/meta.json +2 -2
  56. package/es/lowcode/view/lc-components/Layout/FunctionDesign.js +6 -7
  57. package/es/lowcode/view/lc-components/Link/meta.json +1 -1
  58. package/es/lowcode/view/lc-components/Section/FunctionDesign.js +31 -2
  59. package/es/lowcode/view/lc-components/Section/index.js +114 -24
  60. package/es/lowcode/view/lc-components/Section/index.less +7 -0
  61. package/es/lowcode/view/lc-components/Section/meta.json +48 -49
  62. package/es/lowcode/view/lc-components/Split/FunctionDesign.js +4 -6
  63. package/es/lowcode/view/lc-components/Split/index.js +4 -4
  64. package/es/lowcode/view/lc-components/Table/index.js +7 -6
  65. package/es/lowcode/view/lc-components/Tabs/FunctionDesign.js +2 -4
  66. package/es/lowcode/view/lc-components/Text/meta.json +2 -2
  67. package/es/lowcode/view/lc-components/Tree/meta.json +2 -2
  68. package/es/upload/Form/gridForm.js +7 -3
  69. package/lib/locales/zh-CN.js +9 -0
  70. package/lib/lowcode/constants/api-url.js +183 -100
  71. package/lib/lowcode/constants/index.js +3 -2
  72. package/lib/lowcode/engine/meta/box.props.default.json +1 -1
  73. package/lib/lowcode/engine/meta/box.props.json +1 -1
  74. package/lib/lowcode/engine/meta/button.props.json +1 -1
  75. package/lib/lowcode/engine/meta/cardlist.props.json +1 -1
  76. package/lib/lowcode/engine/meta/components-list.json +1 -1
  77. package/lib/lowcode/engine/meta/dialog.props.json +1 -1
  78. package/lib/lowcode/engine/meta/drawer.props.json +1 -1
  79. package/lib/lowcode/engine/meta/form.props.default.json +4 -5
  80. package/lib/lowcode/engine/meta/form.props.json +33 -30
  81. package/lib/lowcode/engine/meta/image.props.json +2 -2
  82. package/lib/lowcode/engine/meta/imex.props.json +1 -1
  83. package/lib/lowcode/engine/meta/link.props.json +1 -1
  84. package/lib/lowcode/engine/meta/section.props.default.json +4 -6
  85. package/lib/lowcode/engine/meta/section.props.json +52 -49
  86. package/lib/lowcode/engine/meta/text.props.json +2 -2
  87. package/lib/lowcode/engine/meta/tree.props.json +2 -2
  88. package/lib/lowcode/engine/provider/ContextProvider/index.js +10 -2
  89. package/lib/lowcode/engine/provider/RemoteSourceProvider.js +24 -11
  90. package/lib/lowcode/engine/tools/helper.js +23 -21
  91. package/lib/lowcode/engine/tools/useCanvasRender.js +3 -5
  92. package/lib/lowcode/engine/tools/usePromiseState.js +22 -14
  93. package/lib/lowcode/painter/Design.js +32 -0
  94. package/lib/lowcode/painter/DesignOperator.js +5 -7
  95. package/lib/lowcode/painter/DesignToolbar.js +256 -19
  96. package/lib/lowcode/painter/Panel.js +7 -8
  97. package/lib/lowcode/painter/components/AttrsPanel.js +6 -6
  98. package/lib/lowcode/painter/components/DragDrop/DragDropWrapper.js +5 -2
  99. package/lib/lowcode/painter/components/ListEditor.js +8 -2
  100. package/lib/lowcode/painter/components/field-setting/BatchSetting.js +13 -3
  101. package/lib/lowcode/painter/components/field-setting/SettingUI.js +26 -7
  102. package/lib/lowcode/painter/components/field-setting/index.js +18 -8
  103. package/lib/lowcode/painter/index.js +1 -30
  104. package/lib/lowcode/painter/panel-section/ActionsColumnWidth.js +32 -0
  105. package/lib/lowcode/painter/panel-section/BlockEditor/index.js +7 -4
  106. package/lib/lowcode/painter/panel-section/BlocksEditor/BlockEditorItem.js +4 -3
  107. package/lib/lowcode/painter/panel-section/BlocksEditor/index.js +47 -13
  108. package/lib/lowcode/painter/panel-section/FieldsSetting.js +46 -25
  109. package/lib/lowcode/painter/panel-section/I18nInput.js +27 -0
  110. package/lib/lowcode/painter/style/design.less +6 -2
  111. package/lib/lowcode/painter/style/list-editor.less +36 -0
  112. package/lib/lowcode/preview/index.js +18 -4
  113. package/lib/lowcode/view/lc-components/Box/meta.json +1 -1
  114. package/lib/lowcode/view/lc-components/Button/meta.json +1 -1
  115. package/lib/lowcode/view/lc-components/CardList/meta.json +1 -1
  116. package/lib/lowcode/view/lc-components/Dialog/FunctionDesign.js +2 -4
  117. package/lib/lowcode/view/lc-components/Dialog/meta.json +1 -1
  118. package/lib/lowcode/view/lc-components/Drawer/meta.json +1 -1
  119. package/lib/lowcode/view/lc-components/Form/FunctionDesign.js +64 -2
  120. package/lib/lowcode/view/lc-components/Form/index.js +230 -59
  121. package/lib/lowcode/view/lc-components/Form/meta.json +33 -30
  122. package/lib/lowcode/view/lc-components/ImEx/meta.json +1 -1
  123. package/lib/lowcode/view/lc-components/Image/meta.json +2 -2
  124. package/lib/lowcode/view/lc-components/Layout/FunctionDesign.js +5 -6
  125. package/lib/lowcode/view/lc-components/Link/meta.json +1 -1
  126. package/lib/lowcode/view/lc-components/Section/FunctionDesign.js +31 -2
  127. package/lib/lowcode/view/lc-components/Section/index.js +113 -23
  128. package/lib/lowcode/view/lc-components/Section/index.less +7 -0
  129. package/lib/lowcode/view/lc-components/Section/meta.json +48 -49
  130. package/lib/lowcode/view/lc-components/Split/FunctionDesign.js +5 -7
  131. package/lib/lowcode/view/lc-components/Split/index.js +4 -4
  132. package/lib/lowcode/view/lc-components/Table/index.js +7 -6
  133. package/lib/lowcode/view/lc-components/Tabs/FunctionDesign.js +4 -6
  134. package/lib/lowcode/view/lc-components/Text/meta.json +2 -2
  135. package/lib/lowcode/view/lc-components/Tree/meta.json +2 -2
  136. package/lib/upload/Form/gridForm.js +7 -3
  137. package/package.json +1 -1
  138. package/es/lowcode/painter/services/toolbar.js +0 -25
  139. package/lib/lowcode/painter/services/toolbar.js +0 -32
@@ -7,6 +7,7 @@
7
7
  width: 100%;
8
8
  .list-item {
9
9
  height: 28px;
10
+ position: relative;
10
11
  background: #fff;
11
12
  border: 1px solid #e5e6e8;
12
13
  border-radius: 6px;
@@ -37,6 +38,41 @@
37
38
  cursor: pointer;
38
39
  }
39
40
  }
41
+
42
+ .list-item-bottom-line {
43
+ width: 100%;
44
+ height: 8px;
45
+ border-bottom: solid 1px var(--ant-primary-color);
46
+ position: absolute;
47
+ left: 0;
48
+ bottom: -6px;
49
+ padding-top: 4px;
50
+ display: none;
51
+ align-items: center;
52
+ justify-content: center;
53
+ cursor: pointer;
54
+ z-index: 10;
55
+ }
56
+ .list-item-bottom-line::after {
57
+ content: "+";
58
+ height: 12px;
59
+ margin-top: 4px;
60
+ color: var(--ant-primary-color);
61
+ border: solid 1px var(--ant-primary-color);
62
+ border-radius: 10px;
63
+ font-weight: bold;
64
+ font-size: 14px;
65
+ background-color: white;
66
+ padding: 0 8px;
67
+ display: flex;
68
+ align-items: center;
69
+ justify-content: center;
70
+ }
71
+ &:hover {
72
+ .list-item-bottom-line {
73
+ display: flex;
74
+ }
75
+ }
40
76
  }
41
77
  }
42
78
 
@@ -1,21 +1,35 @@
1
1
  "use strict";
2
2
 
3
+ var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
3
4
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports.default = void 0;
8
- var _react = _interopRequireDefault(require("react"));
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
+ var _react = _interopRequireWildcard(require("react"));
11
+ var _ahooks = require("ahooks");
9
12
  var _EventBusProvider = _interopRequireDefault(require("../engine/provider/EventBusProvider"));
10
13
  var _ContextProvider = _interopRequireDefault(require("../engine/provider/ContextProvider"));
11
14
  var _Page = _interopRequireDefault(require("../view/Page"));
12
15
  var _index = require("../constants/index");
13
16
  var Preview = function Preview(_ref) {
14
- var code = _ref.code;
15
- return /*#__PURE__*/_react.default.createElement(_EventBusProvider.default, {
17
+ var code = _ref.code,
18
+ userId = _ref.userId;
19
+ var _useState = (0, _react.useState)(userId),
20
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
21
+ currentKey = _useState2[0],
22
+ setCurrentKey = _useState2[1];
23
+ (0, _ahooks.useUpdateEffect)(function () {
24
+ setCurrentKey(void 0);
25
+ setTimeout(function () {
26
+ setCurrentKey(userId);
27
+ });
28
+ }, [userId]);
29
+ return code && currentKey ? /*#__PURE__*/_react.default.createElement(_EventBusProvider.default, {
16
30
  runtime: _index.RUNTIME.PREVIEW
17
31
  }, /*#__PURE__*/_react.default.createElement(_ContextProvider.default, {
18
32
  code: code
19
- }, /*#__PURE__*/_react.default.createElement(_Page.default, null)));
33
+ }, /*#__PURE__*/_react.default.createElement(_Page.default, null))) : null;
20
34
  };
21
35
  var _default = exports.default = Preview;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "component": "Box",
3
- "name": "容器",
3
+ "name": "盒子",
4
4
  "desc": "盒子是一个用于包裹其他组件的包装器,是一个单纯的容器组件,可以对其设置样式达到想要的效果。",
5
5
  "icon": "icon-box",
6
6
  "group": "container",
@@ -16,7 +16,7 @@
16
16
  {
17
17
  "key": "title",
18
18
  "name": "标题",
19
- "type": "string",
19
+ "type": "_I18nInput",
20
20
  "repositioning": true,
21
21
  "default": "按钮"
22
22
  },
@@ -57,7 +57,7 @@
57
57
  "key": "actionTitle",
58
58
  "name": "操作列标题",
59
59
  "desc": "操作列的标题",
60
- "type": "string",
60
+ "type": "_I18nInput",
61
61
  "default": "操作列"
62
62
  },
63
63
  {
@@ -12,7 +12,6 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
12
12
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
13
  var _react = _interopRequireDefault(require("react"));
14
14
  var _ahooks = require("ahooks");
15
- var _lodash = require("lodash");
16
15
  var _index = _interopRequireDefault(require("./index"));
17
16
  var _utils = require("@luck-design-biz/base/utils");
18
17
  var _ContextProvider = require("../../../engine/provider/ContextProvider");
@@ -36,11 +35,10 @@ var FunctionDesign = function FunctionDesign(_ref) {
36
35
  var compId = _ref2.id,
37
36
  pageData = _ref2.pageData;
38
37
  if (compId !== id) return;
39
- var cloneData = (0, _lodash.cloneDeep)(pageData);
40
- (0, _dataProcess.add)(cloneData, id, "box_".concat((0, _utils.suid)()), (0, _objectSpread2.default)((0, _objectSpread2.default)({}, _boxPropsDefault.default), {}, {
38
+ (0, _dataProcess.add)(pageData, id, "box_".concat((0, _utils.suid)()), (0, _objectSpread2.default)((0, _objectSpread2.default)({}, _boxPropsDefault.default), {}, {
41
39
  buildIn: true
42
40
  }));
43
- setPageData(cloneData);
41
+ setPageData(pageData);
44
42
  }).watch();
45
43
  }, []);
46
44
  return /*#__PURE__*/_react.default.createElement(_index.default, (0, _extends2.default)({
@@ -17,7 +17,7 @@
17
17
  "key": "title",
18
18
  "name": "标题",
19
19
  "desc": "对话框左上角的标题",
20
- "type": "string",
20
+ "type": "_I18nInput",
21
21
  "default": "对话框"
22
22
  },
23
23
  {
@@ -17,7 +17,7 @@
17
17
  "key": "title",
18
18
  "name": "标题",
19
19
  "desc": "抽屉左上角的标题",
20
- "type": "string",
20
+ "type": "_I18nInput",
21
21
  "default": "抽屉"
22
22
  },
23
23
  {
@@ -8,10 +8,16 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports.default = void 0;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
12
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
13
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
12
14
  var _react = _interopRequireWildcard(require("react"));
13
15
  var _ahooks = require("ahooks");
14
16
  var _lodash = require("lodash");
17
+ var _utils = require("@luck-design-biz/base/utils");
18
+ var _ContextProvider = require("../../../engine/provider/ContextProvider");
19
+ var _dataProcess = require("../../../engine/tools/dataProcess");
20
+ var _boxPropsDefault = _interopRequireDefault(require("../../../engine/meta/box.props.default.json"));
15
21
  var _index = _interopRequireDefault(require("./index"));
16
22
  var _excluded = ["children", "blocks", "id"];
17
23
  var FunctionDesign = function FunctionDesign(_ref) {
@@ -20,19 +26,75 @@ var FunctionDesign = function FunctionDesign(_ref) {
20
26
  id = _ref.id,
21
27
  props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
22
28
  var ref = (0, _react.useRef)(null);
29
+ var ctx = (0, _ContextProvider.useContext)();
30
+ var _usePageData = (0, _ContextProvider.usePageData)(),
31
+ _usePageData2 = (0, _slicedToArray2.default)(_usePageData, 2),
32
+ setPageData = _usePageData2[1].setPageData;
23
33
  var previousBlocks = (0, _ahooks.usePrevious)((0, _lodash.cloneDeep)(blocks), function (prev, next) {
24
34
  return !(0, _lodash.isEqual)(prev, next);
25
35
  });
26
36
  (0, _ahooks.useUpdateLayoutEffect)(function () {
27
- var difference = (0, _lodash.differenceWith)(blocks, previousBlocks, function (arrVal, othVal) {
37
+ var diffDataset = (0, _lodash.differenceWith)(blocks, previousBlocks, function (arrVal, othVal) {
28
38
  var _arrVal$dataset, _othVal$dataset;
29
39
  return arrVal.id === othVal.id && ((_arrVal$dataset = arrVal.dataset) === null || _arrVal$dataset === void 0 ? void 0 : _arrVal$dataset.code) === ((_othVal$dataset = othVal.dataset) === null || _othVal$dataset === void 0 ? void 0 : _othVal$dataset.code);
30
40
  });
31
- difference.forEach(function (df) {
41
+ diffDataset.forEach(function (df) {
32
42
  var _df$dataset;
33
43
  ((_df$dataset = df.dataset) === null || _df$dataset === void 0 ? void 0 : _df$dataset.code) && ref.current.doQueryOne(df.id);
34
44
  });
45
+ var diffColReset = (0, _lodash.differenceWith)(blocks, previousBlocks, function (arrVal, othVal) {
46
+ return arrVal.id === othVal.id && arrVal.actionsColumnReset === othVal.actionsColumnReset;
47
+ });
48
+ diffColReset.forEach(function (df) {
49
+ var _ctx$componentMap$get2;
50
+ var _ctx$componentMap$get = (_ctx$componentMap$get2 = ctx.componentMap.get(id)) === null || _ctx$componentMap$get2 === void 0 ? void 0 : _ctx$componentMap$get2.api.getForm().getFormRef(df.id).formRef.current,
51
+ gridApi = _ctx$componentMap$get.gridApi;
52
+ gridApi.api.refreshCells({
53
+ columns: ['luck-actions'],
54
+ force: true
55
+ });
56
+ });
35
57
  }, [JSON.stringify(blocks)]);
58
+ (0, _react.useEffect)(function () {
59
+ var cmid = ctx.$subscriber(ctx.topics.COMPONENT_MODIFY).on(function (_ref2) {
60
+ var compId = _ref2.id,
61
+ pageData = _ref2.pageData,
62
+ newValue = _ref2.newValue,
63
+ oldValue = _ref2.oldValue;
64
+ if (compId !== id || !newValue.hasOwnProperty('blocks')) return;
65
+ if (newValue.blocks.length > oldValue.blocks.length) {
66
+ var _differenceBy = (0, _lodash.differenceBy)(newValue.blocks, oldValue.blocks, 'id'),
67
+ _differenceBy2 = (0, _slicedToArray2.default)(_differenceBy, 1),
68
+ newItem = _differenceBy2[0];
69
+ if (newItem.type === 'blank') {
70
+ var boxId = "box_".concat((0, _utils.suid)());
71
+ (0, _dataProcess.add)(pageData, id, boxId, (0, _objectSpread2.default)((0, _objectSpread2.default)({}, _boxPropsDefault.default), {}, {
72
+ buildIn: true,
73
+ formBoxId: newItem.id
74
+ }));
75
+ setPageData(pageData);
76
+ }
77
+ } else if (newValue.blocks.length < oldValue.blocks.length) {
78
+ var _differenceBy3 = (0, _lodash.differenceBy)(oldValue.blocks, newValue.blocks, 'id'),
79
+ _differenceBy4 = (0, _slicedToArray2.default)(_differenceBy3, 1),
80
+ removeItem = _differenceBy4[0];
81
+ if (removeItem.type === 'blank') {
82
+ var _findNodeAndParent = (0, _dataProcess.findNodeAndParent)(id, pageData),
83
+ current = _findNodeAndParent.node;
84
+ var _boxId = current.children.find(function (childId) {
85
+ return current[childId].props.tabId === removeItem.id;
86
+ });
87
+ ctx.$publisher(ctx.topics.COMPONENT_DELETE, {
88
+ id: _boxId,
89
+ pageData: pageData
90
+ });
91
+ }
92
+ }
93
+ }).watch();
94
+ return function () {
95
+ return ctx.$unsubscriber(ctx.topics.COMPONENT_MODIFY, cmid);
96
+ };
97
+ }, []);
36
98
  return /*#__PURE__*/_react.default.createElement(_index.default, (0, _extends2.default)({}, props, {
37
99
  id: id,
38
100
  blocks: blocks,
@@ -1,38 +1,90 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
4
3
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.default = void 0;
9
9
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
10
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
11
- var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
12
11
  var _react = _interopRequireWildcard(require("react"));
13
12
  var _ahooks = require("ahooks");
14
13
  var _classnames = _interopRequireDefault(require("classnames"));
15
14
  var _lodash = require("lodash");
15
+ var _luckDesign = require("luck-design");
16
+ var _base = require("@luck-design-biz/base");
16
17
  var _Wrapper = _interopRequireDefault(require("../Wrapper"));
17
18
  var _index = require("../../../../index");
18
19
  var _helper = require("../../../engine/tools/helper");
19
20
  var _ContextProvider = require("../../../engine/provider/ContextProvider");
21
+ var _Form = _interopRequireDefault(require("../../../../upload/Form"));
22
+ var _LdRuntimeCom = _interopRequireDefault(require("../../../../components/LdRuntimeCom"));
20
23
  var _formPropsDefault = _interopRequireDefault(require("../../../engine/meta/form.props.default.json"));
21
24
  var _index2 = _interopRequireDefault(require("./index.less"));
22
- var _excluded = ["id", "parentId", "width", "height", "className", "blocks", "advance", "initData", "readOnly"];
23
- var LCForm = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
24
- var id = _ref.id,
25
- parentId = _ref.parentId,
26
- width = _ref.width,
27
- height = _ref.height,
28
- className = _ref.className,
29
- blocks = _ref.blocks,
30
- advance = _ref.advance,
31
- initData = _ref.initData,
32
- readOnly = _ref.readOnly,
33
- props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
25
+ var Header = function Header(_ref) {
26
+ var _ref$header = _ref.header,
27
+ header = _ref$header === void 0 ? 'collapse' : _ref$header,
28
+ title = _ref.title,
29
+ ldId = _ref.ldId,
30
+ children = _ref.children;
31
+ if (header === 'collapse' || header === 'collapseFollow') return /*#__PURE__*/_react.default.createElement(_base.Collapse, {
32
+ title: title || ldId,
33
+ id: ldId,
34
+ key: ldId,
35
+ mode: header === 'collapse' && 'tab'
36
+ }, children);
37
+ return /*#__PURE__*/_react.default.createElement(_react.Fragment, {
38
+ key: ldId
39
+ }, header === 'divider' && /*#__PURE__*/_react.default.createElement(_luckDesign.BasicDivider, {
40
+ title: title || ldId,
41
+ id: ldId
42
+ }), children);
43
+ };
44
+ var LCForm = /*#__PURE__*/(0, _react.forwardRef)(function (_ref2, ref) {
45
+ var id = _ref2.id,
46
+ parentId = _ref2.parentId,
47
+ width = _ref2.width,
48
+ height = _ref2.height,
49
+ className = _ref2.className,
50
+ blocks = _ref2.blocks,
51
+ advance = _ref2.advance,
52
+ initData = _ref2.initData,
53
+ readOnly = _ref2.readOnly,
54
+ showSave = _ref2.showSave,
55
+ saveTitle = _ref2.saveTitle,
56
+ settingLayout = _ref2.settingLayout,
57
+ renderFormLeft = _ref2.renderFormLeft,
58
+ renderFormRight = _ref2.renderFormRight,
59
+ children = _ref2.children;
60
+ var apiRef = (0, _react.useRef)();
34
61
  var boxRef = (0, _react.useRef)();
62
+ var formRef = (0, _react.useRef)();
35
63
  var ctx = (0, _ContextProvider.useContext)();
64
+ var remoteSource = (0, _ContextProvider.useRemoteSource)();
65
+ var serials = (0, _ahooks.useCreation)(function () {
66
+ var _remoteSource$serials;
67
+ return ((_remoteSource$serials = remoteSource.serials) === null || _remoteSource$serials === void 0 ? void 0 : _remoteSource$serials.map(function (i) {
68
+ return i.serial;
69
+ })) || [];
70
+ }, [remoteSource.serials]);
71
+ (0, _ahooks.useMount)(function () {
72
+ ctx.doAction(advance.events.onMount, {
73
+ instance: (ref || formRef).current
74
+ });
75
+ });
76
+ (0, _ahooks.useUnmount)(function () {
77
+ ctx.doAction(advance.events.onUnmount, {
78
+ instance: (ref || formRef).current
79
+ });
80
+ });
81
+ (0, _react.useImperativeHandle)(apiRef, function () {
82
+ return {
83
+ getForm: function getForm() {
84
+ return (ref || formRef).current;
85
+ }
86
+ };
87
+ });
36
88
  var getTargetDom = (0, _ahooks.useMemoizedFn)(function () {
37
89
  return boxRef.current;
38
90
  });
@@ -42,9 +94,9 @@ var LCForm = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
42
94
  };
43
95
  return (0, _helper.executeCode)(ctx, defaultDataSourceFormat, ['defaultValues'], defaultValues);
44
96
  });
45
- var handleDataSourceFormat = (0, _ahooks.useMemoizedFn)(function (dataSourceFormat, _ref2) {
46
- var values = _ref2.values,
47
- submitData = _ref2.submitData;
97
+ var handleDataSourceFormat = (0, _ahooks.useMemoizedFn)(function (dataSourceFormat, _ref3) {
98
+ var values = _ref3.values,
99
+ submitData = _ref3.submitData;
48
100
  if ((0, _lodash.isNil)(dataSourceFormat)) return submitData;
49
101
  return (0, _helper.executeCode)(ctx, dataSourceFormat, ['values', 'submitData'], values, submitData);
50
102
  });
@@ -58,61 +110,166 @@ var LCForm = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
58
110
  var handleGridFormReady = (0, _ahooks.useMemoizedFn)(function (onGridFormReady, ref, params, gridForm) {
59
111
  if (!(0, _lodash.isNil)(onGridFormReady)) return (0, _helper.executeCode)(ctx, onGridFormReady, ['ref', 'params', 'gridForm'], ref, params, gridForm);
60
112
  });
113
+ var handleResetActions = (0, _ahooks.useMemoizedFn)(function (resetActions, data, index, actionList, params) {
114
+ if ((0, _lodash.isNil)(resetActions)) return actionList;
115
+ return (0, _helper.executeCode)(ctx, resetActions, ['data', 'index', 'actionList', 'params'], data, index, actionList, params);
116
+ });
117
+ var handleForbiddenTypes = (0, _ahooks.useMemoizedFn)(function (forbiddenTypes) {
118
+ if ((0, _lodash.isNil)(forbiddenTypes)) return [];
119
+ return (0, _helper.executeCode)(ctx, forbiddenTypes, []);
120
+ });
121
+ var handleBeforeUpload = (0, _ahooks.useMemoizedFn)(function (beforeUpload, file, fileList) {
122
+ if ((0, _lodash.isNil)(beforeUpload)) return true;
123
+ return (0, _helper.executeCode)(ctx, beforeUpload, ['file', 'fileList'], file, fileList);
124
+ });
125
+ var handleUploadChange = (0, _ahooks.useMemoizedFn)(function (onUploadChange, e) {
126
+ if (!(0, _lodash.isNil)(onUploadChange)) return (0, _helper.executeCode)(ctx, onUploadChange, ['event'], e);
127
+ });
128
+ var renderAffix = (0, _ahooks.useMemoizedFn)(function (_render) {
129
+ return _render ? /*#__PURE__*/_react.default.createElement(_LdRuntimeCom.default, null, _render) : null;
130
+ });
61
131
  var renderFormList = (0, _ahooks.useMemoizedFn)(function (formConfig) {
62
- var formList = (0, _lodash.reduce)(blocks, function (result, item) {
63
- if ((0, _lodash.includes)(['auto', 'grid', 'writer'], item.type)) {
64
- if (item.dataset && (0, _lodash.includes)(item.mode, formConfig.formMode)) {
65
- var data = {
66
- id: item.id,
67
- type: item.type,
68
- readOnly: item.readOnly,
69
- title: item.name,
70
- header: item.header,
71
- dataSetKey: item.dataset.code,
72
- serial: item.serial,
73
- serialEffect: item.serialEffect,
74
- defaultDataSourceFormat: function defaultDataSourceFormat(defaultValues) {
75
- return handleDefaultDataSourceFormat(item.defaultDataSourceFormat, defaultValues);
76
- },
77
- onUpdate: {
78
- post: function post(data) {
79
- return handleDataSourceFormat(item.dataSourceFormat, data);
80
- }
132
+ return (0, _lodash.reduce)(blocks, function (result, item) {
133
+ if ((0, _lodash.includes)(['auto', 'grid', 'writer'], item.type) && item.dataset && (0, _lodash.includes)(item.mode, formConfig.formMode)) {
134
+ var data = {
135
+ id: item.id,
136
+ order: item.order,
137
+ type: item.type,
138
+ readOnly: item.readOnly,
139
+ title: item.name,
140
+ header: item.header,
141
+ dataSetKey: item.dataset.code,
142
+ serial: item.serial,
143
+ serialEffect: item.serialEffect,
144
+ defaultDataSourceFormat: function defaultDataSourceFormat(defaultValues) {
145
+ return handleDefaultDataSourceFormat(item.defaultDataSourceFormat, defaultValues);
146
+ },
147
+ onUpdate: {
148
+ post: function post(data) {
149
+ return handleDataSourceFormat(item.dataSourceFormat, data);
81
150
  }
82
- };
83
- if (item.type === 'auto') data = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, data), {}, {
84
- col: item.cols
85
- });else data = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, data), {}, {
151
+ }
152
+ };
153
+ if (item.type === 'auto') data = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, data), {}, {
154
+ col: item.cols
155
+ });else data = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, data), {}, {
156
+ suppressPreset: item.suppressPreset,
157
+ height: item.height,
158
+ bordered: item.bordered,
159
+ draggable: item.draggable,
160
+ orderByAdd: item.orderByAdd,
161
+ hideActionsColumn: item.suppressActions,
162
+ actionsWidth: item.actionsColumnWidth,
163
+ columnsReset: function columnsReset(columns) {
164
+ return handleColumnsReset(item.columnsReset, columns);
165
+ },
166
+ onGridFormReady: function onGridFormReady(ref, params, gridForm) {
167
+ return handleGridFormReady(item.onGridFormReady, ref, params, gridForm);
168
+ }
169
+ });
170
+ if (item.actionsColumnReset) data = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, data), {}, {
171
+ resetActionsColumn: function resetActionsColumn(data, index, actions, params) {
172
+ return handleResetActionsColumn(item.actionsColumnReset, data, index, actions, params);
173
+ }
174
+ });
175
+ result.push(data);
176
+ }
177
+ return result;
178
+ }, []);
179
+ });
180
+ var renderFormExtra = (0, _ahooks.useMemoizedFn)(function (formConfig) {
181
+ return (0, _lodash.reduce)(blocks, function (result, item) {
182
+ if ((0, _lodash.includes)(item.mode, formConfig.formMode) && !item.serial || item.serialEffect === 'disable' || (0, _lodash.includes)(serials, item.serial)) {
183
+ if (item.type === 'uploadForm') {
184
+ var _remoteSource$pageinf;
185
+ var dom = /*#__PURE__*/_react.default.createElement(Header, {
186
+ ldId: item.id,
187
+ key: item.id,
188
+ header: item.header,
189
+ title: item.name,
190
+ order: item.order
191
+ }, (0, _Form.default)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, formConfig), {}, {
192
+ formId: item.id,
193
+ moduleCode: remoteSource === null || remoteSource === void 0 || (_remoteSource$pageinf = remoteSource.pageinfo) === null || _remoteSource$pageinf === void 0 || (_remoteSource$pageinf = _remoteSource$pageinf.relationship) === null || _remoteSource$pageinf === void 0 ? void 0 : _remoteSource$pageinf.moduleCode,
194
+ readOnly: item.readOnly || formConfig.readOnly || item.serial && !(0, _lodash.includes)(serials, item.serial),
86
195
  suppressPreset: item.suppressPreset,
87
196
  height: item.height,
88
197
  bordered: item.bordered,
89
- draggable: item.draggable,
90
- orderByAdd: item.orderByAdd,
91
- hideActionsColumn: item.suppressActions,
92
- actionsWidth: item.actionsColumnWidth,
93
- columnsReset: function columnsReset(columns) {
94
- return handleColumnsReset(item.columnsReset, columns);
198
+ showNote: item.showNote,
199
+ zipName: "".concat(item.zipName || 'download', ".zip"),
200
+ uploadUrl: item.uploadUrl,
201
+ resetActions: item.useResetActions ? null : function () {
202
+ for (var _len = arguments.length, params = new Array(_len), _key = 0; _key < _len; _key++) {
203
+ params[_key] = arguments[_key];
204
+ }
205
+ return handleResetActions.apply(void 0, [item.resetActions].concat(params));
95
206
  },
96
- onGridFormReady: function onGridFormReady(ref, params, gridForm) {
97
- return handleGridFormReady(item.onGridFormReady, ref, params, gridForm);
98
- }
99
- });
100
- if (item.actionsColumnReset) data = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, data), {}, {
101
- resetActionsColumn: function resetActionsColumn(data, index, actions, params) {
102
- return handleResetActionsColumn(item.actionsColumnReset, data, index, actions, params);
207
+ forbiddenTypes: function forbiddenTypes() {
208
+ return handleForbiddenTypes(item.forbiddenTypes);
209
+ },
210
+ beforeUpload: function beforeUpload() {
211
+ for (var _len2 = arguments.length, params = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
212
+ params[_key2] = arguments[_key2];
213
+ }
214
+ return handleBeforeUpload.apply(void 0, [item.beforeUpload].concat(params));
215
+ },
216
+ onUploadChange: function onUploadChange(e) {
217
+ return handleUploadChange(item.onUploadChange, e);
103
218
  }
104
- });
105
- result.push(data);
219
+ })));
220
+ result.push(dom);
221
+ }
222
+ if (item.type === 'blank') {
223
+ var _dom = /*#__PURE__*/_react.default.createElement(Header, {
224
+ ldId: item.id,
225
+ key: item.id,
226
+ header: item.header,
227
+ title: item.name,
228
+ order: item.order
229
+ }, children === null || children === void 0 ? void 0 : children.find(function (child) {
230
+ return child.props.formBoxId === item.id;
231
+ }));
232
+ result.push(_dom);
106
233
  }
107
234
  }
108
235
  return result;
109
236
  }, []);
110
- return formList;
237
+ });
238
+ var beforeSubmit = (0, _ahooks.useMemoizedFn)(function (values, data) {
239
+ return new Promise(function (resolve) {
240
+ if ((0, _lodash.isNil)(advance.events.beforeSave)) resolve(values);else {
241
+ var _data = ctx.doAction(advance.events.beforeSave, {
242
+ values: values,
243
+ data: data
244
+ });
245
+ resolve(_data);
246
+ }
247
+ ;
248
+ });
249
+ });
250
+ var afterSubmit = (0, _ahooks.useMemoizedFn)(function (success, mainKey, res) {
251
+ ctx.doAction(advance.events.onSaveCallback, {
252
+ success: success,
253
+ mainKey: mainKey,
254
+ res: res
255
+ });
256
+ });
257
+ var onValueChange = (0, _ahooks.useMemoizedFn)(function (change, data) {
258
+ ctx.doAction(advance.events.onValueChange, {
259
+ change: change,
260
+ data: data
261
+ });
262
+ });
263
+ var onChildChange = (0, _ahooks.useMemoizedFn)(function (instance) {
264
+ ctx.doAction(advance.events.onChildChange, {
265
+ instance: instance
266
+ });
111
267
  });
112
268
  return /*#__PURE__*/_react.default.createElement(_Wrapper.default, {
113
269
  id: id,
114
270
  displayName: "Form",
115
- getTargetDom: getTargetDom
271
+ getTargetDom: getTargetDom,
272
+ api: apiRef
116
273
  }, /*#__PURE__*/_react.default.createElement("div", {
117
274
  ref: boxRef,
118
275
  style: {
@@ -124,10 +281,24 @@ var LCForm = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
124
281
  ldId: id,
125
282
  className: (0, _classnames.default)(_index2.default['lc-component-form'], (0, _defineProperty2.default)({}, className, !!className)),
126
283
  renderFormList: renderFormList,
284
+ renderFormExtra: renderFormExtra,
127
285
  mainFormLdId: "block_main",
128
286
  initData: initData,
129
- ref: ref,
130
- readOnly: readOnly
287
+ ref: ref || formRef,
288
+ readOnly: readOnly,
289
+ showSaveBtn: showSave,
290
+ saveBtnTitle: saveTitle,
291
+ affixLayout: settingLayout,
292
+ renderAffixLeft: function renderAffixLeft() {
293
+ return renderAffix(renderFormLeft);
294
+ },
295
+ renderAffixRight: function renderAffixRight() {
296
+ return renderAffix(renderFormRight);
297
+ },
298
+ beforeSubmit: beforeSubmit,
299
+ afterSubmit: advance.events.onSaveCallback ? afterSubmit : null,
300
+ onValueChange: onValueChange,
301
+ onChildChange: onChildChange
131
302
  })));
132
303
  });
133
304
  LCForm.defaultProps = (0, _helper.omitBadProps)(_formPropsDefault.default);