import React,{ Component } from "react";
import { Input,Checkbox,Table, Pagination, Modal,Menu, Tooltip,Spin,Button,Form,Row, Col } from "antd";
import { WordsBtn,on, off, trigger,markdownToHTML,getImageUrl} from 'educoder';
import './myysleduinforms.css'
import axios from 'axios';
import TPMMDEditor from "../../tpm/challengesnew/TPMMDEditor";
import moment from "../new/CoursesNew";
import Fileslistitem from "../Resource/Fileslistitem";
import Modals from "../../modals/Modals";
// 公告栏
class Bullsubdirectory extends Component{
	constructor(props){
		super(props);
		this.messageRef = React.createRef();

		this.state={
			description:null,
			isSpinysl:false,
			whethertoeditysl:false,
			addonAfter:0,
			eduintits:"",
			informs:[],
			Modalstype:false,
			Modalstopval:"是否确认删除?",
			ModalCancel:"",
			ModalSave:"",
      index:0,

		}
		//不能显示数据编辑的时候没有赋值
		//没加initialValue 输入不能赋值到from 上
	}

	componentDidMount() {
		// console.log("获取到数据");
		// console.log(this.props);
		let{id,myname,mydescription,index,item} =this.props
		this.props.form.setFieldsValue({
			id:id,
			eduintits:item.name,
			description:item.description,
		});
		// this.contentMdRef.current.setValue(mydescription);
		this.setState({
			id:id,
			eduintits:item.name,
			description:item.description,
			index:index
		})
		if(myname!=undefined){
			this.setState({
				addonAfter:myname.length
			})
		}

	}

	setModeltrue=()=>{
	 this.setState({
		 Modalstype:true,
		 Modalstopval:"是否确认删除?",
		 ModalCancel:this.cancelmodel,
		 ModalSave:this.saveonOpen,
	 })
	}

	 cancelmodel=()=>{
     //取消
		 this.setState({
			 Modalstype:false,
			 Modalstopval:"是否确认删除?",
			 ModalCancel:"",
			 ModalSave:"",
		 })
	 }

	 saveonOpen=()=>{
      //确认
		 // /
		 // 删除公告
		 var  id=this.props.match.params.coursesId
			 const url =`/courses/${id}/delete_informs.json`;
		 axios.delete(url, { data: {
				 inform_id: this.props.id
				 }})
			 .then((response) => {
			 	if(response){
			 		if(response.data){
			 			 if(response.data.status===0){
							 this.setState({
								 Modalstype:false,
								 Modalstopval:"是否确认删除?",
								 ModalCancel:"",
								 ModalSave:"",
							 })
							 this.props.showNotification(`删除成功`);
							 this.props.getinputdata();
						 }else{
							 this.props.showNotification(`删除失败`);
						 }
					}else{
						this.props.showNotification(`删除失败`);
					}
				}

			 })
			 .catch(function (error) {
				 console.log(error);
				 this.props.showNotification(`删除失败`);
			 });
		}


	bianji = (bians,i)=>{
		console.log("bianji");
		console.log(this.props.myname);
		console.log(this.props.mydescription);
		this.setState({
			whethertoeditysl:bians,
			eduintits:this.props.myname,
			description:this.props.mydescription,
			index:i
		});
		this.props.form.setFieldsValue({
			eduintits:this.props.myname,
			description:this.props.mydescription,
		});
		if(bians===true){
			this.props.getyslbooltrue();
		}else {
			this.props.getyslboolfalse();
		}
	};
	changeTopicName = (e) => {
		// console.log("调用了changeTopicName");
		let num = e.target.value.length;

		if(num>60){
			return;
		}
		this.setState({
			addonAfter: num < 0 ? 0 : num
		});
		if(num<=60){
			this.setState({
				eduintits: e.target.value
			})

			this.props.form.setFieldsValue({
				eduintits: e.target.value,
			});
		}


	}
	handleSubmit=(e) => {
		e.preventDefault();
		this.props.form.validateFields((err, values) => {

			if (!err) {
				console.log(values.description);
				if(values.eduintits === undefined|| values.eduintits === "" || values.eduintits ===null){
					this.props.showNotification(`请输入标题`);
					return

				}
				if(values.description === undefined|| values.description === "" || values.description ===null){
					this.props.showNotification(`请输入内容`);
					return

				}
				var  id=this.props.match.params.coursesId
				var titname="";
				try {
					if(values.eduintits.length>0){
						if( values.eduintits.length>60){
							var str=values.eduintits;
							titname=str.substring(0,60);
						}else {
							titname=values.eduintits;
						}
					}else {
						titname=values.eduintits;
					}
				}catch (e) {
					titname=values.eduintits;
				}
				var  url = `/courses/${id}/update_informs.json`;
				axios.post(url,{
					inform_id:this.props.id,
					name:titname,
					description:values.description,
				}).then((result) => {
					if(result){
						if(result.data){
							if(result.data.status === 0){
								// this.props.form.setFieldsValue({
								// 	id:this.state.id,
								// 	eduintits:titname,
								// 	description:values.description,
								// });
								this.setState({
									whethertoeditysl:false,
									id:this.state.id,
									eduintits:titname,
									description:values.description,
								});
								this.props.getinputdata();
								this.props.getyslboolfalse();
								this.props.showNotification(result.data.message);
							}else {
								this.props.showNotification(result.data.message);

							}
						}

					}
				}).catch((error) => {
					console.log(error)
				})
			}else{
				console.log(err);
			}

		});
	}

