diff --git a/public/react/src/modules/tpm/TPMIndex.js b/public/react/src/modules/tpm/TPMIndex.js index 2a650e3d0..c38dd1bca 100644 --- a/public/react/src/modules/tpm/TPMIndex.js +++ b/public/react/src/modules/tpm/TPMIndex.js @@ -2,7 +2,7 @@ import React, { Component } from 'react'; import { BrowserRouter as Router, Route, Link, Switch } from "react-router-dom"; -import { Row, Col ,Menu,Popover,Button} from 'antd'; +import { Row, Col, Menu, Popover, Button } from 'antd'; import Loading from '../../Loading'; @@ -84,8 +84,8 @@ import '../page/tpiPage.css'; //新建实训 const TPMchallengesnew = Loadable({ - loader: () => import('./challengesnew/TPMchallengesnew'), - loading: Loading, + loader: () => import('./challengesnew/TPMchallengesnew'), + loading: Loading, }) //新建实训 // const TPMchallengesnew = Loadable({ @@ -95,8 +95,8 @@ const TPMchallengesnew = Loadable({ //新建tab2 const TPMevaluation = Loadable({ - loader: () => import('./challengesnew/TPMevaluation'), - loading: Loading, + loader: () => import('./challengesnew/TPMevaluation'), + loading: Loading, }) //新建tab3答案 @@ -105,321 +105,279 @@ const TPMevaluation = Loadable({ // loading: Loading, // }) const TPManswer = Loadable({ - loader: () => import('./challengesnew/TPManswer2'), - loading: Loading, + loader: () => import('./challengesnew/TPManswer2'), + loading: Loading, }) //选择题 const TPMquestion = Loadable({ - loader: () => import('./challengesnew/TPMquestion'), - loading: Loading, + loader: () => import('./challengesnew/TPMquestion'), + loading: Loading, }) //fork列表 const TPMFork_listComponent = Loadable({ - loader: () => import('./TPMFork/TPMForklist'), - loading: Loading, + loader: () => import('./TPMFork/TPMForklist'), + loading: Loading, }) //背景知识修改 const TPMUpdatepropaede = Loadable({ - loader: () => import('./TPMUpdatepropaede/TPMUpdatepropaede'), - loading: Loading, + loader: () => import('./TPMUpdatepropaede/TPMUpdatepropaede'), + loading: Loading, }) // 版本库添加文件 const AddFile = Loadable({ - loader: () => import('./shixunchild/Repository/RepositoryAddFile'), - loading: Loading, + loader: () => import('./shixunchild/Repository/RepositoryAddFile'), + loading: Loading, }) // 版本库上传文件 -const Uploadfile= Loadable({ +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'] + , '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:[] - } + 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); - } + 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 - }) - } + 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, - }); - - if(userid){ - if(response.data.identity <4){ - if(newTPMsettings===undefined||newTPMsettings===false||newTPMsettings===null){ - console.log() - this.setState({ - openknows:true - }) - }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) } - } - }).catch((error) => { + let newstar_infos = response.data.score_info; this.setState({ - shixunsDetails: undefined, - shixunId: undefined, - star_info: undefined, - star_infos: undefined, - power: undefined, - identity: undefined, - status: undefined, - propaedeutics:undefined, - is_jupyter:false, + 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); - // }); - - // 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] + if (userid) { + if (response.data.identity < 4) { + if (newTPMsettings === undefined || newTPMsettings === false || newTPMsettings === null) { + console.log() + this.setState({ + openknows: true + }) + } else { + this.setState({ + openknows: false + }) + } + } } - return response; - }, function (error) { - // Do something with response error - return Promise.reject(error); + + } + }).catch((error) => { + this.setState({ + shixunsDetails: undefined, + shixunId: undefined, + star_info: undefined, + star_infos: undefined, + power: undefined, + identity: undefined, + status: undefined, + propaedeutics: undefined, + is_jupyter: false, }); - //右侧数据 - 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() + //右侧数据 + 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 }) - } + 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 - }) + 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)=>{ + handleClick = (e) => { this.setState({ selectedKeys: e.key, }); let id = this.props.match.params.shixunId; - if(e.key==="1"){ + if (e.key === "1") { this.props.history.replace(`/shixuns/${id}/challenges`); - }else if(e.key==="2"){ + } else if (e.key === "2") { this.props.history.replace(`/shixuns/${id}/propaedeutics`); - }else if(e.key==="3"){ + } else if (e.key === "3") { // window.location.href=`/shixuns/${id}/repository`; - this.props.history.push(`/shixuns/${id}/repository`); - }else if(e.key==="4"){ + 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"){ + } else if (e.key === "5") { this.props.history.replace(`/shixuns/${id}/collaborators`); - }else if(e.key==="6"){ + } else if (e.key === "6") { this.props.history.replace(`/shixuns/${id}/dataset`); - }else if(e.key==="7"){ + } else if (e.key === "7") { this.props.history.replace(`/shixuns/${id}/shixun_discuss`); - }else if(e.key==="8"){ + } else if (e.key === "8") { this.props.history.replace(`/shixuns/${id}/ranking_list`); - }else if(e.key==="9"){ + } else if (e.key === "9") { this.props.history.replace(`/shixuns/${id}/settings`); } } - setpathArray=(list)=>{ - this.setState({ - newathArray:list - }) + setpathArray = (list) => { + this.setState({ + newathArray: list + }) } - render() { - - let url = window.location.href; - let flag =false; - // url.indexOf("add_file")>-1; - - return ( -