forgeplus-react/src/modules/tpm/NewHeader.js

1074 lines
31 KiB
JavaScript

import React, { Component } from 'react';
import { Link } from "react-router-dom";
import AccountProfile from"../user/AccountProfile";
import { getImageUrl } from 'educoder'
import axios from 'axios';
import { Modal , Input , message , notification } from 'antd';
import LoginDialog from '../login/LoginDialog';
import GotoQQgroup from '../../modal/GotoQQgroup'
import 'antd/lib/modal/style/index.css';
import 'antd/lib/checkbox/style/index.css';
import 'antd/lib/radio/style/index.css';
import 'antd/lib/input/style/index.css';
import './TPMIndex.css';
const $ = window.$
// TODO 这部分脚本从公共脚本中直接调用
const { Search } = Input;
let old_url;
window._header_componentHandler = null;
class NewHeader extends Component {
constructor(props) {
super(props)
this.state={
Addcoursestypes:false,
tojoinitemtype:false,
tojoinclasstitle:undefined,
rolearr:["",""],
Checkboxteacherchecked:false,
Checkboxstudentchecked:false,
Checkboxteachingchecked:false,
Checkboxteachertype:false,
Checkboxteachingtype:false,
code_notice:false,
checked_notice:false,
RadioGroupvalue:undefined,
submitapplications:false,
isRender:false,
showSearchOpentype:false,
showTrial:false,
setevaluatinghides:false,
occupation:0,
mydisplay:false,
headtypesonClickbool:false,
headtypess:"/",
mygetHelmetapi2: null,
goshowqqgtounp:false,
visiblemyss:false,
}
}
componentDidUpdate = (prevProps) => {
if(this.state.mygetHelmetapi2===undefined){
this.getAppdata();
}
}
componentDidMount() {
this.getAppdata();
window._header_componentHandler = this;
//下拉框的显示隐藏
var hoverTimeout;
var hoveredPanel;
$(".edu-menu-panel").hover(function(){
if (hoverTimeout) { // 一次只显示一个panel
if (hoveredPanel && hoveredPanel !== this) {
$(hoveredPanel).find(".edu-menu-list").hide()
}
clearTimeout(hoverTimeout);
hoverTimeout = null;
}
hoveredPanel = this;
$(this).find(".edu-menu-list").show();
},function(){
var that =this;
// 延迟hide
hoverTimeout = setTimeout(function() {
$(that).find(".edu-menu-list").hide();
}, 800)
});
//获取游览器地址
try {
window.sessionStorage.setItem("yslgeturls", JSON.stringify(window.location.href))
} catch (e) {
}
}
openNotification = (messge) => {
notification.open({
message: "提示",
description:
messge,
});
};
componentWillReceiveProps(newProps, oldProps) {
this.setState({
user:newProps.user
})
if(newProps.Headertop!==undefined){
old_url=newProps.Headertop.old_url
}
}
getCookie=(key)=>{
var arr,reg = RegExp('(^| )'+key+'=([^;]+)(;|$)');
if (arr === document.cookie.match(reg))
return decodeURIComponent(arr[2]);
else
return null;
}
delCookie=(name)=>{
var exp = new Date();
exp.setTime(exp.getTime() - 1);
var cval=this.getCookie(name);
if(cval!=null){
document.cookie= name + "="+cval+";expires="+exp.toGMTString();
}
}
onLogout = () => {
const url = `/accounts/logout.json`
this.delCookie("autologin_trustie")
axios.get(url, {
})
.then((response) => {
if(response.data.status===1){
this.setState({
user:undefined
})
window.location.href ="/login"
message.success('退出成功');
}
});
}
tojoinclass=()=>{
let{user} =this.state;
if(user===undefined){
this.setState({
isRender:true
})
return
}
if(user&&user.login===""){
this.setState({
isRender:true
})
return;
}
if(user&&user.profile_completed===false){
this.setState({
AccountProfiletype:true
})
return;
}
this.setState({
Addcoursestypes:true,
})
}
tojoinitem=()=>{
if(this.props.user && this.props.user.email===undefined || this.props.user && this.props.user.email===null || this.props.user && this.props.user.email===""){
this.openNotification("请先绑定邮箱,谢谢");
return
}
let{user} =this.state;
if(user===undefined){
this.setState({
isRender:true
})
return
}
if(user&&user.login===""){
this.setState({
isRender:true
})
return;
}
if(user&&user.profile_completed===false){
this.setState({
AccountProfiletype:true
})
return;
}
this.setState({
tojoinitemtype:true
})
}
submitstatevalue=(sum,value,data)=>{
this.setState({
Addcoursestypes:false,
tojoinitemtype:false,
tojoinclasstitle:undefined,
rolearr:["",""],
Checkboxteacherchecked:false,
Checkboxstudentchecked:false,
Checkboxteachingchecked:false,
Checkboxteachertype:false,
Checkboxteachingtype:false,
code_notice:false,
checked_notice:false,
submitapplicationssum:sum,
submitapplications:true,
submitapplicationsvalue:value,
submitapplicationsvaluedata:data,
RadioGroupvalue:undefined
})
}
onChangeRadioGroup = (e) => {
this.setState({
RadioGroupvalue: e.target.value,
});
}
submitsubmitapplications=()=>{
let {
submitapplicationssum,
submitapplicationsvaluedata
}=this.state;
this.setState({
submitapplications:false,
RadioGroupvalue:undefined
})
if(submitapplicationssum===0){
if(submitapplicationsvaluedata!==undefined){
window.location.href = "/courses/"+submitapplicationsvaluedata;
}
}else if(submitapplicationssum===1){
if(submitapplicationsvaluedata!==undefined){
window.location.href = "/projects/"+submitapplicationsvaluedata;
}
}
}
hidesubmitapplications=()=>{
this.setState({
Addcoursestypes:false,
tojoinitemtype:false,
tojoinclasstitle:undefined,
rolearr:["",""],
Checkboxteacherchecked:false,
Checkboxstudentchecked:false,
Checkboxteachingchecked:false,
Checkboxteachertype:false,
Checkboxteachingtype:false,
code_notice:false,
checked_notice:false,
submitapplications:false,
RadioGroupvalue:undefined
})
}
educoderlogin=()=>{
//登录账号
this.setState({
isRender:true
})
}
educoderloginysl=()=>{
//退出账号
var url = `/accounts/logout.json`;
axios.get((url)).then((result) => {
if(result!==undefined){
window.location.href = "/";
}
}).catch((error) => {
console.log(error);
})
}
hideAddcoursestypes=()=>{
this.setState({
Addcoursestypes:false
})
};
HideAddcoursestypess=(i)=>{
console.log("调用了");
this.setState({
Addcoursestypes:false,
mydisplay:true,
occupation:i,
})
};
ModalCancelsy=()=>{
this.setState({
mydisplay:false,
})
};
hidetojoinclass=()=>{
this.setState({
tojoinclasstype:false,
tojoinitemtype:false,
tojoinclasstitle:undefined,
rolearr:["",""],
Checkboxteacherchecked:false,
Checkboxstudentchecked:false,
Checkboxteachingchecked:false,
Checkboxteachertype:false,
Checkboxteachingtype:false,
code_notice:false,
checked_notice:false,
RadioGroupvalue:undefined
})
}
submittojoinclass=(value)=>{
let {tojoinclasstitle,rolearr,RadioGroupvalue}=this.state;
if(tojoinclasstitle===undefined){
this.setState({
code_notice:true
})
return
}
let newrolearr=rolearr;
if(tojoinclasstitle.length<6){
this.setState({
code_notice:true
})
return
}
if(tojoinclasstitle===""||tojoinclasstitle===undefined){
this.setState({
code_notice:true
})
return
}else{
this.setState({
code_notice:false
})
}
let pamst=[];
let num=0;
for(var i = 0 ; i<newrolearr.length;i++){
if(newrolearr[i]!=""){
pamst.push(newrolearr[i])
}else{
num=num+1
}
}
if(num===2&&value===0){
this.setState({
checked_notice:true
})
return
}
if(value===1&&RadioGroupvalue===undefined){
this.setState({
checked_notice:true
})
return
}
if(value===1){
let url="/project_applies.json";
axios.post(url,{
code:tojoinclasstitle,
role:RadioGroupvalue
}
).then((response) => {
if( response.data.status===1){
this.submitstatevalue(1,"您输入的邀请码错误")
}else if( response.data.status===2){
this.submitstatevalue( 1,"您已经是该项目成员",response.data.project)
}else if( response.data.status===3){
this.submitstatevalue( 1,"请选择一个角色")
}else if( response.data.status===4){
this.submitstatevalue( 1,"您的申请已提交,请等待项目管理员审批")
}else if( response.data.status===5){
this.submitstatevalue( 1,"您已经申请加入该项目了,请耐心等待")
}else if( response.data.status===6){
this.submitstatevalue( 1,"您已成功加入项目",response.data.project)
}else if( response.data.status===0){
if(RadioGroupvalue==="reporter"){
this.openNotification("您加入项目成功!");
window.location.href=`/projects/${response.data.project_id}`;
}else{
this.openNotification("您的申请已提交,请等待项目管理员审批!");
}
}
})
}
this.hidetojoinclass()
}
// 关闭
cancelModulationModels = () => {
this.setState({isRenders: false})
}
inputjoinclassvalue=(e)=>{
console.log(e.target.value.length);
if(e.target.value.length>=7){
this.openNotification("请输入6位项目邀请码!");
return
}
this.setState({
tojoinclasstitle:e.target.value
})
}
showSearchOpen=(e)=>{
this.setState({
showSearchOpentype:true
})
}
hideshowSearchOpen=(e)=>{
let {setevaluatinghides}=this.state;
if(setevaluatinghides===true){
this.setState({
showSearchOpentype:false,
setevaluatinghides:false
})
}
}
onKeywordSearchKeyDown = (value) => {
let url=`/search?value=${value}`;
this.props.history.push(url)
}
onKeywordSearchKeyDowns=()=>{
this.setState(
{
setevaluatinghides:false
}
)
}
setevaluatinghides=()=>{
this.setState(
{
setevaluatinghides:true
}
)
}
//头部获取是否已经登录了
getUser=(url,type)=>{
if(type==="projects"){
if(this.props.user && this.props.user.email===undefined||this.props.user&&this.props.user.email===null||this.props.user&&this.props.user.email===""){
this.openNotification("请先绑定邮箱,谢谢");
return
}
}
let{user} =this.state;
if(user===undefined){
this.setState({
isRender:true
})
return
}
if(user&&user.login===""){
this.setState({
isRender:true
})
return;
}
if(user&&user.profile_completed===false){
this.setState({
AccountProfiletype:true
})
return;
}
if(type==="newshixuns"){
if(this.props&&this.props.current_user&&this.props.current_user.is_shixun_marker===false){
this.setgoshowqqgtounp(true);
return;
}
}
if(url !== undefined || url!==""){
window.location.href = url;
}
}
//修改登录方法
Modifyloginvalue=()=>{
this.setState({
isRender:false,
})
}
hideAccountProfile=()=>{
this.setState({
AccountProfiletype:false
})
};
headtypesonClick=(url,bool)=>{
this.setState({
headtypess:url,
headtypesonClickbool:bool,
})
}
//获取数据为空的时候
gettablogourlnull = () => {
this.setState({
mygetHelmetapi2: undefined
});
var link = document.createElement('link'),
oldLink = document.getElementById('dynamic-favicon');
link.id = 'dynamic-favicon';
link.rel = 'shortcut icon';
link.href = "/react/build/./favicon.ico";
if (oldLink) {
document.head.removeChild(oldLink);
}
document.head.appendChild(link);
};
//获取数据的时候
gettablogourldata = (response) => {
document.title = response.data.setting.name;
var link = document.createElement('link'),
oldLink = document.getElementById('dynamic-favicon');
link.id = 'dynamic-favicon';
link.rel = 'shortcut icon';
link.href = '/' + response.data.setting.tab_logo_url;
if (oldLink) {
document.head.removeChild(oldLink);
}
document.head.appendChild(link);
}
handleVisibleChanges = (boll) => {
this.setState({
visiblemyss: boll,
})
}
getAppdata=()=>{
try {
var chromesettingArray = JSON.parse(localStorage.getItem('chromesetting'));
var chromesettingresponseArray = JSON.parse(localStorage.getItem('chromesettingresponse'));
this.setState({
mygetHelmetapi2:chromesettingArray
});
if (chromesettingArray.tab_logo_url) {
this.gettablogourldata(chromesettingresponseArray);
} else {
this.gettablogourlnull();
}
}catch (e) {
this.geturlsdata();
}
};
geturlsdata=()=>{
let url = "/setting.json";
axios.get(url).then((response) => {
if(response){
if(response.data){
this.setState({
mygetHelmetapi2:response.data.setting
});
localStorage.setItem('chromesetting',JSON.stringify(response.data.setting));
localStorage.setItem('chromesettingresponse',JSON.stringify(response));
try {
if (response.data.setting.tab_logo_url) {
this.gettablogourldata(response);
} else {
this.gettablogourlnull();
}
} catch (e) {
this.gettablogourlnull();
}
} else {
this.gettablogourlnull();
}
} else {
this.gettablogourlnull();
}
}).catch((error) => {
this.gettablogourlnull();
});
}
matchpaths=(url)=>{
const {match} = this.props;
if (url=== '/forums'&&match.path === '/forums') {
return true
} else if (url.startsWith('/projects')&&match.path.startsWith('/projects')) {
return true
}else if (url.startsWith('/paths')&&match.path.startsWith('/paths')) {
return true
} else if (url.startsWith('/courses')&&match.path.startsWith('/courses')) {
return true
}else if (url.startsWith('/competitions')&&match.path.startsWith('/competitions')) {
return true
}else if (url.startsWith('/statistics')&&match.path.startsWith('/statistics')) {
return true
} else {
return false
}
}
// 处理弹框
setgoshowqqgtounp=(bool)=>{
this.setState({
goshowqqgtounp:bool
})
}
render() {
const isLogin = true; // 这里不会出现未登录的情况,服务端在服务端路由时发现如果是未登录,则跳转到登录页了。
const {match} = this.props;
let {Addcoursestypes,
tojoinitemtype,
tojoinclasstitle,
code_notice,
checked_notice,
AccountProfiletype,
submitapplications,
submitapplicationsvalue,
user,
isRender,
showSearchOpentype,
headtypesonClickbool,
headtypess,
mygetHelmetapi2,
goshowqqgtounp,
}=this.state;
/*
用户名称 用户头像url
*/
let activeIndex = false;
let activeForums = false;
let activeShixuns = false;
let activePaths = false;
let coursestype=false;
let activePackages=false;
let activeMoopCases=false;
let activeCompetitions=false;
if (match.path === '/forums') {
activeForums = true;
} else if (match.path.startsWith('/shixuns')) {
activeShixuns = true;
}else if (match.path.startsWith('/paths')) {
activePaths = true;
} else if (match.path.startsWith('/courses')) {
coursestype = true;
}else if (match.path.startsWith('/crowdsourcing')) {
activePackages = true;
}else if(match.path.startsWith('/moop_cases')){
activeMoopCases = true;
}else if(match.path.startsWith('/competitions')){
activeCompetitions = true;
}else {
activeIndex = true;
}
let headtypes='/';
if(mygetHelmetapi2) {
if (mygetHelmetapi2.navbar) {
if (mygetHelmetapi2.navbar.length > 0) {
if (match.path === '/') {
if (headtypesonClickbool === false) {
headtypes = undefined;
} else {
headtypes = headtypess;
}
} else {
for (var i = 0; i < mygetHelmetapi2.navbar.length; i++) {
if (match.path === mygetHelmetapi2.navbar[i].link) {
headtypes = mygetHelmetapi2.navbar[i].link;
break;
}
}
}
}
}
}
let shixuntype=false;
let pathstype=false;
let coursestypes=false;
if(this.props&&this.props.mygetHelmetapi!=null){
let shixun="/shixuns";
let paths="/paths";
let courses="/courses";
this.props.mygetHelmetapi.navbar.map((item,key)=>{
var reg = RegExp(item.link);
if(shixun.match(reg)){
if(item.hidden===true){
shixuntype=true
}
}
if(paths.match(reg)){
if(item.hidden===true){
pathstype=true
}
}
if(courses.match(reg)){
if(item.hidden===true){
coursestypes=true
}
}
})
}
const contents = (
<div className="questiontypes" style={{
width:'93px',
height:'80px',
}}>
<a href={'/question'} ><p className="questiontype">试题库</p></a>
<p className="questiontypeheng"></p>
<a href={'/paperlibrary'} ><p className="questiontype">试卷库</p></a>
<p className="questiontypeheng"></p>
</div>
);
return (
<div className="newHeaders" id="nHeader" >
<style>{
`
body .questionbanks .ant-popover-inner-content {
padding:0px !important;
}
`
}</style>
{isRender===true?<LoginDialog
Modifyloginvalue={()=>this.Modifyloginvalue()}
{...this.props}
{...this.state}
/>:""}
{AccountProfiletype===true?<AccountProfile
hideAccountProfile={()=>this.hideAccountProfile()}
{...this.props}
{...this.state}
/>:""}
{
goshowqqgtounp===true?
<GotoQQgroup {...this.state} {...this.props} setgoshowqqgtounp={(bool)=>this.setgoshowqqgtounp(bool)}></GotoQQgroup>
:
""
}
<a href={"/"} onClick={()=>this.headtypesonClick("/",false)} className={"fl mr30 ml25 mt10"}>
{
mygetHelmetapi2 === null ?
""
:
mygetHelmetapi2===undefined||mygetHelmetapi2.nav_logo_url===null||mygetHelmetapi2.nav_logo_url===undefined?
<img alt="高校智能化教学与实训平台" className="logoimg" style={{heigth:"40px"}} src={getImageUrl("images/educoder/headNavLogo.png?1526520218")}></img>
:
<img alt="高校智能化教学与实训平台" className="logoimg" style={{heigth:"40px"}} src={getImageUrl(mygetHelmetapi2.nav_logo_url)}></img>
}
</a>
<style>
{
`
.educontents{
margin: 0px auto;
box-sizing: border-box;
}
`
}
</style>
{
mygetHelmetapi2 === null ?
"" :
mygetHelmetapi2!==undefined&&mygetHelmetapi2.navbar!==null&&mygetHelmetapi2.navbar!==undefined&&mygetHelmetapi2.navbar.length>0?
<div className="head-nav pr" id={"head-navpre1"}>
<ul id="header-nav">
{
mygetHelmetapi2.navbar && mygetHelmetapi2.navbar.map((item,key)=>{
var new_link = item.link;
var user_login = this.props.user && this.props.user.login;
var is_hidden = item.hidden
if(new_link.indexOf("courses") > -1 || new_link.indexOf("contests") > -1){
if(user_login){
if(new_link.indexOf("courses") > -1){
new_link = new_link.replace(/courses/g,"users/"+user_login + "/courses")
}else if(new_link.indexOf("contests") > -1){
new_link = new_link.replace(/contests/g,"users/"+user_login + "/contests")
}
}else{
is_hidden = true
}
}
var str=new RegExp("projects");
var strbool=false;
if(item.link){
if(str.test(item.link)===true){
strbool=true
}else{
strbool=false
}
}
return(
<li key={key} onClick={()=>this.headtypesonClick(item.link,true)} className={`${this.matchpaths(item.link)===true?'pr active':'pr'}`} style={!is_hidden?{display: 'block'}:{display: 'none'}}>
{
strbool?
<Link to={item.link}>{item.name}</Link>
:
<a href={new_link} target='_blank'>{item.name}</a>
}
</li>
)
})
}
<style>
{
`
.queyppors {
top: 63px !important;
}
.questionbanks .ant-popover-inner-content {
padding:0px !important;
}
`
}
</style>
</ul>
</div>
:
<div className="head-nav pr" id={"head-navpre3"}>
<ul id="header-nav">
<li className={`${activePaths === true ? 'pr active' : 'pr'}`}>
<Link to={'/projects'}>开源项目</Link>
</li>
<li className={`${coursestype === true ? 'pr active' : 'pr'}`}>
<Link to={this.props.Headertop===undefined?"":'/courses'}>翻转课堂</Link>
</li>
<li className={`${activeShixuns === true ? 'pr active' : 'pr'}`}>
<Link to="/shixuns">实训项目</Link>
</li>
<li className="fl edu-menu-panel careershover "
style={{display: this.props.Headertop === undefined ?'none' : this.props.Headertop.career_url.length > 0 ? 'block' : 'none'}}>
<a>职业路径</a>
<div
style={{display: this.props.Headertop === undefined ?'none' : this.props.Headertop.career_url.length > 0 ? 'block' : 'none'}}>
<ul className="edu-menu-list edu-menu-listnew " style={{top:'60px'}}>
{this.props.Headertop === undefined ? "" : this.props.Headertop.career_url.map((item, key) => {
return(
<li key={key}><i className="iconfont icon-java left careersiconfont"
style={{color: '#000 important'}}
></i><a style={{width: '83%'}}
href={item.url}>{item.name}</a></li>
)
})
}
</ul>
</div>
</li>
<li className={`${activeCompetitions === true ? 'pr active' : 'pr'}`}>
<a href={this.props.Headertop===undefined?"":this.props.Headertop.competitions_url}>在线竞赛</a>
</li>
<li className={`${activeMoopCases === true ? 'pr active' : 'pr'}`}> <Link to={`/moop_cases`}>教学案例</Link></li>
<li className={`${activeForums === true ? 'active' : ''}`}> <Link to={this.props.Headertop===undefined?"":this.props.Headertop.topic_url}>交流问答</Link></li>
<li
style={{display: this.props.Headertop === undefined ? 'none' : this.props.Headertop.auth===null? 'none' : 'block'}}
><a href={this.props.Headertop===undefined?"":this.props.Headertop.auth}>工程认证</a></li>
</ul>
</div>
}
<style>
{
`
.posi-searchs{
opacity: 1;
position: absolute;
top: -2px;
background: #fff;
z-index:10000;
right: 185px;
}
`
}
</style>
<div className="posi-searchs" >
<div className="search-all clearfix">
<div className="fl pr search-clear edu-menu-panel" style={{display: 'none'}}>
<input type="hidden" id="search_type" value="1"></input>
<span className="searchkey">实训</span>
<i className="fa fa-angle-down ml5 font-16"></i>
<ul id="searchkey" className="edu-menu-list edu-txt-center" style={{minWidth: '80px',right: '-10px',top: '50px'}}>
<li><a>实训</a></li>
<li><a>课堂</a></li>
<li><a>用户</a></li>
</ul>
</div>
{showSearchOpentype===true?<div
className={"HeaderSearch"}
onBlur={(e)=>this.hideshowSearchOpen(e)} onMouseLeave={()=>this.setevaluatinghides()}>
<Search
id={"HeaderSearchs"}
placeholder="实践课程/翻转课堂/实训项目/交流问答"
onInput={()=>this.onKeywordSearchKeyDowns()}
onSearch={(value) => this.onKeywordSearchKeyDown(value)}
style={{ width: 300,height:32}}
autoFocus={true}
/>
</div>:""}
</div>
</div>
{ user===undefined?
<span className="font-15 fr mt17 ml5 mr25">
<a onClick={()=>this.educoderlogin()} className="mr5 color-white">登录</a>
{
mygetHelmetapi2 && mygetHelmetapi2.new_course && mygetHelmetapi2.new_course.register_url &&
<span><em className="vertical-line"></em><a className="mr5 color-white" href={`${mygetHelmetapi2.new_course.register_url}`} target="_blank"></a></span>
}
</span> :user.login===""?<span className="font-15 fr mt17 ml5 mr25">
<a onClick={()=>this.educoderlogin()} className="mr5 color-white">登录</a>
{
mygetHelmetapi2 && mygetHelmetapi2.new_course && mygetHelmetapi2.new_course.register_url &&
<span><em className="vertical-line"></em><a className="mr5 color-white" href={`${mygetHelmetapi2.new_course.register_url}`} target="_blank"></a></span>
}
</span>:
<div className="fr edu-menu-panel mr25" style={{height:'60px'}}>
<a href={`/users/${this.props.current_user===undefined?"":this.props.current_user.login}/courses`} className="fl ml15">
<img alt="头像" className="radius mt13" height="34" id="nh_user_logo" name="avatar_image"
src={getImageUrl(`images/`+user.image_url)} width="34">
</img>
</a>
<ul className="edu-menu-list" style={{top:'60px', 'textAlign': 'center'}}>
{
mygetHelmetapi2 && mygetHelmetapi2.new_course && mygetHelmetapi2.new_course.edit_account &&
<li><a href={`${mygetHelmetapi2.new_course.edit_account}`} target="_blank">修改资料</a></li>
}
{
mygetHelmetapi2 && mygetHelmetapi2.new_course && mygetHelmetapi2.new_course.my_courses &&
<li><a href={`${mygetHelmetapi2.new_course.my_courses}`} target="_blank">我的课程</a></li>
}
{
mygetHelmetapi2 && mygetHelmetapi2.new_course && mygetHelmetapi2.new_course.my_projects &&
<li><Link to={`/users/${this.props.current_user.login}/projects`} >我的项目</Link></li>
}
{
mygetHelmetapi2 && mygetHelmetapi2.new_course && mygetHelmetapi2.new_course.my_organ &&
<li><a href={`${mygetHelmetapi2.new_course.my_organ}`} target="_blank">我的组织</a></li>
}
<li className="bor-top-greyE">
<a onClick={()=>this.educoderloginysl()}>退出</a>
</li>
</ul>
</div>
}
<div className="fr head-right">
{showSearchOpentype===true?"":this.props.user&&this.props.user.main_site===true?<a id="search-open" className="fl mr30 headIcon" onClick={(e)=>this.showSearchOpen(e)}>
<i className="iconfont icon-sousuo color-white"></i>
</a>:""}
{
this.props.user&&this.props.user.login ?
<div className="fl mr30 edu-menu-panel headIcon">
<i className="iconfont icon-tianjiafangda color-white"></i>
<div className="edu-menu-list" style={{top: '60px',width:"240px"}}>
<div className="overPart"></div>
<ul className={coursestypes===true&&this.props.user&&this.props.user.main_site===false?"fl headwith100b edu-txt-center pr ul-leftline":"fl with50 edu-txt-center pr ul-leftline"}>
{
mygetHelmetapi2 && mygetHelmetapi2.new_course && mygetHelmetapi2.new_course.new_syllabuses &&
<li><a href={`${mygetHelmetapi2.new_course.new_syllabuses}`} target="_blank">新建课程</a></li>
}
{
mygetHelmetapi2 && mygetHelmetapi2.new_course && mygetHelmetapi2.new_course.new_course &&
<li><a href={`${mygetHelmetapi2.new_course.new_course}`} target="_blank">新建班级</a></li>
}
</ul>
{coursestypes===true&&this.props.user&&this.props.user.main_site===false?"":<ul className="fl with50 edu-txt-center">
<li><Link to={"/projects/mirror/new"}>新建镜像项目</Link></li>
<li><Link to={"/projects/deposit/new"}>新建托管项目</Link></li>
</ul>}
</div>
</div>
: ""
}
{this.props.user&&this.props.user.login? <div className="fl mr30 edu-menu-panel headIcon">
{ user===undefined?"":user.login===""?"": <a
href={`${mygetHelmetapi2 && mygetHelmetapi2.new_course && mygetHelmetapi2.new_course.tiding_url}`}
style={{position:'relative'}} target="_blank"
>
<i className="iconfont icon-xiaoxilingdang color-white"></i>
<span className="newslight" style={{display:this.props.Headertop===undefined?"none":this.props.Headertop.new_message===true?"block":"none"}}>
</span>
</a>
}
</div>:""}
<Modal
keyboard={false}
title="提示"
visible={submitapplications}
closable={false}
footer={null}
>
<div className="task_popup_con ml30">
<div className="mr15">
<ul>
<div className="task-popup-content">
<p className="task-popup-text-center font-16">
{submitapplicationsvalue}
</p>
</div>
<li className="clearfix mt10 edu-txt-center">
<a className="task-btn mr10"
onClick={this.hidesubmitapplications}>取消</a>
<a
className="task-btn task-btn-orange ml20"
onClick={this.submitsubmitapplications}>确定</a>
</li>
</ul>
</div>
</div>
</Modal>
</div>
</div>
);
}
}
export default NewHeader;