@cqsjjb/jjb-react-admin-component 3.3.14 → 3.3.15
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/FormilyDescriptions/index.js +236 -232
- package/package.json +1 -1
|
@@ -1,18 +1,14 @@
|
|
|
1
1
|
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
2
|
-
import React
|
|
2
|
+
import React from 'react';
|
|
3
3
|
import { tools } from '@cqsjjb/jjb-common-lib';
|
|
4
4
|
import { FileOutlined, LinkOutlined } from '@ant-design/icons';
|
|
5
|
-
import { Modal, Descriptions, Empty, Image, Tooltip, Spin, Table, Space
|
|
5
|
+
import { Modal, Descriptions, Empty, Image, Tooltip, Spin, Table, Space } from 'antd';
|
|
6
6
|
const formilyItemMargin = new Map([['small', 8], ['middle', 12], ['default', 16]]);
|
|
7
7
|
const IS_PDF_REG = /\.pdf$/;
|
|
8
8
|
const IS_VIDEO_REG = /\.(mp4|ogg|mkv|webm)$/;
|
|
9
|
-
export default function FormilyDescriptions({
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
...props
|
|
13
|
-
}) {
|
|
14
|
-
const [regions, setRegions] = useState([]);
|
|
15
|
-
useEffect(() => {
|
|
9
|
+
export default function FormilyDescriptions(props) {
|
|
10
|
+
const [regions, setRegions] = React.useState([]);
|
|
11
|
+
React.useEffect(() => {
|
|
16
12
|
fetch(`${window.process.env.app.API_HOST}/system/operation/regions`, {
|
|
17
13
|
headers: {
|
|
18
14
|
token: sessionStorage.token
|
|
@@ -20,49 +16,43 @@ export default function FormilyDescriptions({
|
|
|
20
16
|
}).then(res => res.json()).then(res => {
|
|
21
17
|
if (res.success) {
|
|
22
18
|
setRegions(res.data);
|
|
23
|
-
props.onLoad && props.onLoad();
|
|
24
19
|
}
|
|
25
20
|
});
|
|
26
21
|
}, []);
|
|
27
|
-
const dataSource = tools.getDynamicFormilyFields(schema, values, {
|
|
22
|
+
const dataSource = tools.getDynamicFormilyFields(props.schema, props.values, {
|
|
28
23
|
regions
|
|
29
24
|
});
|
|
30
|
-
|
|
25
|
+
return dataSource.length === 0 ? /*#__PURE__*/React.createElement(Empty, {
|
|
31
26
|
image: Empty.PRESENTED_IMAGE_SIMPLE
|
|
32
|
-
})
|
|
33
|
-
return /*#__PURE__*/React.createElement(DescriptionsRender, _extends({
|
|
27
|
+
}) : /*#__PURE__*/React.createElement(DescriptionsRender, _extends({
|
|
34
28
|
dataSource: dataSource
|
|
35
29
|
}, props));
|
|
36
30
|
}
|
|
37
|
-
|
|
38
|
-
dataSource,
|
|
39
|
-
|
|
40
|
-
...props
|
|
41
|
-
}) {
|
|
42
|
-
return dataSource.map((item, index) => {
|
|
43
|
-
const isLast = index === dataSource.length - 1;
|
|
44
|
-
const marginBottom = isLast ? 0 : formilyItemMargin.get(size);
|
|
45
|
-
const items = item.fromComponentEnum === 'GRID_FORM' ? item.children.map((child, childIndex) => ({
|
|
46
|
-
key: childIndex,
|
|
47
|
-
span: child.formType === 'Table' ? props.column : 1,
|
|
48
|
-
label: child.name,
|
|
49
|
-
children: /*#__PURE__*/React.createElement(ItemRender, _extends({
|
|
50
|
-
data: child
|
|
51
|
-
}, props))
|
|
52
|
-
})) : [{
|
|
53
|
-
key: 1,
|
|
54
|
-
label: item.name,
|
|
55
|
-
children: /*#__PURE__*/React.createElement(ItemRender, _extends({
|
|
56
|
-
data: item
|
|
57
|
-
}, props))
|
|
58
|
-
}];
|
|
31
|
+
function DescriptionsRender(props) {
|
|
32
|
+
return props.dataSource.map((item, index) => {
|
|
33
|
+
const isLast = index === props.dataSource.length - 1;
|
|
59
34
|
return /*#__PURE__*/React.createElement(Descriptions, {
|
|
60
35
|
key: index,
|
|
61
|
-
size: size,
|
|
36
|
+
size: props.size,
|
|
62
37
|
style: {
|
|
63
|
-
marginBottom
|
|
38
|
+
marginBottom: isLast ? 0 : formilyItemMargin.get(props.size || 'default')
|
|
64
39
|
},
|
|
65
|
-
items:
|
|
40
|
+
items: item.fromComponentEnum === 'GRID_FORM' ? item.children.map((child, childIndex) => {
|
|
41
|
+
return {
|
|
42
|
+
key: childIndex,
|
|
43
|
+
span: child.formType === 'Table' ? props.column : 1,
|
|
44
|
+
label: child.name,
|
|
45
|
+
children: /*#__PURE__*/React.createElement(ItemRender, _extends({
|
|
46
|
+
data: child
|
|
47
|
+
}, props))
|
|
48
|
+
};
|
|
49
|
+
}) : [{
|
|
50
|
+
key: 1,
|
|
51
|
+
label: item.name,
|
|
52
|
+
children: /*#__PURE__*/React.createElement(ItemRender, _extends({
|
|
53
|
+
data: item
|
|
54
|
+
}, props))
|
|
55
|
+
}],
|
|
66
56
|
colon: props.colon,
|
|
67
57
|
title: props.title,
|
|
68
58
|
extra: props.extra,
|
|
@@ -73,67 +63,69 @@ export function DescriptionsRender({
|
|
|
73
63
|
});
|
|
74
64
|
});
|
|
75
65
|
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
return data.formType === 'Table' ? /*#__PURE__*/React.createElement(RenderTable, {
|
|
100
|
-
columns: data.tableColumns,
|
|
101
|
-
dataSource: data.value,
|
|
102
|
-
imageWidth: imageWidth,
|
|
103
|
-
imageHeight: imageHeight,
|
|
104
|
-
imagePreview: imagePreview,
|
|
105
|
-
extraFileLink: extraFileLink,
|
|
106
|
-
onPreview: handlePreview,
|
|
107
|
-
systemStyle: systemStyle
|
|
108
|
-
}) : data.value.map((file, index) => /*#__PURE__*/React.createElement(RenderFileItem, {
|
|
109
|
-
key: index,
|
|
110
|
-
url: file.url,
|
|
111
|
-
name: file.name,
|
|
112
|
-
isImage: file.isImage,
|
|
113
|
-
imageWidth: imageWidth,
|
|
114
|
-
imageHeight: imageHeight,
|
|
115
|
-
imagePreview: imagePreview,
|
|
116
|
-
extraFileLink: extraFileLink,
|
|
117
|
-
onPreview: () => handlePreview(file.url),
|
|
118
|
-
systemStyle: systemStyle
|
|
119
|
-
}));
|
|
120
|
-
}
|
|
121
|
-
return tools.textPlaceholder();
|
|
66
|
+
function ItemRender(props) {
|
|
67
|
+
const [open, setOpen] = React.useState(false);
|
|
68
|
+
const [previewUrl, setPreviewUrl] = React.useState('');
|
|
69
|
+
const {
|
|
70
|
+
data,
|
|
71
|
+
imageWidth,
|
|
72
|
+
imageHeight,
|
|
73
|
+
imagePreview,
|
|
74
|
+
extraFileLink
|
|
75
|
+
} = props;
|
|
76
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, tools.isArray(data.value)
|
|
77
|
+
// 如果数据是字符串集合 或 数字集合
|
|
78
|
+
? tools.isStringArray(data.value) || tools.isNumberArray(data.value)
|
|
79
|
+
// 直接字符串拼接
|
|
80
|
+
? data.value.join('、')
|
|
81
|
+
// 如果是对象集合
|
|
82
|
+
: tools.isObjectArray(data.value)
|
|
83
|
+
// 如果数据表单类型是 数据表格
|
|
84
|
+
? data.formType === 'Table'
|
|
85
|
+
// 处理数据表格
|
|
86
|
+
? /*#__PURE__*/React.createElement("div", {
|
|
87
|
+
style: {
|
|
88
|
+
width: '100%'
|
|
122
89
|
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
90
|
+
}, /*#__PURE__*/React.createElement(RenderTable, {
|
|
91
|
+
columns: data.tableColumns,
|
|
92
|
+
dataSource: data.value,
|
|
93
|
+
imageWidth: imageWidth,
|
|
94
|
+
imageHeight: imageHeight,
|
|
95
|
+
imagePreview: imagePreview,
|
|
96
|
+
extraFileLink: extraFileLink,
|
|
97
|
+
onPreview: url => {
|
|
98
|
+
setOpen(true);
|
|
99
|
+
setPreviewUrl(url);
|
|
100
|
+
}
|
|
101
|
+
}))
|
|
102
|
+
|
|
103
|
+
// 否则就是文件数据
|
|
104
|
+
: /*#__PURE__*/React.createElement("div", null, data.value.map((file, index) => /*#__PURE__*/React.createElement(RenderFileItem, {
|
|
105
|
+
key: index,
|
|
106
|
+
url: file.url,
|
|
107
|
+
name: file.name,
|
|
108
|
+
isImage: file.isImage,
|
|
109
|
+
imageWidth: imageWidth,
|
|
110
|
+
imageHeight: imageHeight,
|
|
111
|
+
imagePreview: imagePreview,
|
|
112
|
+
extraFileLink: extraFileLink,
|
|
113
|
+
onPreview: () => {
|
|
114
|
+
setOpen(true);
|
|
115
|
+
setPreviewUrl(file.url);
|
|
116
|
+
}
|
|
117
|
+
}))) : tools.textPlaceholder()
|
|
118
|
+
// 处理文本数据
|
|
119
|
+
: /*#__PURE__*/React.createElement(RenderText, {
|
|
120
|
+
name: data.name,
|
|
121
|
+
value: data.value,
|
|
122
|
+
renderItemText: props.renderItemText
|
|
123
|
+
}), /*#__PURE__*/React.createElement(Modal, {
|
|
132
124
|
destroyOnClose: true,
|
|
133
125
|
title: "\u67E5\u770B\u6587\u4EF6",
|
|
134
126
|
open: open,
|
|
135
127
|
width: 1100,
|
|
136
|
-
footer:
|
|
128
|
+
footer: false,
|
|
137
129
|
onCancel: () => setOpen(false)
|
|
138
130
|
}, IS_PDF_REG.test(previewUrl) && /*#__PURE__*/React.createElement("embed", {
|
|
139
131
|
src: previewUrl,
|
|
@@ -143,120 +135,126 @@ export function ItemRender({
|
|
|
143
135
|
controls: true,
|
|
144
136
|
src: previewUrl,
|
|
145
137
|
width: "100%",
|
|
146
|
-
height: 350
|
|
138
|
+
height: "350"
|
|
147
139
|
})));
|
|
148
140
|
}
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
const
|
|
157
|
-
const
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
setText(value);
|
|
141
|
+
function RenderText(props) {
|
|
142
|
+
const {
|
|
143
|
+
value
|
|
144
|
+
} = props;
|
|
145
|
+
const [text, setText] = React.useState();
|
|
146
|
+
const [loading, setLoading] = React.useState(false);
|
|
147
|
+
const getVal = item => item?.value ?? item?.key ?? item?.id ?? item?.code ?? item?.bizTypeCode ?? item?.classificationCode ?? '';
|
|
148
|
+
const getLab = item => item?.label ?? item?.name ?? item?.title ?? item?.bizTypeName ?? item?.classificationName ?? '';
|
|
149
|
+
const getSelectedDisplayValue = item => {
|
|
150
|
+
const val = getVal(item);
|
|
151
|
+
const lab = getLab(item);
|
|
152
|
+
return val && lab ? `${val}&${lab}` : lab || val || '';
|
|
153
|
+
};
|
|
154
|
+
const findInTree = (nodes, id) => {
|
|
155
|
+
if (!Array.isArray(nodes)) return null;
|
|
156
|
+
for (const node of nodes) {
|
|
157
|
+
const val = getVal(node);
|
|
158
|
+
if (val === id || String(val) === String(id)) return node;
|
|
159
|
+
if (node.children) {
|
|
160
|
+
const found = findInTree(node.children, id);
|
|
161
|
+
if (found) return found;
|
|
162
|
+
}
|
|
172
163
|
}
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
164
|
+
return null;
|
|
165
|
+
};
|
|
166
|
+
const toDisplayLabels = displayArr => {
|
|
167
|
+
return (displayArr || []).map(s => typeof s === 'string' && s.includes('&') ? s.split('&').pop() : s).filter(Boolean).join('、') || tools.textPlaceholder();
|
|
168
|
+
};
|
|
169
|
+
React.useEffect(() => {
|
|
170
|
+
if (value) {
|
|
171
|
+
if (value.load) {
|
|
172
|
+
setLoading(true);
|
|
173
|
+
value.load().then(res => res.json()).then(res => {
|
|
174
|
+
try {
|
|
175
|
+
if (res.success) {
|
|
176
|
+
const rawData = res.data || [];
|
|
177
|
+
let displayText = [];
|
|
178
|
+
const rawSelected = value?.selected ?? value?.value;
|
|
179
|
+
const selected = tools.isArray(rawSelected) ? rawSelected : rawSelected !== undefined && rawSelected !== null && rawSelected !== '' ? [rawSelected] : [];
|
|
180
|
+
if (selected.length > 0) {
|
|
181
|
+
const isIdArray = selected.every(s => tools.isNumber(s) || tools.isString(s));
|
|
182
|
+
if (isIdArray) {
|
|
183
|
+
displayText = selected.map(id => {
|
|
184
|
+
const matched = findInTree(rawData, id);
|
|
185
|
+
return matched ? getSelectedDisplayValue(matched) : String(id);
|
|
186
|
+
}).filter(Boolean);
|
|
187
|
+
} else {
|
|
188
|
+
displayText = selected.map(getSelectedDisplayValue).filter(Boolean);
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
setText(displayText);
|
|
192
|
+
}
|
|
193
|
+
} finally {
|
|
194
|
+
setLoading(false);
|
|
195
|
+
}
|
|
196
|
+
}).catch(() => setLoading(false));
|
|
197
|
+
} else {
|
|
198
|
+
setText(value);
|
|
183
199
|
}
|
|
184
|
-
}, /*#__PURE__*/React.createElement(Spin, {
|
|
185
|
-
spinning: loading
|
|
186
|
-
}, /*#__PURE__*/React.createElement(TreeSelect, {
|
|
187
|
-
treeCheckable: true,
|
|
188
|
-
treeDefaultExpandAll: true,
|
|
189
|
-
style: {
|
|
190
|
-
width: '100%'
|
|
191
|
-
},
|
|
192
|
-
value: text,
|
|
193
|
-
variant: "borderless",
|
|
194
|
-
treeData: options,
|
|
195
|
-
showSearch: false,
|
|
196
|
-
maxTagCount: maxTagCount
|
|
197
|
-
})));
|
|
198
|
-
}
|
|
199
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
200
|
-
style: {
|
|
201
|
-
...systemStyle
|
|
202
200
|
}
|
|
203
|
-
},
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
}) : tools.textPlaceholder(text));
|
|
207
|
-
}
|
|
208
|
-
export function RenderFileItem(props) {
|
|
209
|
-
const {
|
|
210
|
-
isImage,
|
|
211
|
-
url,
|
|
212
|
-
name,
|
|
213
|
-
imageWidth,
|
|
214
|
-
imageHeight,
|
|
215
|
-
imagePreview,
|
|
216
|
-
extraFileLink,
|
|
217
|
-
onPreview,
|
|
218
|
-
systemStyle
|
|
219
|
-
} = props;
|
|
220
|
-
return isImage ? /*#__PURE__*/React.createElement(RenderImage, {
|
|
221
|
-
url: url,
|
|
222
|
-
imageWidth: imageWidth,
|
|
223
|
-
imageHeight: imageHeight,
|
|
224
|
-
imagePreview: imagePreview,
|
|
225
|
-
extraFileLink: extraFileLink,
|
|
226
|
-
systemStyle: systemStyle
|
|
227
|
-
}) : /*#__PURE__*/React.createElement(Tooltip, {
|
|
228
|
-
title: url
|
|
201
|
+
}, [props.value]);
|
|
202
|
+
return Array.isArray(text) ? /*#__PURE__*/React.createElement(Spin, {
|
|
203
|
+
spinning: loading
|
|
229
204
|
}, /*#__PURE__*/React.createElement("div", {
|
|
230
205
|
style: {
|
|
231
|
-
|
|
206
|
+
width: '100%',
|
|
207
|
+
wordBreak: 'break-word',
|
|
208
|
+
whiteSpace: 'normal'
|
|
232
209
|
}
|
|
233
|
-
},
|
|
234
|
-
|
|
235
|
-
name: name
|
|
236
|
-
|
|
237
|
-
extraFileLink: extraFileLink
|
|
238
|
-
}) : /*#__PURE__*/React.createElement(RenderInvalidFile, {
|
|
239
|
-
url: url,
|
|
240
|
-
name: name
|
|
241
|
-
})));
|
|
210
|
+
}, toDisplayLabels(text))) : props.renderItemText ? props.renderItemText({
|
|
211
|
+
text,
|
|
212
|
+
name: props.name
|
|
213
|
+
}) : tools.textPlaceholder(text);
|
|
242
214
|
}
|
|
243
|
-
|
|
215
|
+
function RenderFileItem({
|
|
244
216
|
url,
|
|
217
|
+
name,
|
|
218
|
+
isImage,
|
|
245
219
|
imageWidth,
|
|
246
220
|
imageHeight,
|
|
247
221
|
imagePreview,
|
|
248
222
|
extraFileLink,
|
|
249
|
-
|
|
223
|
+
onPreview
|
|
224
|
+
}) {
|
|
225
|
+
if (isImage) {
|
|
226
|
+
return /*#__PURE__*/React.createElement(RenderImage, {
|
|
227
|
+
url: url,
|
|
228
|
+
imageWidth: imageWidth,
|
|
229
|
+
imageHeight: imageHeight,
|
|
230
|
+
imagePreview: imagePreview,
|
|
231
|
+
extraFileLink: extraFileLink
|
|
232
|
+
});
|
|
233
|
+
} else {
|
|
234
|
+
return /*#__PURE__*/React.createElement(Tooltip, {
|
|
235
|
+
title: url
|
|
236
|
+
}, IS_PDF_REG.test(url) || IS_VIDEO_REG.test(url) ? /*#__PURE__*/React.createElement(RenderValidFile, {
|
|
237
|
+
url: url,
|
|
238
|
+
name: name,
|
|
239
|
+
onPreview: onPreview
|
|
240
|
+
}) : /*#__PURE__*/React.createElement(RenderInvalidFile, {
|
|
241
|
+
url: url,
|
|
242
|
+
name: name
|
|
243
|
+
}));
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
function RenderImage({
|
|
247
|
+
url,
|
|
248
|
+
imageWidth,
|
|
249
|
+
imageHeight,
|
|
250
|
+
imagePreview,
|
|
251
|
+
extraFileLink
|
|
250
252
|
}) {
|
|
251
253
|
return /*#__PURE__*/React.createElement("span", {
|
|
252
254
|
style: {
|
|
253
255
|
display: 'inline-block',
|
|
254
256
|
marginRight: 4,
|
|
255
|
-
marginBottom: 4
|
|
256
|
-
...(systemStyle ? {
|
|
257
|
-
...systemStyle,
|
|
258
|
-
border: `1px solid ${systemStyle?.color || '#d9d9d9'}`
|
|
259
|
-
} : {})
|
|
257
|
+
marginBottom: 4
|
|
260
258
|
}
|
|
261
259
|
}, /*#__PURE__*/React.createElement(Image, {
|
|
262
260
|
src: url,
|
|
@@ -264,83 +262,89 @@ export function RenderImage({
|
|
|
264
262
|
height: imageHeight || 64,
|
|
265
263
|
preview: extraFileLink ? {
|
|
266
264
|
visible: false,
|
|
267
|
-
onVisibleChange: () =>
|
|
265
|
+
onVisibleChange: () => {
|
|
266
|
+
window.open(url);
|
|
267
|
+
}
|
|
268
268
|
} : imagePreview
|
|
269
269
|
}));
|
|
270
270
|
}
|
|
271
|
-
|
|
271
|
+
function RenderValidFile({
|
|
272
272
|
url,
|
|
273
273
|
name,
|
|
274
274
|
extraFileLink,
|
|
275
275
|
onPreview
|
|
276
276
|
}) {
|
|
277
|
-
const handleClick = () => extraFileLink ? window.open(url) : onPreview();
|
|
278
277
|
return /*#__PURE__*/React.createElement("a", {
|
|
279
278
|
style: {
|
|
280
279
|
gap: 4,
|
|
281
280
|
display: 'flex',
|
|
282
281
|
alignItems: 'center'
|
|
283
282
|
},
|
|
284
|
-
onClick:
|
|
283
|
+
onClick: () => {
|
|
284
|
+
if (extraFileLink) {
|
|
285
|
+
window.open(url);
|
|
286
|
+
} else {
|
|
287
|
+
onPreview();
|
|
288
|
+
}
|
|
289
|
+
}
|
|
285
290
|
}, /*#__PURE__*/React.createElement(FileOutlined, null), name);
|
|
286
291
|
}
|
|
287
|
-
|
|
292
|
+
function RenderInvalidFile({
|
|
288
293
|
url,
|
|
289
294
|
name
|
|
290
295
|
}) {
|
|
291
296
|
return /*#__PURE__*/React.createElement("a", {
|
|
292
297
|
href: url,
|
|
293
|
-
target: "_blank",
|
|
294
298
|
style: {
|
|
295
299
|
gap: 4,
|
|
296
300
|
display: 'flex',
|
|
297
301
|
alignItems: 'center'
|
|
298
|
-
}
|
|
302
|
+
},
|
|
303
|
+
target: "_blank"
|
|
299
304
|
}, /*#__PURE__*/React.createElement(LinkOutlined, null), name);
|
|
300
305
|
}
|
|
301
|
-
|
|
306
|
+
function RenderTable({
|
|
302
307
|
columns,
|
|
303
308
|
dataSource,
|
|
304
309
|
imageWidth,
|
|
305
310
|
imageHeight,
|
|
306
311
|
imagePreview,
|
|
307
312
|
extraFileLink,
|
|
308
|
-
onPreview
|
|
309
|
-
systemStyle
|
|
313
|
+
onPreview
|
|
310
314
|
}) {
|
|
311
|
-
const renderColumn = col => {
|
|
312
|
-
const originalRender = col.render;
|
|
313
|
-
col.render = row => {
|
|
314
|
-
if (tools.isNumberArray(row) || tools.isStringArray(row)) {
|
|
315
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
316
|
-
style: systemStyle
|
|
317
|
-
}, row.join(','));
|
|
318
|
-
}
|
|
319
|
-
if (tools.isUploadFileListArray(row)) {
|
|
320
|
-
return /*#__PURE__*/React.createElement(Space, {
|
|
321
|
-
direction: "vertical"
|
|
322
|
-
}, tools.getDynamicUploadFileList(row).map((file, index) => /*#__PURE__*/React.createElement(RenderFileItem, {
|
|
323
|
-
key: index,
|
|
324
|
-
url: file.url,
|
|
325
|
-
name: file.name,
|
|
326
|
-
isImage: file.isImage,
|
|
327
|
-
imageWidth: imageWidth,
|
|
328
|
-
imageHeight: imageHeight,
|
|
329
|
-
imagePreview: imagePreview,
|
|
330
|
-
extraFileLink: extraFileLink,
|
|
331
|
-
onPreview: () => onPreview(file.url),
|
|
332
|
-
systemStyle: systemStyle
|
|
333
|
-
})));
|
|
334
|
-
}
|
|
335
|
-
if (tools.isObject(row)) return '数据错误';
|
|
336
|
-
return originalRender ? originalRender(row) : row;
|
|
337
|
-
};
|
|
338
|
-
return col;
|
|
339
|
-
};
|
|
340
315
|
return /*#__PURE__*/React.createElement(Table, {
|
|
341
316
|
rowKey: (record, index) => index,
|
|
342
|
-
columns: columns.map(
|
|
343
|
-
|
|
344
|
-
|
|
317
|
+
columns: columns.map(item => {
|
|
318
|
+
item.render = row => {
|
|
319
|
+
if (tools.isNumberArray(row) || tools.isStringArray(row)) {
|
|
320
|
+
return row?.join(',');
|
|
321
|
+
}
|
|
322
|
+
if (tools.isUploadFileListArray(row)) {
|
|
323
|
+
return /*#__PURE__*/React.createElement(Space, {
|
|
324
|
+
direction: "vertical"
|
|
325
|
+
}, tools.getDynamicUploadFileList(row).map((file, index) => {
|
|
326
|
+
return /*#__PURE__*/React.createElement(RenderFileItem, {
|
|
327
|
+
key: index,
|
|
328
|
+
url: file.url,
|
|
329
|
+
name: file.name,
|
|
330
|
+
isImage: file.isImage,
|
|
331
|
+
imageWidth: imageWidth,
|
|
332
|
+
imageHeight: imageHeight,
|
|
333
|
+
imagePreview: imagePreview,
|
|
334
|
+
extraFileLink: extraFileLink,
|
|
335
|
+
onPreview: () => {
|
|
336
|
+
onPreview(file.url);
|
|
337
|
+
}
|
|
338
|
+
});
|
|
339
|
+
}));
|
|
340
|
+
}
|
|
341
|
+
if (tools.isObject(row)) {
|
|
342
|
+
return '数据错误';
|
|
343
|
+
}
|
|
344
|
+
return row;
|
|
345
|
+
};
|
|
346
|
+
return item;
|
|
347
|
+
}),
|
|
348
|
+
dataSource: dataSource
|
|
345
349
|
});
|
|
346
350
|
}
|