parent
4bf182e705
commit
b6de318494
@ -0,0 +1,158 @@
|
|||||||
|
import React, { Component } from "react";
|
||||||
|
import { Modal, Checkbox, Input, Spin, Upload, Divider, Icon } from "antd";
|
||||||
|
import axios from 'axios'
|
||||||
|
import ModalWrapper from "../../common/ModalWrapper"
|
||||||
|
|
||||||
|
import { ConditionToolTip, getUploadActionUrl } from 'educoder'
|
||||||
|
|
||||||
|
const { Dragger } = Upload;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
class CreateGroupByImportModal extends Component{
|
||||||
|
constructor(props){
|
||||||
|
super(props);
|
||||||
|
this.state={
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fetchMemberList = (arg_page) => {
|
||||||
|
}
|
||||||
|
componentDidMount() {
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
onSendOk = () => {
|
||||||
|
const courseId = this.props.match.params.coursesId
|
||||||
|
|
||||||
|
let url = `/courses/${courseId}/create_group_by_importing_file.json`
|
||||||
|
let { fileList } =this.state;
|
||||||
|
|
||||||
|
if (!fileList || fileList.length == 0) {
|
||||||
|
// this.props.showNotification('请先上传附件')
|
||||||
|
this.setState({
|
||||||
|
errorTip :'请先上传附件',
|
||||||
|
})
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
let newfileList=[];
|
||||||
|
for(var list of fileList){
|
||||||
|
newfileList.push(list.response.id)
|
||||||
|
}
|
||||||
|
|
||||||
|
axios.post(url, {
|
||||||
|
attachment_ids: newfileList
|
||||||
|
})
|
||||||
|
.then((response) => {
|
||||||
|
if (response.data.status == 0) {
|
||||||
|
this.props.showNotification(response.data.message)
|
||||||
|
this.setVisible(false)
|
||||||
|
} else {
|
||||||
|
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(function (error) {
|
||||||
|
console.log(error);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
setVisible = (visible) => {
|
||||||
|
if (visible) {
|
||||||
|
this.setState({ fileList: [] });
|
||||||
|
}
|
||||||
|
this.refs.modalWrapper.setVisible(visible)
|
||||||
|
|
||||||
|
}
|
||||||
|
handleChange = (info) => {
|
||||||
|
let fileList = info.fileList;
|
||||||
|
console.log(fileList)
|
||||||
|
this.setState({ fileList });
|
||||||
|
}
|
||||||
|
|
||||||
|
onOk = () => {
|
||||||
|
this.onSendOk()
|
||||||
|
}
|
||||||
|
|
||||||
|
onAttachmentRemove = (file) => {
|
||||||
|
this.props.confirm({
|
||||||
|
content: '是否确认删除?',
|
||||||
|
|
||||||
|
onOk: () => {
|
||||||
|
this.deleteAttachment(file)
|
||||||
|
},
|
||||||
|
onCancel() {
|
||||||
|
console.log('Cancel');
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
deleteAttachment = (file) => {
|
||||||
|
const url = `/attachments/${file.response ? file.response.id : file.uid}.json`
|
||||||
|
axios.delete(url, {
|
||||||
|
})
|
||||||
|
.then((response) => {
|
||||||
|
if (response.data) {
|
||||||
|
// const { status } = response.data;
|
||||||
|
if (response.data.status === 0) {
|
||||||
|
|
||||||
|
this.setState((state) => {
|
||||||
|
const index = state.fileList.indexOf(file);
|
||||||
|
const newFileList = state.fileList.slice();
|
||||||
|
newFileList.splice(index, 1);
|
||||||
|
return {
|
||||||
|
fileList: newFileList,
|
||||||
|
};
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.catch(function (error) {
|
||||||
|
console.log(error);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
render(){
|
||||||
|
const { candidates, checkBoxValues, loading, hasMore, name, school_name, school_names
|
||||||
|
, graduationGroup, graduation_groups, courseGroup, course_groups } = this.state
|
||||||
|
const { moduleName } = this.props
|
||||||
|
|
||||||
|
const props = {
|
||||||
|
name: 'file',
|
||||||
|
multiple: true,
|
||||||
|
action: getUploadActionUrl(),
|
||||||
|
onRemove: this.onAttachmentRemove,
|
||||||
|
onChange: this.handleChange
|
||||||
|
};
|
||||||
|
return(
|
||||||
|
<ModalWrapper
|
||||||
|
ref="modalWrapper"
|
||||||
|
width="700px"
|
||||||
|
title={`导入创建分班`}
|
||||||
|
{...this.props }
|
||||||
|
onOk={this.onOk}
|
||||||
|
className="createGroupByImport"
|
||||||
|
>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
{`
|
||||||
|
|
||||||
|
`}
|
||||||
|
</style>
|
||||||
|
<div className="df">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<Dragger {...props}>
|
||||||
|
<p className="ant-upload-drag-icon">
|
||||||
|
<Icon type="inbox" />
|
||||||
|
</p>
|
||||||
|
<p className="ant-upload-text">点击或拖拽文件到这里上传</p>
|
||||||
|
<p className="ant-upload-hint">
|
||||||
|
单个文件最大150MB
|
||||||
|
</p>
|
||||||
|
</Dragger>
|
||||||
|
</ModalWrapper>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
export default CreateGroupByImportModal;
|
Loading…
Reference in new issue