|
|
|
@ -9,30 +9,124 @@ import NoneData from '../../courses/coursesPublic/NoneData';
|
|
|
|
|
import "./usersInfo.css"
|
|
|
|
|
import moment from 'moment';
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class InfosTopics extends Component{
|
|
|
|
|
constructor(props){
|
|
|
|
|
super(props);
|
|
|
|
|
this.state={
|
|
|
|
|
isSpin:false
|
|
|
|
|
isSpin:false,
|
|
|
|
|
category:"common",
|
|
|
|
|
course_list_id:undefined,
|
|
|
|
|
sort_by:"updated_at",
|
|
|
|
|
sort_direction:"desc",
|
|
|
|
|
page:1,
|
|
|
|
|
data:undefined
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
componentDidMount=()=>{
|
|
|
|
|
let types=this.props.match.params.topicstype;
|
|
|
|
|
let { category,
|
|
|
|
|
course_list_id,
|
|
|
|
|
sort_by,
|
|
|
|
|
sort_direction,
|
|
|
|
|
page
|
|
|
|
|
}=this.state;
|
|
|
|
|
this.searchAlldata(
|
|
|
|
|
types,
|
|
|
|
|
category,
|
|
|
|
|
course_list_id,
|
|
|
|
|
sort_by,
|
|
|
|
|
sort_direction,
|
|
|
|
|
page
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
searchAlldata=(type,category,course_list_id,sort_by,sort_direction,page)=>{
|
|
|
|
|
let user_id=this.props.current_user&&this.props.current_user.user_id;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
let url=`/users/${user_id}/question_banks.json`;
|
|
|
|
|
|
|
|
|
|
axios.get(url,{params:{
|
|
|
|
|
type,
|
|
|
|
|
category,
|
|
|
|
|
course_list_id,
|
|
|
|
|
sort_by,
|
|
|
|
|
sort_direction,
|
|
|
|
|
page
|
|
|
|
|
}
|
|
|
|
|
}).then((response) => {
|
|
|
|
|
this.setState({
|
|
|
|
|
data:response.data
|
|
|
|
|
})
|
|
|
|
|
}).catch((error) => {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
searchCategory=(type)=>{
|
|
|
|
|
this.setState({
|
|
|
|
|
category:type
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
let types=this.props.match.params.topicstype;
|
|
|
|
|
let { category,
|
|
|
|
|
course_list_id,
|
|
|
|
|
sort_by,
|
|
|
|
|
sort_direction,
|
|
|
|
|
page
|
|
|
|
|
}=this.state;
|
|
|
|
|
this.searchAlldata(
|
|
|
|
|
types,
|
|
|
|
|
type,
|
|
|
|
|
course_list_id,
|
|
|
|
|
sort_by,
|
|
|
|
|
sort_direction,
|
|
|
|
|
page
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
searchCourselistid=(id)=>{
|
|
|
|
|
this.setState({
|
|
|
|
|
course_list_id:id
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
let types=this.props.match.params.topicstype;
|
|
|
|
|
let { category,
|
|
|
|
|
course_list_id,
|
|
|
|
|
sort_by,
|
|
|
|
|
sort_direction,
|
|
|
|
|
page
|
|
|
|
|
}=this.state;
|
|
|
|
|
this.searchAlldata(
|
|
|
|
|
types,
|
|
|
|
|
category,
|
|
|
|
|
id,
|
|
|
|
|
sort_by,
|
|
|
|
|
sort_direction,
|
|
|
|
|
page
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
render(){
|
|
|
|
|
let{
|
|
|
|
|
category,
|
|
|
|
|
status,
|
|
|
|
|
page,
|
|
|
|
|
data,
|
|
|
|
|
totalCount,
|
|
|
|
|
isSpin
|
|
|
|
|
course_list_id,
|
|
|
|
|
isSpin,
|
|
|
|
|
data
|
|
|
|
|
} = this.state;
|
|
|
|
|
let is_current=this.props.is_current;
|
|
|
|
|
|
|
|
|
|
// console.log(data)
|
|
|
|
|
let categorylist=[
|
|
|
|
|
{val:"普通作业",type:"common"},
|
|
|
|
|
{val:"分组作业",type:"group"},
|
|
|
|
|
{val:"毕设选题",type:"gtopic"},
|
|
|
|
|
{val:"毕设任务",type:"gtask"},
|
|
|
|
|
{val:"试卷",type:"exercise"},
|
|
|
|
|
{val:"问卷",type:"poll"},
|
|
|
|
|
]
|
|
|
|
|
return(
|
|
|
|
|
<div className="educontent mb50">
|
|
|
|
|
{/*提示*/}
|
|
|
|
@ -45,48 +139,82 @@ class InfosTopics extends Component{
|
|
|
|
|
<Spin size="large" spinning={isSpin}>
|
|
|
|
|
<div className="clearfix topicsbox">
|
|
|
|
|
<div className={"topcschild"}>
|
|
|
|
|
<span className={"topicstopfont fl"}>我的题库</span>
|
|
|
|
|
<span className={"topicstopfont fl topcsactive"}>我的题库</span>
|
|
|
|
|
<span className={"topicstopfont fr"}>公共题库</span>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
<div className={"topcsmid"}>
|
|
|
|
|
{categorylist.map((item,key)=>{
|
|
|
|
|
return(
|
|
|
|
|
<span key={key} className={category===item.type?"topicsmidfont fl mr20 topcsactive":"topicsmidfont fl mr20"} onClick={()=>this.searchCategory(item.type)}>{item.val}</span>
|
|
|
|
|
)
|
|
|
|
|
})}
|
|
|
|
|
|
|
|
|
|
<p className="pl25 pr25 clearfix font-12 mb20 mt20">
|
|
|
|
|
<span className="fl color-grey-9">共个</span>
|
|
|
|
|
<span className="fr color-grey-9">发布时间</span>
|
|
|
|
|
</p>
|
|
|
|
|
</div>
|
|
|
|
|
<style>
|
|
|
|
|
|
|
|
|
|
{
|
|
|
|
|
`
|
|
|
|
|
.shaiContent li.shaiItem {
|
|
|
|
|
padding: 3px 15px;
|
|
|
|
|
float: left;
|
|
|
|
|
border-radius: 4px;
|
|
|
|
|
color: #4C4C4C;
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
margin-right: 20px;
|
|
|
|
|
display: block;
|
|
|
|
|
margin-bottom: 5px;
|
|
|
|
|
}
|
|
|
|
|
`
|
|
|
|
|
}
|
|
|
|
|
</style>
|
|
|
|
|
<div className={"shaiContent"}>
|
|
|
|
|
<div className="fl pr shaiAllItem pagetype mb20">
|
|
|
|
|
<li className={course_list_id===undefined?"shaiItem shixun_repertoire active":"shaiItem shixun_repertoire"} onClick={()=>this.searchCourselistid(undefined)}>全部</li>
|
|
|
|
|
{data===undefined?"":data.course_list===undefined||data.course_list.length===0?"":data.course_list.map((item,key)=>{
|
|
|
|
|
return(
|
|
|
|
|
<li key={key} className={course_list_id===item.id?"shaiItem shixun_repertoire active":"shaiItem shixun_repertoire"} value={item.id} onClick={()=>this.searchCourselistid(item.id)}>{item.name}</li>
|
|
|
|
|
)
|
|
|
|
|
})}
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
{/*{data===undefined?<NoneData></NoneData>:data.project_packages.length===0?<NoneData></NoneData>:data.project_packages.map((item,key)=>{*/}
|
|
|
|
|
{/*return(*/}
|
|
|
|
|
{/*<div className="educontent project-packages-list" key={key}>*/}
|
|
|
|
|
{/*<div className="project-package-item with-operator project-package-11">*/}
|
|
|
|
|
<div className="clearfix font-12 mb20 mt20">
|
|
|
|
|
<p className="font-12 alltopisc ml25 fl">
|
|
|
|
|
<span className="fl color-grey-9">共 <span className={"color-orange"}>{data&&data.count}</span> 个</span>
|
|
|
|
|
<span className="fr color-grey-9">已选择 <span className={"color-orange"}>{data&&data.count}</span> 个</span>
|
|
|
|
|
</p>
|
|
|
|
|
<p className="font-12 alltopiscright ml25 fr">
|
|
|
|
|
<span className="fr color-grey-9 mr10">最近更新</span>
|
|
|
|
|
<span className="fr mr20 topcsactive">发送</span>
|
|
|
|
|
<span className="fr mr20 topcsactive">删除</span>
|
|
|
|
|
</p>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
{/*<div className="item-image">*/}
|
|
|
|
|
{/*<img alt="图片" src={`/images/educoder/project_packages/${setcategorylist(item.category_name)}.png`} />*/}
|
|
|
|
|
{/*</div>*/}
|
|
|
|
|
|
|
|
|
|
{/*<div className="item-body">*/}
|
|
|
|
|
{/*<div className="item-head">*/}
|
|
|
|
|
{/*<div className="item-head-title" title={item.title}>*/}
|
|
|
|
|
{/*<a href={`/crowdsourcing/${item.id}`}>{item.title}</a>*/}
|
|
|
|
|
{/*</div>*/}
|
|
|
|
|
{data===undefined?<NoneData></NoneData>:data.question_banks===undefined||data.question_banks.length===0?<NoneData></NoneData>:data.question_banks.map((item,key)=>{
|
|
|
|
|
return(
|
|
|
|
|
<div className="educontent project-packages-list" key={key}>
|
|
|
|
|
<div className="project-package-item with-operator project-package-11">
|
|
|
|
|
{/*course_list_name: "IP视频监控技术"*/}
|
|
|
|
|
{/*creator_name: "实践教学"*/}
|
|
|
|
|
{/*id: 4269*/}
|
|
|
|
|
{/*is_public: false*/}
|
|
|
|
|
{/*name: "第四次训练"*/}
|
|
|
|
|
{/*quotes_count: 4*/}
|
|
|
|
|
{/*solve_count: 0*/}
|
|
|
|
|
{/*updated_at: "2018-11-16T09:30:11.000+08:00"*/}
|
|
|
|
|
|
|
|
|
|
{/*<div className="item-head-tags">*/}
|
|
|
|
|
{/*{item.bidden_status==="pending"?<span className="pending">竞标中</span>:""}*/}
|
|
|
|
|
{/*{item.bidden_status==="bidding_won"?<span className="bidding_won">已中标</span>:""}*/}
|
|
|
|
|
{/*{item.bidden_status==="bidding_lost"?<span className="bidding_lost">未中标</span>:""}*/}
|
|
|
|
|
{/*</div>*/}
|
|
|
|
|
<div className="item-body">
|
|
|
|
|
<div className="item-head">
|
|
|
|
|
<div className="item-head-title" title={item.name}>
|
|
|
|
|
<a href={`/crowdsourcing/${item.id}`}>{item.name}</a>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
{/*<div className="item-head-blank"></div>*/}
|
|
|
|
|
{/*<div className="item-head-price mtf15">*/}
|
|
|
|
|
{/*{item.min_price===null?"":<span>¥{item.min_price}</span>}*/}
|
|
|
|
|
{/*{item.max_price===null||item.min_price===null?"":<span>~</span>}*/}
|
|
|
|
|
{/*{item.max_price===null?"":<span>¥{item.max_price}</span>}*/}
|
|
|
|
|
{/*{item.min_price===null&&item.max_price===null?<span>可议价</span>:""}*/}
|
|
|
|
|
{/*</div>*/}
|
|
|
|
|
{/*</div>*/}
|
|
|
|
|
{/*<div className="item-category">*/}
|
|
|
|
|
{/*<div className="item-category-item">{item.category_name}</div>*/}
|
|
|
|
|
{/*</div>*/}
|
|
|
|
@ -108,39 +236,23 @@ class InfosTopics extends Component{
|
|
|
|
|
{/*<span className=" item-group-text">发布于:{moment(item.published_at).format("YYYY-MM-DD HH:mm")} </span>}*/}
|
|
|
|
|
{/*</div>*/}
|
|
|
|
|
{/*</div>*/}
|
|
|
|
|
{/*</div>*/}
|
|
|
|
|
|
|
|
|
|
{/*{category=="manage"?item.operation.can_edit===true&&item.operation.can_delete===true?*/}
|
|
|
|
|
{/*<div className="item-operator none">*/}
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
{/*<a href={`/crowdsourcing/${item.id}/edit`} title="编辑">*/}
|
|
|
|
|
{/*<i className="fa fa-pencil"></i>*/}
|
|
|
|
|
{/*</a>*/}
|
|
|
|
|
|
|
|
|
|
{/*<a className="delete-project-package-btn" onClick={()=>this.delectprojectModal(item.id)} data-id="10" title="删除">*/}
|
|
|
|
|
{/*<i className="fa fa-trash-o"></i>*/}
|
|
|
|
|
{/*</a>*/}
|
|
|
|
|
|
|
|
|
|
{/*</div>:"":""}*/}
|
|
|
|
|
|
|
|
|
|
{/*{category=="manage"?item.operation.can_edit===true&&item.operation.can_delete===false?*/}
|
|
|
|
|
{/*<div className="item-operator none">*/}
|
|
|
|
|
{/*<a href={`/crowdsourcing/${item.id}/edit`} title="编辑">*/}
|
|
|
|
|
{/*<i className="fa fa-pencil"></i>*/}
|
|
|
|
|
{/*</a>*/}
|
|
|
|
|
{/*</div>:"":""}*/}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
{/*</div>*/}
|
|
|
|
|
{/*</div>*/}
|
|
|
|
|
{/*)})}*/}
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
)})}
|
|
|
|
|
|
|
|
|
|
{/*{*/}
|
|
|
|
|
{/*totalCount >20 &&*/}
|
|
|
|
|
{/*<div className="mt30 mb50 edu-txt-center">*/}
|
|
|
|
|
{/*<Pagination showQuickJumper total={totalCount} onChange={this.changePage} pageSize={20} current={page}/>*/}
|
|
|
|
|
{/*</div>*/}
|
|
|
|
|
{/*}*/}
|
|
|
|
|
{
|
|
|
|
|
data&&data.count >15 &&
|
|
|
|
|
<div className="mt30 mb50 edu-txt-center">
|
|
|
|
|
<Pagination showQuickJumper total={data&&data.count} onChange={this.changePage} pageSize={15} current={page}/>
|
|
|
|
|
</div>
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
</Spin>
|
|
|
|
|
</div>
|
|
|
|
|