import React, { Component } from 'react'; import { Route, Link, Switch } from "react-router-dom"; import { Row, Col, Menu } from 'antd'; import Loading from '../../Loading'; import { Loadable } from 'educoder'; import TPMIndexHOC from './TPMIndexHOC'; import { SnackbarHOC } from 'educoder'; import TPMBanner from './TPMBanner'; import axios from 'axios'; import TPMShixunDiscussContainer from './TPMShixunDiscussContainer'; import TPMRepositoryComponent from './TPMRepositoryComponent'; import TPMRepositoryCommits from './shixunchild/Repository/TPMRepositoryCommits'; import TPMsettings from './TPMsettings/TPMsettings'; import TPMChallengeComponent from './TPMChallengeContainer'; import TPMPropaedeuticsComponent from './TPMPropaedeuticsComponent'; import TPMRanking_listComponent from './TPMRanking_listContainer'; import TPMCollaboratorsComponent from './TPMCollaboratorsContainer'; import Audit_situationComponent from './Audit_situationComponent'; import TPMDataset from './TPMDataset'; import '../page/tpiPage.css'; //任务 // const TPMChallengeComponent = Loadable({ // loader: () => import('./TPMChallengeContainer'), // loading: Loading, // }) //背景知识 // const TPMPropaedeuticsComponent = Loadable({ // loader: () => import('./TPMPropaedeuticsComponent'), // loading: Loading, // }) //版本库 // const TPMRepositoryComponent = Loadable({ // loader: () => import('./TPMRepositoryComponent'), // loading: Loading, // }) // const TPMRepositoryComponent = Loadable({ // loader: () => import('./TPMRepositoryComponent'), // loading: Loading, // }) //合作 // const TPMCollaboratorsComponent = Loadable({ // loader: () => import('./TPMCollaboratorsContainer'), // loading: Loading, // }) //评论 // const TPMShixunDiscussComponent = Loadable({ // loader: () => import('./TPMShixunDiscussContainer'), // loading: Loading, // }) //排行版 // const TPMRanking_listComponent = Loadable({ // loader: () => import('./TPMRanking_listContainer'), // loading: Loading, // }) // //编辑实训 // const TPMModifysettings = Loadable({ // loader: () =>import('./modules/tpm/TPMsettings/TPMsettings'), // loading: Loading, // }) //新建实训 const TPMchallengesnew = Loadable({ loader: () => import('./challengesnew/TPMchallengesnew'), loading: Loading, }) //新建实训 // const TPMchallengesnew = Loadable({ // loader: () => import('./challengesnew/TpmTask/TpmTaskIndex'), // loading: Loading, // }) //新建tab2 const TPMevaluation = Loadable({ loader: () => import('./challengesnew/TPMevaluation'), loading: Loading, }) //新建tab3答案 // const TPManswer = Loadable({ // loader: () => import('./challengesnew/TPManswer'), // loading: Loading, // }) const TPManswer = Loadable({ loader: () => import('./challengesnew/TPManswer2'), loading: Loading, }) //选择题 const TPMquestion = Loadable({ loader: () => import('./challengesnew/TPMquestion'), loading: Loading, }) //fork列表 const TPMFork_listComponent = Loadable({ loader: () => import('./TPMFork/TPMForklist'), loading: Loading, }) //背景知识修改 const TPMUpdatepropaede = Loadable({ loader: () => import('./TPMUpdatepropaede/TPMUpdatepropaede'), loading: Loading, }) // 版本库添加文件 const AddFile = Loadable({ loader: () => import('./shixunchild/Repository/RepositoryAddFile'), loading: Loading, }) // 版本库上传文件 const Uploadfile = Loadable({ loader: () => import('./shixunchild/Repository/RepositoryAddFileupload_file'), loading: Loading, }) const interceptorUrlArray = ['repository.json', 'commits.json', 'propaedeutics.json' , 'challenges.json', 'discusses.json', 'ranking_list.json', 'collaborators.json'] const cacheInterceptorUrlMap = {} class TPMIndex extends Component { constructor(props) { super(props) this.state = { loadingContent: false, power: false, shixunsDetails: {}, shixunId: undefined, star_info: [0, 0, 0, 0, 0, 0], star_infos: [0, 0, 0, 0, 0, 0], identity:undefined, TPMRightSectionData:undefined, PropaedeuticsList: undefined, tpmindexjupyterbool:false, is_jupyter:false, selectedKeys:"", openknows:false, newathArray:[] } } } openknow = () => { let storage = window.localStorage; this.setState({ openknows: false }) let newTPMsettings = this.props.user && this.props.user.user_id + 'newTPMsettings' storage.setItem(newTPMsettings, false); } componentDidUpdate(prevProps, prevState) { if (prevProps != this.props) { if (this.props.user && this.props.user.user_id) { let getnewTPMsettings = this.props.user && this.props.user.user_id + 'newTPMsettings'; let newTPMsettings = window.localStorage.getItem(getnewTPMsettings) if (newTPMsettings === undefined || newTPMsettings === false || newTPMsettings === null) { this.setState({ openknows: false }) } else { this.setState({ openknows: false }) } } } } getcomponentdidmount = () => { let userid = this.props.user && this.props.user.user_id; let getnewTPMsettings = this.props.user && this.props.user.user_id + 'newTPMsettings'; let newTPMsettings = window.localStorage.getItem(getnewTPMsettings) let id = this.props.match.params.shixunId; // console.log('props', this.props); // let collaborators = `/shixuns/` + id + `/propaedeutics.json`; // // axios.get(collaborators).then((response) => { // if (response.status === 200) { // if (response.data.status === 403||response.data.status === 401||response.data.status === 500) { // // }else{ // this.setState({ // PropaedeuticsList: response.data, // shixunId: id // }); // } // // } // }).catch((error) => { // console.log(error) // }); let Url = `/shixuns/` + id + `.json`; axios.get(Url).then((response) => { if (response.status === 200) { document.title = response.data.name; let newstar_info = []; // let start1= for (var i = 0; i < response.data.score_info.length; i++) { if (i === 0) { newstar_info.push(response.data.score_info[i]) } else { newstar_info.push((response.data.score_info[i] / 100) * 5) } } let newstar_infos = response.data.score_info; this.setState({ shixunsDetails: response.data, shixunId: id, star_info: newstar_info, star_infos: newstar_infos, power: response.data.power, identity: response.data.identity, propaedeutics: response.data.propaedeutics, status: response.data.shixun_status, secret_repository: response.data.secret_repository, public: response.data.public, is_jupyter: response.data.is_jupyter === undefined || response.data.is_jupyter === null ? false : response.data.is_jupyter, }); }); // this.tpmContentRequestInterceptor = axios.interceptors.request.use((config) => { // let url = config.url; // // console.log('tpmContentRequestInterceptor:', url) // for ( let i = 0; i < interceptorUrlArray.length; i++ ) { // if (url.indexOf(interceptorUrlArray[i]) != -1) { // url = url.split('?')[0] // console.log('loadingContent, url:', url) // // this.setState({ loadingContent: true }) // // cacheInterceptorUrlMap[url] = true // } // } // return config; // }, function (error) { // return Promise.reject(error); // }); this.tpmContentRequestInterceptor = axios.interceptors.request.use((config) => { let url = config.url; // console.log('tpmContentRequestInterceptor:', url) for (let i = 0; i < interceptorUrlArray.length; i++) { if (url.indexOf(interceptorUrlArray[i]) != -1) { url = url.split('?')[0] console.log('loadingContent, url:', url) this.setState({ loadingContent: false }) cacheInterceptorUrlMap[url] = true } } return config; }, function (error) { return Promise.reject(error); }); // Add a response interceptor this.tpmContentResponseInterceptor = axios.interceptors.response.use((response) => { // console.log('loadingContent finished, url:', response.config.url) // TODO 依赖了api这个前缀 let url = response.config.url.split('api')[1]; url = url.split('?')[0] if (cacheInterceptorUrlMap[url]) { this.setState({ loadingContent: false }) delete cacheInterceptorUrlMap[response.url] } return response; }, function (error) { // Do something with response error return Promise.reject(error); }); //右侧数据 let shixunsDetailsURL = `/shixuns/` + id + `/show_right.json`; axios.get(shixunsDetailsURL).then((response) => { if (response.data) { } this.setState({ TPMRightSectionData: response.data }); }) this.getnavdatas() } componentDidMount = () => { this.getcomponentdidmount() } componentWillUnmount = () => { axios.interceptors.request.eject(this.tpmContentRequestInterceptor); this.tpmContentRequestInterceptor = null; axios.interceptors.request.eject(this.tpmContentResponseInterceptor); this.tpmContentResponseInterceptor = null; // this.getnavdatas() } setLoadingContent = (isLoadingContent) => { // this.setState({ loadingContent: isLoadingContent }) } getnavdatas = () => { let selectedKeys; const { location } = this.props; if (location.pathname.indexOf('/challenges') != -1) { selectedKeys = "1" } else if (location.pathname.indexOf('/propaedeutics') != -1) { selectedKeys = "2" } else if (location.pathname.indexOf('/repository') != -1) { selectedKeys = "3" } else if (location.pathname.indexOf('/secret_repository') != -1) { selectedKeys = "4" } else if (location.pathname.indexOf('/collaborators') != -1) { selectedKeys = "5" } else if (location.pathname.indexOf('/dataset') != -1) { selectedKeys = "6" } else if (location.pathname.indexOf('/shixun_discuss') != -1) { selectedKeys = "7" } else if (location.pathname.indexOf('/ranking_list') != -1) { selectedKeys = "8" } else if (location.pathname.indexOf('/settings') != -1) { selectedKeys = "9" } this.setState({ selectedKeys: selectedKeys }) } handleClick = (e) => { this.setState({ selectedKeys: e.key, }); let id = this.props.match.params.shixunId; if (e.key === "1") { this.props.history.replace(`/shixuns/${id}/challenges`); } else if (e.key === "2") { this.props.history.replace(`/shixuns/${id}/propaedeutics`); }else if(e.key==="3"){ // window.location.href=`/shixuns/${id}/repository`; this.props.history.push(`/shixuns/${id}/repository`); }else if(e.key==="4"){ // window.location.href=`/shixuns/${id}/secret_repository`; this.props.history.push(`/shixuns/${id}/secret_repository`); }else if(e.key==="5"){ this.props.history.replace(`/shixuns/${id}/collaborators`); } else if (e.key === "6") { this.props.history.replace(`/shixuns/${id}/dataset`); } else if (e.key === "7") { this.props.history.replace(`/shixuns/${id}/shixun_discuss`); } else if (e.key === "8") { this.props.history.replace(`/shixuns/${id}/ranking_list`); } else if (e.key === "9") { this.props.history.replace(`/shixuns/${id}/settings`); } } setpathArray=(list)=>{ this.setState({ newathArray:list }) } render() { let url = window.location.href; let flag =false; // url.indexOf("add_file")>-1; return (
{/*头部*/} { !flag && this.getcomponentdidmount()} > }
任务 {this.state.propaedeutics === undefined ? "" : this.state.propaedeutics === false ? "" : 背景知识 } {this.state.identity > 4 || this.state.identity === undefined ? "" : this.state.is_jupyter === false ? 版本库 : ""} {this.state.identity > 4 || this.state.identity === undefined ? "" : this.state.secret_repository && 私密版本库 } 合作者 {this.state.identity > 4 || this.state.identity === undefined ? "" : this.state.is_jupyter === true ? 数据集 : ""} {this.state.is_jupyter === false ? 评论 : ""} {this.state.is_jupyter === false ? 排行榜 : ""} {this.state.identity > 4 || this.state.identity === undefined ? "" : 配置 } {this.state.identity > 2 || this.state.identity === undefined ? "" :
审核情况
{/*筛选*/} {/*{*/} {/* tpmindexjupyterbool===false?*/} {/* :""*/} {/*}*/} {/* */} () }> () }> {/*任务*/} () }> () }> () }> () }> () }> () }> () }> () }> () }> {/* */} () }> () }> (this.setpathArray(value)} />) }> (this.setpathArray(value)} />) }> (this.setpathArray(value)} />) }> (this.setpathArray(value)} />) }> {/* */} {/* */} (this.initForumState(data)} setSearchValue={this.setSearchValue} setHotLabelIndex={this.setHotLabelIndex} />) }> (this.getcomponentdidmount()} />) }> {/*实训项目条目塞选*/} () }> {/*合作者*/} () }> () }> () }> () }> {/*评测设置*/} () }> {/*参考答案*/} () }> {/*新建关卡*/} () }> {/*编辑关卡*/} () }> {/*新建选择题*/} () }> {/*修改选择题*/} () }> {/*修改选择题*/} () }> () }> {/**/}
); } } export default SnackbarHOC()(TPMIndexHOC(TPMIndex));