diff --git a/app/controllers/admins/shixun_settings_controller.rb b/app/controllers/admins/shixun_settings_controller.rb index 1fcac9362..fd06fddb3 100644 --- a/app/controllers/admins/shixun_settings_controller.rb +++ b/app/controllers/admins/shixun_settings_controller.rb @@ -112,9 +112,9 @@ class Admins::ShixunSettingsController < Admins::BaseController sheet1[count_row, 2] = shixun.mirror_repositories.select{|mr| mr.main_type == "1"}.first&.type_name sheet1[count_row, 3] = shixun.fork_from sheet1[count_row, 4] = shixun.shixun_status - sheet1[count_row, 5] = shixun.user.show_real_name - sheet1[count_row, 6] = shixun.user.school_name - sheet1[count_row, 7] = shixun.user.identity + sheet1[count_row, 5] = shixun.user&.show_real_name + sheet1[count_row, 6] = shixun.user&.school_name + sheet1[count_row, 7] = shixun.user&.identity challenge_count = shixun.challenges.count shixun.challenges.each_with_index do |challenge, index| sheet1[count_row, 8] = "第#{challenge.position}关" diff --git a/public/react/src/common/components/comment/index.scss b/public/react/src/common/components/comment/index.scss index 41371e8cc..e45ae4e5d 100644 --- a/public/react/src/common/components/comment/index.scss +++ b/public/react/src/common/components/comment/index.scss @@ -180,7 +180,7 @@ $ml: 20px; background: #fff; left: 0px; right: 0px; - top: -250px; + top: -230px; padding: 0 20px; } } \ No newline at end of file diff --git a/public/react/src/modules/tpm/TPMIndex.js b/public/react/src/modules/tpm/TPMIndex.js index 83f3b143e..712b7909c 100644 --- a/public/react/src/modules/tpm/TPMIndex.js +++ b/public/react/src/modules/tpm/TPMIndex.js @@ -163,142 +163,136 @@ class TPMIndex extends Component { componentDidUpdate(prevProps, prevState) { - if (prevProps != this.props) { - if (prevProps.user != this.props.user) { - let getnewTPMsettings=this.props.user&&this.props.user.user_id+'newTPMsettings'; - let newTPMsettings=window.localStorage.getItem(getnewTPMsettings) - if(this.state.identity <4){ - if(newTPMsettings===undefined||newTPMsettings===false||newTPMsettings===null){ - this.setState({ - openknows:true - }) - }else{ - this.setState({ - openknows:false - }) - } - } + if (prevProps!=this.props) { + + 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:true + }) + }else{ + this.setState({ + openknows:false + }) + } + } } - } - - componentDidMount = () => { - - 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(response.data.identity <4){ - - if(newTPMsettings===undefined||newTPMsettings===false||newTPMsettings===null){ - this.setState({ - openknows:true - }) - }else{ - this.setState({ - openknows:false - }) - } - } - + getcomponentdidmount=()=>{ + 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) => { - this.setState({ - shixunsDetails: undefined, - shixunId: undefined, - star_info: undefined, - star_infos: undefined, - power: undefined, - identity: undefined, - status: undefined, - propaedeutics:undefined, - is_jupyter:false, - }); - }); - - 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 - } + } + 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(response.data.identity <4){ + if(newTPMsettings===undefined||newTPMsettings===false||newTPMsettings===null){ + this.setState({ + openknows:true + }) + }else{ + this.setState({ + openknows:false + }) } - return config; - }, function (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, }); + }); - // 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]; + 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] - if (cacheInterceptorUrlMap[url]) { + console.log('loadingContent, url:', url) - this.setState({ loadingContent: false }) - delete cacheInterceptorUrlMap[response.url] - } - return response; - }, function (error) { - // Do something with response error - return Promise.reject(error); - }); + 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] + } + 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)=> { @@ -311,6 +305,10 @@ class TPMIndex extends Component { }) this.getnavdatas() } + componentDidMount = () => { + this.getcomponentdidmount() + + } componentWillUnmount = () => { axios.interceptors.request.eject(this.tpmContentRequestInterceptor); @@ -382,7 +380,6 @@ class TPMIndex extends Component { let url = window.location.href; let flag = url.indexOf("add_file")>-1; - return (
{/*头部*/} @@ -447,7 +444,7 @@ class TPMIndex extends Component { { this.state.is_jupyter===false? 排行榜 :""} - + {this.state.identity >4||this.state.identity===undefined ? "": @@ -460,7 +457,7 @@ class TPMIndex extends Component { visible={this.state.openknows} > - + } {this.state.identity >4||this.state.identity===undefined ? "": diff --git a/public/react/src/modules/tpm/component/TPMRightSection.js b/public/react/src/modules/tpm/component/TPMRightSection.js index 545032e56..70bec797a 100644 --- a/public/react/src/modules/tpm/component/TPMRightSection.js +++ b/public/react/src/modules/tpm/component/TPMRightSection.js @@ -172,40 +172,44 @@ class TPMRightSection extends Component {
{ TPMRightSectionData === undefined ? "" : TPMRightSectionData.paths === undefined ? "" : TPMRightSectionData.paths.map((i, k) => { + if(k>2){ - return ( + }else{ + return ( -
+
- - 实训 - + + 实训 + -
- {i.name} -

+

+ {i.name} +

- + {i.stages_count} - + - {/**/} - {/*{i.score_count}*/} - {/**/} + {/**/} + {/*{i.score_count}*/} + {/**/} - + {i.members_count} - + + +

+
-

-
+ ) + } - ) }) }
@@ -222,23 +226,28 @@ class TPMRightSection extends Component {
{ TPMRightSectionData === undefined ? "" : TPMRightSectionData.recommands === undefined ? "" : TPMRightSectionData.recommands.map((item, key) => { - return ( -
- - 69?1526971094 - -
- - {item.name} - -

- {item.stu_num} 人学习 -

-

{item.level}

+ if(key>2){ + + }else{ + return ( +
+ + 69?1526971094 + +
+ + {item.name} + +

+ {item.stu_num} 人学习 +

+

{item.level}

+
-
- ) + ) + } + }) }
diff --git a/public/react/src/modules/tpm/shixunchild/Collaborators/Collaborators.js b/public/react/src/modules/tpm/shixunchild/Collaborators/Collaborators.js index 33440bbe1..eceb6c5db 100644 --- a/public/react/src/modules/tpm/shixunchild/Collaborators/Collaborators.js +++ b/public/react/src/modules/tpm/shixunchild/Collaborators/Collaborators.js @@ -88,17 +88,20 @@ class Collaborators extends Component { this.setState({ Collaboratorsvisibleadmin: false, Collaboratorslist: [], - Searchadmin: [] + Searchadmin: [], + addadminrediovalue:undefined }); } else if (type === "admin") { this.setState({ Collaboratorsvisible: false, Collaboratorslist: [], - Searchadmin: [] + Searchadmin: [], + addadminrediovalue:undefined }); } else if (type === "collaborators_deletetype") { this.setState({ collaborators_deletetype: false, + addadminrediovalue:undefined }); } } @@ -312,12 +315,13 @@ class Collaborators extends Component { let url = "/shixuns/" + id + "/change_manager.json"; if (addadminrediovalue === undefined) { this.setState({ - Collaboratorsvisible: false, - Collaboratorslist: [], - Searchadmin: [] + // Collaboratorsvisible: false, + // Collaboratorslist: [], + // Searchadmin: [], + addadminrediovalue:undefined }); this.props.showNotification("所选人员为空,没有更换成功"); - this.CollaboratorsshowModal("admin") + // this.CollaboratorsshowModal("admin") return } @@ -328,7 +332,8 @@ class Collaborators extends Component { this.setState({ Collaboratorsvisible: false, Collaboratorslist: [], - Searchadmin: [] + Searchadmin: [], + addadminrediovalue:undefined }); this.updatacomponentDiddata(); this.props.showNotification(response.data.message); diff --git a/public/react/src/modules/user/usersInfo/InfosShixun.js b/public/react/src/modules/user/usersInfo/InfosShixun.js index 8cb3caf36..b5811e44f 100644 --- a/public/react/src/modules/user/usersInfo/InfosShixun.js +++ b/public/react/src/modules/user/usersInfo/InfosShixun.js @@ -214,12 +214,15 @@ class InfosShixun extends Component{
  • this.changeCategory()} className="font-16 w32">全部
  • this.changeCategory("manage")} + href="javascript:void(0)" className={is_current ? "font-16 w66" : "font-16 w80"}>{is_current ? "我" : "TA"}管理的
  • this.changeCategory("study")} + href="javascript:void(0)" className={is_current ? "font-16 w66" : "font-16 w80"}>{is_current ? "我" : "TA"}学习的