You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
130 lines
4.9 KiB
130 lines
4.9 KiB
6 years ago
|
import React,{ Component } from "react";
|
||
|
import CoursesListType from '../../coursesPublic/CoursesListType';
|
||
|
|
||
|
import { WordsBtn } from 'educoder'
|
||
|
import {Tooltip} from 'antd'
|
||
|
import axios from 'axios'
|
||
|
|
||
|
const map={0:"待选中",1:"待确认",2:"已确认"}
|
||
|
class GraduateTopicItem extends Component{
|
||
|
constructor(props){
|
||
|
super(props);
|
||
|
}
|
||
|
editTopic=(topicId)=>{
|
||
|
let courseId=this.props.match.params.coursesId;
|
||
|
this.props.history.push(`/courses/${courseId}/graduation_topics/${topicId}/edit`);
|
||
|
}
|
||
|
toDetailPage=(topicId)=>{
|
||
|
let courseId=this.props.match.params.coursesId;
|
||
|
this.props.history.push(`/courses/${courseId}/graduation_topics/${topicId}/detail`);
|
||
|
}
|
||
|
render(){
|
||
|
const { checkBox, discussMessage, index,chooseTopic,
|
||
|
data,
|
||
|
courseId
|
||
|
} = this.props;
|
||
|
|
||
|
const isAdmin = this.props.isAdmin();
|
||
|
const isStudent=this.props.isStudent();
|
||
|
const isNotMember=this.props.isNotMember();
|
||
|
if (!discussMessage || !discussMessage.author) {
|
||
|
return '';
|
||
|
}
|
||
|
return(
|
||
|
<div>
|
||
|
<style>
|
||
|
{
|
||
|
`
|
||
|
.boardsList:hover {
|
||
|
box-shadow: 0px 2px 6px rgba(51,51,51,0.09);
|
||
|
opacity: 1;
|
||
|
border-radius: 2px;
|
||
|
}
|
||
|
.graduateTopicList .ant-checkbox-wrapper {
|
||
|
margin-top: -44px;
|
||
|
}
|
||
|
`
|
||
|
}
|
||
|
</style>
|
||
|
|
||
|
<div className="graduateTopicList boardsList mb20">
|
||
|
<style>{`
|
||
|
|
||
|
.graduateTopicList .ant-checkbox-input {s
|
||
|
margin-right: 15px;
|
||
|
}
|
||
|
.ant-checkbox-group > div .boardsList {
|
||
|
|
||
|
padding: 17px 30px 20px!important;
|
||
|
}
|
||
|
`}</style>
|
||
|
{ isAdmin ? checkBox : ""}
|
||
|
<div className="clearfix ds pr flex1">
|
||
|
<style>{`
|
||
|
.maxwidth580{
|
||
|
max-width: 580px;
|
||
|
overflow:hidden;
|
||
|
text-overflow:ellipsis;
|
||
|
white-space:nowrap
|
||
|
}
|
||
|
`}</style>
|
||
|
<h6>
|
||
|
{
|
||
|
isNotMember?discussMessage.private_icon===true?
|
||
|
<a className="fl mt3 font-16 font-bd color-dark maxwidth580">{discussMessage.name}</a>:<a onClick={() => this.toDetailPage(`${discussMessage.id}`)}
|
||
|
className="fl mt3 font-16 font-bd color-dark maxwidth580">{discussMessage.name}</a>:""
|
||
|
}
|
||
|
|
||
|
{
|
||
|
isAdmin?<a onClick={()=>this.toDetailPage(`${discussMessage.id}`)} className="fl mt3 font-16 font-bd color-dark maxwidth580">{discussMessage.name}</a>:""
|
||
|
}
|
||
|
|
||
|
{
|
||
|
isStudent?<a onClick={() => this.toDetailPage(`${discussMessage.id}`)}
|
||
|
className="fl mt3 font-16 font-bd color-dark maxwidth580">{discussMessage.name}</a>:""
|
||
|
}
|
||
|
|
||
|
{
|
||
|
discussMessage.private_icon===true?
|
||
|
<Tooltip title={ this.props.isNotMember?"私有属性,非课堂成员不能访问":"私有属性"} placement="bottom">
|
||
|
<i className="iconfont icon-guansuo color-grey-c ml10 font-16 fl mt4"></i>
|
||
|
</Tooltip>
|
||
|
:""
|
||
|
}
|
||
|
<CoursesListType typelist={[map[`${discussMessage.status}`]]} typesylename={""} />
|
||
|
</h6>
|
||
|
|
||
|
<div className="cl"></div>
|
||
|
<p className="color-grey mt20 clearfix">
|
||
|
<span className="fl mr40">
|
||
|
<Tooltip title="指导老师" placement="bottom">
|
||
|
<span className="color-grey3">{discussMessage.author}</span>
|
||
|
</Tooltip>
|
||
|
</span>
|
||
|
<span className="mr20 color-grey-9">{discussMessage.selected_count} 已选</span>
|
||
|
<span className="color-grey-9">{discussMessage.confirmation_count} 已确认</span>
|
||
|
<span className="fr">
|
||
|
{
|
||
|
isAdmin && <WordsBtn onClick={()=>this.editTopic(`${discussMessage.id}`)} style="blue" className="font-16">编辑</WordsBtn>
|
||
|
}
|
||
|
{
|
||
|
isStudent && data.user_selected == true && discussMessage.user_selected==true &&
|
||
|
<WordsBtn onClick={()=>chooseTopic(`${discussMessage.id}`,index,discussMessage.user_selected)} style="blue" className="font-16">
|
||
|
取消选题
|
||
|
</WordsBtn>
|
||
|
}
|
||
|
{
|
||
|
isStudent && data.user_selected == false && discussMessage.user_selected == false &&
|
||
|
<WordsBtn onClick={()=>chooseTopic(`${discussMessage.id}`,index,discussMessage.user_selected)} style="blue" className="font-16">
|
||
|
选题
|
||
|
</WordsBtn>
|
||
|
}
|
||
|
</span>
|
||
|
</p>
|
||
|
</div>
|
||
|
</div>
|
||
|
</div>
|
||
|
)
|
||
|
}
|
||
|
}
|
||
|
export default GraduateTopicItem;
|