@luck-design-biz/luckda 0.0.15 → 0.0.16-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.
- package/es/components/LdFormList/index.js +114 -54
- package/es/components/LdGrid/index.js +1 -1
- package/es/helper/FromItems.js +5 -6
- package/es/helper/action.js +57 -38
- package/es/upload/Form/gridForm.js +378 -0
- package/es/upload/Form/index.js +84 -0
- package/es/upload/Form/index.less +7 -0
- package/es/upload/FormItem/index.js +78 -0
- package/es/upload/GridCell/index.js +27 -0
- package/es/upload/index.js +3 -0
- package/es/utils/form.js +25 -11
- package/es/utils/grid.js +18 -4
- package/lib/components/LdFormList/index.js +113 -53
- package/lib/components/LdGrid/index.js +1 -1
- package/lib/helper/FromItems.js +4 -5
- package/lib/helper/action.js +56 -37
- package/lib/upload/Form/gridForm.js +387 -0
- package/lib/upload/Form/index.js +92 -0
- package/lib/upload/Form/index.less +7 -0
- package/lib/upload/FormItem/index.js +85 -0
- package/lib/upload/GridCell/index.js +35 -0
- package/lib/upload/index.js +27 -0
- package/lib/utils/form.js +25 -11
- package/lib/utils/grid.js +18 -4
- package/package.json +3 -2
- package/upload.js +1 -0
|
@@ -0,0 +1,378 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
3
|
+
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
|
|
4
|
+
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
5
|
+
var _excluded = ["formId", "formRef", "showNote", "operates", "loading", "uploadUrl", "forbiddenTypes", "beforeUpload", "formMode", "onUploadChange", "zipName", "resetActions", "getUrl"];
|
|
6
|
+
import React, { useState, useRef, forwardRef } from 'react';
|
|
7
|
+
import { getDvaApp } from 'umi';
|
|
8
|
+
import { useMemoizedFn } from 'ahooks';
|
|
9
|
+
import { Button, Upload, Tooltip, Icon } from 'antd';
|
|
10
|
+
import moment from 'moment';
|
|
11
|
+
import { last } from 'lodash';
|
|
12
|
+
import { BasicForm, BasicFormItem, PopWindow } from 'luck-design';
|
|
13
|
+
import api from '@/services/ApiConfig';
|
|
14
|
+
import { FormBtn, GridForm } from '@luck-design-biz/base/FormList';
|
|
15
|
+
import { byteConvert, formatMessage, beforeUpload as _beforeUpload2, patchDownloadZip, showPop, request, canPreview } from '@luck-design-biz/base/utils';
|
|
16
|
+
var columns = [{
|
|
17
|
+
field: 'name',
|
|
18
|
+
title: '附件名称'
|
|
19
|
+
}, {
|
|
20
|
+
field: 'size',
|
|
21
|
+
title: '附件大小',
|
|
22
|
+
render: function render(text) {
|
|
23
|
+
return byteConvert(text);
|
|
24
|
+
}
|
|
25
|
+
}, {
|
|
26
|
+
field: 'username',
|
|
27
|
+
title: '上传人'
|
|
28
|
+
}, {
|
|
29
|
+
field: 'uploadDate',
|
|
30
|
+
title: '上传时间',
|
|
31
|
+
render: function render(text) {
|
|
32
|
+
return text && moment(text).format('YYYY-MM-DD HH:mm:ss');
|
|
33
|
+
}
|
|
34
|
+
}];
|
|
35
|
+
var columnsWithNote = [].concat(columns, [{
|
|
36
|
+
field: 'note',
|
|
37
|
+
title: '备注',
|
|
38
|
+
render: function render(text) {
|
|
39
|
+
return text || '-';
|
|
40
|
+
}
|
|
41
|
+
}]);
|
|
42
|
+
var batchOperations = [{
|
|
43
|
+
key: 'download',
|
|
44
|
+
title: formatMessage({
|
|
45
|
+
id: 'app.base.operate.download',
|
|
46
|
+
label: '下载'
|
|
47
|
+
})
|
|
48
|
+
}];
|
|
49
|
+
var UploadGridForm = function UploadGridForm(_ref) {
|
|
50
|
+
var _getDvaApp;
|
|
51
|
+
var formId = _ref.formId,
|
|
52
|
+
formRef = _ref.formRef,
|
|
53
|
+
showNote = _ref.showNote,
|
|
54
|
+
_ref$operates = _ref.operates,
|
|
55
|
+
operates = _ref$operates === void 0 ? ['read', 'add', 'delete', 'download'] : _ref$operates,
|
|
56
|
+
loading = _ref.loading,
|
|
57
|
+
uploadUrl = _ref.uploadUrl,
|
|
58
|
+
_ref$forbiddenTypes = _ref.forbiddenTypes,
|
|
59
|
+
forbiddenTypes = _ref$forbiddenTypes === void 0 ? [] : _ref$forbiddenTypes,
|
|
60
|
+
_beforeUpload = _ref.beforeUpload,
|
|
61
|
+
formMode = _ref.formMode,
|
|
62
|
+
onUploadChange = _ref.onUploadChange,
|
|
63
|
+
_ref$zipName = _ref.zipName,
|
|
64
|
+
zipName = _ref$zipName === void 0 ? 'download.zip' : _ref$zipName,
|
|
65
|
+
resetActions = _ref.resetActions,
|
|
66
|
+
getUrl = _ref.getUrl,
|
|
67
|
+
rest = _objectWithoutProperties(_ref, _excluded);
|
|
68
|
+
var _useState = useState(false),
|
|
69
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
70
|
+
visible = _useState2[0],
|
|
71
|
+
setVisible = _useState2[1];
|
|
72
|
+
var _useState3 = useState(false),
|
|
73
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
74
|
+
uploadLoading = _useState4[0],
|
|
75
|
+
setUploadLoading = _useState4[1];
|
|
76
|
+
var gridRef = wrapperRef || useRef(null);
|
|
77
|
+
var _getDvaApp$_store$get = (_getDvaApp = getDvaApp()) === null || _getDvaApp === void 0 ? void 0 : _getDvaApp._store.getState().user,
|
|
78
|
+
currentUser = _getDvaApp$_store$get.currentUser;
|
|
79
|
+
|
|
80
|
+
// 下载
|
|
81
|
+
var downloadFile = function downloadFile(filenames, tag) {
|
|
82
|
+
saveAs("".concat(getUrl('download'), "&fileName=").concat(filenames[0]));
|
|
83
|
+
};
|
|
84
|
+
var handleDownload = useMemoizedFn(function (selectedRows, cb) {
|
|
85
|
+
if (selectedRows.length === 1) {
|
|
86
|
+
var filenames = selectedRows.map(function (item) {
|
|
87
|
+
return item.fileId || item.uid;
|
|
88
|
+
});
|
|
89
|
+
downloadFile(filenames, 'downloadOne');
|
|
90
|
+
cb && cb(true);
|
|
91
|
+
} else {
|
|
92
|
+
setUploadLoading(true);
|
|
93
|
+
var files = selectedRows.map(function (item) {
|
|
94
|
+
return item.fileId || item.uid;
|
|
95
|
+
}).join(',');
|
|
96
|
+
patchDownloadZip(getUrl('downloadZip'), files, {
|
|
97
|
+
zipName: zipName
|
|
98
|
+
}).then(function () {
|
|
99
|
+
return cb && cb(true);
|
|
100
|
+
}).finally(function () {
|
|
101
|
+
return setUploadLoading(false);
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
var handleUploadChange = useMemoizedFn(function (e) {
|
|
106
|
+
var file = e.file,
|
|
107
|
+
fileList = e.fileList;
|
|
108
|
+
if (file.status === 'error' || file.response && file.response.code !== 1) {
|
|
109
|
+
var _file$response = file.response,
|
|
110
|
+
msg = _file$response.msg,
|
|
111
|
+
message = _file$response.message;
|
|
112
|
+
showPop(msg || message, null, 'error');
|
|
113
|
+
}
|
|
114
|
+
if (file.status === 'done' && file.response && file.response.code === 1) {
|
|
115
|
+
var _file$response2 = file.response,
|
|
116
|
+
_list = _file$response2.list,
|
|
117
|
+
_detail = _file$response2.detail;
|
|
118
|
+
var data = {
|
|
119
|
+
uid: _detail[_list[0]].fileName,
|
|
120
|
+
name: file.name,
|
|
121
|
+
size: file.size,
|
|
122
|
+
fileId: _detail[_list[0]].fileName,
|
|
123
|
+
stype: _detail[_list[0]].fileExt,
|
|
124
|
+
username: currentUser && currentUser.sname,
|
|
125
|
+
uploadDate: moment().valueOf(),
|
|
126
|
+
previewUrl: _detail[_list[0]].previewUrl
|
|
127
|
+
};
|
|
128
|
+
gridRef.current.changeData(null, data);
|
|
129
|
+
}
|
|
130
|
+
if (fileList.length > 0 && file.uid === last(fileList).uid && formMode !== 'add' && formMode !== 'update') {
|
|
131
|
+
setTimeout(function () {
|
|
132
|
+
if (formRef && formRef.current) {
|
|
133
|
+
formRef.current.onUpdate && formRef.current.onUpdate(formId);
|
|
134
|
+
} else {
|
|
135
|
+
(formRef === null || formRef === void 0 ? void 0 : formRef.onUpdate) && formRef.onUpdate(formId);
|
|
136
|
+
}
|
|
137
|
+
}, 300);
|
|
138
|
+
}
|
|
139
|
+
onUploadChange && onUploadChange(e);
|
|
140
|
+
});
|
|
141
|
+
var handleSubmit = useMemoizedFn(function (err, values) {
|
|
142
|
+
if (!err) {
|
|
143
|
+
setUploadLoading(true);
|
|
144
|
+
var formData = new FormData();
|
|
145
|
+
values.files.forEach(function (file) {
|
|
146
|
+
formData.append('files', file.originFileObj);
|
|
147
|
+
});
|
|
148
|
+
var snote = (values === null || values === void 0 ? void 0 : values.note) || '';
|
|
149
|
+
request(uploadUrl || "".concat(getUrl('upload', snote)), {
|
|
150
|
+
method: 'post',
|
|
151
|
+
headers: {
|
|
152
|
+
Authorization: "Bearer ".concat(window.cookie.get(window.appConfig.authSaveKey))
|
|
153
|
+
},
|
|
154
|
+
// 请求头
|
|
155
|
+
body: formData,
|
|
156
|
+
data: formData
|
|
157
|
+
}).then(function (res) {
|
|
158
|
+
var code = res.code,
|
|
159
|
+
content = res.content;
|
|
160
|
+
if (code === 1) {
|
|
161
|
+
setUploadLoading(false);
|
|
162
|
+
setVisible(false);
|
|
163
|
+
content.forEach(function (file, index) {
|
|
164
|
+
var data = {
|
|
165
|
+
uid: detail[list[0]].fileName,
|
|
166
|
+
name: values.files[index].name,
|
|
167
|
+
size: values.files[index].size,
|
|
168
|
+
stype: file.fileExt,
|
|
169
|
+
fileId: detail[list[0]].fileName,
|
|
170
|
+
username: currentUser && currentUser.sname,
|
|
171
|
+
note: snote,
|
|
172
|
+
uploadDate: moment().valueOf(),
|
|
173
|
+
previewUrl: detail[list[0]].previewUrl
|
|
174
|
+
};
|
|
175
|
+
gridRef.current.changeData(null, data);
|
|
176
|
+
if (index + 1 === values.files.length && formMode !== 'add' && formMode !== 'update') {
|
|
177
|
+
setTimeout(function () {
|
|
178
|
+
if (formRef && formRef.current) {
|
|
179
|
+
formRef.current.onUpdate && formRef.current.onUpdate(formId);
|
|
180
|
+
} else {
|
|
181
|
+
(formRef === null || formRef === void 0 ? void 0 : formRef.onUpdate) && formRef.onUpdate(formId);
|
|
182
|
+
}
|
|
183
|
+
}, 300);
|
|
184
|
+
}
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
});
|
|
190
|
+
var renderUploadTopLeft = useMemoizedFn(function () {
|
|
191
|
+
var formItemProps = {
|
|
192
|
+
action: uploadUrl || getUrl('upload'),
|
|
193
|
+
// 上传地址
|
|
194
|
+
headers: {
|
|
195
|
+
Authorization: "Bearer ".concat(window.cookie.get(window.appConfig.authSaveKey))
|
|
196
|
+
},
|
|
197
|
+
// 请求头
|
|
198
|
+
name: 'files',
|
|
199
|
+
multiple: true,
|
|
200
|
+
showUploadList: false,
|
|
201
|
+
beforeUpload: function beforeUpload(file, fileList) {
|
|
202
|
+
setUploadLoading(true);
|
|
203
|
+
var upload = _beforeUpload2({
|
|
204
|
+
file: file,
|
|
205
|
+
fileList: fileList,
|
|
206
|
+
forbiddenTypes: forbiddenTypes,
|
|
207
|
+
beforeUpload: _beforeUpload
|
|
208
|
+
});
|
|
209
|
+
if (!upload) setUploadLoading(false);
|
|
210
|
+
return upload;
|
|
211
|
+
},
|
|
212
|
+
onChange: function onChange(e) {
|
|
213
|
+
handleUploadChange(e);
|
|
214
|
+
setUploadLoading(false);
|
|
215
|
+
}
|
|
216
|
+
};
|
|
217
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, (operates === null || operates === void 0 ? void 0 : operates.indexOf('add')) > -1 && (showNote ? /*#__PURE__*/React.createElement(Button, {
|
|
218
|
+
type: "primary",
|
|
219
|
+
style: {
|
|
220
|
+
marginRight: 8
|
|
221
|
+
},
|
|
222
|
+
loading: uploadLoading,
|
|
223
|
+
onClick: function onClick() {
|
|
224
|
+
return setVisible(true);
|
|
225
|
+
}
|
|
226
|
+
}, formatMessage({
|
|
227
|
+
id: 'app.base.operate.add',
|
|
228
|
+
label: '添加'
|
|
229
|
+
})) : /*#__PURE__*/React.createElement(FormBtn, {
|
|
230
|
+
formId: "formId"
|
|
231
|
+
}, /*#__PURE__*/React.createElement(Upload, formItemProps, /*#__PURE__*/React.createElement(Button, {
|
|
232
|
+
type: "primary",
|
|
233
|
+
style: {
|
|
234
|
+
marginRight: 8
|
|
235
|
+
},
|
|
236
|
+
loading: uploadLoading
|
|
237
|
+
}, formatMessage({
|
|
238
|
+
id: 'app.base.operate.add',
|
|
239
|
+
label: '添加'
|
|
240
|
+
}))))), /*#__PURE__*/React.createElement(Button, {
|
|
241
|
+
type: "primary",
|
|
242
|
+
onClick: function onClick() {
|
|
243
|
+
var _gridRef$current$form;
|
|
244
|
+
var selectedRows = (_gridRef$current$form = gridRef.current.formRef.current) === null || _gridRef$current$form === void 0 ? void 0 : _gridRef$current$form.getData(true, false);
|
|
245
|
+
handleDownload(selectedRows);
|
|
246
|
+
},
|
|
247
|
+
loading: uploadLoading
|
|
248
|
+
}, formatMessage({
|
|
249
|
+
id: 'app.base.operate.downloadAll',
|
|
250
|
+
label: '下载全部'
|
|
251
|
+
})));
|
|
252
|
+
});
|
|
253
|
+
|
|
254
|
+
// 预览
|
|
255
|
+
var resetActionsColumn = useMemoizedFn(function (data, index, _actions, params) {
|
|
256
|
+
if (resetActions) {
|
|
257
|
+
return resetActions(data, index, actionList, params);
|
|
258
|
+
}
|
|
259
|
+
var actions = _actions.filter(function (item) {
|
|
260
|
+
return item.wanted !== 'update' && item.wanted !== 'add';
|
|
261
|
+
});
|
|
262
|
+
actions.unshift({
|
|
263
|
+
wanted: canPreview(_objectSpread(_objectSpread({}, data), {}, {
|
|
264
|
+
fileExt: data.stype
|
|
265
|
+
})) && 'read',
|
|
266
|
+
title: formatMessage({
|
|
267
|
+
id: 'app.base.operate.preview',
|
|
268
|
+
label: '预览'
|
|
269
|
+
}),
|
|
270
|
+
render: function render() {
|
|
271
|
+
return /*#__PURE__*/React.createElement(Tooltip, {
|
|
272
|
+
title: formatMessage({
|
|
273
|
+
id: 'app.base.operate.preview',
|
|
274
|
+
label: '预览'
|
|
275
|
+
})
|
|
276
|
+
}, /*#__PURE__*/React.createElement(Icon, {
|
|
277
|
+
type: "eye"
|
|
278
|
+
}));
|
|
279
|
+
},
|
|
280
|
+
action: function action() {
|
|
281
|
+
var files = [];
|
|
282
|
+
params.api.forEachNode(function (node) {
|
|
283
|
+
var nodePreviewUrl = node.data.previewUrl;
|
|
284
|
+
files.push({
|
|
285
|
+
uid: node.data.uid,
|
|
286
|
+
fileExt: node.data.stype,
|
|
287
|
+
name: node.data.name,
|
|
288
|
+
previewUrl: "".concat(api.LUCKDA_HOST).concat(nodePreviewUrl)
|
|
289
|
+
});
|
|
290
|
+
});
|
|
291
|
+
var activeIndex = files.findIndex(function (item) {
|
|
292
|
+
return item.uid === data.uid;
|
|
293
|
+
});
|
|
294
|
+
window.openPreviewV3(files, {
|
|
295
|
+
activeIndex: activeIndex
|
|
296
|
+
});
|
|
297
|
+
}
|
|
298
|
+
});
|
|
299
|
+
return actions;
|
|
300
|
+
});
|
|
301
|
+
var handleBatchOperationsClick = useMemoizedFn(function (key, selectedRows, cb) {
|
|
302
|
+
if (key === 'download' && selectedRows && selectedRows.length > 0) {
|
|
303
|
+
handleDownload(selectedRows, cb);
|
|
304
|
+
}
|
|
305
|
+
});
|
|
306
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(GridForm, _extends({
|
|
307
|
+
formId: formId,
|
|
308
|
+
columns: showNote ? columnsWithNote : columns,
|
|
309
|
+
operates: operates,
|
|
310
|
+
ref: gridRef,
|
|
311
|
+
loading: loading || uploadLoading,
|
|
312
|
+
renderTopLeft: renderUploadTopLeft,
|
|
313
|
+
resetActionsColumn: resetActionsColumn,
|
|
314
|
+
batchOperations: batchOperations,
|
|
315
|
+
actionsWhitelist: ['read'],
|
|
316
|
+
onBatchOperationsClick: handleBatchOperationsClick
|
|
317
|
+
}, rest)), /*#__PURE__*/React.createElement(PopWindow, {
|
|
318
|
+
title: "\u9644\u4EF6\u4E0A\u4F20",
|
|
319
|
+
mode: "modal",
|
|
320
|
+
size: "small",
|
|
321
|
+
visible: visible,
|
|
322
|
+
destroyOnClose: true,
|
|
323
|
+
onClose: function onClose() {
|
|
324
|
+
return setVisible(false);
|
|
325
|
+
}
|
|
326
|
+
}, /*#__PURE__*/React.createElement(BasicForm, {
|
|
327
|
+
formId: "form",
|
|
328
|
+
onSubmit: handleSubmit,
|
|
329
|
+
loading: uploadLoading,
|
|
330
|
+
defaultDataSource: {
|
|
331
|
+
username: currentUser === null || currentUser === void 0 ? void 0 : currentUser.sname
|
|
332
|
+
},
|
|
333
|
+
layout: "modal"
|
|
334
|
+
}, /*#__PURE__*/React.createElement(BasicFormItem, {
|
|
335
|
+
type: "input",
|
|
336
|
+
name: "username",
|
|
337
|
+
label: "\u4E0A\u4F20\u4EBA",
|
|
338
|
+
config: {
|
|
339
|
+
disabled: true
|
|
340
|
+
}
|
|
341
|
+
}), /*#__PURE__*/React.createElement(BasicFormItem, {
|
|
342
|
+
type: "upload",
|
|
343
|
+
name: "files",
|
|
344
|
+
label: "\u9644\u4EF6",
|
|
345
|
+
config: _objectSpread(_objectSpread({}, rest), {}, {
|
|
346
|
+
required: true,
|
|
347
|
+
message: '请上传',
|
|
348
|
+
directory: false,
|
|
349
|
+
num: 99,
|
|
350
|
+
multiple: true,
|
|
351
|
+
autoUpload: false,
|
|
352
|
+
beforeUpload: function beforeUpload(file, fileList) {
|
|
353
|
+
return _beforeUpload2({
|
|
354
|
+
file: file,
|
|
355
|
+
fileList: fileList,
|
|
356
|
+
forbiddenTypes: forbiddenTypes,
|
|
357
|
+
beforeUpload: _beforeUpload
|
|
358
|
+
});
|
|
359
|
+
}
|
|
360
|
+
})
|
|
361
|
+
}), /*#__PURE__*/React.createElement(BasicFormItem, {
|
|
362
|
+
type: "input",
|
|
363
|
+
name: "note",
|
|
364
|
+
label: "\u5907\u6CE8",
|
|
365
|
+
config: {
|
|
366
|
+
type: 'textArea',
|
|
367
|
+
placeholder: '请输入备注信息',
|
|
368
|
+
message: '请输入备注信息',
|
|
369
|
+
rows: 3
|
|
370
|
+
}
|
|
371
|
+
}))));
|
|
372
|
+
};
|
|
373
|
+
UploadGridForm.displayName = 'GridForm';
|
|
374
|
+
export default /*#__PURE__*/forwardRef(function (props, ref) {
|
|
375
|
+
return /*#__PURE__*/React.createElement(UploadGridForm, _extends({
|
|
376
|
+
wrapperRef: ref
|
|
377
|
+
}, props));
|
|
378
|
+
});
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
3
|
+
var _excluded = ["formId", "moduleCode", "bucket", "note"];
|
|
4
|
+
import React from 'react';
|
|
5
|
+
import { omitBy, isNil } from 'lodash';
|
|
6
|
+
import { stringify } from 'querystring';
|
|
7
|
+
import GridForm from './gridForm';
|
|
8
|
+
import { request } from '@luck-design-biz/base/utils';
|
|
9
|
+
function buildComponent(props) {
|
|
10
|
+
var _formId = props.formId,
|
|
11
|
+
moduleCode = props.moduleCode,
|
|
12
|
+
_props$bucket = props.bucket,
|
|
13
|
+
bucket = _props$bucket === void 0 ? '' : _props$bucket,
|
|
14
|
+
_props$note = props.note,
|
|
15
|
+
note = _props$note === void 0 ? '' : _props$note,
|
|
16
|
+
rest = _objectWithoutProperties(props, _excluded);
|
|
17
|
+
var formId = "annex_".concat(_formId);
|
|
18
|
+
var getUrl = function getUrl(behaviorKey, _note) {
|
|
19
|
+
var formData = rest.formData,
|
|
20
|
+
mainFormLdId = rest.mainFormLdId,
|
|
21
|
+
ticketData = rest.ticketData;
|
|
22
|
+
var params = omitBy({
|
|
23
|
+
moduleCode: moduleCode,
|
|
24
|
+
bucket: bucket,
|
|
25
|
+
behaviorKey: behaviorKey,
|
|
26
|
+
tag: formId,
|
|
27
|
+
note: _note || note,
|
|
28
|
+
active: !(behaviorKey === 'loadFileGrid' || rest.formMode === 'add' || rest.formMode === 'update'),
|
|
29
|
+
docUid: formData && formData[mainFormLdId] && formData[mainFormLdId][window.appConfig.constraintKeys.PRIMARY] || ticketData && ticketData[window.appConfig.constraintKeys.PRIMARY]
|
|
30
|
+
}, isNil);
|
|
31
|
+
return "".concat(window.appConfig.OSS_HOST_V3, "?").concat(stringify(params));
|
|
32
|
+
};
|
|
33
|
+
return /*#__PURE__*/React.createElement(GridForm, _extends({
|
|
34
|
+
formId: formId,
|
|
35
|
+
getUrl: getUrl,
|
|
36
|
+
rowKey: "uid"
|
|
37
|
+
}, rest, {
|
|
38
|
+
onQuery: {
|
|
39
|
+
api: function api() {
|
|
40
|
+
return request(getUrl('loadFileGrid'));
|
|
41
|
+
},
|
|
42
|
+
format: function format(data) {
|
|
43
|
+
return data.map(function (i) {
|
|
44
|
+
return {
|
|
45
|
+
uid: i.fileName,
|
|
46
|
+
name: i.origFileName,
|
|
47
|
+
size: i.fileSize,
|
|
48
|
+
stype: i.fileExt,
|
|
49
|
+
username: i.sregnm,
|
|
50
|
+
uploadDate: i.dregt,
|
|
51
|
+
previewUrl: i.previewUrl
|
|
52
|
+
};
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
onAdd: {
|
|
57
|
+
api: function api() {
|
|
58
|
+
return new Promise(function (resolve) {
|
|
59
|
+
return resolve({
|
|
60
|
+
code: 1,
|
|
61
|
+
list: [],
|
|
62
|
+
detail: []
|
|
63
|
+
});
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
onDelete: {
|
|
68
|
+
api: function api(_, post) {
|
|
69
|
+
return request(getUrl('removeFile'), {
|
|
70
|
+
method: 'POST',
|
|
71
|
+
body: post
|
|
72
|
+
});
|
|
73
|
+
},
|
|
74
|
+
post: function post(data) {
|
|
75
|
+
return {
|
|
76
|
+
fileNames: data.map(function (i) {
|
|
77
|
+
return i.uid;
|
|
78
|
+
})
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}));
|
|
83
|
+
}
|
|
84
|
+
export default buildComponent;
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
2
|
+
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
|
|
3
|
+
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
4
|
+
var _excluded = ["uploadUrl", "moduleCode", "bucket", "tag", "note", "config", "forbiddenTypes", "children", "dataFormat", "listType"];
|
|
5
|
+
import React from 'react';
|
|
6
|
+
import { BasicFormItem } from 'luck-design';
|
|
7
|
+
import { formatMessage, beforeUpload as _beforeUpload } from '@luck-design-biz/base/utils';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* 表单类型富文本上传
|
|
11
|
+
* 是否实体字段: 是
|
|
12
|
+
* 是否接受tag: 是
|
|
13
|
+
* 是否虚拟主键: 否
|
|
14
|
+
* 接受参数:
|
|
15
|
+
* name: 附件名称逗号拼接
|
|
16
|
+
* name_virtual: [{...// 附件所有参数}]
|
|
17
|
+
* ### name=name_virtual ###
|
|
18
|
+
* 传参:
|
|
19
|
+
* name: [{objectName, marker},...]
|
|
20
|
+
* 其他需求:
|
|
21
|
+
* 支持beforeUpload禁止附加类型
|
|
22
|
+
* =>beforeUpload禁止类型全覆盖
|
|
23
|
+
* =>forbiddenTypes和配置管理中禁止类型合并
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
function buildComponent(props) {
|
|
27
|
+
var uploadUrl = props.uploadUrl,
|
|
28
|
+
moduleCode = props.moduleCode,
|
|
29
|
+
_props$bucket = props.bucket,
|
|
30
|
+
bucket = _props$bucket === void 0 ? '' : _props$bucket,
|
|
31
|
+
_props$tag = props.tag,
|
|
32
|
+
tag = _props$tag === void 0 ? '' : _props$tag,
|
|
33
|
+
_props$note = props.note,
|
|
34
|
+
note = _props$note === void 0 ? '' : _props$note,
|
|
35
|
+
_props$config = props.config,
|
|
36
|
+
config = _props$config === void 0 ? {} : _props$config,
|
|
37
|
+
forbiddenTypes = props.forbiddenTypes,
|
|
38
|
+
children = props.children,
|
|
39
|
+
dataFormat = props.dataFormat,
|
|
40
|
+
listType = props.listType,
|
|
41
|
+
rest = _objectWithoutProperties(props, _excluded);
|
|
42
|
+
var getUrl = function getUrl(behaviorKey) {
|
|
43
|
+
return "".concat(window.appConfig.OSS_HOST_V3, "?moduleCode=").concat(moduleCode, "&behaviorKey=").concat(behaviorKey, "&bucket=").concat(bucket, "&tag=").concat(tag, "¬e=").concat(note);
|
|
44
|
+
};
|
|
45
|
+
return /*#__PURE__*/React.createElement(BasicFormItem, _extends({}, rest, {
|
|
46
|
+
type: "uploadV3",
|
|
47
|
+
config: _objectSpread(_objectSpread({
|
|
48
|
+
required: false,
|
|
49
|
+
message: formatMessage({
|
|
50
|
+
id: 'app.base.tip.upload'
|
|
51
|
+
}),
|
|
52
|
+
action: uploadUrl || getUrl('upload'),
|
|
53
|
+
// 上传地址
|
|
54
|
+
headers: {
|
|
55
|
+
Authorization: "Bearer ".concat(window.cookie.get(window.appConfig.authSaveKey))
|
|
56
|
+
},
|
|
57
|
+
// 请求头
|
|
58
|
+
name: 'files',
|
|
59
|
+
// 发送到后台的文件名
|
|
60
|
+
directory: false,
|
|
61
|
+
// 能否上传文件夹
|
|
62
|
+
listType: listType || 'text'
|
|
63
|
+
}, config), {}, {
|
|
64
|
+
num: config.num,
|
|
65
|
+
multiple: config.num !== 1,
|
|
66
|
+
// 能否多选
|
|
67
|
+
beforeUpload: function beforeUpload(file, fileList) {
|
|
68
|
+
return _beforeUpload({
|
|
69
|
+
file: file,
|
|
70
|
+
fileList: fileList,
|
|
71
|
+
forbiddenTypes: forbiddenTypes,
|
|
72
|
+
beforeUpload: config && config.beforeUpload
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
})
|
|
76
|
+
}), children);
|
|
77
|
+
}
|
|
78
|
+
export default buildComponent;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Popover, Icon } from 'antd';
|
|
3
|
+
var UploadGridCell = function UploadGridCell(_ref) {
|
|
4
|
+
var _ref$fileList = _ref.fileList,
|
|
5
|
+
fileList = _ref$fileList === void 0 ? [] : _ref$fileList,
|
|
6
|
+
children = _ref.children;
|
|
7
|
+
var content = /*#__PURE__*/React.createElement("div", null, fileList.map(function (f) {
|
|
8
|
+
return /*#__PURE__*/React.createElement("p", {
|
|
9
|
+
style: {
|
|
10
|
+
margin: 0
|
|
11
|
+
}
|
|
12
|
+
}, /*#__PURE__*/React.createElement("a", {
|
|
13
|
+
onClick: function onClick() {
|
|
14
|
+
return window.openPreviewV3([f]);
|
|
15
|
+
}
|
|
16
|
+
}, /*#__PURE__*/React.createElement(Icon, {
|
|
17
|
+
type: "paper-clip",
|
|
18
|
+
style: {
|
|
19
|
+
marginRight: 4
|
|
20
|
+
}
|
|
21
|
+
}), f.name));
|
|
22
|
+
}));
|
|
23
|
+
return fileList.length > 0 ? /*#__PURE__*/React.createElement(Popover, {
|
|
24
|
+
content: content
|
|
25
|
+
}, children || /*#__PURE__*/React.createElement("a", null, fileList.length)) : /*#__PURE__*/React.createElement(React.Fragment, null, children || /*#__PURE__*/React.createElement("span", null, fileList.length));
|
|
26
|
+
};
|
|
27
|
+
export default UploadGridCell;
|
package/es/utils/form.js
CHANGED
|
@@ -13,6 +13,7 @@ var _excluded = ["comName", "property"],
|
|
|
13
13
|
import React from 'react';
|
|
14
14
|
import moment from 'moment';
|
|
15
15
|
import { capitalize, merge, transform, isArray, omit, isNil, clone } from 'lodash';
|
|
16
|
+
import api from '@/services/ApiConfig';
|
|
16
17
|
import { defaultComName, translator, splitStrToObj, formatCustomProps } from '../helper/form';
|
|
17
18
|
import { getColumnRender } from './grid';
|
|
18
19
|
import * as formItemUtils from '../helper/FromItems';
|
|
@@ -102,7 +103,17 @@ export var formItemDataFormat = function formItemDataFormat() {
|
|
|
102
103
|
result[name] = values[name];
|
|
103
104
|
break;
|
|
104
105
|
case 'upload':
|
|
105
|
-
result[name] = values[name]
|
|
106
|
+
result[name] = (values["".concat(name, "_virtual")] || []).map(function (file) {
|
|
107
|
+
return {
|
|
108
|
+
uid: file.fileName,
|
|
109
|
+
status: 'done',
|
|
110
|
+
name: file.origFileName,
|
|
111
|
+
ext: file.fileExt,
|
|
112
|
+
size: file.fileSize,
|
|
113
|
+
url: "".concat(api.LUCKDA_HOST).concat(file.previewUrl),
|
|
114
|
+
thumbUrl: "".concat(api.LUCKDA_HOST).concat(file.previewUrl)
|
|
115
|
+
};
|
|
116
|
+
});
|
|
106
117
|
break;
|
|
107
118
|
default:
|
|
108
119
|
if (!isNil(values["".concat(name, "_virtual")] || values[name])) result[name] = values["".concat(name, "_virtual")] || values[name];
|
|
@@ -132,15 +143,6 @@ export var dataFormat = function dataFormat() {
|
|
|
132
143
|
var translatorProps = translator(props);
|
|
133
144
|
var name = translatorProps.name;
|
|
134
145
|
if (!values.hasOwnProperty(name)) return;
|
|
135
|
-
// if (!values.hasOwnProperty(name)) {
|
|
136
|
-
// if (isNil(props.defaultValue)) return;
|
|
137
|
-
// console.log('props.defaultValue',props.defaultValue);
|
|
138
|
-
// values[name] = props.defaultValue;
|
|
139
|
-
// values[`${name}_virtual`] = props.defaultValueVirtual;
|
|
140
|
-
// };
|
|
141
|
-
// if(!isNil(props.defaultValue)){
|
|
142
|
-
|
|
143
|
-
// }
|
|
144
146
|
switch (comName || defaultComName[property]) {
|
|
145
147
|
case 'date':
|
|
146
148
|
result[name] = values[name] ? moment(values[name]).valueOf() : null;
|
|
@@ -162,7 +164,19 @@ export var dataFormat = function dataFormat() {
|
|
|
162
164
|
result[name] = values[name] ? moment(values[name]).format('YYYY') : null;
|
|
163
165
|
break;
|
|
164
166
|
case 'upload':
|
|
165
|
-
result[name] = values[name]
|
|
167
|
+
result[name] = values[name] ? values[name].map(function (v) {
|
|
168
|
+
if (v.newFile) return {
|
|
169
|
+
objectName: v.uid,
|
|
170
|
+
marker: 'add'
|
|
171
|
+
};
|
|
172
|
+
if (v.deleteFile) return {
|
|
173
|
+
objectName: v.uid,
|
|
174
|
+
marker: 'delete'
|
|
175
|
+
};
|
|
176
|
+
return {
|
|
177
|
+
objectName: v.uid
|
|
178
|
+
};
|
|
179
|
+
}) : undefined;
|
|
166
180
|
break;
|
|
167
181
|
default:
|
|
168
182
|
result[name] = values[name];
|