@luck-design-biz/luckda 0.0.25-6 → 0.0.25-7

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 (141) hide show
  1. package/es/components/LDActions/index.less +1 -1
  2. package/es/components/LdAutoForm/index.js +24 -8
  3. package/es/components/LdFormList/index.js +25 -18
  4. package/es/components/LdGrid/index.js +3 -2
  5. package/es/components/LdGridForm/index.js +16 -6
  6. package/es/components/LdTree/index.js +3 -2
  7. package/es/helper/form.js +6 -3
  8. package/es/locales/zh-CN.js +1 -0
  9. package/es/lowcode/constants/api-url.js +13 -11
  10. package/es/lowcode/engine/factory/panel-item-factory/SelectStrategy.js +4 -2
  11. package/es/lowcode/engine/factory/panel-item-factory/SwitchStrategy.js +4 -2
  12. package/es/lowcode/engine/meta/dialog.props.default.json +10 -5
  13. package/es/lowcode/engine/meta/dialog.props.json +72 -42
  14. package/es/lowcode/engine/meta/form.props.json +3 -3
  15. package/es/lowcode/engine/meta/table.props.json +4 -4
  16. package/es/lowcode/engine/meta/tree.props.default.json +1 -0
  17. package/es/lowcode/engine/meta/tree.props.json +7 -0
  18. package/es/lowcode/engine/provider/ContextProvider/index.js +8 -40
  19. package/es/lowcode/engine/provider/RemoteSourceProvider.js +16 -20
  20. package/es/lowcode/engine/tools/helper.js +2 -3
  21. package/es/lowcode/engine/tools/useCanvasRender.js +3 -2
  22. package/es/lowcode/engine/tools/usePageDataStore.js +174 -0
  23. package/es/lowcode/engine/tools/usePromiseState.js +12 -23
  24. package/es/lowcode/engine/tools/useTodo.js +20 -10
  25. package/es/lowcode/painter/DesignOperator.js +11 -22
  26. package/es/lowcode/painter/DesignToolbar.js +8 -44
  27. package/es/lowcode/painter/Outline.js +2 -4
  28. package/es/lowcode/painter/Panel.js +26 -25
  29. package/es/lowcode/painter/components/ActionBindModal.js +5 -11
  30. package/es/lowcode/painter/components/AttrsPanel.js +26 -19
  31. package/es/lowcode/painter/components/DragDrop/DragDropContext.js +1 -1
  32. package/es/lowcode/painter/components/code-editor/BaseEditor.js +3 -2
  33. package/es/lowcode/painter/components/field-setting/SettingUI.js +7 -7
  34. package/es/lowcode/painter/panel-section/BlocksEditor/index.js +11 -11
  35. package/es/lowcode/painter/panel-section/ButtonType.js +4 -2
  36. package/es/lowcode/painter/panel-section/DataSetSelector.js +4 -1
  37. package/es/lowcode/painter/panel-section/FieldsSetting.js +5 -1
  38. package/es/lowcode/painter/panel-section/SerialsSelector.js +4 -2
  39. package/es/lowcode/painter/panel-section/TreeRootEditor.js +2 -2
  40. package/es/lowcode/painter/style/design.less +1 -1
  41. package/es/lowcode/painter/style/panel-item.less +1 -1
  42. package/es/lowcode/view/Canvas.js +6 -7
  43. package/es/lowcode/view/Page.js +2 -3
  44. package/es/lowcode/view/lc-components/Dialog/FunctionDesign.js +3 -10
  45. package/es/lowcode/view/lc-components/Dialog/index.js +89 -19
  46. package/es/lowcode/view/lc-components/Dialog/meta.json +65 -42
  47. package/es/lowcode/view/lc-components/Form/FunctionDesign.js +23 -33
  48. package/es/lowcode/view/lc-components/Form/index.js +20 -6
  49. package/es/lowcode/view/lc-components/Form/meta.json +3 -3
  50. package/es/lowcode/view/lc-components/Layout/FunctionDesign.js +12 -19
  51. package/es/lowcode/view/lc-components/PageContent/index.js +8 -9
  52. package/es/lowcode/view/lc-components/PageFooter/index.js +2 -5
  53. package/es/lowcode/view/lc-components/PageHeader/index.js +5 -6
  54. package/es/lowcode/view/lc-components/PageModal/index.js +12 -15
  55. package/es/lowcode/view/lc-components/Section/FunctionDesign.js +3 -9
  56. package/es/lowcode/view/lc-components/Split/FunctionDesign.js +11 -18
  57. package/es/lowcode/view/lc-components/Table/index.js +67 -25
  58. package/es/lowcode/view/lc-components/Table/meta.json +4 -4
  59. package/es/lowcode/view/lc-components/Tabs/FunctionDesign.js +9 -17
  60. package/es/lowcode/view/lc-components/Tree/index.js +8 -1
  61. package/es/lowcode/view/lc-components/Tree/meta.json +7 -0
  62. package/es/lowcode/view/lc-components/Wrapper.js +9 -11
  63. package/es/services.js +0 -24
  64. package/es/upload/FilesWall/file.png +0 -0
  65. package/es/upload/FilesWall/index.js +422 -0
  66. package/es/upload/FilesWall/index.less +74 -0
  67. package/es/upload/Form/index.js +2 -1
  68. package/es/upload/FormItem/index.js +2 -1
  69. package/es/upload/index.js +2 -1
  70. package/es/utils/action.js +2 -2
  71. package/lib/components/LDActions/index.less +1 -1
  72. package/lib/components/LdAutoForm/index.js +23 -7
  73. package/lib/components/LdFormList/index.js +25 -18
  74. package/lib/components/LdGrid/index.js +3 -2
  75. package/lib/components/LdGridForm/index.js +14 -4
  76. package/lib/components/LdTree/index.js +3 -2
  77. package/lib/helper/form.js +6 -3
  78. package/lib/locales/zh-CN.js +1 -0
  79. package/lib/lowcode/constants/api-url.js +14 -10
  80. package/lib/lowcode/engine/factory/panel-item-factory/SelectStrategy.js +4 -2
  81. package/lib/lowcode/engine/factory/panel-item-factory/SwitchStrategy.js +4 -2
  82. package/lib/lowcode/engine/meta/dialog.props.default.json +10 -5
  83. package/lib/lowcode/engine/meta/dialog.props.json +72 -42
  84. package/lib/lowcode/engine/meta/form.props.json +3 -3
  85. package/lib/lowcode/engine/meta/table.props.json +4 -4
  86. package/lib/lowcode/engine/meta/tree.props.default.json +1 -0
  87. package/lib/lowcode/engine/meta/tree.props.json +7 -0
  88. package/lib/lowcode/engine/provider/ContextProvider/index.js +25 -41
  89. package/lib/lowcode/engine/provider/RemoteSourceProvider.js +16 -20
  90. package/lib/lowcode/engine/tools/helper.js +2 -3
  91. package/lib/lowcode/engine/tools/useCanvasRender.js +3 -2
  92. package/lib/lowcode/engine/tools/usePageDataStore.js +181 -0
  93. package/lib/lowcode/engine/tools/usePromiseState.js +11 -21
  94. package/lib/lowcode/engine/tools/useTodo.js +19 -9
  95. package/lib/lowcode/painter/DesignOperator.js +10 -21
  96. package/lib/lowcode/painter/DesignToolbar.js +7 -43
  97. package/lib/lowcode/painter/Outline.js +1 -3
  98. package/lib/lowcode/painter/Panel.js +25 -24
  99. package/lib/lowcode/painter/components/ActionBindModal.js +5 -11
  100. package/lib/lowcode/painter/components/AttrsPanel.js +26 -19
  101. package/lib/lowcode/painter/components/DragDrop/DragDropContext.js +1 -1
  102. package/lib/lowcode/painter/components/code-editor/BaseEditor.js +3 -2
  103. package/lib/lowcode/painter/components/field-setting/SettingUI.js +7 -7
  104. package/lib/lowcode/painter/panel-section/BlocksEditor/index.js +10 -10
  105. package/lib/lowcode/painter/panel-section/ButtonType.js +4 -2
  106. package/lib/lowcode/painter/panel-section/DataSetSelector.js +4 -1
  107. package/lib/lowcode/painter/panel-section/FieldsSetting.js +5 -1
  108. package/lib/lowcode/painter/panel-section/SerialsSelector.js +4 -2
  109. package/lib/lowcode/painter/panel-section/TreeRootEditor.js +2 -2
  110. package/lib/lowcode/painter/style/design.less +1 -1
  111. package/lib/lowcode/painter/style/panel-item.less +1 -1
  112. package/lib/lowcode/view/Canvas.js +5 -6
  113. package/lib/lowcode/view/Page.js +2 -3
  114. package/lib/lowcode/view/lc-components/Dialog/FunctionDesign.js +2 -9
  115. package/lib/lowcode/view/lc-components/Dialog/index.js +89 -19
  116. package/lib/lowcode/view/lc-components/Dialog/meta.json +65 -42
  117. package/lib/lowcode/view/lc-components/Form/FunctionDesign.js +20 -31
  118. package/lib/lowcode/view/lc-components/Form/index.js +20 -6
  119. package/lib/lowcode/view/lc-components/Form/meta.json +3 -3
  120. package/lib/lowcode/view/lc-components/Layout/FunctionDesign.js +11 -18
  121. package/lib/lowcode/view/lc-components/PageContent/index.js +7 -8
  122. package/lib/lowcode/view/lc-components/PageFooter/index.js +2 -5
  123. package/lib/lowcode/view/lc-components/PageHeader/index.js +4 -5
  124. package/lib/lowcode/view/lc-components/PageModal/index.js +11 -14
  125. package/lib/lowcode/view/lc-components/Section/FunctionDesign.js +2 -8
  126. package/lib/lowcode/view/lc-components/Split/FunctionDesign.js +10 -17
  127. package/lib/lowcode/view/lc-components/Table/index.js +66 -24
  128. package/lib/lowcode/view/lc-components/Table/meta.json +4 -4
  129. package/lib/lowcode/view/lc-components/Tabs/FunctionDesign.js +8 -16
  130. package/lib/lowcode/view/lc-components/Tree/index.js +8 -1
  131. package/lib/lowcode/view/lc-components/Tree/meta.json +7 -0
  132. package/lib/lowcode/view/lc-components/Wrapper.js +8 -10
  133. package/lib/services.js +0 -25
  134. package/lib/upload/FilesWall/file.png +0 -0
  135. package/lib/upload/FilesWall/index.js +429 -0
  136. package/lib/upload/FilesWall/index.less +74 -0
  137. package/lib/upload/Form/index.js +2 -1
  138. package/lib/upload/FormItem/index.js +2 -1
  139. package/lib/upload/index.js +8 -1
  140. package/lib/utils/action.js +2 -2
  141. package/package.json +4 -3
