add visti_time and finish_time

issues25489
tjsglion 5 years ago
parent 1c6399c01f
commit 39ac4ceb4a

@ -26,6 +26,7 @@ import './leftView.css'
import CodeEvaluateMultiLevelAnswerUnlock from './CodeEvaluateMultiLevelAnswerUnlock' import CodeEvaluateMultiLevelAnswerUnlock from './CodeEvaluateMultiLevelAnswerUnlock'
import MUIDialogStyleUtil from '../component/MUIDialogStyleUtil' import MUIDialogStyleUtil from '../component/MUIDialogStyleUtil'
import moment from 'moment';
// http://danilowoz.com/create-react-content-loader/ // http://danilowoz.com/create-react-content-loader/
const MyLoader = () => ( const MyLoader = () => (
<ContentLoader <ContentLoader
@ -35,16 +36,16 @@ const MyLoader = () => (
primaryColor={"#000000"} primaryColor={"#000000"}
secondaryColor={"#ecebeb"} secondaryColor={"#ecebeb"}
> >
<rect x="0" y="10" rx="3" ry="3" width="320" height="6.4" /> <rect x="0" y="10" rx="3" ry="3" width="320" height="6.4" />
<rect x="0" y="35" rx="3" ry="3" width="85" height="10" /> <rect x="0" y="35" rx="3" ry="3" width="85" height="10" />
<rect x="0" y="60" rx="3" ry="3" width="350" height="6.4" /> <rect x="0" y="60" rx="3" ry="3" width="350" height="6.4" />
<rect x="0" y="80" rx="3" ry="3" width="350" height="6.4" /> <rect x="0" y="80" rx="3" ry="3" width="350" height="6.4" />
<rect x="0" y="100" rx="3" ry="3" width="350" height="6.4" /> <rect x="0" y="100" rx="3" ry="3" width="350" height="6.4" />
<rect x="0" y="120" rx="3" ry="3" width="101" height="6.4" /> <rect x="0" y="120" rx="3" ry="3" width="101" height="6.4" />
<rect x="0" y="145" rx="3" ry="3" width="65" height="10" /> <rect x="0" y="145" rx="3" ry="3" width="65" height="10" />
<rect x="0" y="170" rx="3" ry="3" width="350" height="6.4" /> <rect x="0" y="170" rx="3" ry="3" width="350" height="6.4" />
<rect x="0" y="190" rx="3" ry="3" width="350" height="6.4" /> <rect x="0" y="190" rx="3" ry="3" width="350" height="6.4" />
<rect x="0" y="210" rx="3" ry="3" width="201" height="6.4" /> <rect x="0" y="210" rx="3" ry="3" width="201" height="6.4" />
</ContentLoader> </ContentLoader>
) )
@ -59,7 +60,7 @@ const styles = MUIDialogStyleUtil.getTwoButtonStyle(
width: '36px', width: '36px',
height: '36px', height: '36px',
} }
} }
} }
) )
@ -86,7 +87,7 @@ class LeftView extends Component {
// style={{marginRight: '6px'}} // style={{marginRight: '6px'}}
// />, // />,
// <Button // <Button
// variant="raised" // variant="raised"
// label="确定" // label="确定"
// primary={true} // primary={true}
// onClick={handleDialogReadAnswer} // onClick={handleDialogReadAnswer}
@ -97,14 +98,14 @@ class LeftView extends Component {
// isMultiLevelAnswer = true // isMultiLevelAnswer = true
const is_teacher = user.is_teacher const is_teacher = user.is_teacher
let contentText = is_teacher ? let contentText = is_teacher ?
<React.Fragment> <React.Fragment>
<p>{`已经过职业认证的教师可以免金币查看答案哟~`}</p> <p>{`已经过职业认证的教师可以免金币查看答案哟~`}</p>
<p>{`将扣除${challenge.score}点金币,是否确认查看答案`}</p> <p>{`将扣除${challenge.score}点金币,是否确认查看答案`}</p>
<p><a onClick={()=>this.goToCertification()} <p><a onClick={()=>this.goToCertification()}
style={{textDecoration: 'underline', color: '#4CACFF'}}>立即认证</a></p> style={{textDecoration: 'underline', color: '#4CACFF'}}>立即认证</a></p>
</React.Fragment> </React.Fragment>
: :
<React.Fragment> <React.Fragment>
<p>{`先查看参考答案,再通过评测的学生,实训作业有可能是零分哦~`}</p> <p>{`先查看参考答案,再通过评测的学生,实训作业有可能是零分哦~`}</p>
<p>{`将扣除${challenge.score}点金币,是否确认查看答案`}</p> <p>{`将扣除${challenge.score}点金币,是否确认查看答案`}</p>
@ -112,13 +113,13 @@ class LeftView extends Component {
// 多级别解锁 // 多级别解锁
if (isMultiLevelAnswer) { if (isMultiLevelAnswer) {
// power === 0 && // power === 0 &&
contentText = ( is_teacher ) ? contentText = ( is_teacher ) ?
            <React.Fragment>             <React.Fragment>
             <p>{`已经过职业认证的教师可以免金币查看答案哟~`}</p>              <p>{`已经过职业认证的教师可以免金币查看答案哟~`}</p>
<p><a style={{textDecoration: 'underline'}} onClick={()=>this.goToCertification()} <p><a style={{textDecoration: 'underline'}} onClick={()=>this.goToCertification()}
style={{ color: '#1890ff', 'margin-top': '6px', display: 'inline-block'}}>立即认证</a></p> style={{ color: '#1890ff', 'margin-top': '6px', display: 'inline-block'}}>立即认证</a></p>
<CodeEvaluateMultiLevelAnswerUnlock <CodeEvaluateMultiLevelAnswerUnlock
ref="answerUnlock" lockedAnswers={lockedAnswers} unlockedAnswers={unlockedAnswers} ref="answerUnlock" lockedAnswers={lockedAnswers} unlockedAnswers={unlockedAnswers}
challenge={challenge} challenge={challenge}
> >
@ -128,7 +129,7 @@ class LeftView extends Component {
            <React.Fragment>             <React.Fragment>
<p>{`先查看参考答案,再通过评测的学生,实训作业将被扣分`}</p> <p>{`先查看参考答案,再通过评测的学生,实训作业将被扣分`}</p>
{/* { MultiLevelUnlockTable } */} {/* { MultiLevelUnlockTable } */}
<CodeEvaluateMultiLevelAnswerUnlock <CodeEvaluateMultiLevelAnswerUnlock
ref="answerUnlock" lockedAnswers={lockedAnswers} unlockedAnswers={unlockedAnswers} ref="answerUnlock" lockedAnswers={lockedAnswers} unlockedAnswers={unlockedAnswers}
challenge={challenge} challenge={challenge}
> >
@ -136,13 +137,13 @@ class LeftView extends Component {
            </React.Fragment>;             </React.Fragment>;
} }
/** /**
{ is_teacher ? <Button size="small" variant="raised" style={{ marginRight: '20px'}} { is_teacher ? <Button size="small" variant="raised" style={{ marginRight: '20px'}}
onClick={()=>this.goToCertification()} color="primary"> onClick={()=>this.goToCertification()} color="primary">
{ '立即认证' } { '立即认证' }
</Button> : ''} </Button> : ''}
*/ */
return ( return (
<React.Fragment> <React.Fragment>
@ -150,7 +151,7 @@ class LeftView extends Component {
open={dialogOpen} open={dialogOpen}
disableEscapeKeyDown={true} disableEscapeKeyDown={true}
onClose={handleDialogClose} onClose={handleDialogClose}
> >
<DialogTitle id="alert-dialog-title">{"提示"}</DialogTitle> <DialogTitle id="alert-dialog-title">{"提示"}</DialogTitle>
<DialogContent id="dialog-content" > <DialogContent id="dialog-content" >
<DialogContentText id="alert-dialog-description" style={{textAlign: 'center'}}> <DialogContentText id="alert-dialog-description" style={{textAlign: 'center'}}>
@ -159,32 +160,32 @@ class LeftView extends Component {
</DialogContent> </DialogContent>
{/* http://localhost:3000/account/professional_certification */} {/* http://localhost:3000/account/professional_certification */}
<DialogActions id="dialog-actions"> <DialogActions id="dialog-actions">
<Button onClick={handleDialogClose} color="primary" className={`${classes.button} ${classes.buttonGray}`}> <Button onClick={handleDialogClose} color="primary" className={`${classes.button} ${classes.buttonGray}`}>
取消 取消
</Button> </Button>
{/* variant={ is_teacher ? "flat" : "raised"} */} {/* variant={ is_teacher ? "flat" : "raised"} */}
<Button size="medium" variant={"raised"} <Button size="medium" variant={"raised"}
className={`${classes.button} `} className={`${classes.button} `}
onClick={() => handleDialogReadAnswer(this.refs.answerUnlock ? this.refs.answerUnlock.getSelectedId() : '')} onClick={() => handleDialogReadAnswer(this.refs.answerUnlock ? this.refs.answerUnlock.getSelectedId() : '')}
color="primary" autoFocus> color="primary" autoFocus>
{ is_teacher ? '继续查看' : '确定'} { is_teacher ? '继续查看' : '确定'}
</Button> </Button>
</DialogActions> </DialogActions>
</Dialog> </Dialog>
<div className="-fit -layout-v"> <div className="-fit -layout-v">
<div className="-layout-v -flex -bg-white -task-ml80"> <div className="-layout-v -flex -bg-white -task-ml80">
{/*新界面关卡名称显示、关卡金币显示*/} {/*新界面关卡名称显示、关卡金币显示*/}
<div id="task_name_section" className="task_name_section"> <div id="task_name_section" className="task_name_section">
{ loading ? "" : { loading ? "" :
<React.Fragment> <React.Fragment>
<Tooltip title={ "点击查看全部任务" } disableFocusListener={true}> <Tooltip title={ "点击查看全部任务" } disableFocusListener={true}>
<IconButton color="default" mini={''} aria-label="edit" className={classes.iconButton} <IconButton color="default" mini={''} aria-label="edit" className={classes.iconButton}
onClick={onDrawerButtonClick}> onClick={onDrawerButtonClick}>
<i className={ "fa font-18 fa-list-ul" }></i> <i className={ "fa font-18 fa-list-ul" }></i>
</IconButton> </IconButton>
@ -223,15 +224,15 @@ class LeftView extends Component {
<div id="tab_con_1" className="tab-info" style={ tabIndex === 0 ? {display: 'block'} : {display: 'none'} }> <div id="tab_con_1" className="tab-info" style={ tabIndex === 0 ? {display: 'block'} : {display: 'none'} }>
<div className="fit -scroll"> <div className="fit -scroll">
<div className="-layout-v -fit"> <div className="-layout-v -fit">
{ loading ? { loading ?
<div className="-flex -scroll task-padding16 panel-box-sizing new_li break_word markdown-body editormd-html-preview" <div className="-flex -scroll task-padding16 panel-box-sizing new_li break_word markdown-body editormd-html-preview"
unselectable="on"> unselectable="on">
<CircularProgress size={40} thickness={3} className="circularProgress" <CircularProgress size={40} thickness={3} className="circularProgress"
style={{ marginLeft: 'auto', marginRight: 'auto', marginTop: '40% !important', display: 'block' }}/> style={{ marginLeft: 'auto', marginRight: 'auto', marginTop: '40% !important', display: 'block' }}/>
</div> : "" </div> : ""
} }
<div className="-flex -scroll task-padding16 panel-box-sizing new_li break_word markdown-body editormd-html-preview" <div className="-flex -scroll task-padding16 panel-box-sizing new_li break_word markdown-body editormd-html-preview"
unselectable="on" id="game_task_pass" style={loading ? {display:'none'} : {}}> unselectable="on" id="game_task_pass" style={loading ? {display:'none'} : {}}>
</div> </div>
</div> </div>
@ -242,7 +243,7 @@ class LeftView extends Component {
<div className="fit -scroll"> <div className="fit -scroll">
<div className="-layout-v -fit"> <div className="-layout-v -fit">
<div className="-flex -scroll task-padding16 panel-box-sizing new_li markdown-body editormd-html-preview" unselectable="on" id="game_ready_knowledge"> <div className="-flex -scroll task-padding16 panel-box-sizing new_li markdown-body editormd-html-preview" unselectable="on" id="game_ready_knowledge">
</div> </div>
</div> </div>
</div> </div>
@ -253,8 +254,8 @@ class LeftView extends Component {
<div className="-layout-v -fit" style={{ overflowY: 'scroll' }}> <div className="-layout-v -fit" style={{ overflowY: 'scroll' }}>
{/* markdown markdownToHTML markdownsetMarkdown {/* markdown markdownToHTML markdownsetMarkdown
<textarea style={{display:'none'}} id="editorMd_contents" value={gameAnswer}></textarea>*/} <textarea style={{display:'none'}} id="editorMd_contents" value={gameAnswer}></textarea>*/}
{ (!unlockedAnswers || unlockedAnswers.length === 0) && (!lockedAnswers || lockedAnswers.length === 0) && { (!unlockedAnswers || unlockedAnswers.length === 0) && (!lockedAnswers || lockedAnswers.length === 0) &&
<div className="-flex -scroll task-padding16 panel-box-sizing new_li" id="game_answer_show" <div className="-flex -scroll task-padding16 panel-box-sizing new_li" id="game_answer_show"
style={{ display: st === 0 ? 'block' : 'none' }}> style={{ display: st === 0 ? 'block' : 'none' }}>
@ -283,8 +284,10 @@ class LeftView extends Component {
} }
.multiLevelAnswer .status{ .multiLevelAnswer .status{
color: #CDCDCD; color: #CDCDCD;
flex: 0 0 45px; }
} .multiLevelAnswer .lock-time{
margin-right: 15px;
}
.markdown-body ol, .markdown-body ul { .markdown-body ol, .markdown-body ul {
padding-left: 2.5em; padding-left: 2.5em;
} }
@ -292,13 +295,17 @@ class LeftView extends Component {
<div className="multiLevelAnswer"> <div className="multiLevelAnswer">
{ unlockedAnswers && unlockedAnswers.map((item, index) => { { unlockedAnswers && unlockedAnswers.map((item, index) => {
const {name, contents, view_time} = item;
return <div className="anwserSection"> return <div className="anwserSection">
<div className="df"> <div className="df">
<div className="level">级别{index + 1}</div> <div className="level">级别{index + 1}</div>
<div className="name">{item.name}</div> <div className="name">{name}</div>
<div className="status">已解锁</div> <div className="status">
<span className="lock-time">{view_time ? moment(view_time).format('YYYY-MM-DD HH:mm') : ''}</span>
已解锁
</div>
</div> </div>
<div className="contents markdown-body" dangerouslySetInnerHTML={{__html: markdownToHTML(item.contents)}}> <div className="contents markdown-body" dangerouslySetInnerHTML={{__html: markdownToHTML(contents)}}>
</div> </div>
</div> </div>
})} })}
@ -308,19 +315,19 @@ class LeftView extends Component {
<div className="df"> <div className="df">
<div className="level">级别{index + 1 + (unlockedAnswers ? unlockedAnswers.length : 0)}</div> <div className="level">级别{index + 1 + (unlockedAnswers ? unlockedAnswers.length : 0)}</div>
<div className="name">{item.name}</div> <div className="name">{item.name}</div>
<div <div
className="status" onClick={ () => { this.props.showUnlockAnswerDialog(item) } } className="status" onClick={ () => { this.props.showUnlockAnswerDialog(item) } }
style={{ color: '#4CACFF', cursor: 'pointer' }} style={{ color: '#4CACFF', cursor: 'pointer' }}
>解锁</div> >解锁</div>
</div> </div>
</div> </div>
})} })}
</div> </div>
{ st === 1 ?
<div className="-flex -scroll task-padding16 panel-box-sizing new_li" id="game_answer_show_choose" { st === 1 ?
<div className="-flex -scroll task-padding16 panel-box-sizing new_li" id="game_answer_show_choose"
> >
<ChooseAnswerView gameAnswer={gameAnswer}></ChooseAnswerView> <ChooseAnswerView gameAnswer={gameAnswer}></ChooseAnswerView>
</div> </div>
@ -338,8 +345,8 @@ class LeftView extends Component {
</div> </div>
</div> </div>
<div id="tab_con_4" className="commentTab tab-info commentsDelegateParent" style={ tabIndex === 3 ? {display: 'block'} : {display: 'none'} }> <div id="tab_con_4" className="commentTab tab-info commentsDelegateParent" style={ tabIndex === 3 ? {display: 'block'} : {display: 'none'} }>
{ loadingComments ? { loadingComments ?
<CircularProgress size={40} thickness={3} style={{ marginLeft: 'auto', marginRight: 'auto', marginTop: '40%', display: 'block' }}/> : <CircularProgress size={40} thickness={3} style={{ marginLeft: 'auto', marginRight: 'auto', marginTop: '40%', display: 'block' }}/> :
<CommentContainer {...this.props}></CommentContainer> <CommentContainer {...this.props}></CommentContainer>
} }
</div> </div>

@ -1,92 +1,123 @@
/*------------------------------- TaskList Start */ /*------------------------------- TaskList Start */
#all_task_index { #all_task_index {
color: #fff; color: #fff;
background: #111C24; background: #111C24;
} }
.panel-list:last-child { .panel-list:last-child {
margin-bottom: 50px; margin-bottom: 50px;
} }
.-task-list-title a, .-task-list-title a:link, .-task-list-title a:visited { .-task-list-title a, .-task-list-title a:link, .-task-list-title a:visited {
color: #BCC6CD; color: #BCC6CD;
} }
.-task-list-inner { .-task-list-inner {
background: none; background: none;
border-bottom: 1px solid #222C34; border-bottom: 1px solid #222C34;
padding-bottom: 16px; padding-bottom: 16px;
} }
#all_task_index .fa-play-circle { #all_task_index .fa-play-circle {
color: white; color: white;
} }
#all_task_index .panel-list { #all_task_index .panel-list {
position: relative; position: relative;
} }
#all_task_index .current .currentSelected { #all_task_index .current .currentSelected {
border-left: 3px solid #4CACFF; border-left: 3px solid #4CACFF;
height: 22px; height: 22px;
width: 0px; width: 0px;
position: absolute; position: absolute;
top: 8px; top: 8px;
} }
#all_task_index .grades { #all_task_index .grades {
color: #747A7F; color: #747A7F;
} }
.-task-list-title { .-task-list-title {
color: #BCC6CD; color: #BCC6CD;
} }
#all_task_index .positive.info-partly span { #all_task_index .positive.info-partly span {
color: #45E660; color: #45E660;
} }
#all_task_index .negative.info-partly span { #all_task_index .negative.info-partly span {
color: #FF954C; color: #FF954C;
} }
#all_task_index .notFinish .info-partly span { #all_task_index .notFinish .info-partly span {
color: #747A7F !important; color: #747A7F !important;
} }
#all_task_index #shixun_exp_118 span { #all_task_index #shixun_exp_118 span {
/*color: #45E660;*/ /*color: #45E660;*/
} }
#all_task_index #shixun_grade_118 span { #all_task_index #shixun_grade_118 span {
/*color: #FF954C;*/ /*color: #FF954C;*/
} }
#all_task_index #shixun_tag_118 span { #all_task_index #shixun_tag_118 span {
color: #FFF; color: #FFF;
} }
.rateRow { .rateRow {
margin-left: 20px; margin-left: 20px;
font-size: 13px; font-size: 13px;
margin-top: 6px; margin-top: 6px;
} }
.rateRow .rc-rate { .rateRow .rc-rate {
margin-top: -5px; margin-top: -5px;
margin-left: 3px; margin-left: 3px;
} }
.rateRow .rc-rate-star { .rateRow .rc-rate-star {
color: #9A9A9A; color: #9A9A9A;
} }
.rateRow .starTip { .rateRow .starTip {
color: #666666; color: #666666;
font-size: 13px; font-size: 13px;
} }
.rateRow .starNumber { .rateRow .starNumber {
color: #FFA800; color: #FFA800;
margin-left: 4px; margin-left: 4px;
} }
.rateRow .unstar .starNumber { .rateRow .unstar .starNumber {
cursor: pointer; cursor: pointer;
} }
.rateRow .unstar .starNumber:hover { .rateRow .unstar .starNumber:hover {
text-decoration: underline; text-decoration: underline;
} }
.rateRow .stared .starNumber { .rateRow .stared .starNumber {
} }
.rateRow .rc-rate-star-half .rc-rate-star-first, .rateRow .rc-rate-star-full .rc-rate-star-second { .rateRow .rc-rate-star-half .rc-rate-star-first, .rateRow .rc-rate-star-full .rc-rate-star-second {
color: #FFA800; color: #FFA800;
} }
/*------------------------------- TaskList End */
.tip-info-wrap{
background-color: #111C24;
padding: 20px 0px;
}
.tip-info-wrap .tip-info{
display: flex;
background: #707070;
border: 1px solid rgba(112,112,112,1);
border-radius: 100px;
width: 375px;
height: 52px;
font-size: 12px;
align-items: center;
align-items: space-around;
margin: 0 auto;
padding: 0 20px;
}
.finish-wrap{
display: flex;
padding: 0 0px 0 20px;
margin-top: 10px;
}
.finish-wrap .finish-time{
flex: 1;
}
.finish-time .time-title{
color: #747A7F;
margin-right: 5px;
}
/*------------------------------- TaskList End */

