@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/lib/services.js CHANGED
@@ -4,11 +4,9 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.readBehaviorCall = readBehaviorCall;
8
7
  exports.readModlue = readModlue;
9
8
  var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
10
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
11
- var _querystring = require("querystring");
12
10
  var _utils = require("@luck-design-biz/base/utils");
13
11
  var _ApiConfig = _interopRequireDefault(require("@/services/ApiConfig"));
14
12
  function readModlue(_x) {
@@ -29,27 +27,4 @@ function _readModlue() {
29
27
  }, _callee);
30
28
  }));
31
29
  return _readModlue.apply(this, arguments);
32
- }
33
- function readBehaviorCall(_x2, _x3) {
34
- return _readBehaviorCall.apply(this, arguments);
35
- }
36
- function _readBehaviorCall() {
37
- _readBehaviorCall = (0, _asyncToGenerator2.default)( /*#__PURE__*/(0, _regeneratorRuntime2.default)().mark(function _callee2(get, post) {
38
- return (0, _regeneratorRuntime2.default)().wrap(function _callee2$(_context2) {
39
- while (1) switch (_context2.prev = _context2.next) {
40
- case 0:
41
- return _context2.abrupt("return", (0, _utils.request)("".concat(_ApiConfig.default.API_HOST, "/lowcode/to/behavior/call?").concat((0, _querystring.stringify)(get)), {
42
- method: 'POST',
43
- body: post,
44
- headers: {
45
- 'Content-Type': 'application/json;charset=UTF-8'
46
- }
47
- }));
48
- case 1:
49
- case "end":
50
- return _context2.stop();
51
- }
52
- }, _callee2);
53
- }));
54
- return _readBehaviorCall.apply(this, arguments);
55
30
  }
