import React, {Component} from "react";
import {Link, NavLink} from 'react-router-dom';
import {WordsBtn, ActionBtn, SnackbarHOC, getImageUrl} from 'educoder';
import axios from 'axios';
import {
	notification,
	Spin,
	Table,
	Pagination,
	Radio,
	Checkbox,
	Form,
	Input,
	Select,
	Cascader,
	Col, Row, InputNumber, DatePicker, AutoComplete, Button, Tag
} from "antd";
import './../questioncss/questioncom.css';

const InputGroup = Input.Group;
const {Option} = Select;
const options = [
	{
		value: '方向',
		label: '方向',
		children: [
			{
				value: '课程',
				label: '课程',
			},
		],
	},
	{
		value: 'jiangsu',
		label: 'Jiangsu',
		children: [
			{
				value: 'nanjing',
				label: 'Nanjing',
			},
		],
	},
];

class Itembankstop extends Component {
	constructor(props) {
		super(props);
		this.contentMdRef = React.createRef()
		this.state = {
			page: 1,
			Knowpoints: [],
			rbtx: undefined,
			rbkc: undefined,
			knowledgepoints: [],
			options: [],
		}
	}

	//初始化
	componentDidMount() {
		try {
			this.props.getcontentMdRef(this);
		} catch (e) {

		}
		this.setState({
			options: this.props.disciplmy
		})
		// knowledgepoints:this.props.knowledgepoints,

		////console.log("componentDidMount");
		////console.log(this.state);
		////console.log(this.props);
		// let homeworkid = this.props.match.params.homeworkid;
		// let url = "/homework_commons/" + homeworkid + "/end_groups.json";
		// axios.get(url).then((response) => {
		// 	if (response.status === 200) {
		// 		this.setState({})
		// 	}
		// }).catch((error) => {
		// 	////console.log(error)
		// });()
		// 题型


	}

	componentDidUpdate(prevProps) {

		if (prevProps.item_banksedit !== this.props.item_banksedit) {
			if (this.props.item_banksedit.item_type) {
				this.handleFormtixing(this.props.item_banksedit.item_type);
			}
			if (this.props.item_banksedit.difficulty) {
				this.handleFormLayoutChange(this.props.item_banksedit.difficulty);
			}
			if (this.props.item_banksedit.tag_disciplines) {
				this.handletag_disciplinesChange(this.props.item_banksedit.tag_disciplines);
			}

			if (this.props.item_banksedit.discipline &&this.props.item_banksedit.sub_discipline) {
				this.handdisciplinesChange(this.props.item_banksedit.discipline,this.props.item_banksedit.sub_discipline);
			}
		}
		if (prevProps.disciplmy !== this.props.disciplmy) {
			this.setState({
				options: this.props.disciplmy
			})
		}

	}
	handdisciplinesChange =(name,title)=>{
    this.setState({
			rbkc:[name.id,title.id]
		})
		this.props.form.setFieldsValue({
			rbkc: [name.id,title.id],
		});

    if(this.props.item_banksedit.tag_disciplines.length===0){
			const didata = this.props.disciplinesdata;
			const knowledgepointsdata = [];

			for (var i = 0; i < didata.length; i++) {
				//方向
				if (name.id === didata[i].id) {
					const fxdidata = didata[i].sub_disciplines;
					for (var j = 0; j < fxdidata.length; j++) {
						//课程
						if (title.id === fxdidata[j].id) {
							const zsddata = fxdidata[j].tag_disciplines;
							for (var k = 0; k < zsddata.length; k++) {
								//知识点
								knowledgepointsdata.push(zsddata[k]);


							}

						}

					}
				}


			}

			this.setState({
				Knowpoints: [],
				knowledgepoints: knowledgepointsdata,
			})

		}










	}
	handletag_disciplinesChange = (data) => {
		try {
			var sju=data[data.length-1].name;
			this.setState({
				rbzsd:sju,
				Knowpoints:data,
			})
			this.props.form.setFieldsValue({
				rbzsd: sju,
			});
		}catch (e) {

		}
	}
	onChange = (e) => {

	}
	Getdatas = () => {
		return this.handleSubmits();
	}
	handleSubmits = () => {
		var data = [];
		this.props.form.validateFields((err, values) => {
			data = []
			if (!err) {
				// ////console.log("获取的form 数据");
				// ////console.log(values);
				data.push({
					rbnd: parseInt(values.rbnd)
				})
				data.push({
					rbtx: values.rbtx
				})
				data.push({
					rbzsd: this.state.Knowpoints
				})
				data.push({
					rbkc: values.rbkc
				})

			}
		});

		return data;

	}
	handleSubmit = (e) => {
		e.preventDefault();
		this.props.form.validateFields((err, values) => {
			if (!err) {
				////console.log("获取的form 数据");
				////console.log(values);

			}


		});
	}

