|
|
|
@ -1,7 +1,15 @@
|
|
|
|
|
|
|
|
|
|
import React, { Component } from 'react';
|
|
|
|
|
import { Redirect } from 'react-router';
|
|
|
|
|
import { Rate } from 'antd'
|
|
|
|
|
|
|
|
|
|
import PropTypes from 'prop-types';
|
|
|
|
|
import Rate from 'rc-rate';
|
|
|
|
|
|
|
|
|
|
import Tooltip from 'material-ui/Tooltip';
|
|
|
|
|
|
|
|
|
|
import './TaskResultLayer.css'
|
|
|
|
|
import moment from 'moment';
|
|
|
|
|
|
|
|
|
|
import passallImg from '../../../images/tpi/passall.png'
|
|
|
|
|
import passpartImg from '../../../images/tpi/passpart.png'
|
|
|
|
|
import empiricgreenImg from '../../../images/tpi/empiricgreen.png'
|
|
|
|
@ -20,6 +28,7 @@ class TaskResultLayer extends Component {
|
|
|
|
|
stared: false,
|
|
|
|
|
timeRemain: 0,
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
componentWillReceiveProps(newProps, newContext) {
|
|
|
|
|
if (newProps.currentGamePassed && (!this.props.currentGamePassed
|
|
|
|
@ -42,11 +51,6 @@ class TaskResultLayer extends Component {
|
|
|
|
|
// 开启倒计时
|
|
|
|
|
// this.initEffectDisplayServerTimer()
|
|
|
|
|
}
|
|
|
|
|
}, 100)
|
|
|
|
|
|
|
|
|
|
if (newProps.challenge.showLanguagePictrue == true) {
|
|
|
|
|
// 开启倒计时
|
|
|
|
|
// this.initEffectDisplayServerTimer()
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -58,14 +62,12 @@ class TaskResultLayer extends Component {
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 点击了查看效果,而非查看下一关
|
|
|
|
|
if (!goNext) {
|
|
|
|
|
if (challenge.showWebDisplayButton === true && challenge.webDisplayUrl) {
|
|
|
|
|
// 打开web效果查看页面
|
|
|
|
|
window.open(challenge.webDisplayUrl, '_blank');
|
|
|
|
|
onFinish(goNext) {
|
|
|
|
|
const { stared } = this.state;
|
|
|
|
|
const { game, challenge, shixun, showSnackbar, next_game } = this.props;
|
|
|
|
|
if (!stared && !this.props.game.star && shixun.status >= 2) { // 没点评星 && 未评星 && 实训已发布(模拟实战可以继续)
|
|
|
|
|
showSnackbar('请先给该任务评星,谢谢。')
|
|
|
|
|
return;
|
|
|
|
|
} else {
|
|
|
|
|
trigger('showWebDisplayEvent')
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 点击了查看效果,而非查看下一关
|
|
|
|
@ -97,44 +99,10 @@ class TaskResultLayer extends Component {
|
|
|
|
|
stared: false
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
if (!game.star) { // 当前关卡没有评星,评星后再跳转
|
|
|
|
|
this.props.saveChallengeStar(game, challenge.position);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 跳转到下一关
|
|
|
|
|
// https://stackoverflow.com/questions/29244731/react-router-how-to-manually-invoke-link
|
|
|
|
|
// this.context.router.push('/sample');
|
|
|
|
|
if (goNext === true) {
|
|
|
|
|
if (next_game) { // https://www.trustie.net/issues/18573
|
|
|
|
|
this.goNext = true;
|
|
|
|
|
}
|
|
|
|
|
// 隐藏掉效果查看页面
|
|
|
|
|
window.$('#picture_display').hide()
|
|
|
|
|
}
|
|
|
|
|
// componentDidUpdate(prevProps) {
|
|
|
|
|
// if (!this.props.challenge) {
|
|
|
|
|
// return;
|
|
|
|
|
// }
|
|
|
|
|
// const { showLanguagePictrue } = this.props.challenge;
|
|
|
|
|
// if ( prevProps.challenge.showLanguagePictrue != showLanguagePictrue &&
|
|
|
|
|
// showLanguagePictrue == true ) {
|
|
|
|
|
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
initEffectDisplayServerTimer = () => {
|
|
|
|
|
|
|
|
|
|
this.setState({ timeRemain: 5 * 60 }, () => {
|
|
|
|
|
this.intervalHandler = setInterval(() => {
|
|
|
|
|
let timeRemain = this.state.timeRemain
|
|
|
|
|
if (timeRemain > 0) {
|
|
|
|
|
timeRemain = timeRemain - 1;
|
|
|
|
|
} else {
|
|
|
|
|
clearInterval(this.intervalHandler);
|
|
|
|
|
}
|
|
|
|
|
this.setState({ timeRemain })
|
|
|
|
|
}, 1000)
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
_fakeRanking() {
|
|
|
|
|
const { cost_time } = this.props.game
|
|
|
|
|
if (cost_time > 60 * 10) {
|
|
|
|
|
return Math.floor(Math.random() * 11) + 20
|
|
|
|
|
}
|
|
|
|
|
return Math.floor(((600 - cost_time) / 600) * 100)
|
|
|
|
|
|
|
|
|
@ -269,7 +237,6 @@ class TaskResultLayer extends Component {
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
:
|
|
|
|
|
<div></div>
|
|
|
|
|
}
|
|
|
|
|