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

1080 lines
31 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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: 'flex'}:{display: 'none'}}>
{
strbool?
<React.Fragment>
<Link to={item.link}>{item.name}</Link>
{
mygetHelmetapi2.old_projects_url ?
<a href={mygetHelmetapi2.old_projects_url} className="color-orange">进入老版本</a>
:""
}
</React.Fragment>
:
<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;