forked from Gitlink/forgeplus-react
114 lines
3.0 KiB
JavaScript
114 lines
3.0 KiB
JavaScript
import React ,{ useEffect , useState } from "react";
|
|
|
|
import { Route, Switch } from "react-router-dom";
|
|
import { withRouter } from "react-router";
|
|
import { SnackbarHOC } from "educoder";
|
|
import { CNotificationHOC } from "../../modules/courses/common/CNotificationHOC";
|
|
import { TPMIndexHOC } from "../../modules/tpm/TPMIndexHOC";
|
|
import Loadable from "react-loadable";
|
|
import Loading from "../../Loading";
|
|
import PublicBanner from "./Component/publicBanner";
|
|
import { getMainInfos , getCheckZoneRole } from './api';
|
|
import './index.scss';
|
|
|
|
const VIP = Loadable({
|
|
loader: () => import("./Pages/zoneVIP"),
|
|
loading: Loading,
|
|
});
|
|
const HeaderPage = Loadable({
|
|
loader: () => import("./Pages/headerPage"),
|
|
loading: Loading,
|
|
});
|
|
const ProjectSource = Loadable({
|
|
loader: () => import("./Pages/projectSource"),
|
|
loading: Loading,
|
|
});
|
|
const NewsDetail = Loadable({
|
|
loader: () => import("./Pages/newsDetail"),
|
|
loading: Loading,
|
|
});
|
|
const Main = Loadable({
|
|
loader: () => import("./Pages/main"),
|
|
loading: Loading,
|
|
});
|
|
function Index(props){
|
|
const [ data , setData ] = useState(undefined);
|
|
const [ adminUrl , setAdminUrl ] = useState(undefined);
|
|
const { deptId } = props.match.params;
|
|
const [ id , setId ] = useState(undefined);
|
|
|
|
useEffect(()=>{
|
|
if(deptId){
|
|
getDetail();
|
|
}
|
|
},[deptId])
|
|
|
|
function getDetail(){
|
|
getMainInfos({deptId}).then(result=>{
|
|
if(result){
|
|
let data = result.data.data;
|
|
setData(data);
|
|
document.title= data&& data.name;
|
|
setId(data.id);
|
|
if(data.id){
|
|
getAdminUrl(data.id);
|
|
}
|
|
}
|
|
}).catch(console.error())
|
|
}
|
|
|
|
function getAdminUrl(id){
|
|
getCheckZoneRole({id}).then(response=>{
|
|
if(response && response.data.code === 200){
|
|
setAdminUrl(response.data.data);
|
|
}else{
|
|
setAdminUrl(undefined);
|
|
}
|
|
}).catch(error=>{})
|
|
}
|
|
return(
|
|
<div className="information_main">
|
|
<PublicBanner {...props} data={data} adminUrl={adminUrl}/>
|
|
<Switch>
|
|
<Route
|
|
path="/zone/:deptId/news/:cateId"
|
|
render={(p) => (
|
|
<Main {...props} {...p} id={id}/>
|
|
)}
|
|
></Route>
|
|
<Route
|
|
path="/zone/:deptId/newdetail/:id"
|
|
render={(p) => (
|
|
<NewsDetail {...props} {...p} id={id}/>
|
|
)}
|
|
></Route>
|
|
<Route
|
|
path="/zone/:deptId/VIP"
|
|
render={(p) => (
|
|
<VIP {...props} {...p} id={id}/>
|
|
)}
|
|
></Route>
|
|
<Route
|
|
path="/zone/:deptId/projects"
|
|
render={(p) => (
|
|
<ProjectSource {...props} {...p} id={id}/>
|
|
)}
|
|
></Route>
|
|
<Route
|
|
path="/zone/:deptId/news"
|
|
render={(p) => (
|
|
<Main {...props} {...p} id={id}/>
|
|
)}
|
|
></Route>
|
|
<Route
|
|
path="/zone/:deptId"
|
|
render={(p) => (
|
|
<HeaderPage {...props} {...p} data={data} id={id}/>
|
|
)}
|
|
></Route>
|
|
</Switch>
|
|
</div>
|
|
)
|
|
}
|
|
export default withRouter((CNotificationHOC()(SnackbarHOC()(TPMIndexHOC(Index))))
|
|
); |