import React, { Component } from 'react';
import { Redirect } from 'react-router';
import {BrowserRouter as Router, Route, Link, Switch} from "react-router-dom";
import PropTypes from 'prop-types';
import {Modal,Input,Radio,Pagination,message,Spin,Icon,Tooltip} from 'antd';
import AccountProfile from"../user/AccountProfile";
import 'antd/lib/pagination/style/index.css';
import axios from 'axios'
import Modals from '../modals/Modals';
// import { Rating,Progress } from '@icedesign/base';
import Rating from '@icedesign/base/lib/rating';
import Progress from '@icedesign/base/lib/progress';
// 引入业务组件样式
import '@icedesign/base/lib/rating/style.js';
import '@icedesign/base/lib/progress/style.js';
import './shixuns/css/TPMBanner.css';
let $ = window.$;
const Search = Input.Search;
const RadioGroup = Radio.Group;
class TPMBanner extends Component {
constructor(props) {
super(props)
this.state={
Forkvisible: false,
Senttothetype:false,
Senttothevcalue:undefined,
courses_count:1,
course_list:[],
pagenum:1,
publishbox:"",
publishboxstatus:0,
pages:1,
Issuevisible:false,
evaluation_set_position:[],
tag_position:[],
Forkauthentication:false,
can_fork:undefined,
certi_url:undefined,
showradios:false,
startbtn:false,
Searchvalue:"",
startshixunCombattype:false,
shixunsmessage:"",
shixunsreplace:false,
hidestartshixunsreplacevalue:"",
isIE:false,
Forkvisibletype: false,
isSpin:false,
Senttothevcaluetype:false
}
}
// star_info:[0, 0, 0, 0, 0, 0],
// star_infos:[0, 0, 0, 0, 0, 0],
// shixunsDetails:{},
// shixunId: undefined,
// componentWillReceiveProps(newProps, newContext){
// this.setState({
// shixunsDetails: newProps.shixunsDetails
// });
// }
IEVersion=()=>{
var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串
var isIE = userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1; //判断是否IE<11浏览器
var isEdge = userAgent.indexOf("Edge") > -1 && !isIE; //判断是否IE的Edge浏览器
var isIE11 = userAgent.indexOf('Trident') > -1 && userAgent.indexOf("rv:11.0") > -1;
if(isIE) {
var reIE = new RegExp("MSIE (\\d+\\.\\d+);");
reIE.test(userAgent);
var fIEVersion = parseFloat(RegExp["$1"]);
if(fIEVersion == 7) {
return 7;
} else if(fIEVersion == 8) {
return 8;
} else if(fIEVersion == 9) {
return 9;
} else if(fIEVersion == 10) {
return 10;
} else {
return 6;//IE版本<=7
}
} else if(isEdge) {
return 'edge';//edge
} else if(isIE11) {
return 11; //IE11
}else{
return -1;//不是ie浏览器
}
}
componentDidMount() {
let thiisie=this.IEVersion();
if(thiisie!=-1){
this.setState({
isIE:true
})
}else{
this.setState({
isIE:false
})
}
}
/*
* Fork
* */
copyForkvisible = () => {
let {shixunsDetails} = this.props;
if (shixunsDetails.can_fork === null) {
this.setState({
Forkvisible: true
})
} else {
this.setState({
Forkvisible: false,
Forkauthentication: true,
can_fork: shixunsDetails.can_fork.can_fork,
certi_url: shixunsDetails.can_fork.certi_url,
})
}
}
hideForkvisible = () => {
this.setState({
Forkvisible: false,
Forkauthentication:false
})
}
addForkvisible = () => {
this.setState({
Forkvisibletype: true,
})
let id = this.props.match.params.shixunId;
let url = "/shixuns/" + id + "/copy.json";
axios.post(url).then((response) => {
if(response.data.status===401){
}else{
this.setState({
Forkvisible: false,
Forkauthentication: false,
// Forkvisibletype:false
})
window.location.href = "/shixuns/" + response.data.shixun + "/challenges";
}
}).catch((error) => {
console.log(error)
});
}
/*
* 发送至按钮
* */
Senttothe=()=>{
if(this.props.checkIfLogin()===false){
this.props.showLoginDialog()
return
}
if(this.props.current_user&&this.props.current_user.profile_completed===false){
this.setState({
AccountProfiletype:true
})
return
}
let id = this.props.match.params.shixunId;
let url="/shixuns/" + id +"/search_user_courses.json";
this.setState({
Senttothetype:true
})
axios.get(url, {
params: {
page:1,
limit:10
}}).then((response) => {
this.setState({
courses_count:response.data.courses_count,
course_list:response.data.course_list
})
}).catch((error) => {
console.log(error)
});
}
SenttotheSearch=(value)=>{
let id = this.props.match.params.shixunId;
let url="/shixuns/" + id +"/search_user_courses.json?search="+value;
axios.get(url, {
params: {
page:1,
limit:10
}}).then((response) => {
this.setState({
courses_count:response.data.courses_count,
course_list:response.data.course_list,
pages:1,
Searchvalue:value
})
}).catch((error) => {
console.log(error)
});
}
onChangeSenttothevcalue=(e)=>{
this.setState({
Senttothevcalue:e.target.value
})
}
onChangesendeSenttothe=(pageNumber)=>{
let{Searchvalue}=this.state;
let id = this.props.match.params.shixunId;
let url="/shixuns/" + id +"/search_user_courses.json?search="+Searchvalue;
axios.get(url, {
params: {
page:pageNumber,
limit:10
}}).then((response) => {
this.setState({
courses_count:response.data.courses_count,
course_list:response.data.course_list,
pagenum: pageNumber,
pages: pageNumber
})
}).catch((error) => {
console.log(error)
});
}
sendeSenttothevcalue=()=>{
let {Senttothevcalue}=this.state;
if(Senttothevcalue===undefined){
this.setState({
Senttothevcaluetype:true
})
return
}
let id = this.props.match.params.shixunId;
let url="/shixuns/" + id +"/send_to_course.json";
axios.post(url,{
course_id:Senttothevcalue
}).then((response) => {
this.props.showSnackbar(response.data.message);
this.setState({
Senttothetype:false,
Searchvalue:"",
pages:1
})
// window.location.href = response.data.url;
// response.data.course_id
this.props.history.replace("/courses");
}).catch((error) => {
console.log(error)
});
}
hideSenttothevcalue=()=>{
this.setState({
Senttothetype:false,
Searchvalue:"",
pages:1
})
}
/*
* 撤销发布按钮
* */
ModalCancel=()=>{
this.setState({
Modalstype:false
})
}
ModalSave=()=>{
let id = this.props.match.params.shixunId;
let url="/shixuns/" + id +"/cancel_publish.json";
axios.get(url).then((response) => {
this.props.showSnackbar(response.data.message);
window.location.reload()
}).catch((error) => {
console.log(error)
});
}
cancel_publish=()=>{
this.setState({
Modalstype:true,
Modalstopval:"是否确认撤销发布?",
ModalCancel:this.ModalCancel,
ModalSave:this.ModalSave,
})
}
/*
* 申请发布按钮
* */
applyrelease=()=>{
let id = this.props.match.params.shixunId;
let url="/shixuns/" + id +"/publish.json";
axios.get(url).then((response) => {
let evaluation_set_position
if(response.data.evaluation_set_position===null){
evaluation_set_position=[]
}else{
evaluation_set_position=response.data.evaluation_set_position
}
this.setState({
Issuevisible:true,
tag_position:response.data.tag_position,
evaluation_set_position:evaluation_set_position,
publishboxstatus:response.data.status,
})
}).catch((error) => {
console.log(error)
});
};
hiddenIssuevisible=(val)=>{
this.setState({
Issuevisible:false
})
if(val===0||val===1){
window.location.reload()
}
}
//重置按钮
// resetshixunCombat=(id)=>{
// let zrl="/myshixuns/"+id+"/reset_my_game.json";
// axios.get(zrl).then((response) => {
// window.location.href = "/shixuns/" + response.data.shixun_identifier + "/challenges";
// message.success('重置成功');
// }).catch((error) => {
// console.log(error)
// });
// }
// reset_my_game
hidestartshixunsreplace=(url)=>{
this.setState({
isSpin:true,
})
axios.get(url).then((response) => {
if(response.status===200){
// let path="/shixuns/"+response.data.shixun_identifier+"/challenges";
// this.props.history.push(path);
message.success('重置成功,正在进入实训!');
this.startshixunCombat(response.data.shixun_identifier, 1);
this.setState({
shixunsreplace:false,
isSpin:false,
})
// message.success('重置成功,正在进入实训!');
// this.startshixunCombat();
}}
).catch((error) => {
this.setState({
startbtn:false,
shixunsreplace:false,
isSpin:false
})
});
}
//开始实战按钮
startshixunCombat=(id, reset)=>{
if(this.props.checkIfLogin()===false){
this.props.showLoginDialog()
return
}
if(this.props.current_user&&this.props.current_user.profile_completed===false){
this.setState({
AccountProfiletype:true
})
return
}
let {shixunsDetails} = this.props
if( shixunsDetails.shixun_status>1){
this.setState({
startbtn:true,
hidestartshixunsreplacevalue:""
})
}else{
this.setState({
hidestartshixunsreplacevalue:""
})
}
let url="/shixuns/"+id+"/shixun_exec.json" ;
if (reset) {
url += '?reset=' + reset
}
axios.get(url).then((response) => {
if(response.status===200){
if(response.data.status===-2){
// this.resetshixunCombat(response.data.message);
this.setState({
startbtn:false,
shixunsreplace:true,
hidestartshixunsreplacevalue:response.data.message+".json"
})
// this.shixunexec(response.data.message+".json")
}else if(response.data.status===-1){
console.log(response)
}else if(response.data.status===-3){
this.setState({
shixunsmessage:response.data.message,
startshixunCombattype:true,
startbtn:false
})
}else{
// let path="/tasks/"+response.data.game_identifier;
// this.props.history.push(path);
// this.context.router.history.push(path);
if(response.data.status!=401){
window.location.href = "/tasks/"+response.data.game_identifier;
}
}
}
}).catch((error) => {
this.setState({
startbtn:false
})
});
}
tocertification=()=>{
let{certi_url}=this.state;
this.setState({
Forkauthentication:false
})
window.location.href=certi_url;
}
SenttotheValue=(e)=>{
this.setState({
Searchvalue:e.target.value
})
}
hidestartshixunCombattype=()=>{
this.setState({
startshixunCombattype:false
})
}
hideAccountProfile=()=>{
this.setState({
AccountProfiletype:false
})
}
showonMouseOver=()=>{
$("#ratePanel").show();
this.setState({
showradios:true
})
}
hideonMouseOut=()=>{
$("#ratePanel").hide();
this.setState({
showradios:false
})
}
render() {
let {
Forkvisible,
Senttothetype,
Senttothevcalue,
evaluation_set_position,
Forkauthentication,
can_fork,
certi_url,
tag_position,
courses_count,
course_list,
Issuevisible,
publishboxstatus,
showradios,
startbtn,
Searchvalue,
startshixunCombattype,
shixunsmessage,
pages,
shixunsreplace,
hidestartshixunsreplacevalue,
Forkvisibletype,
AccountProfiletype,
isIE} = this.state;
let {shixunsDetails, shixunId, star_info, star_infos} = this.props;
let challengeBtnTipText = '';
let challengeBtnText = '模拟实战';
// let star_info=[]
// if (shixunsDetails.status === 0) {
//
// } else if (shixunsDetails.status === 1) {
//
// } else if (shixunsDetails.status === 2) {
// challengeBtnTipText = '开始学习并完成实战任务'
//
// }
if(shixunsDetails!=undefined){
if (shixunsDetails.shixun_status === 0 ) {
challengeBtnText = '继续实战'
} else if (shixunsDetails.shixun_status === 1) {
challengeBtnText = '查看实战'
} else if (shixunsDetails.shixun_status === 3) {
challengeBtnText = '继续实战'
}else{
challengeBtnText = "开始实战"
}
}
// let list=shixunsDetails.task_operation;
// if(list!=undefined){
// if (shixunsDetails.status === 0 ) {
// for(var i=0; i
{shixunsDetails.name} { shixunsDetails.fork_from === undefined || shixunsDetails.fork_from === null ? "" : }
本实训的开启时间:{shixunsmessage}
开启时间之前不能挑战
*/} {/*知道了*/} {/*
*/}实训已经更新了,正在为您重置!
发布申请已提交,请等待管理员的审核
发布申请已提交,请等待管理员的审核
• 我们将在1-2个工作日内完成审核
第 { evaluation_set_position.map((item, key) => { return ( {item}, ) }) } 关评测设置尚未完成,无法申请发布
每一个关卡至少需要一个技能标签
第
{
tag_position.map((item, key) => {
return (
{item},
)
})
}
关尚未设置技能标签,请补充
尚未创建任务的实训,不能申请发布