|  |  |  | @ -14,24 +14,24 @@ import TPMRightSection from "../../tpm/component/TPMRightSection"; | 
			
		
	
		
			
				
					|  |  |  |  | import styled from "styled-components"; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | const getItemStyle = (isDragging, draggableStyle) => ({ | 
			
		
	
		
			
				
					|  |  |  |  |   // change background colour if dragging
 | 
			
		
	
		
			
				
					|  |  |  |  |   background: isDragging ? '#dceeff' : '', | 
			
		
	
		
			
				
					|  |  |  |  |   // styles we need to apply on draggables
 | 
			
		
	
		
			
				
					|  |  |  |  |   ...draggableStyle, | 
			
		
	
		
			
				
					|  |  |  |  | 	// change background colour if dragging
 | 
			
		
	
		
			
				
					|  |  |  |  | 	background: isDragging ? '#dceeff' : '', | 
			
		
	
		
			
				
					|  |  |  |  | 	// styles we need to apply on draggables
 | 
			
		
	
		
			
				
					|  |  |  |  | 	...draggableStyle, | 
			
		
	
		
			
				
					|  |  |  |  | }); | 
			
		
	
		
			
				
					|  |  |  |  | const getItems = count => | 
			
		
	
		
			
				
					|  |  |  |  |     Array.from({ length: count }, (v, k) => k).map(k => ({ | 
			
		
	
		
			
				
					|  |  |  |  |       id: `item-${k}`, | 
			
		
	
		
			
				
					|  |  |  |  |       content: `item ${k}` | 
			
		
	
		
			
				
					|  |  |  |  |     })); | 
			
		
	
		
			
				
					|  |  |  |  | 	Array.from({ length: count }, (v, k) => k).map(k => ({ | 
			
		
	
		
			
				
					|  |  |  |  | 		id: `item-${k}`, | 
			
		
	
		
			
				
					|  |  |  |  | 		content: `item ${k}` | 
			
		
	
		
			
				
					|  |  |  |  | 	})); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | // a little function to help us with reordering the result
 | 
			
		
	
		
			
				
					|  |  |  |  | const reorder = (list, startIndex, endIndex) => { | 
			
		
	
		
			
				
					|  |  |  |  |   const result = Array.from(list); | 
			
		
	
		
			
				
					|  |  |  |  |   const [removed] = result.splice(startIndex, 1); | 
			
		
	
		
			
				
					|  |  |  |  |   result.splice(endIndex, 0, removed); | 
			
		
	
		
			
				
					|  |  |  |  | 	const result = Array.from(list); | 
			
		
	
		
			
				
					|  |  |  |  | 	const [removed] = result.splice(startIndex, 1); | 
			
		
	
		
			
				
					|  |  |  |  | 	result.splice(endIndex, 0, removed); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |   return result; | 
			
		
	
		
			
				
					|  |  |  |  | 	return result; | 
			
		
	
		
			
				
					|  |  |  |  | }; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | const List = styled.div` | 
			
		
	
	
		
			
				
					|  |  |  | @ -66,90 +66,90 @@ const DragHandle = styled.div` | 
			
		
	
		
			
				
					|  |  |  |  | `;
 | 
			
		
	
		
			
				
					|  |  |  |  | const $ =window.$ | 
			
		
	
		
			
				
					|  |  |  |  | class PathDetailIndex extends Component{ | 
			
		
	
		
			
				
					|  |  |  |  |   constructor(props){ | 
			
		
	
		
			
				
					|  |  |  |  |     super(props) | 
			
		
	
		
			
				
					|  |  |  |  |     this.state={ | 
			
		
	
		
			
				
					|  |  |  |  | 	constructor(props){ | 
			
		
	
		
			
				
					|  |  |  |  | 		super(props) | 
			
		
	
		
			
				
					|  |  |  |  | 		this.state={ | 
			
		
	
		
			
				
					|  |  |  |  | 			progress:undefined, | 
			
		
	
		
			
				
					|  |  |  |  | 			tags:undefined, | 
			
		
	
		
			
				
					|  |  |  |  | 			members:undefined, | 
			
		
	
		
			
				
					|  |  |  |  |       detailInfoList:undefined, | 
			
		
	
		
			
				
					|  |  |  |  |       clickdetailInfoListtype:false, | 
			
		
	
		
			
				
					|  |  |  |  |       Modalstype:false, | 
			
		
	
		
			
				
					|  |  |  |  |       Modalstopval:undefined, | 
			
		
	
		
			
				
					|  |  |  |  |       Modalsbottomval:undefined, | 
			
		
	
		
			
				
					|  |  |  |  |       cardsModalcancel:this.cardsModalcancel, | 
			
		
	
		
			
				
					|  |  |  |  |       cardsModalsave:this.cardsModalsave, | 
			
		
	
		
			
				
					|  |  |  |  |       user_id:undefined, | 
			
		
	
		
			
				
					|  |  |  |  |       loadtype:false, | 
			
		
	
		
			
				
					|  |  |  |  | 			detailInfoList:undefined, | 
			
		
	
		
			
				
					|  |  |  |  | 			clickdetailInfoListtype:false, | 
			
		
	
		
			
				
					|  |  |  |  | 			Modalstype:false, | 
			
		
	
		
			
				
					|  |  |  |  | 			Modalstopval:undefined, | 
			
		
	
		
			
				
					|  |  |  |  | 			Modalsbottomval:undefined, | 
			
		
	
		
			
				
					|  |  |  |  | 			cardsModalcancel:this.cardsModalcancel, | 
			
		
	
		
			
				
					|  |  |  |  | 			cardsModalsave:this.cardsModalsave, | 
			
		
	
		
			
				
					|  |  |  |  | 			user_id:undefined, | 
			
		
	
		
			
				
					|  |  |  |  | 			loadtype:false, | 
			
		
	
		
			
				
					|  |  |  |  | 			courses:undefined, | 
			
		
	
		
			
				
					|  |  |  |  |       items: getItems(10), | 
			
		
	
		
			
				
					|  |  |  |  | 			items: getItems(10), | 
			
		
	
		
			
				
					|  |  |  |  | 			pathtopskey:1 | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  |     this.onDragEnd = this.onDragEnd.bind(this); | 
			
		
	
		
			
				
					|  |  |  |  | 		} | 
			
		
	
		
			
				
					|  |  |  |  | 		this.onDragEnd = this.onDragEnd.bind(this); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |   } | 
			
		
	
		
			
				
					|  |  |  |  |   onDragEnd(result) { | 
			
		
	
		
			
				
					|  |  |  |  |     // dropped outside the list
 | 
			
		
	
		
			
				
					|  |  |  |  |     if (!result.destination) { | 
			
		
	
		
			
				
					|  |  |  |  |       return; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 	onDragEnd(result) { | 
			
		
	
		
			
				
					|  |  |  |  | 		// dropped outside the list
 | 
			
		
	
		
			
				
					|  |  |  |  | 		if (!result.destination) { | 
			
		
	
		
			
				
					|  |  |  |  | 			return; | 
			
		
	
		
			
				
					|  |  |  |  | 		} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     try { | 
			
		
	
		
			
				
					|  |  |  |  | 		try { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     }catch (e) { | 
			
		
	
		
			
				
					|  |  |  |  | 		}catch (e) { | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  |     const items = reorder( | 
			
		
	
		
			
				
					|  |  |  |  |         this.state.members, | 
			
		
	
		
			
				
					|  |  |  |  |         result.source.index, | 
			
		
	
		
			
				
					|  |  |  |  |         result.destination.index | 
			
		
	
		
			
				
					|  |  |  |  |     ); | 
			
		
	
		
			
				
					|  |  |  |  | 		} | 
			
		
	
		
			
				
					|  |  |  |  | 		const items = reorder( | 
			
		
	
		
			
				
					|  |  |  |  | 			this.state.members, | 
			
		
	
		
			
				
					|  |  |  |  | 			result.source.index, | 
			
		
	
		
			
				
					|  |  |  |  | 			result.destination.index | 
			
		
	
		
			
				
					|  |  |  |  | 		); | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     this.setState({ | 
			
		
	
		
			
				
					|  |  |  |  |       detailInfoList:this.state.detailInfoList, | 
			
		
	
		
			
				
					|  |  |  |  | 		this.setState({ | 
			
		
	
		
			
				
					|  |  |  |  | 			detailInfoList:this.state.detailInfoList, | 
			
		
	
		
			
				
					|  |  |  |  | 			members:items, | 
			
		
	
		
			
				
					|  |  |  |  |       items | 
			
		
	
		
			
				
					|  |  |  |  |     }); | 
			
		
	
		
			
				
					|  |  |  |  |     console.log(this.state.members) | 
			
		
	
		
			
				
					|  |  |  |  |     console.log("items 数组数组数组数组") | 
			
		
	
		
			
				
					|  |  |  |  |     console.log(items) | 
			
		
	
		
			
				
					|  |  |  |  |   } | 
			
		
	
		
			
				
					|  |  |  |  |   cardsModalcancel=()=>{ | 
			
		
	
		
			
				
					|  |  |  |  |     this.setState({ | 
			
		
	
		
			
				
					|  |  |  |  |       Modalstype:false, | 
			
		
	
		
			
				
					|  |  |  |  |     }) | 
			
		
	
		
			
				
					|  |  |  |  |     // TODO 这个是临时处理,还需要优化,这里要看怎么区分处理
 | 
			
		
	
		
			
				
					|  |  |  |  |     if (this.state.Modalstopval == '你确定要删除该成员吗?') { | 
			
		
	
		
			
				
					|  |  |  |  |       return; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 			items | 
			
		
	
		
			
				
					|  |  |  |  | 		}); | 
			
		
	
		
			
				
					|  |  |  |  | 		console.log(this.state.members) | 
			
		
	
		
			
				
					|  |  |  |  | 		console.log("items 数组数组数组数组") | 
			
		
	
		
			
				
					|  |  |  |  | 		console.log(items) | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 	cardsModalcancel=()=>{ | 
			
		
	
		
			
				
					|  |  |  |  | 		this.setState({ | 
			
		
	
		
			
				
					|  |  |  |  | 			Modalstype:false, | 
			
		
	
		
			
				
					|  |  |  |  | 		}) | 
			
		
	
		
			
				
					|  |  |  |  | 		// TODO 这个是临时处理,还需要优化,这里要看怎么区分处理
 | 
			
		
	
		
			
				
					|  |  |  |  | 		if (this.state.Modalstopval == '你确定要删除该成员吗?') { | 
			
		
	
		
			
				
					|  |  |  |  | 			return; | 
			
		
	
		
			
				
					|  |  |  |  | 		} | 
			
		
	
		
			
				
					|  |  |  |  | 		this.props.history.goBack() | 
			
		
	
		
			
				
					|  |  |  |  |   } | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |   cardsModalsave=()=>{ | 
			
		
	
		
			
				
					|  |  |  |  |     this.setState({ | 
			
		
	
		
			
				
					|  |  |  |  |       Modalstype:false, | 
			
		
	
		
			
				
					|  |  |  |  |     }) | 
			
		
	
		
			
				
					|  |  |  |  | 	cardsModalsave=()=>{ | 
			
		
	
		
			
				
					|  |  |  |  | 		this.setState({ | 
			
		
	
		
			
				
					|  |  |  |  | 			Modalstype:false, | 
			
		
	
		
			
				
					|  |  |  |  | 		}) | 
			
		
	
		
			
				
					|  |  |  |  | 		this.props.history.goBack() | 
			
		
	
		
			
				
					|  |  |  |  |   } | 
			
		
	
		
			
				
					|  |  |  |  |   // 加载markdown
 | 
			
		
	
		
			
				
					|  |  |  |  |   updatamakedown=(id)=>{ | 
			
		
	
		
			
				
					|  |  |  |  |     setTimeout(()=>{ | 
			
		
	
		
			
				
					|  |  |  |  |         var shixunDescr = window.editormd.markdownToHTML(id, { | 
			
		
	
		
			
				
					|  |  |  |  |             htmlDecode: "style,script,iframe", | 
			
		
	
		
			
				
					|  |  |  |  |             taskList: true, | 
			
		
	
		
			
				
					|  |  |  |  |             tex: true, | 
			
		
	
		
			
				
					|  |  |  |  |             flowChart: true, | 
			
		
	
		
			
				
					|  |  |  |  |             sequenceDiagram: true | 
			
		
	
		
			
				
					|  |  |  |  |         }); | 
			
		
	
		
			
				
					|  |  |  |  |         $("#"+id+" p:first").addClass("ReactMarkdown"); | 
			
		
	
		
			
				
					|  |  |  |  |     }, 200) | 
			
		
	
		
			
				
					|  |  |  |  |   } | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 	// 加载markdown
 | 
			
		
	
		
			
				
					|  |  |  |  | 	updatamakedown=(id)=>{ | 
			
		
	
		
			
				
					|  |  |  |  | 		setTimeout(()=>{ | 
			
		
	
		
			
				
					|  |  |  |  | 			var shixunDescr = window.editormd.markdownToHTML(id, { | 
			
		
	
		
			
				
					|  |  |  |  | 				htmlDecode: "style,script,iframe", | 
			
		
	
		
			
				
					|  |  |  |  | 				taskList: true, | 
			
		
	
		
			
				
					|  |  |  |  | 				tex: true, | 
			
		
	
		
			
				
					|  |  |  |  | 				flowChart: true, | 
			
		
	
		
			
				
					|  |  |  |  | 				sequenceDiagram: true | 
			
		
	
		
			
				
					|  |  |  |  | 			}); | 
			
		
	
		
			
				
					|  |  |  |  | 			$("#"+id+" p:first").addClass("ReactMarkdown"); | 
			
		
	
		
			
				
					|  |  |  |  | 		}, 200) | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |   componentDidMount(){ | 
			
		
	
		
			
				
					|  |  |  |  |  		this.getdatasindex() | 
			
		
	
		
			
				
					|  |  |  |  |   } | 
			
		
	
		
			
				
					|  |  |  |  | 	componentDidMount(){ | 
			
		
	
		
			
				
					|  |  |  |  | 		this.getdatasindex() | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |   getdatasindex=(key)=>{ | 
			
		
	
		
			
				
					|  |  |  |  | 	getdatasindex=(key)=>{ | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 		let pathid=this.props.match.params.pathId; | 
			
		
	
		
			
				
					|  |  |  |  | 		let url="/paths/"+pathid+".json"; | 
			
		
	
	
		
			
				
					|  |  |  | @ -168,7 +168,7 @@ class PathDetailIndex extends Component{ | 
			
		
	
		
			
				
					|  |  |  |  | 			if(result.data.allow_visit===true){ | 
			
		
	
		
			
				
					|  |  |  |  | 				this.setState({ | 
			
		
	
		
			
				
					|  |  |  |  | 					detailInfoList:result.data, | 
			
		
	
		
			
				
					|  |  |  |  | 				  courses:result.data.courses, | 
			
		
	
		
			
				
					|  |  |  |  | 					courses:result.data.courses, | 
			
		
	
		
			
				
					|  |  |  |  | 					pathtopskey:key===undefined?1:key, | 
			
		
	
		
			
				
					|  |  |  |  | 					// items:  getItems(result.data.members.length),
 | 
			
		
	
		
			
				
					|  |  |  |  | 				}) | 
			
		
	
	
		
			
				
					|  |  |  | @ -205,157 +205,157 @@ class PathDetailIndex extends Component{ | 
			
		
	
		
			
				
					|  |  |  |  | 		}) | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |   updatadetailInfoList=()=>{ | 
			
		
	
		
			
				
					|  |  |  |  | 			this.getdatasindex(); | 
			
		
	
		
			
				
					|  |  |  |  |   } | 
			
		
	
		
			
				
					|  |  |  |  |    | 
			
		
	
		
			
				
					|  |  |  |  |   clickNewsubscript=(val)=>{ | 
			
		
	
		
			
				
					|  |  |  |  |     if(val===0){ | 
			
		
	
		
			
				
					|  |  |  |  |       this.setState({ | 
			
		
	
		
			
				
					|  |  |  |  |         clickdetailInfoListtype:true | 
			
		
	
		
			
				
					|  |  |  |  |       }) | 
			
		
	
		
			
				
					|  |  |  |  |     }else{ | 
			
		
	
		
			
				
					|  |  |  |  |       this.setState({ | 
			
		
	
		
			
				
					|  |  |  |  |         clickdetailInfoListtype:false | 
			
		
	
		
			
				
					|  |  |  |  |       }) | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 	updatadetailInfoList=()=>{ | 
			
		
	
		
			
				
					|  |  |  |  | 		this.getdatasindex(); | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |   } | 
			
		
	
		
			
				
					|  |  |  |  | 	clickNewsubscript=(val)=>{ | 
			
		
	
		
			
				
					|  |  |  |  | 		if(val===0){ | 
			
		
	
		
			
				
					|  |  |  |  | 			this.setState({ | 
			
		
	
		
			
				
					|  |  |  |  | 				clickdetailInfoListtype:true | 
			
		
	
		
			
				
					|  |  |  |  | 			}) | 
			
		
	
		
			
				
					|  |  |  |  | 		}else{ | 
			
		
	
		
			
				
					|  |  |  |  | 			this.setState({ | 
			
		
	
		
			
				
					|  |  |  |  | 				clickdetailInfoListtype:false | 
			
		
	
		
			
				
					|  |  |  |  | 			}) | 
			
		
	
		
			
				
					|  |  |  |  | 		} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |   timeStamp=(value)=>{ | 
			
		
	
		
			
				
					|  |  |  |  |     var secondTime = parseInt(value);// 秒
 | 
			
		
	
		
			
				
					|  |  |  |  |     var minuteTime = 0;// 分
 | 
			
		
	
		
			
				
					|  |  |  |  |     var hourTime = 0;// 小时
 | 
			
		
	
		
			
				
					|  |  |  |  |     if(secondTime > 60) {//如果秒数大于60,将秒数转换成整数
 | 
			
		
	
		
			
				
					|  |  |  |  |       //获取分钟,除以60取整数,得到整数分钟
 | 
			
		
	
		
			
				
					|  |  |  |  |       minuteTime = parseInt(secondTime / 60); | 
			
		
	
		
			
				
					|  |  |  |  |       //获取秒数,秒数取佘,得到整数秒数
 | 
			
		
	
		
			
				
					|  |  |  |  |       secondTime = parseInt(secondTime % 60); | 
			
		
	
		
			
				
					|  |  |  |  |       //如果分钟大于60,将分钟转换成小时
 | 
			
		
	
		
			
				
					|  |  |  |  |       if(minuteTime > 60) { | 
			
		
	
		
			
				
					|  |  |  |  |         //获取小时,获取分钟除以60,得到整数小时
 | 
			
		
	
		
			
				
					|  |  |  |  |         hourTime = parseInt(minuteTime / 60); | 
			
		
	
		
			
				
					|  |  |  |  |         //获取小时后取佘的分,获取分钟除以60取佘的分
 | 
			
		
	
		
			
				
					|  |  |  |  |         minuteTime = parseInt(minuteTime % 60); | 
			
		
	
		
			
				
					|  |  |  |  |       } | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  |     var result = "" + parseInt(secondTime) + "秒"; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     if(minuteTime > 0) { | 
			
		
	
		
			
				
					|  |  |  |  |       result = "" + parseInt(minuteTime) + "分" + result; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  |     if(hourTime > 0) { | 
			
		
	
		
			
				
					|  |  |  |  |       result = "" + parseInt(hourTime) + "小时" + result; | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  |     return result; | 
			
		
	
		
			
				
					|  |  |  |  |   } | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	timeStamp=(value)=>{ | 
			
		
	
		
			
				
					|  |  |  |  | 		var secondTime = parseInt(value);// 秒
 | 
			
		
	
		
			
				
					|  |  |  |  | 		var minuteTime = 0;// 分
 | 
			
		
	
		
			
				
					|  |  |  |  | 		var hourTime = 0;// 小时
 | 
			
		
	
		
			
				
					|  |  |  |  | 		if(secondTime > 60) {//如果秒数大于60,将秒数转换成整数
 | 
			
		
	
		
			
				
					|  |  |  |  | 			//获取分钟,除以60取整数,得到整数分钟
 | 
			
		
	
		
			
				
					|  |  |  |  | 			minuteTime = parseInt(secondTime / 60); | 
			
		
	
		
			
				
					|  |  |  |  | 			//获取秒数,秒数取佘,得到整数秒数
 | 
			
		
	
		
			
				
					|  |  |  |  | 			secondTime = parseInt(secondTime % 60); | 
			
		
	
		
			
				
					|  |  |  |  | 			//如果分钟大于60,将分钟转换成小时
 | 
			
		
	
		
			
				
					|  |  |  |  | 			if(minuteTime > 60) { | 
			
		
	
		
			
				
					|  |  |  |  | 				//获取小时,获取分钟除以60,得到整数小时
 | 
			
		
	
		
			
				
					|  |  |  |  | 				hourTime = parseInt(minuteTime / 60); | 
			
		
	
		
			
				
					|  |  |  |  | 				//获取小时后取佘的分,获取分钟除以60取佘的分
 | 
			
		
	
		
			
				
					|  |  |  |  | 				minuteTime = parseInt(minuteTime % 60); | 
			
		
	
		
			
				
					|  |  |  |  | 			} | 
			
		
	
		
			
				
					|  |  |  |  | 		} | 
			
		
	
		
			
				
					|  |  |  |  | 		var result = "" + parseInt(secondTime) + "秒"; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 		if(minuteTime > 0) { | 
			
		
	
		
			
				
					|  |  |  |  | 			result = "" + parseInt(minuteTime) + "分" + result; | 
			
		
	
		
			
				
					|  |  |  |  | 		} | 
			
		
	
		
			
				
					|  |  |  |  | 		if(hourTime > 0) { | 
			
		
	
		
			
				
					|  |  |  |  | 			result = "" + parseInt(hourTime) + "小时" + result; | 
			
		
	
		
			
				
					|  |  |  |  | 		} | 
			
		
	
		
			
				
					|  |  |  |  | 		return result; | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |   shanchuallow=(id)=>{ | 
			
		
	
		
			
				
					|  |  |  |  |     this.setState({ | 
			
		
	
		
			
				
					|  |  |  |  |       user_id:id, | 
			
		
	
		
			
				
					|  |  |  |  |       Modalstype:true, | 
			
		
	
		
			
				
					|  |  |  |  |       Modalstopval:"你确定要删除该成员吗?", | 
			
		
	
		
			
				
					|  |  |  |  |       cardsModalsave:this.delectshanchuallow, | 
			
		
	
		
			
				
					|  |  |  |  |       loadtype:false | 
			
		
	
		
			
				
					|  |  |  |  |     }) | 
			
		
	
		
			
				
					|  |  |  |  |   } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |   delectshanchuallow=()=>{ | 
			
		
	
		
			
				
					|  |  |  |  |     let{user_id}=this.state; | 
			
		
	
		
			
				
					|  |  |  |  |     let pathid=this.props.match.params.pathId; | 
			
		
	
		
			
				
					|  |  |  |  |     let url="/paths/"+pathid+"/delete_member.json"; | 
			
		
	
		
			
				
					|  |  |  |  |     let param={user_id:user_id}; | 
			
		
	
		
			
				
					|  |  |  |  |     axios.delete(url,{data:param}).then((response) => { | 
			
		
	
		
			
				
					|  |  |  |  |       if(response.data.status===1){ | 
			
		
	
		
			
				
					|  |  |  |  |         if (this.props.current_user.user_id == user_id) { | 
			
		
	
		
			
				
					|  |  |  |  |           this.props.history.push('/paths') | 
			
		
	
		
			
				
					|  |  |  |  |           return; | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         this.props.showNotification(response.data.message) | 
			
		
	
		
			
				
					|  |  |  |  |         this.setState({ | 
			
		
	
		
			
				
					|  |  |  |  |           Modalstype:false, | 
			
		
	
		
			
				
					|  |  |  |  |           // Modalstopval:response.data.message,
 | 
			
		
	
		
			
				
					|  |  |  |  |           loadtype:false, | 
			
		
	
		
			
				
					|  |  |  |  |           // cardsModalsave:this.cardsModalsave,
 | 
			
		
	
		
			
				
					|  |  |  |  |         }) | 
			
		
	
		
			
				
					|  |  |  |  |         this.updatadetailInfoList(); | 
			
		
	
		
			
				
					|  |  |  |  |       } | 
			
		
	
		
			
				
					|  |  |  |  |     }).catch((error) => { | 
			
		
	
		
			
				
					|  |  |  |  |       console.log(error) | 
			
		
	
		
			
				
					|  |  |  |  |     }) | 
			
		
	
		
			
				
					|  |  |  |  |   } | 
			
		
	
		
			
				
					|  |  |  |  | 	shanchuallow=(id)=>{ | 
			
		
	
		
			
				
					|  |  |  |  | 		this.setState({ | 
			
		
	
		
			
				
					|  |  |  |  | 			user_id:id, | 
			
		
	
		
			
				
					|  |  |  |  | 			Modalstype:true, | 
			
		
	
		
			
				
					|  |  |  |  | 			Modalstopval:"你确定要删除该成员吗?", | 
			
		
	
		
			
				
					|  |  |  |  | 			cardsModalsave:this.delectshanchuallow, | 
			
		
	
		
			
				
					|  |  |  |  | 			loadtype:false | 
			
		
	
		
			
				
					|  |  |  |  | 		}) | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |   //上移
 | 
			
		
	
		
			
				
					|  |  |  |  |   moveup=(data)=>{ | 
			
		
	
		
			
				
					|  |  |  |  |     // console.log(data);
 | 
			
		
	
		
			
				
					|  |  |  |  |     let pathid=this.props.match.params.pathId; | 
			
		
	
		
			
				
					|  |  |  |  |     let url=`/paths/${pathid}/up_member_position.json`; | 
			
		
	
		
			
				
					|  |  |  |  |     axios.post(url,{ | 
			
		
	
		
			
				
					|  |  |  |  |       user_id:data.id | 
			
		
	
		
			
				
					|  |  |  |  |     }).then((response) => { | 
			
		
	
		
			
				
					|  |  |  |  |       if(response.status === 200){ | 
			
		
	
		
			
				
					|  |  |  |  |         console.log("上移"); | 
			
		
	
		
			
				
					|  |  |  |  |         // console.log(this.state.detailInfoList.members);
 | 
			
		
	
		
			
				
					|  |  |  |  |         // console.log(response);
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         this.setState({ | 
			
		
	
		
			
				
					|  |  |  |  |           detailInfoList:this.state.detailInfoList, | 
			
		
	
		
			
				
					|  |  |  |  | 	delectshanchuallow=()=>{ | 
			
		
	
		
			
				
					|  |  |  |  | 		let{user_id}=this.state; | 
			
		
	
		
			
				
					|  |  |  |  | 		let pathid=this.props.match.params.pathId; | 
			
		
	
		
			
				
					|  |  |  |  | 		let url="/paths/"+pathid+"/delete_member.json"; | 
			
		
	
		
			
				
					|  |  |  |  | 		let param={user_id:user_id}; | 
			
		
	
		
			
				
					|  |  |  |  | 		axios.delete(url,{data:param}).then((response) => { | 
			
		
	
		
			
				
					|  |  |  |  | 			if(response.data.status===1){ | 
			
		
	
		
			
				
					|  |  |  |  | 				if (this.props.current_user.user_id == user_id) { | 
			
		
	
		
			
				
					|  |  |  |  | 					this.props.history.push('/paths') | 
			
		
	
		
			
				
					|  |  |  |  | 					return; | 
			
		
	
		
			
				
					|  |  |  |  | 				} | 
			
		
	
		
			
				
					|  |  |  |  | 				this.props.showNotification(response.data.message) | 
			
		
	
		
			
				
					|  |  |  |  | 				this.setState({ | 
			
		
	
		
			
				
					|  |  |  |  | 					Modalstype:false, | 
			
		
	
		
			
				
					|  |  |  |  | 					// Modalstopval:response.data.message,
 | 
			
		
	
		
			
				
					|  |  |  |  | 					loadtype:false, | 
			
		
	
		
			
				
					|  |  |  |  | 					// cardsModalsave:this.cardsModalsave,
 | 
			
		
	
		
			
				
					|  |  |  |  | 				}) | 
			
		
	
		
			
				
					|  |  |  |  | 				this.updatadetailInfoList(); | 
			
		
	
		
			
				
					|  |  |  |  | 			} | 
			
		
	
		
			
				
					|  |  |  |  | 		}).catch((error) => { | 
			
		
	
		
			
				
					|  |  |  |  | 			console.log(error) | 
			
		
	
		
			
				
					|  |  |  |  | 		}) | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	//上移
 | 
			
		
	
		
			
				
					|  |  |  |  | 	moveup=(data)=>{ | 
			
		
	
		
			
				
					|  |  |  |  | 		// console.log(data);
 | 
			
		
	
		
			
				
					|  |  |  |  | 		let pathid=this.props.match.params.pathId; | 
			
		
	
		
			
				
					|  |  |  |  | 		let url=`/paths/${pathid}/up_member_position.json`; | 
			
		
	
		
			
				
					|  |  |  |  | 		axios.post(url,{ | 
			
		
	
		
			
				
					|  |  |  |  | 			user_id:data.id | 
			
		
	
		
			
				
					|  |  |  |  | 		}).then((response) => { | 
			
		
	
		
			
				
					|  |  |  |  | 			if(response.status === 200){ | 
			
		
	
		
			
				
					|  |  |  |  | 				console.log("上移"); | 
			
		
	
		
			
				
					|  |  |  |  | 				// console.log(this.state.detailInfoList.members);
 | 
			
		
	
		
			
				
					|  |  |  |  | 				// console.log(response);
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 				this.setState({ | 
			
		
	
		
			
				
					|  |  |  |  | 					detailInfoList:this.state.detailInfoList, | 
			
		
	
		
			
				
					|  |  |  |  | 					members:response.data.members | 
			
		
	
		
			
				
					|  |  |  |  |         }); | 
			
		
	
		
			
				
					|  |  |  |  |         // console.log(this.state.detailInfoList.members);
 | 
			
		
	
		
			
				
					|  |  |  |  | 				}); | 
			
		
	
		
			
				
					|  |  |  |  | 				// console.log(this.state.detailInfoList.members);
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |       } | 
			
		
	
		
			
				
					|  |  |  |  | 			} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     }).catch((error) => { | 
			
		
	
		
			
				
					|  |  |  |  |       console.log(error) | 
			
		
	
		
			
				
					|  |  |  |  |     }) | 
			
		
	
		
			
				
					|  |  |  |  |   } | 
			
		
	
		
			
				
					|  |  |  |  | 		}).catch((error) => { | 
			
		
	
		
			
				
					|  |  |  |  | 			console.log(error) | 
			
		
	
		
			
				
					|  |  |  |  | 		}) | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |   //下移
 | 
			
		
	
		
			
				
					|  |  |  |  |   movedown =(data) => { | 
			
		
	
		
			
				
					|  |  |  |  |     // console.log(data);
 | 
			
		
	
		
			
				
					|  |  |  |  |     let pathid=this.props.match.params.pathId; | 
			
		
	
		
			
				
					|  |  |  |  |     let url=`/paths/${pathid}/down_member_position.json`; | 
			
		
	
		
			
				
					|  |  |  |  |     axios.post(url,{ | 
			
		
	
		
			
				
					|  |  |  |  |       user_id:data.id | 
			
		
	
		
			
				
					|  |  |  |  |     }).then((response) => { | 
			
		
	
		
			
				
					|  |  |  |  |        if( response.status === 200){ | 
			
		
	
		
			
				
					|  |  |  |  |          console.log("下移"); | 
			
		
	
		
			
				
					|  |  |  |  |          // console.log(this.state.detailInfoList.members);
 | 
			
		
	
		
			
				
					|  |  |  |  |          // console.log(response);
 | 
			
		
	
		
			
				
					|  |  |  |  |          this.setState({ | 
			
		
	
		
			
				
					|  |  |  |  |            detailInfoList:this.state.detailInfoList, | 
			
		
	
		
			
				
					|  |  |  |  | 					 members:response.data.members | 
			
		
	
		
			
				
					|  |  |  |  |          }); | 
			
		
	
		
			
				
					|  |  |  |  |          // console.log(this.state.detailInfoList.members);
 | 
			
		
	
		
			
				
					|  |  |  |  |        } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     }).catch((error) => { | 
			
		
	
		
			
				
					|  |  |  |  |       console.log(error) | 
			
		
	
		
			
				
					|  |  |  |  |     }) | 
			
		
	
		
			
				
					|  |  |  |  |   } | 
			
		
	
		
			
				
					|  |  |  |  |     render(){ | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     this.updatamakedown("shixuns_propaedeutics"); | 
			
		
	
		
			
				
					|  |  |  |  |     this.updatamakedown("subject_learning_notes"); | 
			
		
	
		
			
				
					|  |  |  |  |     let {detailInfoList, | 
			
		
	
		
			
				
					|  |  |  |  |       clickdetailInfoListtype, | 
			
		
	
		
			
				
					|  |  |  |  |       Modalstype, | 
			
		
	
		
			
				
					|  |  |  |  |       Modalstopval, | 
			
		
	
		
			
				
					|  |  |  |  |       Modalsbottomval, | 
			
		
	
		
			
				
					|  |  |  |  |       cardsModalcancel, | 
			
		
	
		
			
				
					|  |  |  |  |       cardsModalsave, | 
			
		
	
		
			
				
					|  |  |  |  |       loadtype, | 
			
		
	
		
			
				
					|  |  |  |  | 	//下移
 | 
			
		
	
		
			
				
					|  |  |  |  | 	movedown =(data) => { | 
			
		
	
		
			
				
					|  |  |  |  | 		// console.log(data);
 | 
			
		
	
		
			
				
					|  |  |  |  | 		let pathid=this.props.match.params.pathId; | 
			
		
	
		
			
				
					|  |  |  |  | 		let url=`/paths/${pathid}/down_member_position.json`; | 
			
		
	
		
			
				
					|  |  |  |  | 		axios.post(url,{ | 
			
		
	
		
			
				
					|  |  |  |  | 			user_id:data.id | 
			
		
	
		
			
				
					|  |  |  |  | 		}).then((response) => { | 
			
		
	
		
			
				
					|  |  |  |  | 			if( response.status === 200){ | 
			
		
	
		
			
				
					|  |  |  |  | 				console.log("下移"); | 
			
		
	
		
			
				
					|  |  |  |  | 				// console.log(this.state.detailInfoList.members);
 | 
			
		
	
		
			
				
					|  |  |  |  | 				// console.log(response);
 | 
			
		
	
		
			
				
					|  |  |  |  | 				this.setState({ | 
			
		
	
		
			
				
					|  |  |  |  | 					detailInfoList:this.state.detailInfoList, | 
			
		
	
		
			
				
					|  |  |  |  | 					members:response.data.members | 
			
		
	
		
			
				
					|  |  |  |  | 				}); | 
			
		
	
		
			
				
					|  |  |  |  | 				// console.log(this.state.detailInfoList.members);
 | 
			
		
	
		
			
				
					|  |  |  |  | 			} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 		}).catch((error) => { | 
			
		
	
		
			
				
					|  |  |  |  | 			console.log(error) | 
			
		
	
		
			
				
					|  |  |  |  | 		}) | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 	render(){ | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 		this.updatamakedown("shixuns_propaedeutics"); | 
			
		
	
		
			
				
					|  |  |  |  | 		this.updatamakedown("subject_learning_notes"); | 
			
		
	
		
			
				
					|  |  |  |  | 		let {detailInfoList, | 
			
		
	
		
			
				
					|  |  |  |  | 			clickdetailInfoListtype, | 
			
		
	
		
			
				
					|  |  |  |  | 			Modalstype, | 
			
		
	
		
			
				
					|  |  |  |  | 			Modalstopval, | 
			
		
	
		
			
				
					|  |  |  |  | 			Modalsbottomval, | 
			
		
	
		
			
				
					|  |  |  |  | 			cardsModalcancel, | 
			
		
	
		
			
				
					|  |  |  |  | 			cardsModalsave, | 
			
		
	
		
			
				
					|  |  |  |  | 			loadtype, | 
			
		
	
		
			
				
					|  |  |  |  | 			progress, | 
			
		
	
		
			
				
					|  |  |  |  | 			members, | 
			
		
	
		
			
				
					|  |  |  |  | 			tags, | 
			
		
	
		
			
				
					|  |  |  |  | 			courses, | 
			
		
	
		
			
				
					|  |  |  |  |     } = this.state | 
			
		
	
		
			
				
					|  |  |  |  | 		} = this.state | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     return( | 
			
		
	
		
			
				
					|  |  |  |  |       <div className="newContainer"> | 
			
		
	
		
			
				
					|  |  |  |  | 		return( | 
			
		
	
		
			
				
					|  |  |  |  | 			<div className="newContainer"> | 
			
		
	
		
			
				
					|  |  |  |  | 				<style> | 
			
		
	
		
			
				
					|  |  |  |  | 					{ | 
			
		
	
		
			
				
					|  |  |  |  | 						` | 
			
		
	
	
		
			
				
					|  |  |  | @ -365,206 +365,206 @@ class PathDetailIndex extends Component{ | 
			
		
	
		
			
				
					|  |  |  |  | 						` | 
			
		
	
		
			
				
					|  |  |  |  | 					} | 
			
		
	
		
			
				
					|  |  |  |  | 				</style> | 
			
		
	
		
			
				
					|  |  |  |  |         <Modals | 
			
		
	
		
			
				
					|  |  |  |  |           modalsType={Modalstype} | 
			
		
	
		
			
				
					|  |  |  |  |           modalsTopval={Modalstopval} | 
			
		
	
		
			
				
					|  |  |  |  |           modalsBottomval={Modalsbottomval} | 
			
		
	
		
			
				
					|  |  |  |  |           modalCancel={cardsModalcancel} | 
			
		
	
		
			
				
					|  |  |  |  |           modalSave={cardsModalsave} | 
			
		
	
		
			
				
					|  |  |  |  |           loadtype={loadtype} | 
			
		
	
		
			
				
					|  |  |  |  |         > | 
			
		
	
		
			
				
					|  |  |  |  |         </Modals> | 
			
		
	
		
			
				
					|  |  |  |  |           <div className="newMain clearfix"> | 
			
		
	
		
			
				
					|  |  |  |  |             <DetailTop {...this.state} {...this.props} getdatasindex={(key)=>this.getdatasindex(key)}></DetailTop> | 
			
		
	
		
			
				
					|  |  |  |  |             <div className="educontent clearfix mb80"> | 
			
		
	
		
			
				
					|  |  |  |  |               <div className="with65 fl">  | 
			
		
	
		
			
				
					|  |  |  |  |                 <div className="produce-content mb10"> | 
			
		
	
		
			
				
					|  |  |  |  |                   <p className="clearfix mb20"> | 
			
		
	
		
			
				
					|  |  |  |  |                     <span className="fl font-18 font-bd">简介</span> | 
			
		
	
		
			
				
					|  |  |  |  |                     {/*{detailInfoList===undefined?"":detailInfoList.allow_statistics===true?*/} | 
			
		
	
		
			
				
					|  |  |  |  | 											{/*<Tooltip placement="bottom" title={"编辑"}>*/} | 
			
		
	
		
			
				
					|  |  |  |  |                       {/*<Link className="fr" to={"/paths/"+this.props.match.params.pathId+"/edit"}>*/} | 
			
		
	
		
			
				
					|  |  |  |  |                         {/*<i className="iconfont icon-bianjidaibeijing font-20 color-green"></i>*/} | 
			
		
	
		
			
				
					|  |  |  |  |                       {/*</Link>*/} | 
			
		
	
		
			
				
					|  |  |  |  | 											{/*</Tooltip>*/} | 
			
		
	
		
			
				
					|  |  |  |  |                       {/*:""*/} | 
			
		
	
		
			
				
					|  |  |  |  |                     {/*}*/} | 
			
		
	
		
			
				
					|  |  |  |  |                   </p> | 
			
		
	
		
			
				
					|  |  |  |  |                   <div className="color-grey-6 clearfix"> | 
			
		
	
		
			
				
					|  |  |  |  |                     <div id="shixuns_propaedeutics" className="new_li fl" style={{"padding":" 0px","textAlign": "justify;"}}> | 
			
		
	
		
			
				
					|  |  |  |  |                       {detailInfoList === undefined ? "" :detailInfoList.description===null?"": | 
			
		
	
		
			
				
					|  |  |  |  | 												<div className={"markdown-body font-14"} dangerouslySetInnerHTML={{__html: markdownToHTML(detailInfoList.description).replace(/▁/g,"▁▁▁")}}></div> | 
			
		
	
		
			
				
					|  |  |  |  |                       } | 
			
		
	
		
			
				
					|  |  |  |  |                     </div> | 
			
		
	
		
			
				
					|  |  |  |  |                   </div> | 
			
		
	
		
			
				
					|  |  |  |  |                 </div> | 
			
		
	
		
			
				
					|  |  |  |  |                  | 
			
		
	
		
			
				
					|  |  |  |  |                 <DetailCards | 
			
		
	
		
			
				
					|  |  |  |  |                   {...this.props} | 
			
		
	
		
			
				
					|  |  |  |  |                   {...this.state} | 
			
		
	
		
			
				
					|  |  |  |  |                   updatadetailInfoLists={this.updatadetailInfoList} | 
			
		
	
		
			
				
					|  |  |  |  |                 ></DetailCards> | 
			
		
	
		
			
				
					|  |  |  |  |               </div> | 
			
		
	
		
			
				
					|  |  |  |  |               <div className="with35 fr pl20"> | 
			
		
	
		
			
				
					|  |  |  |  |                 <div className="edu-back-white mustlearn mb10"> | 
			
		
	
		
			
				
					|  |  |  |  |                   <p className="clearfix mb30"> | 
			
		
	
		
			
				
					|  |  |  |  |                     <span className="font-16">课程须知</span> | 
			
		
	
		
			
				
					|  |  |  |  |                     {/*{detailInfoList===undefined?"":detailInfoList.allow_statistics===true?*/} | 
			
		
	
		
			
				
					|  |  |  |  | 											{/*<Tooltip placement="bottom" title={"编辑"}>*/} | 
			
		
	
		
			
				
					|  |  |  |  |                       {/*<Link to={"/paths/"+this.props.match.params.pathId+"/edit#learning_notes"} className="fr mtf5">*/} | 
			
		
	
		
			
				
					|  |  |  |  |                         {/*<i className="iconfont icon-bianjidaibeijing font-20 color-green"></i>*/} | 
			
		
	
		
			
				
					|  |  |  |  |                       {/*</Link>*/} | 
			
		
	
		
			
				
					|  |  |  |  | 											{/*</Tooltip>*/} | 
			
		
	
		
			
				
					|  |  |  |  |                       {/*:""*/} | 
			
		
	
		
			
				
					|  |  |  |  |                     {/*}*/} | 
			
		
	
		
			
				
					|  |  |  |  |                   </p> | 
			
		
	
		
			
				
					|  |  |  |  |                   <div id="subject_learning_notes" className="color-grey-6 new_li markdown-body editormd-html-preview justify"> | 
			
		
	
		
			
				
					|  |  |  |  |                     {detailInfoList === undefined ? "" :detailInfoList.learning_notes===null?"": | 
			
		
	
		
			
				
					|  |  |  |  | 											<div className={"markdown-body font-14"} dangerouslySetInnerHTML={{__html: markdownToHTML(detailInfoList.learning_notes).replace(/▁/g,"▁▁▁")}}></div> | 
			
		
	
		
			
				
					|  |  |  |  | 				<Modals | 
			
		
	
		
			
				
					|  |  |  |  | 					modalsType={Modalstype} | 
			
		
	
		
			
				
					|  |  |  |  | 					modalsTopval={Modalstopval} | 
			
		
	
		
			
				
					|  |  |  |  | 					modalsBottomval={Modalsbottomval} | 
			
		
	
		
			
				
					|  |  |  |  | 					modalCancel={cardsModalcancel} | 
			
		
	
		
			
				
					|  |  |  |  | 					modalSave={cardsModalsave} | 
			
		
	
		
			
				
					|  |  |  |  | 					loadtype={loadtype} | 
			
		
	
		
			
				
					|  |  |  |  | 				> | 
			
		
	
		
			
				
					|  |  |  |  | 				</Modals> | 
			
		
	
		
			
				
					|  |  |  |  | 				<div className="newMain clearfix"> | 
			
		
	
		
			
				
					|  |  |  |  | 					<DetailTop {...this.state} {...this.props} getdatasindex={(key)=>this.getdatasindex(key)}></DetailTop> | 
			
		
	
		
			
				
					|  |  |  |  | 					<div className="educontent clearfix mb80"> | 
			
		
	
		
			
				
					|  |  |  |  | 						<div className="with65 fl"> | 
			
		
	
		
			
				
					|  |  |  |  | 							<div className="produce-content mb10"> | 
			
		
	
		
			
				
					|  |  |  |  | 								<p className="clearfix mb20"> | 
			
		
	
		
			
				
					|  |  |  |  | 									<span className="fl font-18 font-bd">简介</span> | 
			
		
	
		
			
				
					|  |  |  |  | 									{/*{detailInfoList===undefined?"":detailInfoList.allow_statistics===true?*/} | 
			
		
	
		
			
				
					|  |  |  |  | 									{/*<Tooltip placement="bottom" title={"编辑"}>*/} | 
			
		
	
		
			
				
					|  |  |  |  | 									{/*<Link className="fr" to={"/paths/"+this.props.match.params.pathId+"/edit"}>*/} | 
			
		
	
		
			
				
					|  |  |  |  | 									{/*<i className="iconfont icon-bianjidaibeijing font-20 color-green"></i>*/} | 
			
		
	
		
			
				
					|  |  |  |  | 									{/*</Link>*/} | 
			
		
	
		
			
				
					|  |  |  |  | 									{/*</Tooltip>*/} | 
			
		
	
		
			
				
					|  |  |  |  | 									{/*:""*/} | 
			
		
	
		
			
				
					|  |  |  |  | 									{/*}*/} | 
			
		
	
		
			
				
					|  |  |  |  | 								</p> | 
			
		
	
		
			
				
					|  |  |  |  | 								<div className="color-grey-6 clearfix"> | 
			
		
	
		
			
				
					|  |  |  |  | 									<div id="shixuns_propaedeutics" className="new_li fl" style={{"padding":" 0px","textAlign": "justify;"}}> | 
			
		
	
		
			
				
					|  |  |  |  | 										{detailInfoList === undefined ? "" :detailInfoList.description===null?"": | 
			
		
	
		
			
				
					|  |  |  |  | 											<div className={"markdown-body font-14"} dangerouslySetInnerHTML={{__html: markdownToHTML(detailInfoList.description).replace(/▁/g,"▁▁▁")}}></div> | 
			
		
	
		
			
				
					|  |  |  |  | 										} | 
			
		
	
		
			
				
					|  |  |  |  |                   </div> | 
			
		
	
		
			
				
					|  |  |  |  |                 </div> | 
			
		
	
		
			
				
					|  |  |  |  |                 {tags === undefined ? "" :tags === null ? "": | 
			
		
	
		
			
				
					|  |  |  |  |                   <div className="edu-back-white padding40-20 mb10 relative"> | 
			
		
	
		
			
				
					|  |  |  |  |                     <p className="font-16 mb20">技能标签 <span className="color-grey-c">{tags.length}</span></p> | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                       <div className={clickdetailInfoListtype===false?"newedbox newedboxheight":"newedbox newminheight"}> | 
			
		
	
		
			
				
					|  |  |  |  |                           <div className="clearfix" id="boxheight"> | 
			
		
	
		
			
				
					|  |  |  |  |                             { | 
			
		
	
		
			
				
					|  |  |  |  |                              tags && tags.map((item,key)=>{ | 
			
		
	
		
			
				
					|  |  |  |  |                                 return( | 
			
		
	
		
			
				
					|  |  |  |  |                                   <span value={key} className = {item.status == true ? "edu-filter-btn29BD8B fl" : "newedu-filter-btn fl"}>{item.tag_name}</span> | 
			
		
	
		
			
				
					|  |  |  |  |                                 ) | 
			
		
	
		
			
				
					|  |  |  |  |                               }) | 
			
		
	
		
			
				
					|  |  |  |  |                             } | 
			
		
	
		
			
				
					|  |  |  |  |                           </div> | 
			
		
	
		
			
				
					|  |  |  |  |                       </div> | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 										<Tooltip placement="bottom" title={"显示全部"}> | 
			
		
	
		
			
				
					|  |  |  |  |                     <div className={tags.length>20&&clickdetailInfoListtype===false?"newsubscript mb9 color-grey-9 fr":"newsubscript mb9 color-grey-9 none"} | 
			
		
	
		
			
				
					|  |  |  |  |                          onClick={()=>this.clickNewsubscript(0)} | 
			
		
	
		
			
				
					|  |  |  |  |                     ><span className="mr8">...</span><Icon type="caret-down" /> | 
			
		
	
		
			
				
					|  |  |  |  |                     </div> | 
			
		
	
		
			
				
					|  |  |  |  | 										</Tooltip> | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 										<Tooltip placement="bottom" title={"收起"}> | 
			
		
	
		
			
				
					|  |  |  |  |                     <div className={clickdetailInfoListtype===false?"newsubscript mb9 color-grey-9 none":"newsubscript mb9 color-grey-9 fr"} | 
			
		
	
		
			
				
					|  |  |  |  |                          onClick={()=>this.clickNewsubscript(1)}><Icon type="caret-up" /> | 
			
		
	
		
			
				
					|  |  |  |  |                     </div> | 
			
		
	
		
			
				
					|  |  |  |  | 										</Tooltip> | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                   </div> | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |                 { | 
			
		
	
		
			
				
					|  |  |  |  | 									this.props.checkIfLogin()===false?"":progress === undefined ? "" : progress === null ? "" : | 
			
		
	
		
			
				
					|  |  |  |  |                   <div className="edu-back-white myProgress padding40-20 mb10"> | 
			
		
	
		
			
				
					|  |  |  |  |                     <p className="mb20"> | 
			
		
	
		
			
				
					|  |  |  |  |                       <span className="font-16 mr10">关卡数</span> | 
			
		
	
		
			
				
					|  |  |  |  |                       <Tooltip placement="bottom" title="已通过关卡数/总关卡数"> | 
			
		
	
		
			
				
					|  |  |  |  |                           <span className="color-green"  >{progress.my_score} / {progress.all_score}</span> | 
			
		
	
		
			
				
					|  |  |  |  |                       </Tooltip> | 
			
		
	
		
			
				
					|  |  |  |  |                     </p> | 
			
		
	
		
			
				
					|  |  |  |  |                     <p className="clearfix mb10"> | 
			
		
	
		
			
				
					|  |  |  |  |                       <span className="fl color-green">已学 {progress.learned}%</span> | 
			
		
	
		
			
				
					|  |  |  |  |                       <span className="fr color-grey-9" id="time-consuming">学习耗时{this.timeStamp(progress.time)} </span> | 
			
		
	
		
			
				
					|  |  |  |  |                     </p> | 
			
		
	
		
			
				
					|  |  |  |  |                     <div className="myProgressNav"><div className="myProgressGreen" style={{"width":`${progress.learned+"%"}`}}></div></div> | 
			
		
	
		
			
				
					|  |  |  |  |                   </div> | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                 { | 
			
		
	
		
			
				
					|  |  |  |  | 									members ===undefined ?"":members === null ?"": | 
			
		
	
		
			
				
					|  |  |  |  |                   <div className="teacherTeam edu-back-white clearfix" id="subject_members">   | 
			
		
	
		
			
				
					|  |  |  |  |                     <p className="font-16 clearfix">教学团队</p> | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                     { members===undefined? | 
			
		
	
		
			
				
					|  |  |  |  |                        members && members.map((item,key)=>{ | 
			
		
	
		
			
				
					|  |  |  |  |                         return( | 
			
		
	
		
			
				
					|  |  |  |  |                             <div className="teacherTeamItem clearfix df" key={key}> | 
			
		
	
		
			
				
					|  |  |  |  |                               <a href={item.user_url} target="_blank" className="fl"> | 
			
		
	
		
			
				
					|  |  |  |  |                                 <img alt="头像" className="radius" height="80" src={getImageUrl(`${"images/"+item.image_url}`)} width="80"/> | 
			
		
	
		
			
				
					|  |  |  |  |                               </a> | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                               <div className="fl ml15 flex1"> | 
			
		
	
		
			
				
					|  |  |  |  |                                 <p className="mb10 mt5">{item.name} | 
			
		
	
		
			
				
					|  |  |  |  |                                   {/*{*/} | 
			
		
	
		
			
				
					|  |  |  |  |                                   {/* detailInfoList===undefined?"":detailInfoList.allow_add_member===true?*/} | 
			
		
	
		
			
				
					|  |  |  |  |                                   {/*  <a className="fr" onClick={()=>this.shanchuallow(item.id)}><i className="iconfont icon-shanchu color-grey-c font-14 font-n"></i></a>:""*/} | 
			
		
	
		
			
				
					|  |  |  |  |                                   {/*}*/} | 
			
		
	
		
			
				
					|  |  |  |  |                                 </p> | 
			
		
	
		
			
				
					|  |  |  |  |                                 <div className="clearfix"> | 
			
		
	
		
			
				
					|  |  |  |  |                                   <p className="color-grey-9 font-12 fl"><span className="mr10">{item.school}</span><span>{item.identity}</span></p> | 
			
		
	
		
			
				
					|  |  |  |  |                                 </div> | 
			
		
	
		
			
				
					|  |  |  |  |                               </div> | 
			
		
	
		
			
				
					|  |  |  |  |                             </div> | 
			
		
	
		
			
				
					|  |  |  |  |                         ) | 
			
		
	
		
			
				
					|  |  |  |  |                       }) | 
			
		
	
		
			
				
					|  |  |  |  |                     :detailInfoList===undefined?"":detailInfoList.allow_add_member===true? | 
			
		
	
		
			
				
					|  |  |  |  |                             members && members.map((item,key)=>{ | 
			
		
	
		
			
				
					|  |  |  |  |                               return( | 
			
		
	
		
			
				
					|  |  |  |  |                                   <div className="teacherTeamItem clearfix df" key={key}> | 
			
		
	
		
			
				
					|  |  |  |  |                                     <a href={item.user_url} target="_blank" className="fl"> | 
			
		
	
		
			
				
					|  |  |  |  |                                       <img alt="头像" className="radius" height="80" src={getImageUrl(`${"images/"+item.image_url}`)} width="80"/> | 
			
		
	
		
			
				
					|  |  |  |  |                                     </a> | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                                     <div className="fl ml15 flex1"> | 
			
		
	
		
			
				
					|  |  |  |  |                                       <p className="mb10 mt5">{item.name} | 
			
		
	
		
			
				
					|  |  |  |  |                                         {/* 新增role 判断是否能删除  1 管理员   2 合作者 */} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                                         { | 
			
		
	
		
			
				
					|  |  |  |  |                                           detailInfoList===undefined?"":detailInfoList.allow_add_member===true && item.role == 2? | 
			
		
	
		
			
				
					|  |  |  |  |                                           <a className="fr" onClick={()=>this.shanchuallow(item.id)}><i className="iconfont icon-shanchu color-grey-c font-14 font-n"></i></a>:"" | 
			
		
	
		
			
				
					|  |  |  |  |                                         } | 
			
		
	
		
			
				
					|  |  |  |  |                                       </p> | 
			
		
	
		
			
				
					|  |  |  |  |                                       <div className="clearfix"> | 
			
		
	
		
			
				
					|  |  |  |  |                                         <p className="color-grey-9 font-12 fl"><span className="mr10">{item.school}</span><span>{item.identity}</span></p> | 
			
		
	
		
			
				
					|  |  |  |  |                                       </div> | 
			
		
	
		
			
				
					|  |  |  |  |                                       { | 
			
		
	
		
			
				
					|  |  |  |  |                                         detailInfoList===undefined?"":detailInfoList.allow_add_member===true? <div> | 
			
		
	
		
			
				
					|  |  |  |  | 																						{key!=0?<div className="fr ml15 flex1"><a onClick={()=>this.moveup(item)}><Tooltip title="上移"><i className="color-green font-18 iconfont icon-xiangshangyi"></i></Tooltip></a></div>:""} | 
			
		
	
		
			
				
					|  |  |  |  | 																						{key+1== members.length?"":<div className="fr  ml15 flex1 "><a onClick={()=>this.movedown(item)}><Tooltip title="下移"><i className="color-green font-18 iconfont icon-xiangxiayi"></i></Tooltip></a></div>} | 
			
		
	
		
			
				
					|  |  |  |  |                                             </div> | 
			
		
	
		
			
				
					|  |  |  |  |                                               :"" | 
			
		
	
		
			
				
					|  |  |  |  |                                       } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                                     </div> | 
			
		
	
		
			
				
					|  |  |  |  |                                   </div> | 
			
		
	
		
			
				
					|  |  |  |  |                               ) | 
			
		
	
		
			
				
					|  |  |  |  |                             }) | 
			
		
	
		
			
				
					|  |  |  |  |                             : members && members.map((item,key)=>{ | 
			
		
	
		
			
				
					|  |  |  |  |                           return( | 
			
		
	
		
			
				
					|  |  |  |  |                               <div className="teacherTeamItem clearfix df" key={key}> | 
			
		
	
		
			
				
					|  |  |  |  |                                 <a href={item.user_url} target="_blank" className="fl"> | 
			
		
	
		
			
				
					|  |  |  |  |                                   <img alt="头像" className="radius" height="80" src={getImageUrl(`${"images/"+item.image_url}`)} width="80"/> | 
			
		
	
		
			
				
					|  |  |  |  |                                 </a> | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                                 <div className="fl ml15 flex1"> | 
			
		
	
		
			
				
					|  |  |  |  |                                   <p className="mb10 mt5">{item.name} | 
			
		
	
		
			
				
					|  |  |  |  |                                     {/*{*/} | 
			
		
	
		
			
				
					|  |  |  |  |                                     {/* detailInfoList===undefined?"":detailInfoList.allow_add_member===true?*/} | 
			
		
	
		
			
				
					|  |  |  |  |                                     {/*  <a className="fr" onClick={()=>this.shanchuallow(item.id)}><i className="iconfont icon-shanchu color-grey-c font-14 font-n"></i></a>:""*/} | 
			
		
	
		
			
				
					|  |  |  |  |                                     {/*}*/} | 
			
		
	
		
			
				
					|  |  |  |  |                                   </p> | 
			
		
	
		
			
				
					|  |  |  |  |                                   <div className="clearfix"> | 
			
		
	
		
			
				
					|  |  |  |  |                                     <p className="color-grey-9 font-12 fl"><span className="mr10">{item.school}</span><span>{item.identity}</span></p> | 
			
		
	
		
			
				
					|  |  |  |  |                                   </div> | 
			
		
	
		
			
				
					|  |  |  |  |                                 </div> | 
			
		
	
		
			
				
					|  |  |  |  |                               </div> | 
			
		
	
		
			
				
					|  |  |  |  |                           ) | 
			
		
	
		
			
				
					|  |  |  |  |                         })} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |                   </div> | 
			
		
	
		
			
				
					|  |  |  |  |                 }   | 
			
		
	
		
			
				
					|  |  |  |  |                  | 
			
		
	
		
			
				
					|  |  |  |  |                  | 
			
		
	
		
			
				
					|  |  |  |  |                 <AddCollaborators {...this.props} {...this.state} updatadetailInfoLists={this.updatadetailInfoList}></AddCollaborators> | 
			
		
	
		
			
				
					|  |  |  |  |                  | 
			
		
	
		
			
				
					|  |  |  |  |               </div> | 
			
		
	
		
			
				
					|  |  |  |  |             </div>             | 
			
		
	
		
			
				
					|  |  |  |  |           </div> | 
			
		
	
		
			
				
					|  |  |  |  |            | 
			
		
	
		
			
				
					|  |  |  |  |       </div> | 
			
		
	
		
			
				
					|  |  |  |  |     ) | 
			
		
	
		
			
				
					|  |  |  |  |   } | 
			
		
	
		
			
				
					|  |  |  |  | 									</div> | 
			
		
	
		
			
				
					|  |  |  |  | 								</div> | 
			
		
	
		
			
				
					|  |  |  |  | 							</div> | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 							<DetailCards | 
			
		
	
		
			
				
					|  |  |  |  | 								{...this.props} | 
			
		
	
		
			
				
					|  |  |  |  | 								{...this.state} | 
			
		
	
		
			
				
					|  |  |  |  | 								updatadetailInfoLists={this.updatadetailInfoList} | 
			
		
	
		
			
				
					|  |  |  |  | 							></DetailCards> | 
			
		
	
		
			
				
					|  |  |  |  | 						</div> | 
			
		
	
		
			
				
					|  |  |  |  | 						<div className="with35 fr pl20"> | 
			
		
	
		
			
				
					|  |  |  |  | 							<div className="edu-back-white mustlearn mb10"> | 
			
		
	
		
			
				
					|  |  |  |  | 								<p className="clearfix mb30"> | 
			
		
	
		
			
				
					|  |  |  |  | 									<span className="font-16">课程须知</span> | 
			
		
	
		
			
				
					|  |  |  |  | 									{/*{detailInfoList===undefined?"":detailInfoList.allow_statistics===true?*/} | 
			
		
	
		
			
				
					|  |  |  |  | 									{/*<Tooltip placement="bottom" title={"编辑"}>*/} | 
			
		
	
		
			
				
					|  |  |  |  | 									{/*<Link to={"/paths/"+this.props.match.params.pathId+"/edit#learning_notes"} className="fr mtf5">*/} | 
			
		
	
		
			
				
					|  |  |  |  | 									{/*<i className="iconfont icon-bianjidaibeijing font-20 color-green"></i>*/} | 
			
		
	
		
			
				
					|  |  |  |  | 									{/*</Link>*/} | 
			
		
	
		
			
				
					|  |  |  |  | 									{/*</Tooltip>*/} | 
			
		
	
		
			
				
					|  |  |  |  | 									{/*:""*/} | 
			
		
	
		
			
				
					|  |  |  |  | 									{/*}*/} | 
			
		
	
		
			
				
					|  |  |  |  | 								</p> | 
			
		
	
		
			
				
					|  |  |  |  | 								<div id="subject_learning_notes" className="color-grey-6 new_li markdown-body editormd-html-preview justify"> | 
			
		
	
		
			
				
					|  |  |  |  | 									{detailInfoList === undefined ? "" :detailInfoList.learning_notes===null?"": | 
			
		
	
		
			
				
					|  |  |  |  | 										<div className={"markdown-body font-14"} dangerouslySetInnerHTML={{__html: markdownToHTML(detailInfoList.learning_notes).replace(/▁/g,"▁▁▁")}}></div> | 
			
		
	
		
			
				
					|  |  |  |  | 									} | 
			
		
	
		
			
				
					|  |  |  |  | 								</div> | 
			
		
	
		
			
				
					|  |  |  |  | 							</div> | 
			
		
	
		
			
				
					|  |  |  |  | 							{tags === undefined ? "" :tags === null ? "": | 
			
		
	
		
			
				
					|  |  |  |  | 								<div className="edu-back-white padding40-20 mb10 relative"> | 
			
		
	
		
			
				
					|  |  |  |  | 									<p className="font-16 mb20">技能标签 <span className="color-grey-c">{tags.length}</span></p> | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 									<div className={clickdetailInfoListtype===false?"newedbox newedboxheight":"newedbox newminheight"}> | 
			
		
	
		
			
				
					|  |  |  |  | 										<div className="clearfix" id="boxheight"> | 
			
		
	
		
			
				
					|  |  |  |  | 											{ | 
			
		
	
		
			
				
					|  |  |  |  | 												tags && tags.map((item,key)=>{ | 
			
		
	
		
			
				
					|  |  |  |  | 													return( | 
			
		
	
		
			
				
					|  |  |  |  | 														<span value={key} className = {item.status == true ? "edu-filter-btn29BD8B fl" : "newedu-filter-btn fl"}>{item.tag_name}</span> | 
			
		
	
		
			
				
					|  |  |  |  | 													) | 
			
		
	
		
			
				
					|  |  |  |  | 												}) | 
			
		
	
		
			
				
					|  |  |  |  | 											} | 
			
		
	
		
			
				
					|  |  |  |  | 										</div> | 
			
		
	
		
			
				
					|  |  |  |  | 									</div> | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 									<Tooltip placement="bottom" title={"显示全部"}> | 
			
		
	
		
			
				
					|  |  |  |  | 										<div className={tags.length>20&&clickdetailInfoListtype===false?"newsubscript mb9 color-grey-9 fr":"newsubscript mb9 color-grey-9 none"} | 
			
		
	
		
			
				
					|  |  |  |  | 												 onClick={()=>this.clickNewsubscript(0)} | 
			
		
	
		
			
				
					|  |  |  |  | 										><span className="mr8">...</span><Icon type="caret-down" /> | 
			
		
	
		
			
				
					|  |  |  |  | 										</div> | 
			
		
	
		
			
				
					|  |  |  |  | 									</Tooltip> | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 									<Tooltip placement="bottom" title={"收起"}> | 
			
		
	
		
			
				
					|  |  |  |  | 										<div className={clickdetailInfoListtype===false?"newsubscript mb9 color-grey-9 none":"newsubscript mb9 color-grey-9 fr"} | 
			
		
	
		
			
				
					|  |  |  |  | 												 onClick={()=>this.clickNewsubscript(1)}><Icon type="caret-up" /> | 
			
		
	
		
			
				
					|  |  |  |  | 										</div> | 
			
		
	
		
			
				
					|  |  |  |  | 									</Tooltip> | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 								</div> | 
			
		
	
		
			
				
					|  |  |  |  | 							} | 
			
		
	
		
			
				
					|  |  |  |  | 							{ | 
			
		
	
		
			
				
					|  |  |  |  | 								this.props.checkIfLogin()===false?"":progress === undefined ? "" : progress === null ? "" : | 
			
		
	
		
			
				
					|  |  |  |  | 									<div className="edu-back-white myProgress padding40-20 mb10"> | 
			
		
	
		
			
				
					|  |  |  |  | 										<p className="mb20"> | 
			
		
	
		
			
				
					|  |  |  |  | 											<span className="font-16 mr10">我的进展</span> | 
			
		
	
		
			
				
					|  |  |  |  | 											<Tooltip placement="bottom" title="获得经验值/总经验值"> | 
			
		
	
		
			
				
					|  |  |  |  | 												<span className="color-green"  >{progress.my_score} / {progress.all_score}</span> | 
			
		
	
		
			
				
					|  |  |  |  | 											</Tooltip> | 
			
		
	
		
			
				
					|  |  |  |  | 										</p> | 
			
		
	
		
			
				
					|  |  |  |  | 										<p className="clearfix mb10"> | 
			
		
	
		
			
				
					|  |  |  |  | 											<span className="fl color-green">已学 {progress.learned}%</span> | 
			
		
	
		
			
				
					|  |  |  |  | 											<span className="fr color-grey-9" id="time-consuming">学习耗时{this.timeStamp(progress.time)} </span> | 
			
		
	
		
			
				
					|  |  |  |  | 										</p> | 
			
		
	
		
			
				
					|  |  |  |  | 										<div className="myProgressNav"><div className="myProgressGreen" style={{"width":`${progress.learned+"%"}`}}></div></div> | 
			
		
	
		
			
				
					|  |  |  |  | 									</div> | 
			
		
	
		
			
				
					|  |  |  |  | 							} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 							{ | 
			
		
	
		
			
				
					|  |  |  |  | 								members ===undefined ?"":members === null ?"": | 
			
		
	
		
			
				
					|  |  |  |  | 									<div className="teacherTeam edu-back-white clearfix" id="subject_members"> | 
			
		
	
		
			
				
					|  |  |  |  | 										<p className="font-16 clearfix">教学团队</p> | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 										{ members===undefined? | 
			
		
	
		
			
				
					|  |  |  |  | 											members && members.map((item,key)=>{ | 
			
		
	
		
			
				
					|  |  |  |  | 												return( | 
			
		
	
		
			
				
					|  |  |  |  | 													<div className="teacherTeamItem clearfix df" key={key}> | 
			
		
	
		
			
				
					|  |  |  |  | 														<a href={item.user_url} target="_blank" className="fl"> | 
			
		
	
		
			
				
					|  |  |  |  | 															<img alt="头像" className="radius" height="80" src={getImageUrl(`${"images/"+item.image_url}`)} width="80"/> | 
			
		
	
		
			
				
					|  |  |  |  | 														</a> | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 														<div className="fl ml15 flex1"> | 
			
		
	
		
			
				
					|  |  |  |  | 															<p className="mb10 mt5">{item.name} | 
			
		
	
		
			
				
					|  |  |  |  | 																{/*{*/} | 
			
		
	
		
			
				
					|  |  |  |  | 																{/* detailInfoList===undefined?"":detailInfoList.allow_add_member===true?*/} | 
			
		
	
		
			
				
					|  |  |  |  | 																{/*  <a className="fr" onClick={()=>this.shanchuallow(item.id)}><i className="iconfont icon-shanchu color-grey-c font-14 font-n"></i></a>:""*/} | 
			
		
	
		
			
				
					|  |  |  |  | 																{/*}*/} | 
			
		
	
		
			
				
					|  |  |  |  | 															</p> | 
			
		
	
		
			
				
					|  |  |  |  | 															<div className="clearfix"> | 
			
		
	
		
			
				
					|  |  |  |  | 																<p className="color-grey-9 font-12 fl"><span className="mr10">{item.school}</span><span>{item.identity}</span></p> | 
			
		
	
		
			
				
					|  |  |  |  | 															</div> | 
			
		
	
		
			
				
					|  |  |  |  | 														</div> | 
			
		
	
		
			
				
					|  |  |  |  | 													</div> | 
			
		
	
		
			
				
					|  |  |  |  | 												) | 
			
		
	
		
			
				
					|  |  |  |  | 											}) | 
			
		
	
		
			
				
					|  |  |  |  | 											:detailInfoList===undefined?"":detailInfoList.allow_add_member===true? | 
			
		
	
		
			
				
					|  |  |  |  | 												members && members.map((item,key)=>{ | 
			
		
	
		
			
				
					|  |  |  |  | 													return( | 
			
		
	
		
			
				
					|  |  |  |  | 														<div className="teacherTeamItem clearfix df" key={key}> | 
			
		
	
		
			
				
					|  |  |  |  | 															<a href={item.user_url} target="_blank" className="fl"> | 
			
		
	
		
			
				
					|  |  |  |  | 																<img alt="头像" className="radius" height="80" src={getImageUrl(`${"images/"+item.image_url}`)} width="80"/> | 
			
		
	
		
			
				
					|  |  |  |  | 															</a> | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 															<div className="fl ml15 flex1"> | 
			
		
	
		
			
				
					|  |  |  |  | 																<p className="mb10 mt5">{item.name} | 
			
		
	
		
			
				
					|  |  |  |  | 																	{/* 新增role 判断是否能删除  1 管理员   2 合作者 */} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 																	{ | 
			
		
	
		
			
				
					|  |  |  |  | 																		detailInfoList===undefined?"":detailInfoList.allow_add_member===true && item.role == 2? | 
			
		
	
		
			
				
					|  |  |  |  | 																			<a className="fr" onClick={()=>this.shanchuallow(item.id)}><i className="iconfont icon-shanchu color-grey-c font-14 font-n"></i></a>:"" | 
			
		
	
		
			
				
					|  |  |  |  | 																	} | 
			
		
	
		
			
				
					|  |  |  |  | 																</p> | 
			
		
	
		
			
				
					|  |  |  |  | 																<div className="clearfix"> | 
			
		
	
		
			
				
					|  |  |  |  | 																	<p className="color-grey-9 font-12 fl"><span className="mr10">{item.school}</span><span>{item.identity}</span></p> | 
			
		
	
		
			
				
					|  |  |  |  | 																</div> | 
			
		
	
		
			
				
					|  |  |  |  | 																{ | 
			
		
	
		
			
				
					|  |  |  |  | 																	detailInfoList===undefined?"":detailInfoList.allow_add_member===true? <div> | 
			
		
	
		
			
				
					|  |  |  |  | 																			{key!=0?<div className="fr ml15 flex1"><a onClick={()=>this.moveup(item)}><Tooltip title="上移"><i className="color-green font-18 iconfont icon-xiangshangyi"></i></Tooltip></a></div>:""} | 
			
		
	
		
			
				
					|  |  |  |  | 																			{key+1== members.length?"":<div className="fr  ml15 flex1 "><a onClick={()=>this.movedown(item)}><Tooltip title="下移"><i className="color-green font-18 iconfont icon-xiangxiayi"></i></Tooltip></a></div>} | 
			
		
	
		
			
				
					|  |  |  |  | 																		</div> | 
			
		
	
		
			
				
					|  |  |  |  | 																		:"" | 
			
		
	
		
			
				
					|  |  |  |  | 																} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 															</div> | 
			
		
	
		
			
				
					|  |  |  |  | 														</div> | 
			
		
	
		
			
				
					|  |  |  |  | 													) | 
			
		
	
		
			
				
					|  |  |  |  | 												}) | 
			
		
	
		
			
				
					|  |  |  |  | 												: members && members.map((item,key)=>{ | 
			
		
	
		
			
				
					|  |  |  |  | 												return( | 
			
		
	
		
			
				
					|  |  |  |  | 													<div className="teacherTeamItem clearfix df" key={key}> | 
			
		
	
		
			
				
					|  |  |  |  | 														<a href={item.user_url} target="_blank" className="fl"> | 
			
		
	
		
			
				
					|  |  |  |  | 															<img alt="头像" className="radius" height="80" src={getImageUrl(`${"images/"+item.image_url}`)} width="80"/> | 
			
		
	
		
			
				
					|  |  |  |  | 														</a> | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 														<div className="fl ml15 flex1"> | 
			
		
	
		
			
				
					|  |  |  |  | 															<p className="mb10 mt5">{item.name} | 
			
		
	
		
			
				
					|  |  |  |  | 																{/*{*/} | 
			
		
	
		
			
				
					|  |  |  |  | 																{/* detailInfoList===undefined?"":detailInfoList.allow_add_member===true?*/} | 
			
		
	
		
			
				
					|  |  |  |  | 																{/*  <a className="fr" onClick={()=>this.shanchuallow(item.id)}><i className="iconfont icon-shanchu color-grey-c font-14 font-n"></i></a>:""*/} | 
			
		
	
		
			
				
					|  |  |  |  | 																{/*}*/} | 
			
		
	
		
			
				
					|  |  |  |  | 															</p> | 
			
		
	
		
			
				
					|  |  |  |  | 															<div className="clearfix"> | 
			
		
	
		
			
				
					|  |  |  |  | 																<p className="color-grey-9 font-12 fl"><span className="mr10">{item.school}</span><span>{item.identity}</span></p> | 
			
		
	
		
			
				
					|  |  |  |  | 															</div> | 
			
		
	
		
			
				
					|  |  |  |  | 														</div> | 
			
		
	
		
			
				
					|  |  |  |  | 													</div> | 
			
		
	
		
			
				
					|  |  |  |  | 												) | 
			
		
	
		
			
				
					|  |  |  |  | 											})} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 									</div> | 
			
		
	
		
			
				
					|  |  |  |  | 							} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 							<AddCollaborators {...this.props} {...this.state} updatadetailInfoLists={this.updatadetailInfoList}></AddCollaborators> | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 						</div> | 
			
		
	
		
			
				
					|  |  |  |  | 					</div> | 
			
		
	
		
			
				
					|  |  |  |  | 				</div> | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 			</div> | 
			
		
	
		
			
				
					|  |  |  |  | 		) | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | export default PathDetailIndex; |