	handleFormLayoutChange = (value) => {
		//难度塞选
		////console.log("难度塞选");
		////console.log(value);
		this.props.form.setFieldsValue({
			rbnd: value + "",
		});
		this.setState({
			rbnd: value + "",
		})

	}
	handleFormkechen = (value) => {
		//课程
		////console.log("课程");
		////console.log(value);
		var valuename = undefined;
		this.props.form.setFieldsValue({
			rbzsd: value,
		});

		var arr = this.state.knowledgepoints;
		for (let data of arr) {
			if (data.id === value) {
				this.state.Knowpoints.push(data);
				valuename = data.name;
			}
		}

		var tmp = JSON.parse(JSON.stringify(this.state.knowledgepoints));
		for (var i = 0; i < tmp.length; i++) {
			if (tmp[i].id === value) {
				this.state.knowledgepoints.splice(i, 1);
			}
		}

		this.setState({
			rbzsd: valuename,
			Knowpoints: this.state.Knowpoints,
			knowledgepoints: this.state.knowledgepoints,
		})

	}

	handleFormzhishidian = (value) => {
		console.log("handleFormzhishidian 课程");
		console.log(value);

		//课程
		this.props.form.setFieldsValue({
			rbkc: value,
		});
		this.setState({
			rbkc:value,
		})
		// console.log("handleFormzhishidian");
		// console.log(this.props.disciplinesdata);

		const didata = this.props.disciplinesdata;
		const knowledgepointsdata = [];

		for (var i = 0; i < didata.length; i++) {
			//方向
			if (value[0] === didata[i].id) {
				const fxdidata = didata[i].sub_disciplines;
				for (var j = 0; j < fxdidata.length; j++) {
					//课程
					if (value[1] === fxdidata[j].id) {
						const zsddata = fxdidata[j].tag_disciplines;
						for (var k = 0; k < zsddata.length; k++) {
							//知识点
							knowledgepointsdata.push(zsddata[k]);


						}

					}

				}
			}


		}

		this.setState({
			Knowpoints: [],
			knowledgepoints: knowledgepointsdata,
		})

		this.props.form.setFieldsValue({
			rbzsd: undefined,
		});
		this.setState({
			rbzsd: undefined,
		})
	}

	handleFormtixing = (value) => {
		//题型
		//console.log("题型");
		//console.log(value);
		this.setState({
			rbtx: value + "",
		})
		this.props.form.setFieldsValue({
			rbtx: value + "",
		});
		this.props.setitem_type(value);
	}
	preventDefault = (e) => {
		e.preventDefault();
		////console.log('Clicked! But prevent default.');
	}
	deletesobject = (item, index) => {
		var arr = this.state.Knowpoints;
		for (let data of arr) {
			if (data.id === item.id) {
				this.state.knowledgepoints.push(data);
			}
		}


		var tmp = JSON.parse(JSON.stringify(this.state.Knowpoints));
		for (var i = 0; i < tmp.length; i++) {
			if (i >= index) {
				var pos = this.state.Knowpoints.indexOf(tmp[i]);
				this.state.Knowpoints.splice(pos, 1);
			}
		}

		this.props.form.setFieldsValue({
			rbzsd: this.state.Knowpoints,
		});


		this.setState({
			Knowpoints: this.state.Knowpoints,
		})

		if (this.state.Knowpoints.length === 0) {
			this.setState({
				rbzsd: undefined,
			})
		} else if (this.state.Knowpoints.length > 0) {
			try {
				const myknowda = this.state.Knowpoints;
				this.setState({
					rbzsd: myknowda[this.state.Knowpoints.length - 1].name,
				})
			} catch (e) {

			}

		}

	}


