1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
import React, { PureComponent } from 'react';
import { Upload, message } from 'antd';
import { _apiUrl_ } from '@/utils/common';
const { Dragger } = Upload;
class UploadFile extends PureComponent {
constructor(props) {
super(props);
}
state = {
tempFileList:[]
}
onRemove = file => {
const fileList = this.state.tempFileList;
const index = fileList?.indexOf(file);
fileList.splice(index, 1);
this.setState({
tempFileList: fileList && fileList.length > 0 && [...fileList] || []
}, () => {
this.props.onRemove && this.props.onRemove(fileList);
})
};
changeUpload = (fileInfo) => {
const files = [];
fileInfo.fileList.forEach((element) => {
if (element.status === 'done' && element.response?.success && element.response.data) {
files.push(element.response.data.url);
} else if (element.status === 'done' && element?.url) {
//peter new add,做为回显使用
files.push(element?.url);
} else if (element.response?.success === false) {
message.error(element.response?.message);
}
});
//peter
this.setState({
tempFileList:fileInfo.fileList
})
this.props.onChange(files, fileInfo);
};
render() {
let action = `${_apiUrl_}/account-service/file/${this.props.fileType || 'image'}`;
const props = this.props;
console.log(`uploadfile props is:`, props);
const isDragger = props.isDragger;
const options = {
headers: {
Authorization: 'bearer ' + localStorage.getItem('Authorization'),
},
action: action,
name: 'docFile',
};
const newProps = { ...options, ...props };
console.log(`newProps props is:`, newProps);
//new add code
const fileList = (props.value || []).map((item, index) => ({
uid: index,
name: item?.fileName || `附件${index + 1}`,
status: 'done',
url: item,
}));
if (isDragger) {
return <Dragger {...newProps} key={props.value} defaultFileList={ fileList } children={props.children} onChange={this.changeUpload} />;
} else {
return <Upload {...newProps} key={props.value} defaultFileList={ fileList } children={props.children} onChange={this.changeUpload} />;
}
}
}
export default UploadFile;