@ -1,124 +1,140 @@
import React, { Component } from 'react'; import React, { Component } from 'react';
import { BrowserRouter as Router, Route, Link } from "react-router-dom"; import { BrowserRouter as Router, Route, Link } from "react-router-dom";
import { CircularProgress } from 'material-ui/Progress'; import { CircularProgress } from 'material-ui/Progress';
import moment from 'moment';
import Rate from 'rc-rate'; import Rate from 'rc-rate';
import 'rc-rate/assets/index.css'; import 'rc-rate/assets/index.css';
import './TaskList.css' import './TaskList.css'
import classNames from 'classnames' import classNames from 'classnames'
class TaskList extends Component { class TaskList extends Component {
onChange() { onChange() {
} }
renderTasks() { renderTasks() {
const { challenges, challenge, shixun, onChallengesDrawerClose, myshixun_manager } = this.props; const { challenges, challenge, shixun, onChallengesDrawerClose, myshixun_manager } = this.props;
const currentChallenge = challenge; const currentChallenge = challenge;
const taskArray = challenges.map( (challenge, index) => { const taskArray = challenges.map( (challenge, index) => {
challenge.experience = challenge.get_experience challenge.experience = challenge.get_experience
challenge.gold = challenge.get_gold challenge.gold = challenge.get_gold
challenge.subject = challenge.name challenge.subject = challenge.name
const {finished_time, view_answer_time} = challenge;
const showExp = (challenge.experience > 0 && challenge.status === 2) ? '+' + challenge.experience : challenge.experience const showExp = (challenge.experience > 0 && challenge.status === 2) ? '+' + challenge.experience : challenge.experience
const showGold = (challenge.gold > 0 && challenge.status === 2) ? '+' + challenge.gold : challenge.gold const showGold = (challenge.gold > 0 && challenge.status === 2) ? '+' + challenge.gold : challenge.gold
return ( return (
<div className={classNames("panel-list", {'current': (currentChallenge.position-1) === index})} key={index}> <div className={classNames("panel-list", {'current': (currentChallenge.position-1) === index})} key={index}>
<div className="currentSelected"></div> <div className="currentSelected"></div>
<div className=" clearfix -task-list-inner" id="game_status_118"> <div className=" clearfix -task-list-inner" id="game_status_118">
{/* 允许跳关的设置 */} {/* 允许跳关的设置 */}
<h4 className=" -task-list-title fl"> <h4 className=" -task-list-title fl">
{shixun.status<2 || challenge.status === 2 || (challenges[index-1] && challenges[index-1].status === 2) {shixun.status<2 || challenge.status === 2 || (challenges[index-1] && challenges[index-1].status === 2)
|| shixun.task_pass || myshixun_manager === true ? || shixun.task_pass || myshixun_manager === true ?
<Link to={`/tasks/${challenge.identifier}`} onClick={onChallengesDrawerClose}>{index+1}. {challenge.subject}</Link> <Link to={`/tasks/${challenge.identifier}`} onClick={onChallengesDrawerClose}>{index+1}. {challenge.subject}</Link>
: :
<span>{index+1}. {challenge.subject}</span>} <span>{index+1}. {challenge.subject}</span>}
</h4> </h4>
<a className="fr"> <a className="fr">
{challenge.status === 2 ? {challenge.status === 2 ?
<i data-tip-down="已完成" className="fa fa-check-circle color-light-green fr font-16 mt5 -text-danger w20_center"></i> <i data-tip-down="已完成" className="fa fa-check-circle color-light-green fr font-16 mt5 -text-danger w20_center"></i>
: :
<i data-tip-down="待完成" className="fa fa-check-circle fr font-16 mt5 color-light-grey w20_center"></i> <i data-tip-down="待完成" className="fa fa-check-circle fr font-16 mt5 color-light-grey w20_center"></i>
} }
</a> </a>
<div className="cl"></div> <div className="cl"></div>
<div style={{display: 'flex'}} className={`grades with80 ml20 ${challenge.status === 2 ? '' : 'notFinish'}`}> <div style={{display: 'flex'}} className={`grades with80 ml20 ${challenge.status === 2 ? '' : 'notFinish'}`}>
<span className={`font-12 mr15 info-partly ${(challenge.status === 2 && challenge.experience > 0) ? 'positive ' : 'negative'}`} id="shixun_exp_118"> <span className={`font-12 mr15 info-partly ${(challenge.status === 2 && challenge.experience > 0) ? 'positive ' : 'negative'}`} id="shixun_exp_118">
经验值<span className="ml5"> 经验值<span className="ml5">
{ showExp } { showExp }
</span> </span>
</span> </span>
<span className={`font-12 mr15 info-partly ${(challenge.status === 2 && challenge.experience > 0) ? 'positive ' : 'negative'}`} id="shixun_grade_118"> <span className={`font-12 mr15 info-partly ${(challenge.status === 2 && challenge.experience > 0) ? 'positive ' : 'negative'}`} id="shixun_grade_118">
金币<span className="ml5"> 金币<span className="ml5">
{/*因为关卡金币和经验值是一样的,所以这里可以直接用经验值*/} {/*因为关卡金币和经验值是一样的,所以这里可以直接用经验值*/}
{ showGold } { showGold }
</span> </span>
</span> </span>
<span className=" font-12 mr15 info-partly" id="shixun_tag_118"> <span className=" font-12 mr15 info-partly" id="shixun_tag_118">
{ challenge.tag_count ? { challenge.tag_count ?
<React.Fragment> <React.Fragment>
技能标签<span className="ml5">{challenge.tag_count || '无'}</span> 技能标签<span className="ml5">{challenge.tag_count || '无'}</span>
</React.Fragment> </React.Fragment>
: '' } : '' }
</span> </span>
</div> </div>
{ shixun.status >= 2 && <div className="rateRow"> <div className="finish-wrap">
{/* 已完成、未评分 */} <p class="finish-time font-12">
{challenge.status === 2 && challenge.star === 0? <span class="time-title">完成时间</span>
<div className="unstar"> { finished_time ? moment(finished_time).format('YYYY-MM-DD HH:mm') : '--' }
<span className="starTip">给个评分吧</span> </p>
<Rate <p class="finish-time font-12">
defaultValue={0} <span class="time-title">查看答案时间</span>
onChange={(value) => this.props.onStarChange(challenge, index, value)} { view_answer_time ? moment(view_answer_time).format('YYYY-MM-DD HH:mm') : '--' } </p>
/> </div>
<span className="starNumber" onClick={()=>this.props.saveChallengeStar(challenge, index)}>评价</span> { shixun.status >= 2 && <div className="rateRow">
</div> {/* 已完成、未评分 */}
: {challenge.status === 2 && challenge.star === 0?
challenge.status === 2 && challenge.star > 0 ? <div className="unstar">
<div className="stared"> <span className="starTip">给个评分吧</span>
<span className="starTip">已评分</span> <Rate
<Rate defaultValue={0}
defaultValue={challenge.star} onChange={(value) => this.props.onStarChange(challenge, index, value)}
disabled />
/> <span className="starNumber" onClick={()=>this.props.saveChallengeStar(challenge, index)}>评价</span>
<span className="starNumber">{challenge.star}</span> </div>
</div> :
: ''} challenge.status === 2 && challenge.star > 0 ?
</div> } <div className="stared">
</div> <span className="starTip">已评分</span>
</div> <Rate
) defaultValue={challenge.star}
}) disabled
return taskArray; />
} <span className="starNumber">{challenge.star}</span>
</div>
render() { : ''}
const { taskListLoading } = this.props; </div> }
return ( </div>
<div className="page--over"> </div>
<div className="col-width-3 -scroll" style={{height: '100%'}} id="all_task_index"> )
{ taskListLoading ? })
<CircularProgress size={40} thickness={3} style={{ marginLeft: 'auto', marginRight: 'auto', marginTop: '40%', display: 'block' }}/> : return taskArray;
this.renderTasks() }
}
</div> render() {
</div> const { taskListLoading } = this.props;
); return (
} <div className="page--over" style={{ width: '420px'}}>
/* {/** 增加提示信息 */}
<a className="fr"><i data-tip-down="待完成" className="fa fa-play-circle color-light-green fr font-18 mt5 -text-danger w20_center"></i></a> <div className="tip-info-wrap">
<div className="-task-list-header clearfix"> <p className="tip-info">
<h3 className="fl">全部任务</h3> <span><span style={{ color: '#FFBD4C'}}>温馨提示: </span> </span>
</div> </p>
*/ </div>
}
<div className="col-width-3 -scroll" style={{height: 'calc( 100% - 100px )', width: '420px'}} id="all_task_index">
export default TaskList; { taskListLoading ?
<CircularProgress size={40} thickness={3} style={{ marginLeft: 'auto', marginRight: 'auto', marginTop: '40%', display: 'block' }}/> :
this.renderTasks()
}
</div>
</div>
);
}
/*
<a className="fr"><i data-tip-down="待完成" className="fa fa-play-circle color-light-green fr font-18 mt5 -text-danger w20_center"></i></a>
<div className="-task-list-header clearfix">
<h3 className="fl">全部任务</h3>
</div>
*/
}
export default TaskList;

Loading…
Cancel
Save