Binary file
@@ -0,0 +1,429 @@
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 _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
+ var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
12
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
14
+ var _react = _interopRequireWildcard(require("react"));
15
+ var _antd = require("luck-design/antd");
16
+ var _ahooks = require("ahooks");
17
+ var _propTypes = _interopRequireDefault(require("prop-types"));
18
+ var _utils = require("@luck-design-biz/base/utils");
19
+ var _umi = require("umi");
20
+ var _lodash = require("lodash");
21
+ var _luckDesign = require("luck-design");
22
+ var _index = _interopRequireDefault(require("./index.less"));
23
+ var _excluded = ["rowKey", "formMode", "beforeUpload", "onUploadChange", "moduleCode", "docUid", "bucket", "operates", "zipName", "showNote", "tag", "maxLength"];
24
+ /**
25
+ * 附件墙
26
+ * @param props
27
+ * @returns {JSX.Element}
28
+ * @constructor
29
+ */
30
+ var FilesWall = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
31
+ var _props$rowKey = props.rowKey,
32
+ rowKey = _props$rowKey === void 0 ? 'indocno' : _props$rowKey,
33
+ formMode = props.formMode,
34
+ beforeUpload = props.beforeUpload,
35
+ onUploadChange = props.onUploadChange,
36
+ moduleCode = props.moduleCode,
37
+ docUid = props.docUid,
38
+ _props$bucket = props.bucket,
39
+ bucket = _props$bucket === void 0 ? '' : _props$bucket,
40
+ _props$operates = props.operates,
41
+ operates = _props$operates === void 0 ? ['read', 'add', 'delete', 'download'] : _props$operates,
42
+ _props$zipName = props.zipName,
43
+ zipName = _props$zipName === void 0 ? 'download.zip' : _props$zipName,
44
+ _props$showNote = props.showNote,
45
+ showNote = _props$showNote === void 0 ? false : _props$showNote,
46
+ _props$tag = props.tag,
47
+ tag = _props$tag === void 0 ? '' : _props$tag,
48
+ maxLength = props.maxLength,
49
+ rest = (0, _objectWithoutProperties2.default)(props, _excluded);
50
+ var _useSetState = (0, _ahooks.useSetState)({
51
+ dataSource: [],
52
+ loading: false,
53
+ checkedList: [],
54
+ selectAll: true
55
+ }),
56
+ _useSetState2 = (0, _slicedToArray2.default)(_useSetState, 2),
57
+ state = _useSetState2[0],
58
+ setState = _useSetState2[1];
59
+ (0, _react.useEffect)(function () {
60
+ if (formMode !== 'add') {
61
+ onQuery();
62
+ }
63
+ }, []);
64
+ var onQuery = function onQuery() {
65
+ setState({
66
+ loading: true
67
+ });
68
+ (0, _utils.request)(getUrl('loadFileGrid')).then(function (res) {
69
+ var code = res.code,
70
+ list = res.list,
71
+ detail = res.detail;
72
+ if (code === 1) {
73
+ var dataSource = list.map(function (i) {
74
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, detail[i]), {}, {
75
+ name: detail[i].origFileName,
76
+ size: detail[i].fileSize,
77
+ spath: detail[i].previewUrl
78
+ });
79
+ });
80
+ setState({
81
+ dataSource: dataSource
82
+ });
83
+ setState({
84
+ loading: false
85
+ });
86
+ }
87
+ });
88
+ };
89
+ (0, _react.useImperativeHandle)(ref, function () {
90
+ return {
91
+ getDataSource: function getDataSource() {
92
+ return state.dataSource;
93
+ },
94
+ refreshList: function refreshList() {
95
+ return onQuery();
96
+ }
97
+ };
98
+ });
99
+ var getUrl = function getUrl(behaviorKey) {
100
+ return "".concat(window.appConfig.OSS_HOST_V3, "?moduleCode=").concat(moduleCode, "&bucket=").concat(bucket, "&docUid=").concat(docUid, "&behaviorKey=").concat(behaviorKey, "&tag=").concat(tag);
101
+ };
102
+
103
+ // 预览
104
+ var handlePreview = function handlePreview(file) {
105
+ var files = [];
106
+ state.dataSource.forEach(function (data) {
107
+ var nodePreviewUrl = data.previewUrl;
108
+ files.push({
109
+ uid: data.indocno || data.uid,
110
+ fileExt: data.fileExt || data.fileExt,
111
+ name: data.name,
112
+ previewUrl: "/minioPreview".concat(nodePreviewUrl),
113
+ url: data.spath
114
+ });
115
+ });
116
+ var activeIndex = files.findIndex(function (item) {
117
+ return item.uid === (file.indocno || file.uid);
118
+ });
119
+ window.openPreviewV3(files, {
120
+ activeIndex: activeIndex
121
+ });
122
+ };
123
+ var handleBeforeUpload = function handleBeforeUpload(file, fileList) {
124
+ var _getDvaApp;
125
+ setState({
126
+ loading: true
127
+ });
128
+ var uploadConfig = (_getDvaApp = (0, _umi.getDvaApp)()) === null || _getDvaApp === void 0 ? void 0 : _getDvaApp._store.getState().settings.upload_config;
129
+ var suffix = (0, _lodash.lowerCase)((0, _lodash.last)((0, _lodash.split)(file.name, '.')));
130
+ var flag = uploadConfig && uploadConfig[suffix] && +uploadConfig[suffix] * 1024 * 1024 < file.size;
131
+ if (flag) {
132
+ (0, _utils.showPop)("".concat(file.name).concat((0, _utils.formatMessage)({
133
+ id: 'app.exception.fileTooLarge',
134
+ label: '文件过大'
135
+ })));
136
+ }
137
+ return !flag && (beforeUpload ? beforeUpload(file, fileList) : true);
138
+ };
139
+ var handleUploadChange = function handleUploadChange(e) {
140
+ var file = e.file,
141
+ fileList = e.fileList;
142
+ if (file.status === 'error' || file.response && file.response.code !== 1) {
143
+ var _file$response = file.response,
144
+ msg = _file$response.msg,
145
+ message = _file$response.message;
146
+ (0, _utils.showPop)(msg || message, null, 'error');
147
+ }
148
+ console.log('handleUploadChange', e);
149
+ setState({
150
+ loading: false
151
+ });
152
+ if (file.status === 'done' && file.response && file.response.code === 1) {
153
+ onQuery();
154
+ }
155
+ setState({
156
+ dataSource: (0, _toConsumableArray2.default)(fileList)
157
+ });
158
+ onUploadChange && onUploadChange(e);
159
+ };
160
+ var formItemProps = (0, _objectSpread2.default)((0, _objectSpread2.default)({}, rest), {}, {
161
+ action: getUrl('upload'),
162
+ // 上传地址
163
+ headers: {
164
+ Authorization: "Bearer ".concat(window.cookie.get(window.appConfig.authSaveKey))
165
+ },
166
+ // 请求头
167
+ name: 'files',
168
+ multiple: true,
169
+ showUploadList: false,
170
+ beforeUpload: handleBeforeUpload,
171
+ onChange: function onChange(e) {
172
+ handleUploadChange(e);
173
+ }
174
+ });
175
+ var uploadButton = /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_antd.Icon, {
176
+ type: "plus"
177
+ }), /*#__PURE__*/_react.default.createElement("div", {
178
+ className: "ant-upload-text"
179
+ }, (0, _utils.formatMessage)({
180
+ id: 'sys.attr.type.upload'
181
+ })));
182
+
183
+ // 勾选附件
184
+ var onFileCheck = function onFileCheck(e, item) {
185
+ var checkedList = state.checkedList;
186
+ if (e.target.checked) {
187
+ checkedList.push(item);
188
+ setState({
189
+ checkedList: checkedList
190
+ });
191
+ } else {
192
+ var tempList = checkedList.filter(function (c) {
193
+ return c.indocno !== item.indocno;
194
+ });
195
+ setState({
196
+ checkedList: tempList
197
+ });
198
+ }
199
+ };
200
+ var isImage = function isImage(fileExt) {
201
+ return ['.png', '.jpg', '.jpeg', '.gif', '.bmp'].includes(fileExt === null || fileExt === void 0 ? void 0 : fileExt.toLowerCase());
202
+ };
203
+
204
+ // 自定义附件列表
205
+ var renderFileList = function renderFileList() {
206
+ return state.dataSource.map(function (f) {
207
+ return /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", {
208
+ className: _index.default.fileContent
209
+ }, /*#__PURE__*/_react.default.createElement("img", {
210
+ className: _index.default.img,
211
+ src: isImage(f.fileExt) ? "/minioPreview".concat(f.previewUrl) : require("./file.png"),
212
+ alt: ""
213
+ }), /*#__PURE__*/_react.default.createElement(_antd.Checkbox, {
214
+ onChange: function onChange(e) {
215
+ return onFileCheck(e, f);
216
+ },
217
+ checked: state.checkedList.findIndex(function (l) {
218
+ return l.indocno === f.indocno;
219
+ }) > -1,
220
+ className: _index.default.check
221
+ })), /*#__PURE__*/_react.default.createElement(_luckDesign.Box, {
222
+ className: _index.default.actions,
223
+ justify: "center",
224
+ align: "center"
225
+ }, /*#__PURE__*/_react.default.createElement(_luckDesign.Box, {
226
+ justify: "space-around",
227
+ className: _index.default.actionsChild
228
+ }, /*#__PURE__*/_react.default.createElement(_luckDesign.Permission, {
229
+ userPermission: operates || [],
230
+ hasDefaultWord: false
231
+ }, /*#__PURE__*/_react.default.createElement(_antd.Icon, {
232
+ wanted: (0, _utils.canPreview)(f) && 'read',
233
+ type: "eye",
234
+ style: {
235
+ color: 'white'
236
+ },
237
+ onClick: function onClick() {
238
+ return handlePreview(f);
239
+ }
240
+ }), /*#__PURE__*/_react.default.createElement(_antd.Icon, {
241
+ wanted: "download",
242
+ type: "download",
243
+ style: {
244
+ color: 'white'
245
+ },
246
+ onClick: function onClick() {
247
+ return handleDownload([f]);
248
+ }
249
+ }), /*#__PURE__*/_react.default.createElement(_antd.Icon, {
250
+ wanted: formMode !== 'info' && 'delete',
251
+ type: "delete",
252
+ style: {
253
+ color: 'white'
254
+ },
255
+ onClick: function onClick() {
256
+ return handleDelete([f], false);
257
+ }
258
+ })))));
259
+ });
260
+ };
261
+ var menu = /*#__PURE__*/_react.default.createElement(_luckDesign.PermissionGroup, {
262
+ userPermission: operates,
263
+ modeStyle: "menu"
264
+ }, /*#__PURE__*/_react.default.createElement("a", {
265
+ wanted: "download",
266
+ name: "download",
267
+ disabled: state.checkedList.length === 0,
268
+ onClick: function onClick() {
269
+ return handleDownload(state.checkedList, true);
270
+ }
271
+ }, "\u4E0B\u8F7D"), /*#__PURE__*/_react.default.createElement("a", {
272
+ wanted: formMode !== 'info' && 'delete',
273
+ name: "delete",
274
+ disabled: state.checkedList.length === 0,
275
+ onClick: function onClick() {
276
+ _antd.Modal.confirm({
277
+ title: (0, _utils.formatMessage)({
278
+ id: 'app.base.operate.delete'
279
+ }),
280
+ content: (0, _utils.formatMessage)({
281
+ id: 'app.base.confirm.delete'
282
+ }),
283
+ okText: (0, _utils.formatMessage)({
284
+ id: 'app.base.operate.ok'
285
+ }),
286
+ okType: 'danger',
287
+ cancelText: (0, _utils.formatMessage)({
288
+ id: 'app.base.operate.cancel'
289
+ }),
290
+ onOk: function onOk() {
291
+ handleDelete(state.checkedList, true);
292
+ }
293
+ });
294
+ }
295
+ }, "\u5220\u9664"));
296
+
297
+ /**
298
+ * 删除
299
+ * @param selectedRows 选择的数据
300
+ * @param isCheck 是否批量勾选
301
+ */
302
+ var handleDelete = function handleDelete(selectedRows, isCheck) {
303
+ setState({
304
+ loading: true
305
+ });
306
+ (0, _utils.request)(getUrl('removeFile'), {
307
+ method: 'POST',
308
+ body: {
309
+ fileNames: selectedRows.map(function (row) {
310
+ return row.fileName;
311
+ })
312
+ }
313
+ }).then(function () {
314
+ setState({
315
+ loading: false
316
+ });
317
+ isCheck && setState({
318
+ checkedList: []
319
+ });
320
+ onQuery();
321
+ });
322
+ };
323
+ var handleDownload = function handleDownload(selectedRows, isCheck) {
324
+ if (selectedRows.length === 1) {
325
+ var filenames = selectedRows.map(function (item) {
326
+ return item.fileName;
327
+ });
328
+ downloadFile(filenames, 'downloadOne');
329
+ } else {
330
+ var files = selectedRows.map(function (item) {
331
+ return (0, _objectSpread2.default)((0, _objectSpread2.default)({}, item), {}, {
332
+ sname: item.fileName,
333
+ downloadUrl: "".concat(getUrl('download'), "&fileName=").concat(item.fileName),
334
+ stype: item.fileExt
335
+ });
336
+ });
337
+ (0, _utils.patchDownload)(files);
338
+ }
339
+ isCheck && setState({
340
+ checkedList: []
341
+ });
342
+ };
343
+
344
+ /**
345
+ * 下载附件
346
+ * @param filenames
347
+ * @param tag downloadOne:下载单个,其他批量
348
+ */
349
+ var downloadFile = function downloadFile(filenames, tag) {
350
+ saveAs("".concat(getUrl('download'), "&fileName=").concat(filenames[0]));
351
+ };
352
+ return /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", {
353
+ className: _index.default.operates
354
+ }, /*#__PURE__*/_react.default.createElement(_antd.Button, {
355
+ type: "primary",
356
+ loading: state.loading,
357
+ style: {
358
+ marginRight: 8
359
+ },
360
+ onClick: function onClick() {
361
+ return state.selectAll ? setState({
362
+ checkedList: state.dataSource,
363
+ selectAll: false
364
+ }) : setState({
365
+ checkedList: [],
366
+ selectAll: true
367
+ });
368
+ },
369
+ disabled: state.dataSource.length === 0
370
+ }, state.selectAll ? (0, _utils.formatMessage)({
371
+ id: 'app.base.operate.selectAll',
372
+ label: '全选'
373
+ }) : (0, _utils.formatMessage)({
374
+ id: 'app.base.operate.selectNone',
375
+ label: '全不选'
376
+ })), /*#__PURE__*/_react.default.createElement(_antd.Button, {
377
+ type: "primary",
378
+ loading: state.loading,
379
+ style: {
380
+ marginRight: 8
381
+ },
382
+ onClick: function onClick() {
383
+ return handleDownload(state.dataSource);
384
+ },
385
+ disabled: state.dataSource.length === 0
386
+ }, (0, _utils.formatMessage)({
387
+ id: 'app.base.operate.downloadAll',
388
+ label: '下载全部'
389
+ })), state.checkedList.length > 0 && /*#__PURE__*/_react.default.createElement(_antd.Dropdown, {
390
+ overlay: menu,
391
+ trigger: ['hover']
392
+ }, /*#__PURE__*/_react.default.createElement(_antd.Button, null, "\u6279\u91CF\u64CD\u4F5C"))), /*#__PURE__*/_react.default.createElement("div", {
393
+ className: _index.default.filesWall
394
+ }, renderFileList(), /*#__PURE__*/_react.default.createElement(_antd.Upload, (0, _extends2.default)({
395
+ listType: "picture-card"
396
+ }, formItemProps, {
397
+ fileList: state.dataSource,
398
+ onPreview: handlePreview,
399
+ showUploadList: false
400
+ }), state.dataSource.length >= maxLength || formMode === 'info' || !operates.includes('add') ? null : uploadButton)));
401
+ });
402
+ FilesWall.propTypes = {
403
+ moduleCode: _propTypes.default.string.isRequired,
404
+ // 模块code
405
+ docUid: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.number]).isRequired,
406
+ // 单据主键,新增模式下前端生成
407
+ formMode: _propTypes.default.string,
408
+ // 表单formMode
409
+ operates: _propTypes.default.array,
410
+ // 表单操作权限
411
+ zipName: _propTypes.default.string,
412
+ // 打包下载文件名
413
+ bucket: _propTypes.default.string,
414
+ tag: _propTypes.default.string,
415
+ // 附件tag标识
416
+ showNote: _propTypes.default.bool,
417
+ // 是否填写附件备注
418
+ beforeUpload: _propTypes.default.func,
419
+ // 上传前回调
420
+ onUploadChange: _propTypes.default.func,
421
+ // 上传后回调
422
+ maxLength: _propTypes.default.number // 最大上传数量
423
+ };
424
+ FilesWall.defaultProps = {
425
+ bucket: '',
426
+ showNote: false,
427
+ maxLength: 999
428
+ };
429
+ var _default = exports.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
+ }
@@ -12,6 +12,7 @@ var _lodash = require("lodash");
12
12
  var _querystring = require("querystring");