package/es/services.js CHANGED
@@ -1,6 +1,5 @@
1
1
  import _regeneratorRuntime from "@babel/runtime/helpers/esm/regeneratorRuntime";
2
2
  import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
3
- import { stringify } from 'querystring';
4
3
  import { request } from '@luck-design-biz/base/utils';
5
4
  import api from "@/services/ApiConfig";
6
5
  export function readModlue(_x) {
@@ -21,27 +20,4 @@ function _readModlue() {
21
20
  }, _callee);
22
21
  }));
23
22
  return _readModlue.apply(this, arguments);
24
- }
25
- export function readBehaviorCall(_x2, _x3) {
26
- return _readBehaviorCall.apply(this, arguments);
27
- }
28
- function _readBehaviorCall() {
29
- _readBehaviorCall = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(get, post) {
30
- return _regeneratorRuntime().wrap(function _callee2$(_context2) {
31
- while (1) switch (_context2.prev = _context2.next) {
32
- case 0:
33
- return _context2.abrupt("return", request("".concat(api.API_HOST, "/lowcode/to/behavior/call?").concat(stringify(get)), {
34
- method: 'POST',
35
- body: post,
36
- headers: {
37
- 'Content-Type': 'application/json;charset=UTF-8'
38
- }
39
- }));
40
- case 1:
41
- case "end":
42
- return _context2.stop();
43
- }
44
- }, _callee2);
45
- }));
46
- return _readBehaviorCall.apply(this, arguments);
47
23
  }
