竞赛动态加载初始化

This commit is contained in:
何童崇 2022-05-13 15:31:56 +08:00
parent 2da1a838d4
commit 4b4ac537c0
3 changed files with 42 additions and 47 deletions

View File

@ -70,7 +70,7 @@ const Expert = Loadable({
loading: Loading,
})
// 启智2022 (为此竞赛定制化页面以及内容)
const Qz2022 = Loadable({
const Competition = Loadable({
loader: () => import('./military/qz2022'),
loading: Loading,
})
@ -134,11 +134,6 @@ const AboutUs = Loadable({
// loading: Loading,
// });
// 首页
const HomePage = Loadable({
loader: () => import('./home'),
loading: Loading,
});
// 管理页面
const Managements = Loadable({
@ -382,7 +377,7 @@ class App extends Component {
{/*专家评审*/}
<Route path="/expert" component={Expert} />
{/*启智2022*/}
<Route path="/competition/qz2022" component={Qz2022} />
<Route path="/competition" component={Competition} />
<Route exact path="/explore/all"
render={

View File

@ -1,7 +1,7 @@
import React, { useEffect, useState } from "react";
import { Link, Route, Switch } from "react-router-dom";
import { withRouter } from "react-router";
import { SnackbarHOC } from "educoder";
import { SnackbarHOC, getImageUrl } from "educoder";
import { CNotificationHOC } from "../modules/courses/common/CNotificationHOC";
import { TPMIndexHOC } from "../modules/tpm/TPMIndexHOC";
import Loadable from "react-loadable";
@ -152,46 +152,46 @@ const Qz2022 = (props) => {
function goToRefer() {
if (current_user && !current_user.login) {
props.showLoginDialog();
}else if(enrollStatus && !enrollStatus.enroll_status){
} else if (enrollStatus && !enrollStatus.enroll_status) {
props.showNotification("您还未报名竞赛!");
}else if(enrollStatus && enrollStatus.status === 0){
} else if (enrollStatus && enrollStatus.status === 0) {
props.showNotification("报名信息被管理员驳回!");
} else {
!referStatus ? props.showNotification(!referEnd ? `竞赛尚未开始提交作品,提交作品开始时间为:${qzDetail && qzDetail.enroll_date.substring(0, 10)}` : "比赛已结束") : "";
}
}
const is_local= qzDetail &&qzDetail.is_local;
const banner_url= qzDetail &&qzDetail.banner_url;
const is_local = qzDetail && qzDetail.is_local;
const banner_url = qzDetail && qzDetail.banner_url && getImageUrl(qzDetail.banner_url);
return (
<React.Fragment>
<Login {...props} />
{/* banner图+选项 */}
<img src={banner_url || (is_local?banner_local: banner)} className="qz_banner" alt=""/>
<img src={banner_url || (is_local ? banner_local : banner)} className="qz_banner" alt="" />
<div className="qz2022">
<div className={`qz2022-top ${fixedTop}`}>
{paths.indexOf(active) !== -1 && <ul className="qz2022Menu mt20 qz_main">
<li>
<a href="/"><img src={logo} alt="" style={{width: 120}}/></a>
</li>
<li className={ active==='qz2022' ||active === "introduce"? "active" : ""}>
<Link to={{ pathname: `/competition/qz2022/introduce` }}>首页</Link>
</li>
<li className={active === "fingerpost" ? "active" : ""}>
<Link to={{ pathname: `/competition/qz2022/fingerpost` }}>赛事指南</Link>
</li>
<li className={active === "notice" ? "active" : ""}>
<Link to={{ pathname: `/competition/qz2022/notice` }}>通知公告</Link>
</li>
{/* 处于报名阶段正常跳转到报名页面,不处于右侧弹消息 */}
<li className={active === "apply" ? "active" : ""}>
<Link to={{ pathname: applyStatus && current_user && current_user.login ? '/competition/qz2022/apply' :'' }} onClick={()=>{current_user && current_user.login ? !applyStatus && props.showNotification("报名时间已截止") : props.showLoginDialog()}}>参赛报名</Link>
</li>
<li className={active === "refer" ? "active" : ""}>
<Link to={{ pathname: referStatus && !referEnd && current_user && current_user.login && enrollStatus && enrollStatus.enroll_status ? `/competition/qz2022/refer` : '' }} onClick={goToRefer}>提案提交</Link>
</li>
{/* <li className={active === "apply" ? "active" : ""}>
{paths.indexOf(active) !== -1 && <ul className="qz2022Menu mt20 qz_main">
<li>
<a href="/"><img src={logo} alt="" style={{ width: 120 }} /></a>
</li>
<li className={active === 'qz2022' || active === "introduce" ? "active" : ""}>
<Link to={{ pathname: `/competition/qz2022/introduce` }}>首页</Link>
</li>
<li className={active === "fingerpost" ? "active" : ""}>
<Link to={{ pathname: `/competition/qz2022/fingerpost` }}>赛事指南</Link>
</li>
<li className={active === "notice" ? "active" : ""}>
<Link to={{ pathname: `/competition/qz2022/notice` }}>通知公告</Link>
</li>
{/* 处于报名阶段正常跳转到报名页面,不处于右侧弹消息 */}
<li className={active === "apply" ? "active" : ""}>
<Link to={{ pathname: applyStatus && current_user && current_user.login ? '/competition/qz2022/apply' : '' }} onClick={() => { current_user && current_user.login ? !applyStatus && props.showNotification("报名时间已截止") : props.showLoginDialog() }}>参赛报名</Link>
</li>
<li className={active === "refer" ? "active" : ""}>
<Link to={{ pathname: referStatus && !referEnd && current_user && current_user.login && enrollStatus && enrollStatus.enroll_status ? `/competition/qz2022/refer` : '' }} onClick={goToRefer}>提案提交</Link>
</li>
{/* <li className={active === "apply" ? "active" : ""}>
<Link to={{ pathname: '/competition/qz2022/apply'}}>参赛报名</Link>
</li> */}
{/* <li className={active === "refer" ? "active" : ""}>
@ -225,19 +225,19 @@ const Qz2022 = (props) => {
{/* 通知公告编辑页 */}
<Route path="/competition/qz2022/notice/:type/:noticeId"
render={
({ match }) => (<NoticeEdit {...props} match={match} qzDetail={qzDetail}/>)
({ match }) => (<NoticeEdit {...props} match={match} qzDetail={qzDetail} />)
}
></Route>
{/* 通知公告新增页 */}
<Route path="/competition/qz2022/notice/:type"
render={
({ match }) => (<NoticeEdit {...props} match={match} qzDetail={qzDetail}/>)
({ match }) => (<NoticeEdit {...props} match={match} qzDetail={qzDetail} />)
}
></Route>
{/* 大赛介绍、大赛指南、关于我们 编辑页 */}
<Route path="/competition/qz2022/:type/edit"
render={
({match}) => (<ManageEdit {...props} qzDetail={qzDetail} match={match} setReloadDetail={setReloadDetail}/>)
({ match }) => (<ManageEdit {...props} qzDetail={qzDetail} match={match} setReloadDetail={setReloadDetail} />)
}
></Route>
{/* 通知公告 */}
@ -249,25 +249,25 @@ const Qz2022 = (props) => {
{/* 参赛报名 */}
<Route path="/competition/qz2022/apply"
render={
() => (<Apply {...props} qzDetail={qzDetail} enrollStatus={enrollStatus} setReload={setReload}/>)
() => (<Apply {...props} qzDetail={qzDetail} enrollStatus={enrollStatus} setReload={setReload} />)
}
></Route>
{/* 提案提交 */}
<Route path="/competition/qz2022/refer"
render={
() => (<Refer {...props} enrollStatus={enrollStatus} qzDetail={qzDetail} setReload={setReload}/>)
() => (<Refer {...props} enrollStatus={enrollStatus} qzDetail={qzDetail} setReload={setReload} />)
}
></Route>
{/* 交流互动 */}
<Route path="/competition/qz2022/chat"
render={
() => (<Chat {...props} isLoacl={qzDetail && qzDetail.is_local}/>)
() => (<Chat {...props} isLoacl={qzDetail && qzDetail.is_local} />)
}
></Route>
{/* 联系我们 */}
<Route path="/competition/qz2022/contact"
render={
() => (<Contact {...props} aboutUs={qzDetail && qzDetail.about_us} qzDetail={qzDetail}/>)
() => (<Contact {...props} aboutUs={qzDetail && qzDetail.about_us} qzDetail={qzDetail} />)
}
></Route>
{/* 数据统计 */}
@ -279,13 +279,13 @@ const Qz2022 = (props) => {
{/* 后台管理-报名列表 */}
<Route path="/competition/qz2022/management/applys"
render={
() => (<Management {...props} qzDetail={qzDetail}/>)
() => (<Management {...props} qzDetail={qzDetail} />)
}
></Route>
{/* 后台管理-作品列表 */}
<Route path="/competition/qz2022/management/production"
render={
() => (<Management {...props} qzDetail={qzDetail}/>)
() => (<Management {...props} qzDetail={qzDetail} />)
}
></Route>
{/* 大赛介绍 */}
@ -297,7 +297,7 @@ const Qz2022 = (props) => {
{/* 大赛指南 */}
<Route path="/competition/qz2022/fingerpost"
render={
() => (<Fingerpost {...props} qzDetail={qzDetail}/>)
() => (<Fingerpost {...props} qzDetail={qzDetail} />)
}
></Route>
{/* 大赛介绍 */}

View File

@ -280,7 +280,7 @@ export function TPMIndexHOC(WrappedComponent, headFoot) {
resetUserInfo:this.fetchUsers,
showCompeleteDialog:this.showCompeleteDialog
};
let qz2022 = this.props.match.path.includes('/competition/qz2022');
let competition = this.props.match.path.includes('/competition');
return (
<div className="indexHOC">
<SystemNotice
@ -303,12 +303,12 @@ export function TPMIndexHOC(WrappedComponent, headFoot) {
/> : ""}
{/* <Header {...this.state} {...this.props} {...common} publicNav={publicNav}></Header> */}
{/* <NewHeader {...this.state} {...this.props} {...common}></NewHeader> */}
{!qz2022&&<NewHeader {...this.state} {...this.props} {...common}></NewHeader>}
{!competition&&<NewHeader {...this.state} {...this.props} {...common}></NewHeader>}
<Spin spinning={this.state.globalLoading} delay={0} className="globalSpin"
size="large" tip={this._gLoadingTip || "加载中..."}
>
<div className="newContainer newContainers">
{!publicNav && !qz2022&&<div style={{height:"70px"}}></div> }
{!publicNav && !competition&&<div style={{height:"70px"}}></div> }
{
current_user &&
<WrappedComponent initCommonState={(user) => this.initCommonState(user)}