import React, { Component } from "react"; import { Modal, Checkbox, Input, Spin, Select, Divider, Radio } from "antd"; import axios from 'axios' import ModalWrapper from "../../common/ModalWrapper" import InfiniteScroll from 'react-infinite-scroller'; import { ROLE_TEACHER_NUM, ROLE_ASSISTANT_NUM } from '../common' import NoneData from '../../coursesPublic/NoneData' import { ConditionToolTip } from 'educoder' import SchoolSelect from '../../coursesPublic/form/SchoolSelect' const RadioGroup = Radio.Group; const Option = Select.Option; const pageCount = 15; class AddAdminModal extends Component{ constructor(props){ super(props); this.state={ radioBoxValue: [], users: [], hasMore: true, loading: false, courseGroup: '', page: 1 } } fetchTeacherList = (arg_page) => { const courseId = this.props.match.params.coursesId const page = arg_page || this.state.page; const { name, school_name } = this.state let url = `/courses/${courseId}/teachers.json` this.setState({ loading: true }) axios.get(url, { params: { page: page, limit: pageCount } }) .then((response) => { if (!response.data.teacher_list || response.data.teacher_list.length == 0) { this.setState({ teacher_list: page == 1 ? response.data.teacher_list : this.state.teacher_list, page, loading: false, hasMore: false, }) } else { this.setState({ teacher_list: page == 1 ? response.data.teacher_list : this.state.teacher_list.concat(response.data.teacher_list), page, loading: false, hasMore: response.data.teacher_list.length == pageCount }) } }) .catch(function (error) { console.log(error); }); } componentDidMount() { } setVisible = (visible) => { if (visible) { this.fetchTeacherList() } this.refs.modalWrapper.setVisible(visible) if (visible == false) { this.setState({ radioBoxValue: '' }) } } onSendOk = () => { if(!this.state.radioBoxValue || this.state.radioBoxValue.length == 0) { this.props.showNotification('请从列表中先选择用户。') return; } const courseId = this.props.match.params.coursesId const params = { "user_ids": this.state.radioBoxValue } const { courseGroup } = this.state if (courseGroup) { params.course_group_id = courseGroup } const url = `/courses/${courseId}/change_course_admin.json` axios.post(url, { course_member_id: this.state.radioBoxValue.course_member_id, user_id: this.state.radioBoxValue.user_id }).then((result)=>{ if(result.data.status==0){ this.props.showNotification('操作成功。') window.location.reload() // this.fetchAll() this.setVisible(false) this.props.changeAdminSuccess && this.props.changeAdminSuccess() } }).catch((error)=>{ console.log(error); }) } onOk = () => { this.onSendOk() } onCheckBoxChange = (e) => { this.setState({ radioBoxValue: e.target.value }) } handleInfiniteOnLoad = () => { this.fetchTeacherList(this.state.page + 1) } onSearch = () => { this.fetchTeacherList(1) } handleCourseGroupChange = (value) => { this.setState({ courseGroup: value }) } render(){ const { teacher_list, radioBoxValue, loading, hasMore, name, school_name , courseGroup, course_groups, } = this.state const { moduleName } = this.props return(

选择的成员将会成为新的管理员

您将不再拥有管理员的权限,但您仍是教师团队的一员

{/*

*/} { teacher_list && teacher_list.length ?
{/* https://github.com/CassetteRocks/react-infinite-scroller/issues/70 */}
{ teacher_list.map( candidate => { return (

{/* 12 }> */}

) }) }
{loading && hasMore && (
)}
: }
) } } export default AddAdminModal;