	//上移
	Moveupward = (id) => {
		let url = `/courses/${this.props.match.params.coursesId}/inform_up.json`;
		axios.post(url, {
			inform_id: id
		}).then((response) => {
			if (response) {
				if (response.data) {
					if (response.data.status === 0) {
						this.props.showNotification(`上移成功`);
						this.props.getinputdata();
					} else {
						this.props.showNotification(`上移失败`);
					}
				} else {
					this.props.showNotification(`上移失败`);
				}
			} else {
				this.props.showNotification(`上移失败`);
			}
		}).catch((error) => {
			console.log(error)
		});
	}
	//下移
	Movedown = (id) => {
		let url = `/courses/${this.props.match.params.coursesId}/inform_down.json`;
		axios.post(url, {
			inform_id: id
		}).then((response) => {
			if (response) {
				if (response.data) {
					if (response.data.status === 0) {
						this.props.showNotification(`下移成功`);
						this.props.getinputdata();
					} else {
						this.props.showNotification(`下移失败`);
					}
				} else {
					this.props.showNotification(`下移失败`);
				}
			} else {
				this.props.showNotification(`下移失败`);
			}
		}).catch((error) => {
			console.log(error)
		});
	}






	render(){
		let{description,whethertoeditysl,addonAfter,eduintits,informs,isSpinysl,index} =this.state;
		let{myname,mydescription,id}=this.props;
		const {getFieldDecorator} = this.props.form;
		// console.log("Bullsubdirectory");
		// console.log(this.props.isAdmin());
    //  console.log(this.props);
    //  console.log(whethertoeditysl);
		// console.log(this.state.eduintits);
		// console.log(this.state.description);

		return(
			<React.Fragment  key={this.props.index} id={this.props.id}>
						<div  key={this.props.index} id={this.props.id}>
							{this.state.Modalstype&&this.state.Modalstype===true?<Modals
								modalsType={this.state.Modalstype}
								modalsTopval={this.state.Modalstopval}
								modalCancel={this.state.ModalCancel}
								modalSave={this.state.ModalSave}
							/>:""}
							<Spin size="large" spinning={isSpinysl}  >
								<div  className="edu-back-white " id={
									index
								}>
									{
										whethertoeditysl === false?
											<div id={this.props.index}>
												<div className="fudonyingxiangysls">
													<div className="fudonyingxiangysl">
														<div style={{marginRight:"60px"}}>
															<span className="ysltitbt">{myname}</span>
														</div>
														<div>
																	<span className="fr yslbianji" style={{marginRight:"17px"}}>
																	{
																		this.props.isAdmin() === true ?
																			(this.props.yslbool===false?
																					<Tooltip  placement="bottom" title={<div>
																						编辑
																					</div>}>
																						<i className="iconfont icon-bianji1 newbianji1" onClick={()=>this.bianji(true,this.props.index)}></i>
																					</Tooltip>
																					:
																					""
																			)
																			:""
																	}
																</span>
															<span className="fr yslbianji" style={{marginRight:"22px"}}>
																	{
																		this.props.isAdmin() === true ?
																			(this.props.yslbool===false?
																					<Tooltip  placement="bottom" title={<div>
																						删除
																					</div>}>
																						<i className="iconfont icon-shanchu newbianji1" style={{ color: "#4CACFF"}} onClick={()=>this.setModeltrue(true)}></i>
																					</Tooltip>
																					:
																					""
																			)
																			:""
																	}
																</span>
															{
																this.props.length - 1 === this.props.index ? "" :
																	this.props.isAdmin() === true ?
																		(this.props.yslbool === false ?
																				<a className="fr yslbianji mr30"
																					 style={{
																						 lineHeight: "31px",
																					 }}
																					 onClick={() => this.Movedown(this.props.id)}
																				><Tooltip
																					title="下移"><i
																					style={{color: "#4CACFF"}}
																					className=" font-18 iconfont icon-xiangxiayi"></i></Tooltip></a>
																				:
																				""
																		)
																		: ""
															}
															{
																this.props.index === 0 ? "" :
																	this.props.isAdmin() === true ?
																		(this.props.yslbool === false ?
																				<a className="fr yslbianji mr30"
																					 style={{
																						 lineHeight: "31px",
																					 }}
																					 onClick={() => this.Moveupward(this.props.id)}
																				><Tooltip
																					title="上移"><i
																					style={{color: "#4CACFF"}}
																					className=" font-18 iconfont icon-xiangshangyi"></i></Tooltip></a>
																				:
																				""
																		)
																		: ""
															}
														</div>
														<div className="yslclear"></div>
													</div>
													<div id="MakedownHTML"className="markdown-body fonttext yslmtopcg yslminHeigth markdownysltext"   dangerouslySetInnerHTML={{__html: markdownToHTML(mydescription).replace(/▁/g, "▁▁▁")}}/>
												</div>
												{parseInt(this.props&&this.props.informs.length)===parseInt(this.props&&this.props.index+1)?"":<div className="bor-bottom-greyE mr25 ml25"></div>}
											</div>
											:
											whethertoeditysl === true?
												<div  className="edu-back-white " key={this.props.index} id={this.props.id}>
													<Form layout='vertical' onSubmit={this.handleSubmit} key={this.props.index}>
														<style>
															{
																`.ant-form-item{
															    margin-bottom:0px !important;
															}
															.chooseDestwo .ant-form-item{
															    margin-bottom:0px !important;
															}
														
															.chooseDestwo .ant-form-item-control-wrapper .ant-form-item-control .ant-form-explain{
															padding-left: 25px !important;
															}
															.ant-form-vertical .ant-form-item {
															margin-bottom:0px !important;
															 }
															`

															}
														</style>
														<Form.Item
															style={{"borderBottom":'none'}}
															className="chooseDestwo "
															key={this.props.index}
														>
															{getFieldDecorator('eduintits', { initialValue: eduintits}, {
																rules: [{
																	required: true, message: '请在此输入标题,最多60个字符',
																}],
															})(
																<div className="ysleduinwh">
																	<div className="yslduinlefts">
																		<span className="yslduincolorred">*</span>
																	</div>
																	<div className="yslduinleft">
																		<style>{
																			`
																					.ant-input{
																				border-right: none !important;
																				height: 40px !important;
																				}
																		`
																		}</style>
																		<Input placeholder="请在此输入标题，最多60个字符" key={this.props.index} maxLength="60"
																					 style={{ textAlign: "left",width:"100%",}}
																					 onInput={this.changeTopicName}
																					 autoComplete="off"
																					 addonAfter={String(addonAfter)+"/60"}
																					 value={eduintits}
																					 className="searchViewAfter"></Input>
																	</div>

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


														<div  className="edu-back-white " key={this.props.index}>
															<div className={"yslmt16px"}>
																<style>
																	{
																		`
																.ant-form-item-children {
																		position: unset;
																}
																
																	.chooseDes .ant-form-item{
															    margin-bottom:0px !important;
															}
															.rememberTip{
																position:absolute;
																right:0px;
																bottom:-10px;
															}
															.chooseDes .ant-form-explain{
															position:absolute;
															bottom:-10px;
															left:0px;
														}
														.ant-form-vertical .ant-form-explain {
																margin-top: 0px !important;
																margin-bottom: 0px !important;
																padding-left: 0px !important;
														}
														.chooseDes .ant-form-item-with-help {
																	margin-bottom: 24px !important;
															}
															
															.courseMessageMD .ant-form-item-with-help {
																	margin-bottom: 24px !important;
															}
														.chooseDes .editormd-toolbar {
														 width: 100%; 
														 min-height: 37px; 
														 background: #fff; 
														 display: none; 
														 position: absolute !important; 
														 left: 0;
												     z-index: 10; 
														 border-bottom: 1px solid #ddd; 
														 
														}
														.yslmt16px .ant-form-item-with-help
														{
																margin-bottom: 24px !important;
														}
															`
																	}
																</style>
																<Form.Item
																	style={{"borderBottom":'none'}}
																	className="chooseDes "
																	key={this.props.index}
																>
																	{getFieldDecorator('description', { initialValue: description},{
																		rules: [{
																			required: true, message: '请在此输入内容,最多5000个字符',
																		}, {
																			len: 5000, message: '最大限制为5000个字符',
																		}],
																	})(
																		<TPMMDEditor ref={this.messageRef}
																								 key={this.props.index}
																								 placeholder={'请在此输入内容,最多5000个字符'}
																								 initValue={description}
																								 mdID={'courseMessageMD'}
																								 className="courseMessageMD "
																								 height={518}
																		></TPMMDEditor>


																	)}
																</Form.Item>

															</div>
														</div>

														<Form.Item>
															<div className="clearfix mt28  fr pb50 mr25">
																<a className="defalutCancelbtn fl mr20 " onClick={()=>this.bianji(false,this.props.index)}>取消</a>
																<Button   htmlType="submit"  className="ant-btn defalutSubmitbtn fl  ant-btn-primary">
																	<span>提 交</span></Button>
															</div>
														</Form.Item>
													</Form>
													<div className="bor-bottom-greyE mr25 ml25"></div>
												</div>
												:""
									}
								</div>
							</Spin>

						</div>
			</React.Fragment>
		)
	}
}
const Bullsubdirectorys = Form.create({ name: 'bullsubdirectorys' })(Bullsubdirectory);
export default Bullsubdirectorys;
