|
|
@ -1,5 +1,6 @@
|
|
|
|
import React, {Component} from "React";
|
|
|
|
import React, {Component} from "React";
|
|
|
|
import {Form, Select, Input, Button, Checkbox, DatePicker,Spin,Icon} from "antd";
|
|
|
|
import {Form, Select, Input, Button, Checkbox, DatePicker,Spin,Icon} from "antd";
|
|
|
|
|
|
|
|
import ApplyForAddOrgModal from '../../user/modal/ApplyForAddOrgModal';
|
|
|
|
import axios from 'axios';
|
|
|
|
import axios from 'axios';
|
|
|
|
import "../css/Courses.css";
|
|
|
|
import "../css/Courses.css";
|
|
|
|
import locale from 'antd/lib/date-picker/locale/zh_CN';
|
|
|
|
import locale from 'antd/lib/date-picker/locale/zh_CN';
|
|
|
@ -7,6 +8,7 @@ import moment from 'moment';
|
|
|
|
import Modals from '../../modals/Modals';
|
|
|
|
import Modals from '../../modals/Modals';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const { Option } = Select;
|
|
|
|
const { Option } = Select;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -284,12 +286,13 @@ class CoursesNew extends Component {
|
|
|
|
// console.log(e.target.checked);
|
|
|
|
// console.log(e.target.checked);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
Searchvalue=(value)=>{
|
|
|
|
Searchvalue=(value)=>{
|
|
|
|
|
|
|
|
|
|
|
|
let url="/courses/search_course_list.json";
|
|
|
|
let url="/courses/search_course_list.json";
|
|
|
|
axios.post(url,{
|
|
|
|
axios.post(url,{
|
|
|
|
search:value
|
|
|
|
search:value
|
|
|
|
}).then((result)=>{
|
|
|
|
}).then((result)=>{
|
|
|
|
// console.log(result.data)
|
|
|
|
// console.log(result.data)
|
|
|
|
if (result.data.message===undefined) {
|
|
|
|
if (result.data.status===0) {
|
|
|
|
this.setState({
|
|
|
|
this.setState({
|
|
|
|
searchlist: result.data.course_lists,
|
|
|
|
searchlist: result.data.course_lists,
|
|
|
|
// course:value,
|
|
|
|
// course:value,
|
|
|
@ -304,14 +307,19 @@ class CoursesNew extends Component {
|
|
|
|
})
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}
|
|
|
|
handleSearch=(value)=>{
|
|
|
|
handleSearch=(value)=>{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(value!=""){
|
|
|
|
this.props.form.setFieldsValue({
|
|
|
|
this.props.form.setFieldsValue({
|
|
|
|
classroom:value,
|
|
|
|
classroom:value,
|
|
|
|
course:value
|
|
|
|
course:value
|
|
|
|
});
|
|
|
|
});
|
|
|
|
this.Searchvalue(value)
|
|
|
|
this.Searchvalue(value)
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
handleChange=(value)=>{
|
|
|
|
handleChange=(value)=>{
|
|
|
|
|
|
|
|
|
|
|
|
this.props.form.setFieldsValue({
|
|
|
|
this.props.form.setFieldsValue({
|
|
|
|
course:value,
|
|
|
|
course:value,
|
|
|
|
classroom:value
|
|
|
|
classroom:value
|
|
|
@ -320,13 +328,24 @@ class CoursesNew extends Component {
|
|
|
|
|
|
|
|
|
|
|
|
handleSearchschool=(value)=>{
|
|
|
|
handleSearchschool=(value)=>{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if(value!="") {
|
|
|
|
this.props.form.setFieldsValue({
|
|
|
|
this.props.form.setFieldsValue({
|
|
|
|
school: value,
|
|
|
|
school: value,
|
|
|
|
fetching: true,
|
|
|
|
fetching: true,
|
|
|
|
});
|
|
|
|
});
|
|
|
|
this.Searchvalue(value)
|
|
|
|
|
|
|
|
|
|
|
|
this.getschool(value)
|
|
|
|
|
|
|
|
}
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
handleChangeschools=(value)=>{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
this.props.form.setFieldsValue({
|
|
|
|
|
|
|
|
school: value,
|
|
|
|
|
|
|
|
fetching: true,
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
handleChangeschool=(value)=>{
|
|
|
|
handleChangeschool=(value)=>{
|
|
|
|
|
|
|
|
|
|
|
|
this.setState({
|
|
|
|
this.setState({
|
|
|
@ -338,35 +357,56 @@ class CoursesNew extends Component {
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
getschool=(value)=>{
|
|
|
|
getschool=(value)=>{
|
|
|
|
|
|
|
|
|
|
|
|
let url="/schools/school_list.json";
|
|
|
|
let url="/schools/school_list.json";
|
|
|
|
axios.get(url,{
|
|
|
|
axios.get(url,{
|
|
|
|
params: {
|
|
|
|
params: {
|
|
|
|
search: value
|
|
|
|
search: value
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}).then((result)=>{
|
|
|
|
}).then((result)=>{
|
|
|
|
if (result.data.message===undefined) {
|
|
|
|
if (result.data.status===0) {
|
|
|
|
this.setState({
|
|
|
|
this.setState({
|
|
|
|
searchlistscholl: result.data.school_names,
|
|
|
|
searchlistscholl: result.data.school_names,
|
|
|
|
scholl: value
|
|
|
|
school: value
|
|
|
|
})
|
|
|
|
})
|
|
|
|
this.props.form.setFieldsValue({
|
|
|
|
this.props.form.setFieldsValue({
|
|
|
|
scholl: value
|
|
|
|
school: value
|
|
|
|
})
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}).catch((error)=>{
|
|
|
|
}).catch((error)=>{
|
|
|
|
console.log(error)
|
|
|
|
console.log(error)
|
|
|
|
})
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
showApplyForAddOrgModal = () => {
|
|
|
|
|
|
|
|
this.applyForAddOrgForm.setVisible(true)
|
|
|
|
|
|
|
|
}
|
|
|
|
render() {
|
|
|
|
render() {
|
|
|
|
let {datatime} = this.state;
|
|
|
|
let {datatime,school,searchlistscholl} = this.state;
|
|
|
|
const {getFieldDecorator} = this.props.form;
|
|
|
|
const {getFieldDecorator} = this.props.form;
|
|
|
|
|
|
|
|
const propsWithoutForm = Object.assign({}, this.props)
|
|
|
|
|
|
|
|
delete propsWithoutForm.form
|
|
|
|
const options = this.state.searchlist && this.state.searchlist.map(d => <Option key={d.name} value={d.name}>{d.name}</Option>);
|
|
|
|
const options = this.state.searchlist && this.state.searchlist.map(d => <Option key={d.name} value={d.name}>{d.name}</Option>);
|
|
|
|
const optionschool = this.state.searchlistscholl.map(z => <Option key={z} value={z}>{z}</Option>);
|
|
|
|
const optionschool = this.state.searchlistscholl&&this.state.searchlistscholl.map(z => <Option key={z} value={z}>{z}</Option>);
|
|
|
|
// console.log(this.props.current_user.user_school)
|
|
|
|
// console.log(this.props.current_user.user_school)
|
|
|
|
|
|
|
|
// form合并了
|
|
|
|
|
|
|
|
// console.log(optionschool)
|
|
|
|
return (
|
|
|
|
return (
|
|
|
|
<React.Fragment>
|
|
|
|
<React.Fragment>
|
|
|
|
|
|
|
|
|
|
|
|
<div>
|
|
|
|
<div>
|
|
|
|
|
|
|
|
<style>
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
`
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.color-green-light {
|
|
|
|
|
|
|
|
color: #45E660!important;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
`
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
</style>
|
|
|
|
|
|
|
|
<ApplyForAddOrgModal ref="applyForAddOrgModal" wrappedComponentRef={(form) => this.applyForAddOrgForm = form} schoolName={school}
|
|
|
|
|
|
|
|
{...propsWithoutForm}></ApplyForAddOrgModal>
|
|
|
|
{/*提示*/}
|
|
|
|
{/*提示*/}
|
|
|
|
<Modals
|
|
|
|
<Modals
|
|
|
|
modalsType={this.state.Modalstype}
|
|
|
|
modalsType={this.state.Modalstype}
|
|
|
@ -411,31 +451,9 @@ class CoursesNew extends Component {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
`}
|
|
|
|
`}
|
|
|
|
</style>
|
|
|
|
</style>
|
|
|
|
<div className="stud-class-set bor-bottom-greyE padding10200">
|
|
|
|
{/*<div className="stud-class-set bor-bottom-greyE padding10200">*/}
|
|
|
|
<Form.Item label="课堂所属单位">
|
|
|
|
|
|
|
|
{getFieldDecorator('school', {
|
|
|
|
{/*</div>*/}
|
|
|
|
rules: [{required: true, message: "不能为空"}],
|
|
|
|
|
|
|
|
})(
|
|
|
|
|
|
|
|
<Select
|
|
|
|
|
|
|
|
showSearch
|
|
|
|
|
|
|
|
className={"fl construction mr10 "}
|
|
|
|
|
|
|
|
placeholder="请输入并选择课本堂的所属单位"
|
|
|
|
|
|
|
|
// value={this.state.school}
|
|
|
|
|
|
|
|
onSearch={this.handleSearchschool}
|
|
|
|
|
|
|
|
// notFoundContent={this.state.fetching ? <Spin size="small" /> : null}
|
|
|
|
|
|
|
|
onChange={this.handleChangeschool}
|
|
|
|
|
|
|
|
onFocus={()=>this.getschool("")}
|
|
|
|
|
|
|
|
allowClear={true}
|
|
|
|
|
|
|
|
>
|
|
|
|
|
|
|
|
{optionschool}
|
|
|
|
|
|
|
|
</Select>
|
|
|
|
|
|
|
|
)}
|
|
|
|
|
|
|
|
<span className={"newcoursestitle fl"}>
|
|
|
|
|
|
|
|
{/*(输入内容出现匹配的下拉菜单←同账号管理的单位信息填写)*/}
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
<div id='isschool'></div>
|
|
|
|
|
|
|
|
</Form.Item>
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div className="stud-class-set bor-bottom-greyE padding10200 ">
|
|
|
|
<div className="stud-class-set bor-bottom-greyE padding10200 ">
|
|
|
|
<div className={"TabsWarpcourse"}>
|
|
|
|
<div className={"TabsWarpcourse"}>
|
|
|
@ -455,7 +473,6 @@ class CoursesNew extends Component {
|
|
|
|
>
|
|
|
|
>
|
|
|
|
{options}
|
|
|
|
{options}
|
|
|
|
</Select>
|
|
|
|
</Select>
|
|
|
|
|
|
|
|
|
|
|
|
)}
|
|
|
|
)}
|
|
|
|
<span className={"newcoursestitle fl"}>
|
|
|
|
<span className={"newcoursestitle fl"}>
|
|
|
|
{/*(错误示例:数据结构2017本部;数据结构2017秋季;数据结构2017电子商务1班)*/}
|
|
|
|
{/*(错误示例:数据结构2017本部;数据结构2017秋季;数据结构2017电子商务1班)*/}
|
|
|
@ -605,7 +622,7 @@ class CoursesNew extends Component {
|
|
|
|
</Form.Item>
|
|
|
|
</Form.Item>
|
|
|
|
</span>
|
|
|
|
</span>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div className="stud-class-set padding10200 coursenavbox">
|
|
|
|
<div className="stud-class-set padding10200 coursenavbox bor-bottom-greyE">
|
|
|
|
<Form.Item
|
|
|
|
<Form.Item
|
|
|
|
label="公开设置"
|
|
|
|
label="公开设置"
|
|
|
|
hasFeedback
|
|
|
|
hasFeedback
|
|
|
@ -619,9 +636,45 @@ class CoursesNew extends Component {
|
|
|
|
<span className={"coursesselect"}>(选中后本课堂对所有用户可见,否则仅本课堂成员可见)</span>
|
|
|
|
<span className={"coursesselect"}>(选中后本课堂对所有用户可见,否则仅本课堂成员可见)</span>
|
|
|
|
</Form.Item>
|
|
|
|
</Form.Item>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div className="stud-class-set padding10200 coursenavbox mb20">
|
|
|
|
|
|
|
|
<Form.Item label="课堂所属单位">
|
|
|
|
|
|
|
|
{getFieldDecorator('school', {
|
|
|
|
|
|
|
|
rules: [{required: true, message: "不能为空"}],
|
|
|
|
|
|
|
|
})(
|
|
|
|
|
|
|
|
<Select
|
|
|
|
|
|
|
|
showSearch
|
|
|
|
|
|
|
|
className={"fl construction mr10 "}
|
|
|
|
|
|
|
|
placeholder="请输入并选择课本堂的所属单位"
|
|
|
|
|
|
|
|
// value={this.state.school}
|
|
|
|
|
|
|
|
onSearch={this.handleSearchschool}
|
|
|
|
|
|
|
|
// notFoundContent={this.state.fetching ? <Spin size="small" /> : null}
|
|
|
|
|
|
|
|
onChange={this.handleChangeschools}
|
|
|
|
|
|
|
|
allowClear={true}
|
|
|
|
|
|
|
|
>
|
|
|
|
|
|
|
|
{optionschool}
|
|
|
|
|
|
|
|
</Select>
|
|
|
|
|
|
|
|
)}
|
|
|
|
|
|
|
|
<span className={"newcoursestitle fl"}>
|
|
|
|
|
|
|
|
{/*(输入内容出现匹配的下拉菜单←同账号管理的单位信息填写)*/}
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
<div id='isschool'></div>
|
|
|
|
|
|
|
|
</Form.Item>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{searchlistscholl.length===0?<div style={{height:"20px",lineHeight:"20px"}} className="ml20">
|
|
|
|
|
|
|
|
<span>
|
|
|
|
|
|
|
|
<span style={{color: '#CDCDCD'}}>未找到包含“{school}”的高校,</span>
|
|
|
|
|
|
|
|
<span style={{color: '#4CACFF', cursor: 'pointer'}} onClick={this.showApplyForAddOrgModal}>申请新增</span>
|
|
|
|
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</div>:""}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div className={"FAFAFA"}>
|
|
|
|
<div className={"FAFAFA"}>
|
|
|
|
<Form.Item wrapperCol={{span: 12, offset: 5}}>
|
|
|
|
<Form.Item >
|
|
|
|
<div className="clearfix mt80 mb30">
|
|
|
|
<div className="clearfix mt40 mb30">
|
|
|
|
<Button type="primary" htmlType="submit" className="defalutSubmitbtn fl mr20">
|
|
|
|
<Button type="primary" htmlType="submit" className="defalutSubmitbtn fl mr20">
|
|
|
|
提交
|
|
|
|
提交
|
|
|
|
</Button>
|
|
|
|
</Button>
|
|
|
|