From 40918bf1d788b21fdec6e285dae6502844d7dc89 Mon Sep 17 00:00:00 2001 From: caishi <1149225589@qq.com> Date: Wed, 21 Apr 2021 16:54:47 +0800 Subject: [PATCH] merge develop --- public/css/edu-purge.css | 68 ++++-- src/forge/Head/Footer.jsx | 63 ++++++ src/forge/Head/header.scss | 52 +++++ src/forge/Main/CoderRootFileDetail.js | 6 +- src/forge/Main/Index.scss | 3 + src/index.css | 10 - src/modules/modals/Bottomsubmit.js | 3 - src/modules/question/Paperreview.js | 10 - src/modules/question/Questionitem_banks.js | 3 - src/modules/testpaper/Intecomponents.js | 10 - src/modules/testpaper/Paperlibraryeditid.js | 11 - src/modules/testpaper/Paperlibraryseeid.js | 10 - src/modules/tpm/NewFooter.js | 1 - src/modules/tpm/TPMIndexHOC.js | 236 +------------------- 14 files changed, 175 insertions(+), 311 deletions(-) create mode 100644 src/forge/Head/Footer.jsx diff --git a/public/css/edu-purge.css b/public/css/edu-purge.css index d5998251..ac97837f 100644 --- a/public/css/edu-purge.css +++ b/public/css/edu-purge.css @@ -2346,7 +2346,6 @@ input::-ms-clear { /*中间部分宽度固定为1200*/ .newMain { margin: 0 auto; - padding-bottom: 110px; min-width: 1200px; } @@ -3978,28 +3977,62 @@ html>body #ajax-indicator { display: block; height: 100%; width: 100%; - color: #fff; + color: #333; font-size: 16px; - position: relative; } .head-nav ul#header-nav li a:hover,.head-nav ul#header-nav li.active a { color: #5091FF; } -.head-nav ul#header-nav li.active a::after{ - content: ""; - width: 18px; - height: 2px; - background-color: #4cacff; - position: absolute; - bottom: 14px; - left: 0; -} .head-nav ul#header-nav li:last-child { margin-right: 0px } +.head-nav ul#header-nav li.active{ + /* background-color: #3B3B3B; */ +} + + +.head-nav ul#header-nav li p:hover { + color: #cccccc; +} + +.head-nav ul#header-nav li p { + display: block; + height: 100%; + width: 100%; + color: #fff +} + +/* .head-nav ul#header-nav li.active div ul li a { + color: #000 !important; +} */ + +/* .head-nav ul#header-nav li.active div ul li a:hover { + color: #FFF !important; +} + +.head-nav ul#header-nav li.active ul li a { + color: #000 !important; +} */ + +/* .head-nav ul#header-nav li.active ul li a:hover { + color: #FFF !important; +} */ + +/* .head-nav ul#header-nav li.active:after { + content: ''; + position: absolute; + left: 0px; + top: auto; + bottom: 10px; + right: auto; + height: 2px; + width: 32px; + background-color: #459be5; +} */ + .head-right { box-sizing: border-box; height: 60px; @@ -4075,17 +4108,6 @@ em.vertical-line { /* 右侧内容宽度变化的话,需要调整posi-search right的值*/ -.newFooter { - position: absolute; - bottom: 0; - width: 100%; - background: #323232; - clear: both; - min-width: 1200px; - z-index: 8; - left: 0px; -} - .footercon { border-bottom: 1px solid #47494d; } diff --git a/src/forge/Head/Footer.jsx b/src/forge/Head/Footer.jsx new file mode 100644 index 00000000..840d919b --- /dev/null +++ b/src/forge/Head/Footer.jsx @@ -0,0 +1,63 @@ +import React, { useEffect , useState } from 'react'; +import './header.scss'; + +function Footer(){ + const [ value , setValue ] = useState(undefined); + + useEffect(()=>{ + try { + var chromesettingArray = JSON.parse(localStorage.getItem('chromesetting')); + setValue(chromesettingArray.footer); + } catch (e) { + } + },[]) + + function showhtml(htmlString){ + var html = {__html:htmlString}; + return
; + } + + return( +
+ {value && showhtml(value)} + {/*
+ + + + +
+

© Copyright 2007~2021 国防科技大学Trustie团队 & IntelliDE 湘ICP备 17009477号

*/} +
+ ) +} +export default Footer; diff --git a/src/forge/Head/header.scss b/src/forge/Head/header.scss index 3cde4d8f..130df4ca 100644 --- a/src/forge/Head/header.scss +++ b/src/forge/Head/header.scss @@ -7,4 +7,56 @@ .ant-menu-vertical > .ant-menu-item{ border:none } +} + +.newFooter { + position: absolute; + bottom: 0; + width: 100%; + background: #323232; + clear: both; + min-width: 1200px; + z-index: 8; + left: 0px; + p { + margin-top: 0; + margin-bottom:0px !important; + } + .footerInfos{ + display: flex; + max-width: 1200px; + margin:0px auto; + justify-content: space-around; + padding:60px 0px; + & >ul{ + padding:0px 40px; + box-sizing: border-box; + max-width: 25%; + text-align: left; + li{ + color: #fff; + font-weight: 300; + &:first-child{ + font-size: 17px; + } + &>a,&>span{ + color: #bbb; + } + &>a:hover{ + color: #4cacff; + } + } + } + } + .footerCopy{ + color: #bbb; + border-top: 1px solid #4e4e4e; + padding:10px 0px; + a{ + color: #bbb; + &:hover{ + color: #4cacff; + } + } + } } \ No newline at end of file diff --git a/src/forge/Main/CoderRootFileDetail.js b/src/forge/Main/CoderRootFileDetail.js index 3fc19f21..87e527db 100644 --- a/src/forge/Main/CoderRootFileDetail.js +++ b/src/forge/Main/CoderRootFileDetail.js @@ -257,11 +257,7 @@ class CoderRootFileDetail extends Component {
{detail.image_type ? (
- +
) : detail.direct_download ? (
diff --git a/src/forge/Main/Index.scss b/src/forge/Main/Index.scss index 64792680..eab8975e 100644 --- a/src/forge/Main/Index.scss +++ b/src/forge/Main/Index.scss @@ -283,6 +283,9 @@ .downMenu{ box-shadow: 0px 0px 9px rgba(134, 134, 134,0.4); background-color: #fff; + .ant-menu-vertical .ant-menu-item:hover{ + background-color: #e6f7ff; + } } .menuslist{ diff --git a/src/index.css b/src/index.css index 8f035dfb..f42b05f2 100644 --- a/src/index.css +++ b/src/index.css @@ -67,16 +67,6 @@ li { font-size: 25px !important; } -.newFooter { - position: absolute; - bottom: 0; - width: 100%; - background: #323232; - clear: both; - min-width: 1200px; - z-index: 8; - left: 0px; -} .markdown-body { text-align: justify; diff --git a/src/modules/modals/Bottomsubmit.js b/src/modules/modals/Bottomsubmit.js index 09038aa9..970e106e 100644 --- a/src/modules/modals/Bottomsubmit.js +++ b/src/modules/modals/Bottomsubmit.js @@ -32,9 +32,6 @@ class Bottomsubmit extends Component {
{ diff --git a/src/modules/question/Questionitem_banks.js b/src/modules/question/Questionitem_banks.js index 4ba33f55..704c840d 100644 --- a/src/modules/question/Questionitem_banks.js +++ b/src/modules/question/Questionitem_banks.js @@ -534,9 +534,6 @@ class Questionitem_banks extends Component { width: 100%!important; } - .newFooter{ - display: none; - } ` } diff --git a/src/modules/testpaper/Intecomponents.js b/src/modules/testpaper/Intecomponents.js index 3b4f7858..c49cce80 100644 --- a/src/modules/testpaper/Intecomponents.js +++ b/src/modules/testpaper/Intecomponents.js @@ -379,16 +379,6 @@ class Intecomponents extends Component {
-
diff --git a/src/modules/testpaper/Paperlibraryeditid.js b/src/modules/testpaper/Paperlibraryeditid.js index 831e84e6..0980f4cb 100644 --- a/src/modules/testpaper/Paperlibraryeditid.js +++ b/src/modules/testpaper/Paperlibraryeditid.js @@ -241,17 +241,6 @@ class Paperlibraryeditid extends Component { : "" } - -
diff --git a/src/modules/testpaper/Paperlibraryseeid.js b/src/modules/testpaper/Paperlibraryseeid.js index bfecf0cc..69121546 100644 --- a/src/modules/testpaper/Paperlibraryseeid.js +++ b/src/modules/testpaper/Paperlibraryseeid.js @@ -131,16 +131,6 @@ class Paperlibraryseeid extends Component {
-
diff --git a/src/modules/tpm/NewFooter.js b/src/modules/tpm/NewFooter.js index 5909a39a..331ff57c 100644 --- a/src/modules/tpm/NewFooter.js +++ b/src/modules/tpm/NewFooter.js @@ -7,7 +7,6 @@ class NewFooter extends Component { } } componentDidMount() { - //获取游览器地址 try { var chromesettingArray = JSON.parse(localStorage.getItem('chromesetting')); diff --git a/src/modules/tpm/TPMIndexHOC.js b/src/modules/tpm/TPMIndexHOC.js index 60e36d6a..773c07ca 100644 --- a/src/modules/tpm/TPMIndexHOC.js +++ b/src/modules/tpm/TPMIndexHOC.js @@ -1,38 +1,30 @@ import React from 'react'; import Header from '../../forge/Head/Header' -import NewFooter from './NewFooter' -import { downloadFile } from 'educoder' +import NewFooter from '../../forge/Head/Footer'; import axios from 'axios'; import { Spin } from 'antd'; import './TPMIndex.css'; import LoginDialog from '../login/LoginDialog'; -import AccountProfile from '../user/AccountProfile'; -import AccountPhoneemail from '../user/AccountPhoneemail'; import EducoderAccount from '../../forge/Component/EducoderAccount'; - export function TPMIndexHOC(WrappedComponent) { return class II extends React.Component { constructor(props) { super(props); - window.$('#root').css('position', 'relative') + window.$('#root').css('position', 'relative'); this.state = { tpmLoading: true, resLoading: true, Headertop: undefined, - Footerdown: undefined, isRender: false, - AccountProfiletype: false, - AccountPhoneemailtype: false, globalLoading: false, dataquerys: {}, isloginCancel: undefined, mygetHelmetapi: null, giteaVisible:false, - email:undefined, - is_sync_pwd:undefined + email:undefined } } @@ -68,12 +60,6 @@ export function TPMIndexHOC(WrappedComponent) { document.title = "你没有权限访问"; } else if (this.props.match.path === "/nopage") { document.title = "没有找到该页面"; - } else if (this.props.match.path === "/shixuns") { - document.title = "实训项目"; - } else if (this.props.match.path === "/paths") { - document.title = "实践课程"; - } else if (this.props.match.path === "/classrooms") { - document.title = "教学课堂"; } ///请求定制化的信息 @@ -171,11 +157,10 @@ export function TPMIndexHOC(WrappedComponent) { this.props.history.push(`/users/${response.data.login}`); } if(response.data && response.data.login){ - if(!response.data.has_gitea_user || (response.data.has_gitea_user && !response.data.is_sync_pwd)){ + if(response.data.need_edit_info){ this.setState({ giteaVisible:true, - email:response.data.email, - is_sync_pwd:response.data.is_sync_pwd + email:response.data.email }) } } @@ -184,25 +169,6 @@ export function TPMIndexHOC(WrappedComponent) { console.log(error) }) }; - //截取url 数据的 - foo = (url) => { - var json = {}; - var regExp = /[\?\&](\w+)(=?)(\w*)/g; - var arr; - do { - arr = regExp.exec(url); - if (arr) { - var key = arr[1]; - var value = arr[3]; - if (!arr[2]) - value = undefined; - - json[key] = value; - } - } while (arr); - return json; - }; - hideLoginDialog = () => { this.setState({ isRender: false, @@ -221,137 +187,9 @@ export function TPMIndexHOC(WrappedComponent) { return this.state.current_user && this.state.current_user.login != '' } - hideAccountProfile = () => { - this.setState({ - AccountProfiletype: false - }) - } - - showProfileCompleteDialog = () => { - this.dialogObj = {} - this.setState({ - AccountProfiletype: true - }) - } - showhideAccountPhoneemailDialog = () => { - this.dialogObj = {} - this.setState({ - AccountPhoneemailtype: true - }) - } - hideAccountPhoneemailtype = () => { - this.setState({ - AccountPhoneemailtype: false - }) - } - //验证是否完善资料 - checkIfProfileCompleted = () => { - return this.state.current_user && this.state.current_user.profile_completed - } - - showaccountprofileDialog = () => { - this.dialogObj = { - content: '您需要去完成您的个人资料,才能使用此功能', - okText: '立即完成', - okHref: '/account/profile' - } - this.setState({ - AccountProfiletype: true, - }) - } - showProfessionalCertificationDialog = () => { - this.dialogObj = { - content: '您需要去完成您的职业认证,才能使用此功能', - okText: '立即完成', - okHref: '/account/certification' - } - this.setState({ - AccountProfiletype: true, - }) - } - checkIfProfessionalCertification = () => { - return this.state.current_user && this.state.current_user.professional_certification - } - - - ShowOnlinePdf = (url) => { - return axios({ - method: 'get', - url: url, - responseType: 'arraybuffer', - }).then((result) => { - var binaryData = []; - binaryData.push(result.data); - this.url = window.URL.createObjectURL(new Blob(binaryData, { type: "application/pdf" })); - window.open(this.url); - }) - } - DownloadFileA = (title, url) => { - let link = document.createElement('a'); - document.body.appendChild(link); - link.href = url; - link.download = title; - //兼容火狐浏览器 - let evt = document.createEvent("MouseEvents"); - evt.initEvent("click", false, false); - link.dispatchEvent(evt); - document.body.removeChild(link); - } - - DownloadOpenPdf = (type, url) => { - type === true ? window.open(url) : window.location.href = url; - } - slowDownload = (url, tip) => { - this._gLoadingTip = tip || '正在生成文件,请稍后...'; - this.setState({ globalLoading: true }) - const fileUrl = url; - downloadFile({ - url: fileUrl, - successCallback: (url) => { - this.setState({ globalLoading: false }) - console.log('successCallback') - }, - failCallback: (responseHtml, url) => { - this.setState({ globalLoading: false }) - console.log('failCallback') - } - }) - } - yslslowCheckresults = (tip) => { - this._gLoadingTip = tip || '成绩计算中,请稍候...'; - this.setState({ globalLoading: true }) - } - yslslowCheckresultsNo = () => { - this.setState({ globalLoading: false }) - } - - showGlobalLoading = (tip) => { - this._gLoadingTip = tip || '加载中,请稍后...'; - this.setState({ globalLoading: true }) - } - hideGlobalLoading = () => { - this.setState({ globalLoading: false }) - } - - MdifHasAnchorJustScorll = () => { - //mdhash滚动 - let anchor = decodeURI(this.props.location.hash).replace('#', ''); - // 对应id的话, 滚动到相应位置 - if (!!anchor) { - let anchorElement = document.getElementsByName(anchor); - if (anchorElement) { - if (anchorElement.length > 0) { - anchorElement[anchorElement.length - 1].scrollIntoView(); - } - } - } - } onOk =(values)=>{ - let url = `/accounts/gitea_register.json`; - const { email , current_user , is_sync_pwd } = this.state; - if(email && !is_sync_pwd){ - url = `/users/change_password.json`; - } + let url = `/users/sync_user_info.json`; + const { current_user } = this.state; axios.post(url,{ login:current_user && current_user.login, ...values @@ -367,42 +205,11 @@ export function TPMIndexHOC(WrappedComponent) { } - //跳转道描点的地方 - scrollToAnchor = (anchorName) => { - if (anchorName) { - // 找到锚点 - let anchorElement = document.getElementById(anchorName); - // 如果对应id的锚点存在,就跳转到锚点 - if (anchorElement) { - anchorElement.scrollIntoView(); - } - } - } - render() { - let { email , giteaVisible , Footerdown, isRender, AccountProfiletype, AccountPhoneemailtype, current_user } = this.state; + let { isRender , current_user , giteaVisible , email } = this.state; const common = { - showLoginDialog: this.showLoginDialog, checkIfLogin: this.checkIfLogin, - showProfileCompleteDialog: this.showProfileCompleteDialog, - showhideAccountPhoneemailDialog: this.showhideAccountPhoneemailDialog, - checkIfProfileCompleted: this.checkIfProfileCompleted, - showaccountprofileDialog: this.showaccountprofileDialog, - checkIfProfessionalCertification: this.checkIfProfessionalCertification, - showProfessionalCertificationDialog: this.showProfessionalCertificationDialog, - - ShowOnlinePdf: (url) => this.ShowOnlinePdf(url), - DownloadFileA: (title, url) => this.DownloadFileA(title, url), - DownloadOpenPdf: (type, url) => this.DownloadOpenPdf(type, url), - - slowDownload: this.slowDownload, - showGlobalLoading: this.showGlobalLoading, - hideGlobalLoading: this.hideGlobalLoading, - yslslowCheckresults: this.yslslowCheckresults, - yslslowCheckresultsNo: this.yslslowCheckresultsNo, - MdifHasAnchorJustScorll: this.MdifHasAnchorJustScorll, - scrollToAnchor: this.scrollToAnchor }; return (
@@ -412,42 +219,21 @@ export function TPMIndexHOC(WrappedComponent) { {...this.props} {...this.state} /> : ""} - {/* AccountProfile 也用作职业认证 */} - {AccountProfiletype === true ? this.hideAccountProfile()} - {...this.props} - {...this.state} - {...this.dialogObj} - /> : ""} - {/*验证是否注册手机邮箱*/} - {AccountPhoneemailtype === true ? this.hideAccountPhoneemailtype()} - {...this.props} - {...this.state} - {...this.dialogObj} - /> : ""}
{ current_user && this.initCommonState(user)} - {...this.props} {...this.state} - {...common} - > + {...this.props} {...this.state} {...common} > } -
- +
); }