diff --git a/src/common/UrlTool.js b/src/common/UrlTool.js index 4c3911cd..f75fbf70 100644 --- a/src/common/UrlTool.js +++ b/src/common/UrlTool.js @@ -24,6 +24,18 @@ export function getImageUrl(path) { return `${path}`; } + +export function openNewWindow(url) { + let link = document.createElement('a') + link.target = "_blank" + document.body.appendChild(link) + link.href = url + let evt = document.createEvent("MouseEvents") + evt.initEvent("click", false, false) + link.dispatchEvent(evt) + document.body.removeChild(link); +} + export function numFormat(num, digits){ let d = digits || 1; var si = [ diff --git a/src/common/educoder.js b/src/common/educoder.js index 1a063d82..5191bb4f 100644 --- a/src/common/educoder.js +++ b/src/common/educoder.js @@ -7,6 +7,7 @@ export { getImageUrl as getImageUrl,getImage as getImage, getmyUrl as getmyUrl, getRandomNumber as getRandomNumber, getUrl as getUrl, publicSearchs as publicSearchs, getRandomcode as getRandomcode, getUrlmys as getUrlmys, getUrl2 as getUrl2, setImagesUrl as setImagesUrl , getUploadActionUrl as getUploadActionUrl, getUploadActionUrltwo as getUploadActionUrltwo, getUploadActionUrlthree as getUploadActionUrlthree, getUploadActionUrlOfAuth as getUploadActionUrlOfAuth , getTaskUrlById as getTaskUrlById, TEST_HOST, htmlEncode as htmlEncode, getupload_git_file as getupload_git_file, getcdnImageUrl as getcdnImageUrl + , openNewWindow as openNewWindow } from './UrlTool'; export { setmiyah as setmiyah } from './Component'; diff --git a/src/forge/Head/Engineer.jsx b/src/forge/Head/Engineer.jsx new file mode 100644 index 00000000..44e08fa6 --- /dev/null +++ b/src/forge/Head/Engineer.jsx @@ -0,0 +1,30 @@ +import React from 'react'; +import { Modal } from 'antd'; +import { openNewWindow } from 'educoder'; + +function Engineer({QQVisible,setQQVisible}) { + + return( + { + openNewWindow("https://qm.qq.com/cgi-bin/qm/qr?k=DWdqQHAbbfw7_rqm0d-Q_vDn5H6bMp91&jump_from=webapi") + }} + onCancel={() => setQQVisible(false)} + > +
+

您可以在QQ服务群向管理员申请,获得继续操作的权限

+ < img src={require("./teacherQQ.png")} width={200} height={200} alt=""/> +

群号:693542422

+
+
+ ) +} +export default Engineer \ No newline at end of file diff --git a/src/forge/Head/Header.js b/src/forge/Head/Header.js index 58c4ac7c..d7f4b28b 100644 --- a/src/forge/Head/Header.js +++ b/src/forge/Head/Header.js @@ -1,9 +1,8 @@ import React, { Component } from 'react'; import AccountProfile from "../../modules/user/AccountProfile"; -import { getImageUrl } from 'educoder' +import { getImageUrl , openNewWindow } from 'educoder'; import axios from 'axios'; -import { Input , notification , Dropdown ,Popover, Menu,Badge, Button } from 'antd'; -import { Link } from 'react-router-dom'; +import { Input , notification , Dropdown , Menu } from 'antd'; import LoginDialog from '../../modules/login/LoginDialog'; import HeadSearch from '../Component/HeadSearch'; @@ -13,13 +12,14 @@ import '../../modules/tpm/TPMIndex.css'; import CheckProfile from '../Component/ProfileModal/Profile'; import './header.scss'; -import NoticeContent from './NoticeContent'; +import Engineer from './Engineer'; const $ = window.$ // TODO 这部分脚本从公共脚本中直接调用 const { Search } = Input; let old_url; window._header_componentHandler = null; +const isPath= window.location.hostname ==='code.educoder.net' || window.location.hostname==='testforgeplus.educoder.net'; // 非trustie链接则新开页跳转 const str = ['www.trustie.net','forgeplus.trustie.net','forum.trustie.net','testforgeplus.trustie.net'] class NewHeader extends Component { @@ -49,6 +49,7 @@ class NewHeader extends Component { visiblemyss: false, openSearch:false, visible:false, //浮动消息框展示控制 + QQVisible:false } } componentDidMount() { @@ -346,14 +347,32 @@ class NewHeader extends Component { this.setState({ visible }); }; + turntoEngineer=(url)=>{ + const { current_user } = this.props; + if(current_user && current_user.login){ + if(url){ + window.location.href=url; + }else{ + this.setState({ + QQVisible:true + }) + } + }else{ + this.educoderlogin(); + } + } + + setQQVisible=()=>{ + this.setState({ + QQVisible:false + }) + } + render() { - const { match ,resetUserInfo ,showNotification} = this.props; + const { match } = this.props; let current_user = this.props.user; - let { Addcoursestypes, - tojoinitemtype, - tojoinclasstitle, - code_notice, - checked_notice, + let { + QQVisible, AccountProfiletype, user, isRender, @@ -441,6 +460,7 @@ class NewHeader extends Component { let search_url = settings && settings.common && settings.common.search; return (
+
{isRender === true ? new_link.indexOf(item)>-1) ); var wl = waiLian && waiLian.length>0; return ( -
  • this.headtypesonClick(item.link, true)} className={`${this.matchpaths(item.link) === true ? 'pr active' : 'pr'}`} style={!is_hidden ? { display: 'flex' } : { display: 'none' }}> +
  • this.headtypesonClick(item.link, true)} className={`${((isPath && item.name === "大学开源") || this.matchpaths(item.link) === true) ? 'pr active' : 'pr'}`} style={!is_hidden ? { display: 'flex' } : { display: 'none' }}>
  • ) }) } + { + settings && settings.engineer_url !== undefined ? +
  • + this.turntoEngineer(settings.engineer_url)}>工程认证 +
  • + :"" + } : "" } diff --git a/src/forge/Head/teacherQQ.png b/src/forge/Head/teacherQQ.png new file mode 100644 index 00000000..772a0e8d Binary files /dev/null and b/src/forge/Head/teacherQQ.png differ diff --git a/src/forge/Main/list.scss b/src/forge/Main/list.scss index 3b8ccd54..c2b8a2ab 100644 --- a/src/forge/Main/list.scss +++ b/src/forge/Main/list.scss @@ -121,8 +121,9 @@ justify-content: space-between; flex-wrap: wrap; align-items: center; - padding:25px 30px; + padding:0px 30px; border-bottom: 1px solid #E0E0E0; + height: 62px; } .list-r-Search{ width: 400px;