From 7c1afec61d57ff200687c52d65bdd9025f7daf38 Mon Sep 17 00:00:00 2001 From: harry Date: Sat, 14 Mar 2020 21:19:26 +0800 Subject: [PATCH] fix --- .../modules/page/layers/TaskResultLayer.js | 131 +++++++----------- 1 file changed, 49 insertions(+), 82 deletions(-) diff --git a/public/react/src/modules/page/layers/TaskResultLayer.js b/public/react/src/modules/page/layers/TaskResultLayer.js index 22b4335f2..69d8c27d1 100644 --- a/public/react/src/modules/page/layers/TaskResultLayer.js +++ b/public/react/src/modules/page/layers/TaskResultLayer.js @@ -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,27 +28,22 @@ class TaskResultLayer extends Component { stared: false, timeRemain: 0, } + } - componentWillReceiveProps(newProps, newContext) { - if (newProps.currentGamePassed && (!this.props.currentGamePassed - || (newProps.currentGamePassed !== this.props.currentGamePassed))) { - // this.fakeRanking = this._fakeRanking() - const $ = window.$; - let isLastGame = newProps.game_count === newProps.challenge.position; - setTimeout(() => { - // true || - if (isLastGame) { - var dClass = 'zoomInDown'; $('.passTaskContent').show().addClass(dClass + ' animated'); - setTimeout(function () { $('.passTaskContent').removeClass(dClass + ' animated') }, 1000) - } else { - var dClass = 'zoomIn'; $('.passTaskContent').show().addClass(dClass + ' animated'); - setTimeout(function () { $('.passTaskContent').removeClass(dClass + ' animated') }, 1000) - } - }, 100) - - if (newProps.challenge.showLanguagePictrue == true) { - // 开启倒计时 - // this.initEffectDisplayServerTimer() + componentWillReceiveProps(newProps, newContext) { + if (newProps.currentGamePassed && (!this.props.currentGamePassed + || (newProps.currentGamePassed !== this.props.currentGamePassed))) { + // this.fakeRanking = this._fakeRanking() + const $ = window.$; + let isLastGame = newProps.game_count === newProps.challenge.position; + setTimeout(() => { + // true || + if (isLastGame) { + var dClass = 'zoomInDown'; $('.passTaskContent').show().addClass(dClass + ' animated'); + setTimeout(function () { $('.passTaskContent').removeClass(dClass + ' animated') }, 1000) + } else { + var dClass = 'zoomIn'; $('.passTaskContent').show().addClass(dClass + ' animated'); + setTimeout(function () { $('.passTaskContent').removeClass(dClass + ' animated') }, 1000) } }, 100) @@ -49,13 +52,22 @@ class TaskResultLayer extends Component { // this.initEffectDisplayServerTimer() } } + } + + onStarChange(challenge, index, value) { + this.props.onStarChange(challenge, index, value); - onStarChange(challenge, index, value) { - this.props.onStarChange(challenge, index, value); + this.setState({ + stared: value ? true : false, + }) + } - this.setState({ - stared: value ? true : false, - }) + 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; } // 点击了查看效果,而非查看下一关 @@ -67,35 +79,6 @@ class TaskResultLayer extends Component { } else { trigger('showWebDisplayEvent') } - - // 点击了查看效果,而非查看下一关 - if (!goNext) { - if (challenge.showWebDisplayButton === true && challenge.webDisplayUrl) { - // 打开web效果查看页面 - window.open(challenge.webDisplayUrl, '_blank'); - return; - } else { - trigger('showWebDisplayEvent') - } - } - 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() - } - this.props.onGamePassed(); - this.setState({ - stared: false - }) } if (!game.star) { // 当前关卡没有评星,评星后再跳转 this.props.saveChallengeStar(game, challenge.position); @@ -111,30 +94,15 @@ class TaskResultLayer extends Component { // 隐藏掉效果查看页面 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) - }) - + this.props.onGamePassed(); + this.setState({ + stared: false + }) + } + _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,10 +237,9 @@ class TaskResultLayer extends Component { - : -
- } +
+ } ); }