Merge branch 'dev_aliyun' of https://bdgit.educoder.net/Hjqreturn/educoder into dev_aliyun

dev_unstable^2
hjm 6 years ago
commit 01a4155323

@ -711,8 +711,12 @@ class GraduationTaskssettinglist extends Component{
title: '姓名', title: '姓名',
dataIndex: 'name', dataIndex: 'name',
key: 'name', key: 'name',
className:'edu-txt-center',
className:'edu-txt-center' render: (text, record) => (
<span>
<div style={{color:'#9A9A9A'}} className={"studentname"} title={record.name}>{record.name}</div>
</span>
),
}, { }, {
title: '学号', title: '学号',
dataIndex: 'stduynumber', dataIndex: 'stduynumber',
@ -720,7 +724,7 @@ class GraduationTaskssettinglist extends Component{
className:'edu-txt-center', className:'edu-txt-center',
render: (text, record) => ( render: (text, record) => (
<span> <span>
<a style={{color:'#9A9A9A'}}>{record.stduynumber}</a> <div style={{color:'#9A9A9A'}} className={"studentnumber"} title={record.stduynumber}>{record.stduynumber}</div>
</span> </span>
), ),
}, { }, {
@ -935,6 +939,7 @@ class GraduationTaskssettinglist extends Component{
if(taskslistdata&&taskslistdata.have_grouping===false){ if(taskslistdata&&taskslistdata.have_grouping===false){
columns.some((item,key)=> { columns.some((item,key)=> {
if (item.title === "分组") { if (item.title === "分组") {
columns.splice(key, 1) columns.splice(key, 1)
@ -964,10 +969,35 @@ class GraduationTaskssettinglist extends Component{
.ant-table-tbody>tr>td, .ant-table-thead>tr>th{ .ant-table-tbody>tr>td, .ant-table-thead>tr>th{
padding: 16px 10px padding: 16px 10px
} }
` `
} }
</style> </style>
{taskslistdata&&taskslistdata.have_grouping===true||
taskslistdata&&taskslistdata.have_project===true||
taskslistdata&&taskslistdata.cross_comment===true?<style>
{
`
.studentnumber{
text-overflow: ellipsis;
white-space: nowrap;
width: 105px;
display: block;
overflow: hidden;
margin: 0px auto;
cursor: default;
}
.studentname{
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
width: 90px;
margin: 0px auto;
}
`
}</style>:""}
{/*提示*/} {/*提示*/}
<Modals <Modals
modalsType={Modalstype} modalsType={Modalstype}
@ -1210,22 +1240,25 @@ class GraduationTaskssettinglist extends Component{
{taskslistdata.search_assistants&&taskslistdata.search_assistants.course_group_info.length!=0?<li className="clearfix"> {taskslistdata.search_assistants&&taskslistdata.search_assistants.course_group_info.length!=0?<li className="clearfix">
<span className="fl mr10 color-grey-8">分班情况</span> <span className="fl mr10 color-grey-8">分班情况</span>
<div className="fl mr25">
<a id="graduation_comment_no_limit" className={course_group===null||course_group===undefined?"pl10 pr10 check_on":"pl10 pr10 "} onClick={()=>this.groupgroup([])}>不限</a>
</div>
<div className="fl groupList" style={{maxWidth: '945px'}}>
<CheckboxGroup value={course_group} onChange={(e)=>this.groupgroup(e,taskslistdata.search_assistants&&taskslistdata.search_assistants.course_group_info.length)} style={{width: '1000px', paddingTop: '4px'}}>
{taskslistdata.search_assistants&&taskslistdata.search_assistants.course_group_info.map((item,key)=>{
return(
<span key={key} className={"mt10"}>
<Checkbox value={item.course_group_id} key={item.course_group_id} className="fl ">{item.group_group_name}
<span>({item.count})</span>
</Checkbox>
</span>
)
})}
</CheckboxGroup>
</div>
<CheckboxGroup value={course_group} onChange={(e)=>this.groupgroup(e,taskslistdata.search_assistants&&taskslistdata.search_assistants.course_group_info.length)} style={{width: '1000px', paddingTop: '4px'}}>
<span className="fl mr25">
<a id="graduation_comment_no_limit" className={course_group===null||course_group===undefined?"pl10 pr10 check_on":"pl10 pr10 "} onClick={()=>this.groupgroup([])}>不限</a>
</span>
{taskslistdata.search_assistants&&taskslistdata.search_assistants.course_group_info.map((item,key)=>{
return(
<span key={key} className={"mt10"}>
<Checkbox value={item.course_group_id} key={item.course_group_id} className="fl ">{item.group_group_name}
<span>({item.count})</span>
</Checkbox>
</span>
)
})}
</CheckboxGroup>
</li>:""} </li>:""}

@ -411,9 +411,7 @@ export default class TPMquestion extends Component {
window.location.href = '/shixuns/'+this.props.match.params.shixunId+'/challenges/'+this.props.match.params.checkpointId+'/editquestion'; window.location.href = '/shixuns/'+this.props.match.params.shixunId+'/challenges/'+this.props.match.params.checkpointId+'/editquestion';
} }
questionadd=()=>{ questionadd=()=>{
$('html').animate({
scrollTop: 10
}, 200);
let{questionaddarray}=this.state; let{questionaddarray}=this.state;
let questionaddsums=questionaddarray.length; let questionaddsums=questionaddarray.length;
@ -431,15 +429,13 @@ export default class TPMquestion extends Component {
} }
}) })
questionaddarrays.push({type:0,choose_id:0}); questionaddarrays.push({type:0,choose_id:0});
this.setState({ this.setState({
activetype:0, activetype:0,
questionaddarray:questionaddarrays, questionaddarray:questionaddarrays,
questionaddtype:true, questionaddtype:true,
editquestionaddtype:false,
newquestionaddtype:true, newquestionaddtype:true,
editquestionaddtype:false,
questionlists:[{str:"A",val:"",type:false},{str:"B",val:"",type:false},{str:"C",val:"",type:false},{str:"D",val:"",type:false}], questionlists:[{str:"A",val:"",type:false},{str:"B",val:"",type:false},{str:"C",val:"",type:false},{str:"D",val:"",type:false}],
answeshixunsGroup: 1, answeshixunsGroup: 1,
answeoptions:[10,20], answeoptions:[10,20],
@ -447,17 +443,17 @@ export default class TPMquestion extends Component {
shixunssanswerkillvalue:"", shixunssanswerkillvalue:"",
shixunsskillanswerlist:[], shixunsskillanswerlist:[],
contentMdRefval:"", contentMdRefval:"",
newquestioMDMdContval:"" newquestioMDMdContval:"",
}) })
// setTimeout(() => { setTimeout(() => {
// this.newquestioMDMdCont.current.setValue('') this.newquestioMDMdRef.current.setValue('')
// this.newquestioMDMdRef.current.setValue('') }, 1000)
// setTimeout(() => {
// }, 2000) this.newquestioMDMdCont.current.setValue('')
}, 1500)
this.shixunsautoHeight() // this.shixunsautoHeight()
} }
editquestionlists=(newquestionlists)=>{ editquestionlists=(newquestionlists)=>{
@ -592,6 +588,10 @@ export default class TPMquestion extends Component {
} }
answer_subit=(sumtype,challenge_choose_id)=>{ answer_subit=(sumtype,challenge_choose_id)=>{
$('html').animate({
scrollTop:10
}, 500);
let {challenge_id,questionlists,shixunsskillanswerlist,answeonshixunsmark,answeshixunsGroup,questionaddarray} =this.state; let {challenge_id,questionlists,shixunsskillanswerlist,answeonshixunsmark,answeshixunsGroup,questionaddarray} =this.state;
if(challenge_id===undefined){ if(challenge_id===undefined){
message.error("关卡id为空"); message.error("关卡id为空");
@ -817,7 +817,8 @@ export default class TPMquestion extends Component {
neweditanswerRefval:'', neweditanswerRefval:'',
editanswersRefval:'' editanswersRefval:''
}) })
this.newquestioMDMdRef.current.setValue('')
this.newquestioMDMdCont.current.setValue('')
}else{ }else{
let id = this.props.match.params.shixunId; let id = this.props.match.params.shixunId;
let url ='/shixuns/'+id+'/challenges/'+challenge_id+'/edit_choose_question.json?choose_id='+challenge_choose_id; let url ='/shixuns/'+id+'/challenges/'+challenge_id+'/edit_choose_question.json?choose_id='+challenge_choose_id;
@ -920,6 +921,7 @@ export default class TPMquestion extends Component {
<Option key={d} id={k}>{d}</Option> <Option key={d} id={k}>{d}</Option>
) )
}) })
return ( return (
<React.Fragment> <React.Fragment>
<div className="educontent mt30 mb30"> <div className="educontent mt30 mb30">

@ -35,7 +35,7 @@ export default class TpmQuestionNew extends Component {
<span className="mr30 color-orange pt10">*</span> <span className="mr30 color-orange pt10">*</span>
<div className="flex1 mr20"> <div className="flex1 mr20">
<TPMMDEditor ref={this.props.newquestioMDMdRef} placeholder="请输入选择题的题干内容" mdID={'newquestioMDid'} refreshTimeout={1500} <TPMMDEditor ref={this.props.newquestioMDMdRef} placeholder="请输入选择题的题干内容" mdID={'newquestioMDid'} refreshTimeout={1500}
watch={true} className="courseMessageMD" initValue={this.props.contentMdRefval}></TPMMDEditor> needRecreate={true} watch={true} className="courseMessageMD" initValue={this.props.contentMdRefval}></TPMMDEditor>
</div> </div>
@ -108,7 +108,7 @@ export default class TpmQuestionNew extends Component {
<div className={"df"}> <div className={"df"}>
<div className={"flex1 mr20"}> <div className={"flex1 mr20"}>
<TPMMDEditor ref={this.props.newquestioMDMdCont} placeholder="请输入各个选项的具体解析或其他相关信息" mdID={'newquestioMDMdConts'} refreshTimeout={1500} <TPMMDEditor ref={this.props.newquestioMDMdCont} placeholder="请输入各个选项的具体解析或其他相关信息" mdID={'newquestioMDMdConts'} refreshTimeout={1500}
watch={true} className="courseMessageMD" initValue={this.props.newquestioMDMdContval}></TPMMDEditor> needRecreate={true} watch={true} className="courseMessageMD" initValue={this.props.newquestioMDMdContval}></TPMMDEditor>
</div> </div>
<div className={"choose_names"} style={{display:this.props.newquestioMDvaluetypes===true?"block":"none"}}> <div className={"choose_names"} style={{display:this.props.newquestioMDvaluetypes===true?"block":"none"}}>
<span className="color-orange mt8 fl" id="choose_name" style={{display: 'inline'}}><i className="fa fa-exclamation-circle mr3"></i></span> <span className="color-orange mt8 fl" id="choose_name" style={{display: 'inline'}}><i className="fa fa-exclamation-circle mr3"></i></span>

@ -1,132 +1,125 @@
import React, { Component } from 'react'; import React, { Component } from 'react';
import {Link} from 'react-router-dom'; import {Link} from 'react-router-dom';
import {Tooltip,Menu} from 'antd'; import {Tooltip,Menu} from 'antd';
import {getImageUrl} from 'educoder'; import {getImageUrl} from 'educoder';
import "./usersInfo.css" import "./usersInfo.css"
import "../../courses/css/members.css" import "../../courses/css/members.css"
import "../../courses/css/Courses.css" import "../../courses/css/Courses.css"
import { LinkAfterLogin } from 'educoder' import { LinkAfterLogin } from 'educoder'
class InfosBanner extends Component{ class InfosBanner extends Component{
constructor(props){ constructor(props){
super(props); super(props);
} }
render(){ render(){
let { let {
data , data ,
id, id,
login, login,
moduleName, moduleName,
current_user, current_user,
}=this.props; }=this.props;
let is_current=this.props.is_current; let is_current=this.props.is_current;
let {username}= this.props.match.params; let {username}= this.props.match.params;
let {pathname}=this.props.location; let {pathname}=this.props.location;
moduleName=pathname.split("/")[3]; moduleName=pathname.split("/")[3];
console.log(is_current) console.log(is_current)
return( return(
<div className="bannerPanel mb60"> <div className="bannerPanel mb60">
<div className="educontent"> <div className="educontent">
<div className="clearfix color-white mb25"> <div className="clearfix color-white mb25">
<p className="myPhoto mr20 fl"><img alt="头像" src={data && `${getImageUrl('images/'+data.avatar_url)}`}/></p> <p className="myPhoto mr20 fl"><img alt="头像" src={data && `${getImageUrl('images/'+data.avatar_url)}`}/></p>
<div className="fl"> <div className="fl">
<p className="clearfix mt20"> <p className="clearfix mt20">
<span className="username task-hide" style={{"maxWidth":'370px'}}>{data && data.name}</span> <span className="username task-hide" style={{"maxWidth":'370px'}}>{data && data.name}</span>
{ {
data && is_current == false && data.identity =="学生" ? "" : data && is_current == false && data.identity =="学生" ? "" :
<span className="userpost"><label>{data && data.identity}</label></span> <span className="userpost"><label>{data && data.identity}</label></span>
} }
</p> </p>
<p className="mt15"> <p className="mt15">
<Tooltip placement='bottom' title={ data && data.professional_certification ?"已职业认证":"未职业认证"}> <Tooltip placement='bottom' title={ data && data.professional_certification ?"已职业认证":"未职业认证"}>
<i className={ data && data.professional_certification ? "iconfont icon-shenfenzhenghaomaguizheng font-18 user-colorgrey-green mr20 ml2":"iconfont icon-shenfenzhenghaomaguizheng font-18 user-colorgrey-B8 mr20 ml2"}></i> <i className={ data && data.professional_certification ? "iconfont icon-shenfenzhenghaomaguizheng font-18 user-colorgrey-green mr20 ml2":"iconfont icon-shenfenzhenghaomaguizheng font-18 user-colorgrey-B8 mr20 ml2"}></i>
</Tooltip> </Tooltip>
<Tooltip placement='bottom' title={ data && data.authentication ?"已实名认证":"未实名认证"}> <Tooltip placement='bottom' title={ data && data.authentication ?"已实名认证":"未实名认证"}>
<i className={ data && data.authentication ? "iconfont icon-renzhengshangjia font-18 user-colorgrey-green":"iconfont icon-renzhengshangjia font-18 user-colorgrey-B8"}></i> <i className={ data && data.authentication ? "iconfont icon-renzhengshangjia font-18 user-colorgrey-green":"iconfont icon-renzhengshangjia font-18 user-colorgrey-B8"}></i>
</Tooltip> </Tooltip>
</p> </p>
</div> </div>
<div className="fr"> <div className="fr">
<div class="fl headtab mt20"> <div class="fl headtab mt20">
<span>{is_current ? "我":"TA"}的经验值</span> <span>{is_current ? "我":"TA"}的经验值</span>
<a style={{"cursor":"default"}}>{data && data.experience}</a> <a style={{"cursor":"default"}}>{data && data.experience}</a>
</div> </div>
<div class="fl headtab mt20 pr leftTransform pl20"> <div class="fl headtab mt20 pr leftTransform pl20">
<span>{is_current ? "我":"TA"}的金币</span> <span>{is_current ? "我":"TA"}的金币</span>
<a style={{"cursor":"default"}}>{data && data.grade}</a> <a style={{"cursor":"default"}}>{data && data.grade}</a>
</div> </div>
{ {
is_current ? is_current ?
<span className="fl mt35 ml60"> <span className="fl mt35 ml60">
{ {
data && data.attendance_signed ? data && data.attendance_signed ?
<span className="user_default_btn user_grey_btn font-18">已签到</span> <span className="user_default_btn user_grey_btn font-18">已签到</span>
: :
<a herf="javascript:void(0);" onClick={this.props.signFor} className="user_default_btn user_yellow_btn fl font-18">签到</a> <a herf="javascript:void(0);" onClick={this.props.signFor} className="user_default_btn user_yellow_btn fl font-18">签到</a>
} }
</span> </span>
: :
<span className="fl mt35 ml60"> <span className="fl mt35 ml60">
<LinkAfterLogin <LinkAfterLogin
{...this.props} {...this.props}
{...this.state} {...this.state}
className="user_default_btn user_yellow_btn fl font-18" className="user_default_btn user_yellow_btn fl font-18"
to={`/messages/${login}/message_detail?target_ids=${id}`} to={`/messages/${login}/message_detail?target_ids=${id}`}
> >
私信 私信
</LinkAfterLogin> </LinkAfterLogin>
</span> </span>
} }
</div> </div>
</div> </div>
<div className="userNav"> <div className="userNav">
<li className={`${moduleName == 'courses' ||moduleName == undefined ? 'active' : '' }`}> <li className={`${moduleName == 'courses' ||moduleName == undefined ? 'active' : '' }`}>
<Link <Link
onClick={() => this.setState({moduleName: 'courses'})} onClick={() => this.setState({moduleName: 'courses'})}
to={`/users/${username}/courses`}>翻转课堂</Link> to={`/users/${username}/courses`}>翻转课堂</Link>
</li> </li>
<li className={`${moduleName == 'shixuns' ? 'active' : '' }`}> <li className={`${moduleName == 'shixuns' ? 'active' : '' }`}>
<Link <Link
onClick={() => this.setState({moduleName: 'shixuns'})} onClick={() => this.setState({moduleName: 'shixuns'})}
to={`/users/${username}/shixuns`}>开发社区</Link> to={`/users/${username}/shixuns`}>实训项目</Link>
</li> </li>
<li className={`${moduleName == 'paths' ? 'active' : '' }`}> <li className={`${moduleName == 'paths' ? 'active' : '' }`}>
<Link <Link
onClick={() => this.setState({moduleName: 'paths'})} onClick={() => this.setState({moduleName: 'paths'})}
to={`/users/${username}/paths`}>实践课程</Link> to={`/users/${username}/paths`}>实践课程</Link>
</li> </li>
<li className={`${moduleName == 'projects' ? 'active' : '' }`}> <li className={`${moduleName == 'projects' ? 'active' : '' }`}>
<Link <Link
onClick={() => this.setState({moduleName: 'projects'})} onClick={() => this.setState({moduleName: 'projects'})}
to={`/users/${username}/projects`}>项目</Link> to={`/users/${username}/projects`}>开发项目</Link>
</li> </li>
<li className={`${moduleName == 'package' ? 'active' : '' }`}> <li className={`${moduleName == 'package' ? 'active' : '' }`}>
<Link <Link
onClick={() => this.setState({moduleName: 'package'})} onClick={() => this.setState({moduleName: 'package'})}
to={`/users/${username}/package`}>众包</Link> to={`/users/${username}/package`}>众包</Link>
</li> </li>
{((is_current && current_user && current_user.is_teacher ) || current_user && current_user.admin) {((is_current && current_user && current_user.is_teacher ) || current_user && current_user.admin)
&& <li className={`${moduleName == 'videos' ? 'active' : '' }`}> && <li className={`${moduleName == 'videos' ? 'active' : '' }`}>
<Link <Link
onClick={() => this.setState({moduleName: 'videos'})} onClick={() => this.setState({moduleName: 'videos'})}
to={`/users/${username}/videos`}>视频</Link> to={`/users/${username}/videos`}>视频</Link>
</li>} </li>}
{((is_current && current_user && current_user.is_teacher ) || current_user && current_user.admin) </div>
&& <li className={`${moduleName == 'videos' ? 'active' : '' }`}> </div>
<Link </div>
onClick={() => this.setState({moduleName: 'videos'})} )
to={`/users/${username}/videos`}>题库</Link> }
</li>} }
</div>
</div>
</div>
)
}
}
export default InfosBanner; export default InfosBanner;
Loading…
Cancel
Save