	render() {
		let {page, options} = this.state;
		const {getFieldDecorator} = this.props.form;
		//console.log("renderrenderrender");
		//console.log(this.props.item_banksedit);
		//console.log("renderrenderrendersssss");
		//console.log(this.state.rbtx);
		return (

			<div className=" clearfix  educontent Contentquestionbankstyle w100s w1200fpx mt19">
				<style>
					{
						`
						.ant-form-item{
						 margin-bottom: 0px !important;
						
						
						}
						.ant-form-explain{
						padding-left:0px !important;
						margin-top: 3px !important;
						}
					.ant-select-selection{
					height: 33px !important;
					}
					.ant-input-group{
					  width:258px !important;
					} 
					.ant-input {
					height: 33px !important;
					}
					
					.ant-radio-button-wrapper-checked:not(.ant-radio-button-wrapper-disabled):focus-within {
    outline: 0px solid rgba(24, 144, 255, 0.06) !important;
}
           
						`
					}
				</style>
				<div className="h12"></div>
				<Form onSubmit={this.handleSubmit}>

				<Form.Item
					label="课程"
				>
					{getFieldDecorator("rbkc",
						{
							rules: [{required: true, message: '请选择课程'}],
						}
					)(
						<div className="sortinxdirection">
							<InputGroup compact>
								<Cascader style={{width: '258px'}} value={this.state.rbkc} options={options} onChange={this.handleFormzhishidian}
													placeholder="请选择..."/>
							</InputGroup>


							{/*<div className="sortinxdirection" style={{*/}
							{/*	height: "33px",*/}
							{/*	lineHeight: "28px",*/}

							{/*}}>*/}

							{/*	{this.state.Knowpoints === undefined ? "" : this.state.Knowpoints.map((object, index) => {*/}
							{/*		return (*/}
							{/*			<div className="mytags" style={{*/}
							{/*				position: "relative",*/}
							{/*			}}>*/}
							{/*				<p className="w100s  stestcen lh32">{object}</p>*/}
							{/*				<i className="iconfont icon-roundclose font-25 lg ml7 icondowncolorss" onClick={()=>this.deletesobject(object,index)}></i>*/}
							{/*			</div>*/}
							{/*		)*/}
							{/*	})}*/}

							{/*</div>*/}
						</div>
					)}
				</Form.Item>
					<Form.Item
						label="知识点"
					>
						{getFieldDecorator("rbzsd"
						)(
							<div className="sortinxdirection">
								<InputGroup compact>
									<Select style={{width: '258px'}} value={this.state.rbzsd} onChange={this.handleFormkechen}
													placeholder="请选择...">
										{this.state.knowledgepoints && this.state.knowledgepoints.map((object, index) => {
											return (
												<Option value={object.id}>{object.name}</Option>
											)
										})}
									</Select>
								</InputGroup>
								<div className="sortinxdirection" style={{
									height: "33px",
									lineHeight: "28px",

								}}>

									{this.state.Knowpoints === undefined ? "" : this.state.Knowpoints.map((object, index) => {
										return (
											<div className="mytags" style={{
												position: "relative",
											}}>
												<p className="w100s  stestcen lh32">{object.name}</p>
												<i className="iconfont icon-roundclose font-25 lg ml7 icondowncolorss"
													 onClick={() => this.deletesobject(object, index)}></i>
											</div>
										)
									})}

								</div>
							</div>
						)}
					</Form.Item>

					<Form.Item
						label="题型"
					>
						{getFieldDecorator("rbtx",
							{
								rules: [{required: true, message: '请选择题型'}],
							}
						)(
							<InputGroup compact>
								<Select style={{width: '258px'}} value={this.state.rbtx} onChange={this.handleFormtixing}
												placeholder="请选择...">
									<Option value="SINGLE">单选题</Option>
									<Option value="MULTIPLE">多选题</Option>
									<Option value="JUDGMENT">判断题</Option>
									<Option value="PROGRAM">编程题</Option>
								</Select>
							</InputGroup>
						)}
					</Form.Item>


					<style>
						{
							`
							.rbndclass .ant-radio-button-wrapper{
							width:106px !important;
							height:33px !important;
							background:#EEEEEE;
							border-radius:17px !important;
							color:#333333; 
							text-align: center !important;
							border:0px !important;
							margin-right: 27px !important;
							    margin-top: 6px !important;

							}
							.rbndclass .ant-radio-button-wrapper-checked {
						    width: 106px !important;
								height: 33px !important;
								background: #4CACFF !important;
								border-radius: 17px !important;
								text-align: center !important;
								border:0px !important;
								color: #ffffff !important;
								margin-right: 27px !important;
								    margin-top: 6px!important;

							}
							.rbndclass .ant-radio-button-wrapper:not(:first-child)::before{
								border:0px !important;
									width:0px !important;
							}
							
							.rbndclass .ant-radio-button-wrapper{
								border:0px !important;
							}
							.rbndclass .ant-radio-group{
								border:0px !important;
							}
							.rbndclass .ant-radio-group label{
								border:0px !important;
							}
							
							.rbndclass .ant-radio-group span{
								border:0px !important;
							}
							
							ant-radio-button-wrapper:focus-within {
									outline: 0px solid #ffffff;
							}
							
							`
						}
					</style>
					<div className="rbndclass">
						<Form.Item label="难度">
							{getFieldDecorator('rbnd',
								{
									rules: [{required: true, message: '请选择难度'}],
								}
							)(
								<Radio.Group value={this.state.rbnd} onChange={this.handleFormLayoutChange}>
									<Radio.Button value="1">简单</Radio.Button>
									<Radio.Button value="2">适中</Radio.Button>
									<Radio.Button value="3">困难</Radio.Button>
								</Radio.Group>,
							)}
						</Form.Item>
					</div>
					{/*<Form.Item>*/}
					{/*	<Button type="primary" htmlType="submit" className="login-form-button">*/}
					{/*		提交*/}
					{/*	</Button>*/}
					{/*</Form.Item>*/}

				</Form>
				<div className="h20"></div>
			</div>
		)

	}


}

const Itembankstops = Form.create({name: 'Itembankstops'})(Itembankstop);
export default Itembankstops;