Binary file
@@ -0,0 +1,422 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
3
+ import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
4
+ import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
5
+ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
6
+ var _excluded = ["rowKey", "formMode", "beforeUpload", "onUploadChange", "moduleCode", "docUid", "bucket", "operates", "zipName", "showNote", "tag", "maxLength"];
7
+ import React, { forwardRef, useEffect, useImperativeHandle } from 'react';
8
+ import { Button, Checkbox, Dropdown, Icon, Modal, Upload } from 'luck-design/antd';
9
+ import { useSetState } from 'ahooks';
10
+ import PropTypes from 'prop-types';
11
+ import { canPreview, formatMessage, patchDownload, request, showPop } from '@luck-design-biz/base/utils';
12
+ import { getDvaApp } from 'umi';
13
+ import { last, lowerCase, split } from 'lodash';
14
+ import { Box, Permission, PermissionGroup } from 'luck-design';
15
+ import styles from "./index.less";
16
+
17
+ /**
18
+ * 附件墙
19
+ * @param props
20
+ * @returns {JSX.Element}
21
+ * @constructor
22
+ */
23
+ var FilesWall = /*#__PURE__*/forwardRef(function (props, ref) {
24
+ var _props$rowKey = props.rowKey,
25
+ rowKey = _props$rowKey === void 0 ? 'indocno' : _props$rowKey,
26
+ formMode = props.formMode,
27
+ beforeUpload = props.beforeUpload,
28
+ onUploadChange = props.onUploadChange,
29
+ moduleCode = props.moduleCode,
30
+ docUid = props.docUid,
31
+ _props$bucket = props.bucket,
32
+ bucket = _props$bucket === void 0 ? '' : _props$bucket,
33
+ _props$operates = props.operates,
34
+ operates = _props$operates === void 0 ? ['read', 'add', 'delete', 'download'] : _props$operates,
35
+ _props$zipName = props.zipName,
36
+ zipName = _props$zipName === void 0 ? 'download.zip' : _props$zipName,
37
+ _props$showNote = props.showNote,
38
+ showNote = _props$showNote === void 0 ? false : _props$showNote,
39
+ _props$tag = props.tag,
40
+ tag = _props$tag === void 0 ? '' : _props$tag,
41
+ maxLength = props.maxLength,
42
+ rest = _objectWithoutProperties(props, _excluded);
43
+ var _useSetState = useSetState({
44
+ dataSource: [],
45
+ loading: false,
46
+ checkedList: [],
47
+ selectAll: true
48
+ }),
49
+ _useSetState2 = _slicedToArray(_useSetState, 2),
50
+ state = _useSetState2[0],
51
+ setState = _useSetState2[1];
52
+ useEffect(function () {
53
+ if (formMode !== 'add') {
54
+ onQuery();
55
+ }
56
+ }, []);
57
+ var onQuery = function onQuery() {
58
+ setState({
59
+ loading: true
60
+ });
61
+ request(getUrl('loadFileGrid')).then(function (res) {
62
+ var code = res.code,
63
+ list = res.list,
64
+ detail = res.detail;
65
+ if (code === 1) {
66
+ var dataSource = list.map(function (i) {
67
+ return _objectSpread(_objectSpread({}, detail[i]), {}, {
68
+ name: detail[i].origFileName,
69
+ size: detail[i].fileSize,
70
+ spath: detail[i].previewUrl
71
+ });
72
+ });
73
+ setState({
74
+ dataSource: dataSource
75
+ });
76
+ setState({
77
+ loading: false
78
+ });
79
+ }
80
+ });
81
+ };
82
+ useImperativeHandle(ref, function () {
83
+ return {
84
+ getDataSource: function getDataSource() {
85
+ return state.dataSource;
86
+ },
87
+ refreshList: function refreshList() {
88
+ return onQuery();
89
+ }
90
+ };
91
+ });
92
+ var getUrl = function getUrl(behaviorKey) {
93
+ return "".concat(window.appConfig.OSS_HOST_V3, "?moduleCode=").concat(moduleCode, "&bucket=").concat(bucket, "&docUid=").concat(docUid, "&behaviorKey=").concat(behaviorKey, "&tag=").concat(tag);
94
+ };
95
+
96
+ // 预览
97
+ var handlePreview = function handlePreview(file) {
98
+ var files = [];
99
+ state.dataSource.forEach(function (data) {
100
+ var nodePreviewUrl = data.previewUrl;
101
+ files.push({
102
+ uid: data.indocno || data.uid,
103
+ fileExt: data.fileExt || data.fileExt,
104
+ name: data.name,
105
+ previewUrl: "/minioPreview".concat(nodePreviewUrl),
106
+ url: data.spath
107
+ });
108
+ });
109
+ var activeIndex = files.findIndex(function (item) {
110
+ return item.uid === (file.indocno || file.uid);
111
+ });
112
+ window.openPreviewV3(files, {
113
+ activeIndex: activeIndex
114
+ });
115
+ };
116
+ var handleBeforeUpload = function handleBeforeUpload(file, fileList) {
117
+ var _getDvaApp;
118
+ setState({
119
+ loading: true
120
+ });
121
+ var uploadConfig = (_getDvaApp = getDvaApp()) === null || _getDvaApp === void 0 ? void 0 : _getDvaApp._store.getState().settings.upload_config;
122
+ var suffix = lowerCase(last(split(file.name, '.')));
123
+ var flag = uploadConfig && uploadConfig[suffix] && +uploadConfig[suffix] * 1024 * 1024 < file.size;
124
+ if (flag) {
125
+ showPop("".concat(file.name).concat(formatMessage({
126
+ id: 'app.exception.fileTooLarge',
127
+ label: '文件过大'
128
+ })));
129
+ }
130
+ return !flag && (beforeUpload ? beforeUpload(file, fileList) : true);
131
+ };
132
+ var handleUploadChange = function handleUploadChange(e) {
133
+ var file = e.file,
134
+ fileList = e.fileList;
135
+ if (file.status === 'error' || file.response && file.response.code !== 1) {
136
+ var _file$response = file.response,
137
+ msg = _file$response.msg,
138
+ message = _file$response.message;
139
+ showPop(msg || message, null, 'error');
140
+ }
141
+ console.log('handleUploadChange', e);
142
+ setState({
143
+ loading: false
144
+ });
145
+ if (file.status === 'done' && file.response && file.response.code === 1) {
146
+ onQuery();
147
+ }
148
+ setState({
149
+ dataSource: _toConsumableArray(fileList)
150
+ });
151
+ onUploadChange && onUploadChange(e);
152
+ };
153
+ var formItemProps = _objectSpread(_objectSpread({}, rest), {}, {
154
+ action: getUrl('upload'),
155
+ // 上传地址
156
+ headers: {
157
+ Authorization: "Bearer ".concat(window.cookie.get(window.appConfig.authSaveKey))
158
+ },
159
+ // 请求头
160
+ name: 'files',
161
+ multiple: true,
162
+ showUploadList: false,
163
+ beforeUpload: handleBeforeUpload,
164
+ onChange: function onChange(e) {
165
+ handleUploadChange(e);
166
+ }
167
+ });
168
+ var uploadButton = /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Icon, {
169
+ type: "plus"
170
+ }), /*#__PURE__*/React.createElement("div", {
171
+ className: "ant-upload-text"
172
+ }, formatMessage({
173
+ id: 'sys.attr.type.upload'
174
+ })));
175
+
176
+ // 勾选附件
177
+ var onFileCheck = function onFileCheck(e, item) {
178
+ var checkedList = state.checkedList;
179
+ if (e.target.checked) {
180
+ checkedList.push(item);
181
+ setState({
182
+ checkedList: checkedList
183
+ });
184
+ } else {
185
+ var tempList = checkedList.filter(function (c) {
186
+ return c.indocno !== item.indocno;
187
+ });
188
+ setState({
189
+ checkedList: tempList
190
+ });
191
+ }
192
+ };
193
+ var isImage = function isImage(fileExt) {
194
+ return ['.png', '.jpg', '.jpeg', '.gif', '.bmp'].includes(fileExt === null || fileExt === void 0 ? void 0 : fileExt.toLowerCase());
195
+ };
196
+
197
+ // 自定义附件列表
198
+ var renderFileList = function renderFileList() {
199
+ return state.dataSource.map(function (f) {
200
+ return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", {
201
+ className: styles.fileContent
202
+ }, /*#__PURE__*/React.createElement("img", {
203
+ className: styles.img,
204
+ src: isImage(f.fileExt) ? "/minioPreview".concat(f.previewUrl) : require("./file.png"),
205
+ alt: ""
206
+ }), /*#__PURE__*/React.createElement(Checkbox, {
207
+ onChange: function onChange(e) {
208
+ return onFileCheck(e, f);
209
+ },
210
+ checked: state.checkedList.findIndex(function (l) {
211
+ return l.indocno === f.indocno;
212
+ }) > -1,
213
+ className: styles.check
214
+ })), /*#__PURE__*/React.createElement(Box, {
215
+ className: styles.actions,
216
+ justify: "center",
217
+ align: "center"
218
+ }, /*#__PURE__*/React.createElement(Box, {
219
+ justify: "space-around",
220
+ className: styles.actionsChild
221
+ }, /*#__PURE__*/React.createElement(Permission, {
222
+ userPermission: operates || [],
223
+ hasDefaultWord: false
224
+ }, /*#__PURE__*/React.createElement(Icon, {
225
+ wanted: canPreview(f) && 'read',
226
+ type: "eye",
227
+ style: {
228
+ color: 'white'
229
+ },
230
+ onClick: function onClick() {
231
+ return handlePreview(f);
232
+ }
233
+ }), /*#__PURE__*/React.createElement(Icon, {
234
+ wanted: "download",
235
+ type: "download",
236
+ style: {
237
+ color: 'white'
238
+ },
239
+ onClick: function onClick() {
240
+ return handleDownload([f]);
241
+ }
242
+ }), /*#__PURE__*/React.createElement(Icon, {
243
+ wanted: formMode !== 'info' && 'delete',
244
+ type: "delete",
245
+ style: {
246
+ color: 'white'
247
+ },
248
+ onClick: function onClick() {
249
+ return handleDelete([f], false);
250
+ }
251
+ })))));
252
+ });
253
+ };
254
+ var menu = /*#__PURE__*/React.createElement(PermissionGroup, {
255
+ userPermission: operates,
256
+ modeStyle: "menu"
257
+ }, /*#__PURE__*/React.createElement("a", {
258
+ wanted: "download",
259
+ name: "download",
260
+ disabled: state.checkedList.length === 0,
261
+ onClick: function onClick() {
262
+ return handleDownload(state.checkedList, true);
263
+ }
264
+ }, "\u4E0B\u8F7D"), /*#__PURE__*/React.createElement("a", {
265
+ wanted: formMode !== 'info' && 'delete',
266
+ name: "delete",
267
+ disabled: state.checkedList.length === 0,
268
+ onClick: function onClick() {
269
+ Modal.confirm({
270
+ title: formatMessage({
271
+ id: 'app.base.operate.delete'
272
+ }),
273
+ content: formatMessage({
274
+ id: 'app.base.confirm.delete'
275
+ }),
276
+ okText: formatMessage({
277
+ id: 'app.base.operate.ok'
278
+ }),
279
+ okType: 'danger',
280
+ cancelText: formatMessage({
281
+ id: 'app.base.operate.cancel'
282
+ }),
283
+ onOk: function onOk() {
284
+ handleDelete(state.checkedList, true);
285
+ }
286
+ });
287
+ }
288
+ }, "\u5220\u9664"));
289
+
290
+ /**
291
+ * 删除
292
+ * @param selectedRows 选择的数据
293
+ * @param isCheck 是否批量勾选
294
+ */
295
+ var handleDelete = function handleDelete(selectedRows, isCheck) {
296
+ setState({
297
+ loading: true
298
+ });
299
+ request(getUrl('removeFile'), {
300
+ method: 'POST',
301
+ body: {
302
+ fileNames: selectedRows.map(function (row) {
303
+ return row.fileName;
304
+ })
305
+ }
306
+ }).then(function () {
307
+ setState({
308
+ loading: false
309
+ });
310
+ isCheck && setState({
311
+ checkedList: []
312
+ });
313
+ onQuery();
314
+ });
315
+ };
316
+ var handleDownload = function handleDownload(selectedRows, isCheck) {
317
+ if (selectedRows.length === 1) {
318
+ var filenames = selectedRows.map(function (item) {
319
+ return item.fileName;
320
+ });
321
+ downloadFile(filenames, 'downloadOne');
322
+ } else {
323
+ var files = selectedRows.map(function (item) {
324
+ return _objectSpread(_objectSpread({}, item), {}, {
325
+ sname: item.fileName,
326
+ downloadUrl: "".concat(getUrl('download'), "&fileName=").concat(item.fileName),
327
+ stype: item.fileExt
328
+ });
329
+ });
330
+ patchDownload(files);
331
+ }
332
+ isCheck && setState({
333
+ checkedList: []
334
+ });
335
+ };
336
+
337
+ /**
338
+ * 下载附件
339
+ * @param filenames
340
+ * @param tag downloadOne:下载单个,其他批量
341
+ */
342
+ var downloadFile = function downloadFile(filenames, tag) {
343
+ saveAs("".concat(getUrl('download'), "&fileName=").concat(filenames[0]));
344
+ };
345
+ return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", {
346
+ className: styles.operates
347
+ }, /*#__PURE__*/React.createElement(Button, {
348
+ type: "primary",
349
+ loading: state.loading,
350
+ style: {
351
+ marginRight: 8
352
+ },
353
+ onClick: function onClick() {
354
+ return state.selectAll ? setState({
355
+ checkedList: state.dataSource,
356
+ selectAll: false
357
+ }) : setState({
358
+ checkedList: [],
359
+ selectAll: true
360
+ });
361
+ },
362
+ disabled: state.dataSource.length === 0
363
+ }, state.selectAll ? formatMessage({
364
+ id: 'app.base.operate.selectAll',
365
+ label: '全选'
366
+ }) : formatMessage({
367
+ id: 'app.base.operate.selectNone',
368
+ label: '全不选'
369
+ })), /*#__PURE__*/React.createElement(Button, {
370
+ type: "primary",
371
+ loading: state.loading,
372
+ style: {
373
+ marginRight: 8
374
+ },
375
+ onClick: function onClick() {
376
+ return handleDownload(state.dataSource);
377
+ },
378
+ disabled: state.dataSource.length === 0
379
+ }, formatMessage({
380
+ id: 'app.base.operate.downloadAll',
381
+ label: '下载全部'
382
+ })), state.checkedList.length > 0 && /*#__PURE__*/React.createElement(Dropdown, {
383
+ overlay: menu,
384
+ trigger: ['hover']
385
+ }, /*#__PURE__*/React.createElement(Button, null, "\u6279\u91CF\u64CD\u4F5C"))), /*#__PURE__*/React.createElement("div", {
386
+ className: styles.filesWall
387
+ }, renderFileList(), /*#__PURE__*/React.createElement(Upload, _extends({
388
+ listType: "picture-card"
389
+ }, formItemProps, {
390
+ fileList: state.dataSource,
391
+ onPreview: handlePreview,
392
+ showUploadList: false
393
+ }), state.dataSource.length >= maxLength || formMode === 'info' || !operates.includes('add') ? null : uploadButton)));
394
+ });
395
+ FilesWall.propTypes = {
396
+ moduleCode: PropTypes.string.isRequired,
397
+ // 模块code
398
+ docUid: PropTypes.oneOfType([PropTypes.string, PropTypes.number]).isRequired,
399
+ // 单据主键,新增模式下前端生成
400
+ formMode: PropTypes.string,
401
+ // 表单formMode
402
+ operates: PropTypes.array,
403
+ // 表单操作权限
404
+ zipName: PropTypes.string,
405
+ // 打包下载文件名
406
+ bucket: PropTypes.string,
407
+ tag: PropTypes.string,
408
+ // 附件tag标识
409
+ showNote: PropTypes.bool,
410
+ // 是否填写附件备注
411
+ beforeUpload: PropTypes.func,
412
+ // 上传前回调
413
+ onUploadChange: PropTypes.func,
414
+ // 上传后回调
415
+ maxLength: PropTypes.number // 最大上传数量
416
+ };
417
+ FilesWall.defaultProps = {
418
+ bucket: '',
419
+ showNote: false,
420
+ maxLength: 999
421
+ };
422
+ export default FilesWall;
@@ -0,0 +1,74 @@
1
+ .operates {
2
+ display: flex;
3
+ margin-bottom: 8px;
4
+ }
5
+
6
+ .filesWall {
7
+ display: flex;
8
+ flex-wrap: wrap;
9
+ align-items: center;
10
+ width: 100%;
11
+ box-sizing: border-box;
12
+
13
+ .fileContent {
14
+ position: relative;
15
+
16
+ .check {
17
+ position: absolute;
18
+ right: 8px;
19
+ top: -3px;
20
+ }
21
+
22
+ .img {
23
+ position: relative;
24
+ padding: 8px;
25
+ border: 1px solid #d9d9d9;
26
+ border-radius: 4px 0 4px 4px;
27
+ display: table;
28
+ float: left;
29
+ width: 104px;
30
+ height: 104px;
31
+ margin-right: 8px;
32
+ margin-bottom: 8px;
33
+ text-align: center;
34
+ vertical-align: top;
35
+ cursor: pointer;
36
+ -webkit-transition: border-color 0.3s ease;
37
+ transition: border-color 0.3s ease;
38
+ }
39
+ }
40
+
41
+ .actions {
42
+ width: 104px !important;
43
+ height: 104px !important;
44
+ position: absolute;
45
+ background-color: rgba(0, 0, 0, 0.4);
46
+ border-radius: 4px;
47
+ display: none !important;
48
+
49
+ .actionsChild {
50
+ margin-top: 35%;
51
+ }
52
+ }
53
+
54
+ .fileContent:hover + .actions,
55
+ .actions:hover {
56
+ display: block !important;
57
+ }
58
+
59
+ :global {
60
+ .ant-upload-select-picture-card i {
61
+ font-size: 32px;
62
+ color: #999;
63
+ }
64
+
65
+ .ant-upload-select-picture-card .ant-upload-text {
66
+ margin-top: 8px;
67
+ color: #666;
68
+ }
69
+
70
+ .ant-upload-picture-card-wrapper {
71
+ width: auto;
72
+ }
73
+ }
74
+ }
@@ -6,6 +6,7 @@ import { omitBy, isNil } from 'lodash';
6
6
  import { stringify } from 'querystring';