13
13
  var _gridForm = _interopRequireDefault(require("./gridForm"));
14
14
  var _utils = require("@luck-design-biz/base/utils");
15
+ var _apiUrl = require("../../lowcode/constants/api-url");
15
16
  var _excluded = ["formId", "moduleCode", "bucket", "note"];
16
17
  function buildComponent(props) {
17
18
  var _formId = props.formId,
@@ -36,7 +37,7 @@ function buildComponent(props) {
36
37
  active: !(behaviorKey === 'loadFileGrid' || rest.formMode === 'add' || rest.formMode === 'update'),
37
38
  docUid: docUid || formData[mainFormLdId] && formData[mainFormLdId][PRIMARY_KEY] || ticketData && ticketData[PRIMARY_KEY]
38
39
  }, _lodash.isNil);
39
- return "".concat(window.appConfig.OSS_HOST_V3, "?").concat((0, _querystring.stringify)(params));
40
+ return "".concat((0, _apiUrl.getBehaviorUrl)(), "?").concat((0, _querystring.stringify)(params));
40
41
  };
41
42
  return /*#__PURE__*/_react.default.createElement(_gridForm.default, (0, _extends2.default)({
42
43
  formId: formId,
@@ -12,6 +12,7 @@ var _react = _interopRequireDefault(require("react"));
12
12
  var _luckDesign = require("luck-design");
13
13
  var _utils = require("@luck-design-biz/base/utils");
14
14
  var _ahooks = require("ahooks");
15
+ var _apiUrl = require("../../lowcode/constants/api-url");
15
16
  var _excluded = ["uploadUrl", "moduleCode", "bucket", "tag", "note", "config", "forbiddenTypes", "children", "dataFormat", "listType"];
16
17
  /**
17
18
  * 表单类型富文本上传
@@ -47,7 +48,7 @@ function buildComponent(props) {
47
48
  listType = props.listType,
48
49
  rest = (0, _objectWithoutProperties2.default)(props, _excluded);
49
50
  var getUrl = function getUrl(behaviorKey) {
50
- return "".concat(window.appConfig.OSS_HOST_V3, "?moduleCode=").concat(moduleCode, "&behaviorKey=").concat(behaviorKey, "&bucket=").concat(bucket, "&tag=").concat(tag, "&note=").concat(note);
51
+ return "".concat((0, _apiUrl.getBehaviorUrl)(), "?moduleCode=").concat(moduleCode, "&behaviorKey=").concat(behaviorKey, "&bucket=").concat(bucket, "&tag=").concat(tag, "&note=").concat(note);
51
52
  };
52
53
  var supportUploadTypes = (0, _ahooks.useCreation)(function () {
53
54
  return (0, _utils.getSupportUploadTypes)(forbiddenTypes);
@@ -4,6 +4,12 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
+ Object.defineProperty(exports, "UploadFilesWall", {
8
+ enumerable: true,
9
+ get: function get() {
10
+ return _FilesWall.default;
11
+ }
12
+ });
7
13
  Object.defineProperty(exports, "UploadGridCell", {
8
14
  enumerable: true,
9
15
  get: function get() {
@@ -24,4 +30,5 @@ Object.defineProperty(exports, "buildUploadFormItem", {
24
30
  });
25
31
  var _Form = _interopRequireDefault(require("./Form"));
26
32
  var _FormItem = _interopRequireDefault(require("./FormItem"));
27
- var _GridCell = _interopRequireDefault(require("./GridCell"));
33
+ var _GridCell = _interopRequireDefault(require("./GridCell"));
34
+ var _FilesWall = _interopRequireDefault(require("./FilesWall"));
@@ -8,7 +8,7 @@ exports.behaviorCall = behaviorCall;
8
8
  var _regeneratorRuntime2 = _interopRequireDefault(require("@babel/runtime/helpers/regeneratorRuntime"));
9
9
  var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
10
10
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
11
- var _services = require("../services");
11
+ var _apiUrl = require("../lowcode/constants/api-url");
12
12
  // 行为请求同一接口
13
13
  function behaviorCall() {
14
14
  return _behaviorCall.apply(this, arguments);
@@ -25,7 +25,7 @@ function _behaviorCall() {
25
25
  get = _args.length > 0 && _args[0] !== undefined ? _args[0] : {};
26
26
  post = _args.length > 1 && _args[1] !== undefined ? _args[1] : {};
27
27
  datasetCode = get.datasetCode;
28
- return _context.abrupt("return", (0, _services.readBehaviorCall)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, get), {}, {
28
+ return _context.abrupt("return", (0, _apiUrl.fetchCallBehavior)((0, _objectSpread2.default)((0, _objectSpread2.default)({}, get), {}, {
29
29
  datasetCode: datasetCode || Object.keys(post).join(',')
30
30
  }), post));
31
31
  case 4:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@luck-design-biz/luckda",
3
- "version": "0.0.25-6",
3
+ "version": "0.0.25-7",
4
4
  "description": "前端配置管理中心业务组件库",
5
5
  "scripts": {
6
6
  "start": "cross-env NODE_OPTIONS=--max-old-space-size=10240 USER_RUNTIME=SITE RUNTIME=dev umi dev",
@@ -63,7 +63,8 @@
63
63
  "querystring": "^0.2.0",
64
64
  "react": "^16.12.0",
65
65
  "react-color": "^2.19.3",
66
- "styled-components": "^6.1.8"
66
+ "styled-components": "^6.1.8",
67
+ "zustand": "^4.5.2"
67
68
  },
68
69
  "devDependencies": {
69
70
  "@amap/amap-jsapi-loader": "^0.0.7",
@@ -76,7 +77,7 @@
76
77
  "@babel/plugin-transform-strict-mode": "^7.18.6",
77
78
  "@babel/polyfill": "^7.12.1",
78
79
  "@babel/traverse": "^7.24.1",
79
- "@luck-design-biz/base": "0.0.44",
80
+ "@luck-design-biz/base": "0.0.45-2",
80
81
  "@luck-design-biz/bpm": "0.0.5",
81
82
  "@luck-helper/ui-design": "0.0.6",
82
83
  "@types/classnames": "^2.3.1",