From 1ab6569f2200831579e0b14a17f0983d3923d9cc Mon Sep 17 00:00:00 2001 From: harry Date: Wed, 18 Mar 2020 21:42:21 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E6=8B=A6=E6=88=AA=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/react/src/modules/tpm/TPMIndex.js | 914 +++++++++++------------ 1 file changed, 436 insertions(+), 478 deletions(-) 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 ( -
- {/*头部*/} - { - !flag && - this.getcomponentdidmount()} - > - } + 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.openknows===true?*/} - {/* */} - {/*
更多设置在这里,点击“配置”看一看~
*/} - {/*
*/} - {/* */} - {/* }*/} - {/* trigger="click"*/} - {/* placement="top"*/} - {/* visible={this.state.openknows}*/} - {/* >*/} - {/* */} - {/*
:""}*/} - - {this.state.identity >4||this.state.identity===undefined ? "": - - 配置 - - } - - {this.state.identity >2||this.state.identity===undefined?"": -
- 审核情况 -
- } -
- -
-
- - {/*筛选*/} - {/*{*/} - {/* tpmindexjupyterbool===false?*/} - - {/* :""*/} - {/*}*/} - {/* */} + } + + +
+ + + + + + 任务 + + + {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.openknows===true?*/} + {/* */} + {/*
更多设置在这里,点击“配置”看一看~
*/} + {/*
*/} + {/* */} + {/* }*/} + {/* trigger="click"*/} + {/* placement="top"*/} + {/* visible={this.state.openknows}*/} + {/* >*/} + {/* */} + {/*
:""}*/} + + {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()} />) + }> + + {/*实训项目条目塞选*/} + () + }> + {/*合作者*/} + () + }> + + () + }> + + () + }> - (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 )); +export default SnackbarHOC()(TPMIndexHOC(TPMIndex));