7
7
  import GridForm from "./gridForm";
8
8
  import { request } from '@luck-design-biz/base/utils';
9
+ import { getBehaviorUrl } from "../../lowcode/constants/api-url";
9
10
  function buildComponent(props) {
10
11
  var _formId = props.formId,
11
12
  moduleCode = props.moduleCode,
@@ -29,7 +30,7 @@ function buildComponent(props) {
29
30
  active: !(behaviorKey === 'loadFileGrid' || rest.formMode === 'add' || rest.formMode === 'update'),
30
31
  docUid: docUid || formData[mainFormLdId] && formData[mainFormLdId][PRIMARY_KEY] || ticketData && ticketData[PRIMARY_KEY]
31
32
  }, isNil);
32
- return "".concat(window.appConfig.OSS_HOST_V3, "?").concat(stringify(params));
33
+ return "".concat(getBehaviorUrl(), "?").concat(stringify(params));
33
34
  };
34
35
  return /*#__PURE__*/React.createElement(GridForm, _extends({
35
36
  formId: formId,
@@ -6,6 +6,7 @@ import React from 'react';
6
6
  import { BasicFormItem } from 'luck-design';
7
7
  import { formatMessage, beforeUpload as _beforeUpload, getSupportUploadTypes } from '@luck-design-biz/base/utils';
8
8
  import { useCreation } from 'ahooks';
9
+ import { getBehaviorUrl } from "../../lowcode/constants/api-url";
9
10
 
10
11
  /**
11
12
  * 表单类型富文本上传
@@ -41,7 +42,7 @@ function buildComponent(props) {
41
42
  listType = props.listType,
42
43
  rest = _objectWithoutProperties(props, _excluded);
43
44
  var getUrl = function getUrl(behaviorKey) {
44
- return "".concat(window.appConfig.OSS_HOST_V3, "?moduleCode=").concat(moduleCode, "&behaviorKey=").concat(behaviorKey, "&bucket=").concat(bucket, "&tag=").concat(tag, "&note=").concat(note);
45
+ return "".concat(getBehaviorUrl(), "?moduleCode=").concat(moduleCode, "&behaviorKey=").concat(behaviorKey, "&bucket=").concat(bucket, "&tag=").concat(tag, "&note=").concat(note);
45
46
  };
46
47
  var supportUploadTypes = useCreation(function () {
47
48
  return getSupportUploadTypes(forbiddenTypes);
@@ -1,3 +1,4 @@
1
1
  export { default as buildUploadForm } from "./Form";
2
2
  export { default as buildUploadFormItem } from "./FormItem";
3
- export { default as UploadGridCell } from "./GridCell";
3
+ export { default as UploadGridCell } from "./GridCell";
4
+ export { default as UploadFilesWall } from "./FilesWall";
@@ -2,7 +2,7 @@ import _regeneratorRuntime from "@babel/runtime/helpers/esm/regeneratorRuntime";
2
2
  import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
3
3
  import _asyncToGenerator from "@babel/runtime/helpers/esm/asyncToGenerator";
4
4
  // 行为请求同一接口
5
- import { readBehaviorCall } from "../services";
5
+ import { fetchCallBehavior } from "../lowcode/constants/api-url";
6
6
  export function behaviorCall() {
7
7
  return _behaviorCall.apply(this, arguments);
8
8
  }
@@ -18,7 +18,7 @@ function _behaviorCall() {
18
18
  get = _args.length > 0 && _args[0] !== undefined ? _args[0] : {};
19
19
  post = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};
20
20
  datasetCode = get.datasetCode;
21
- return _context.abrupt("return", readBehaviorCall(_objectSpread(_objectSpread({}, get), {}, {
21
+ return _context.abrupt("return", fetchCallBehavior(_objectSpread(_objectSpread({}, get), {}, {
22
22
  datasetCode: datasetCode || Object.keys(post).join(',')
23
23
  }), post));
24
24
  case 4:
@@ -6,7 +6,7 @@
6
6
  .ldActions {
7
7
 
8
8
  button:not(:last-child) {
9
- margin-right: 8px;
9
+ margin-right: 2px;
10
10
  }
11
11
  span {
12
12
  cursor: pointer;
@@ -12,11 +12,12 @@ var _objectSpread3 = _interopRequireDefault(require("@babel/runtime/helpers/obje
12
12
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
13
  var _react = _interopRequireWildcard(require("react"));
14
14
  var _lodash = require("lodash");
15
+ var _luckDesign = require("luck-design");
15
16
  var _FormList = require("@luck-design-biz/base/FormList");
16
17
  var _ldBuilder = _interopRequireDefault(require("../../helper/ldBuilder"));
17
18
  var _utils = require("../../utils");
18
19
  var _Builder = require("../Builder");
19
- var _excluded = ["columns", "resources", "actions", "doAction", "ldId", "dataSetKey", "filedsRewrite", "mainFormLdId", "mainDataSetKey", "onValueChange", "onQuery", "onAdd", "onUpdate", "moduleCode", "defaultDataSourceFormat", "ticketData", "relationKey"];
20
+ var _excluded = ["columns", "resources", "actions", "doAction", "ldId", "dataSetKey", "filedsRewrite", "mainFormLdId", "mainDataSetKey", "onValueChange", "onQuery", "onAdd", "onUpdate", "moduleCode", "defaultDataSourceFormat", "ticketData", "relationKey", "fields"];
20
21
  var buildLdAutoForm = function buildLdAutoForm(_ref) {
21
22
  var _ref$columns = _ref.columns,
22
23
  columns = _ref$columns === void 0 ? [] : _ref$columns,
@@ -49,20 +50,33 @@ var buildLdAutoForm = function buildLdAutoForm(_ref) {
49
50
  ticketData = _ref$ticketData === void 0 ? {} : _ref$ticketData,
50
51
  _ref$relationKey = _ref.relationKey,
51
52
  relationKey = _ref$relationKey === void 0 ? window.appConfig.constraintKeys.PRIMARY : _ref$relationKey,
53
+ fields = _ref.fields,
52
54
  props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
53
55
  var _ref2 = (0, _react.useContext)(_Builder.LuckDaContext) || {},
54
56
  setFieldProps = _ref2.setFieldProps;
55
- var defaultValues = /*#__PURE__*/(0, _react.createRef)();
57
+ var defaultValues = /*#__PURE__*/(0, _react.createRef)({});
56
58
  var isMain = ldId === mainFormLdId;
57
59
  var basicItems = function () {
60
+ var fieldsObj = (0, _lodash.keyBy)(fields, 'field');
61
+ var columnsObj = (0, _lodash.keyBy)(columns, 'field');
62
+ var keys = (0, _lodash.isEmpty)(fields) ? Object.keys(columnsObj) : Object.keys(fieldsObj);
58
63
  var _defaultValues = {};
59
- var _nodes = (0, _lodash.transform)(columns, function (result, col) {
60
- if (col.isShowInForm) {
61
- var customFiled = filedsRewrite.find(function (field) {
62
- return field.name === col.aliaName;
64
+ var _nodes = (0, _lodash.reduce)(keys, function (result, key) {
65
+ var setting = fieldsObj[key];
66
+ var col = columnsObj[key];
67
+ if ((setting === null || setting === void 0 ? void 0 : setting._type) === 'divider') {
68
+ result.push( /*#__PURE__*/_react.default.createElement(_luckDesign.BasicDivider, {
69
+ title: setting === null || setting === void 0 ? void 0 : setting.fieldAliasName
70
+ }));
71
+ } else if (col.isShowInForm) {
72
+ var customFiled = filedsRewrite.find(function (_field) {
73
+ return _field.name === col.aliaName;
63
74
  }) || {};
64
75
  _defaultValues = (0, _objectSpread3.default)((0, _objectSpread3.default)({}, _defaultValues), {}, (0, _defineProperty2.default)((0, _defineProperty2.default)({}, col.aliaName, col['optDefaultValue']), "".concat(col.aliaName, "_virtual"), col['optDefaultValueCvt']));
65
- result.push((0, _utils.getFormItem)(col, (0, _objectSpread3.default)((0, _objectSpread3.default)({
76
+ var newCol = (0, _objectSpread3.default)((0, _objectSpread3.default)({}, col), {}, {
77
+ fieldName: (setting === null || setting === void 0 ? void 0 : setting.fieldAliasName) || col.fieldName
78
+ }, (0, _lodash.pick)(setting, ['col', 'row', 'note', 'tip', 'placeholder']));
79
+ result.push((0, _utils.getFormItem)(newCol, (0, _objectSpread3.default)((0, _objectSpread3.default)({
66
80
  formId: ldId,
67
81
  moduleCode: moduleCode
68
82
  }, customFiled), {}, {
@@ -71,6 +85,8 @@ var buildLdAutoForm = function buildLdAutoForm(_ref) {
71
85
  }
72
86
  })));
73
87
  }
88
+ ;
89
+ return result;
74
90
  }, []);
75
91
  defaultValues.current = _defaultValues;
76
92
  setFieldProps && setFieldProps((0, _defineProperty2.default)({}, ldId, _nodes.map(function (i) {