parent
735ff5c517
commit
e44dc226c7
@ -0,0 +1,123 @@
|
||||
import React,{ Component } from "react";
|
||||
import {Menu, Dropdown, Icon,Input,Checkbox} from "antd";
|
||||
import {getImageUrl} from 'educoder';
|
||||
const { Search } = Input;
|
||||
class Dropdownbox extends Component{
|
||||
constructor(props){
|
||||
super(props);
|
||||
this.state={
|
||||
activeKey:'1',
|
||||
visible: false,
|
||||
onSearchvalue:undefined,
|
||||
checkedValues:[]
|
||||
}
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
let {group_ids}=this.props;
|
||||
if(group_ids){
|
||||
this.setState({
|
||||
checkedValues:group_ids
|
||||
})
|
||||
}
|
||||
}
|
||||
componentDidUpdate=(prevProps)=>{
|
||||
if(prevProps!=this.props){
|
||||
let {group_ids}=this.props;
|
||||
if(group_ids){
|
||||
this.setState({
|
||||
checkedValues:group_ids
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
SaveChange=()=>{
|
||||
this.props.postwork_scoredata(this.state.checkedValues)
|
||||
}
|
||||
|
||||
|
||||
handleVisibleChange=flag=>{
|
||||
this.setState({ visible: flag });
|
||||
};
|
||||
|
||||
CheckboxonChange=(checkedValues)=>{
|
||||
this.setState({
|
||||
checkedValues:checkedValues
|
||||
})
|
||||
}
|
||||
|
||||
unCheckboxonChange=()=>{
|
||||
this.setState({
|
||||
checkedValues:[],
|
||||
onSearchvalue:undefined
|
||||
})
|
||||
}
|
||||
|
||||
onSearch=(value)=>{
|
||||
this.setState({
|
||||
onSearchvalue:value
|
||||
})
|
||||
}
|
||||
|
||||
onSearchonChange=(e)=>{
|
||||
this.setState({
|
||||
onSearchvalue:e.target.value
|
||||
})
|
||||
}
|
||||
|
||||
render(){
|
||||
let {course_groups}=this.props;
|
||||
|
||||
const menu = (
|
||||
<Checkbox.Group style={{ width: 220 }} className={"StatisticsMenubox"} value={this.state.checkedValues} onChange={(checkedValues)=>this.CheckboxonChange(checkedValues)}>
|
||||
<Menu className="Statisticslibox">
|
||||
<li className={"Statisticsli"}>
|
||||
{course_groups&&course_groups.length>10?<Search
|
||||
placeholder="请输入名称搜索"
|
||||
onSearch={(value)=>this.onSearch(value)}
|
||||
onChange={(e)=>this.onSearchonChange(e)}
|
||||
value={this.state.onSearchvalue}
|
||||
style={{ width: 200 }}
|
||||
/>:""}
|
||||
</li>
|
||||
{course_groups&&course_groups.map((item,key)=>{
|
||||
if(this.state.onSearchvalue){
|
||||
if(item.name.indexOf(this.state.onSearchvalue) != -1){
|
||||
return(
|
||||
<Menu.Item key={key}>
|
||||
<Checkbox value={item.id} key={item.id}> {item.name}</Checkbox>
|
||||
</Menu.Item>
|
||||
)
|
||||
}
|
||||
}else{
|
||||
return(
|
||||
<Menu.Item key={key}>
|
||||
<Checkbox value={item.id} key={item.id}> {item.name}</Checkbox>
|
||||
</Menu.Item>
|
||||
)
|
||||
}
|
||||
})}
|
||||
<Menu.Divider />
|
||||
<li className={"Statisticsli"}>
|
||||
<span onClick={()=>this.SaveChange()} className={"ant-btn-link"}>确定</span>
|
||||
<span className={"ml20 ant-btn-link"} onClick={()=>this.unCheckboxonChange()}>重置</span>
|
||||
</li>
|
||||
</Menu>
|
||||
</Checkbox.Group>
|
||||
);
|
||||
|
||||
return(
|
||||
<React.Fragment>
|
||||
<Dropdown overlay={menu}
|
||||
onVisibleChange={this.handleVisibleChange}
|
||||
visible={this.state.visible}
|
||||
>
|
||||
<a className="ant-dropdown-link">
|
||||
分班 <Icon type="down" />
|
||||
</a>
|
||||
</Dropdown>
|
||||
</React.Fragment>
|
||||
)
|
||||
}
|
||||
}
|
||||
export default Dropdownbox;
|
Loading…
Reference in new issue