forgeplus-react/src/forge/Team/Sub/SubDetail.jsx

121 lines
3.2 KiB
JavaScript

import React , {useEffect , useState} from 'react';
import { Route, Switch , Link } from "react-router-dom";
import Loadable from "react-loadable";
import Loading from "../../../Loading";
import '../Index.scss';
import axios from 'axios';
import { getImageUrl } from 'educoder';
import Cards from '../../Component/Cards';
const GroupNew = Loadable({
loader: () => import("../Group/GroupNew"),
loading: Loading,
});
const Group = Loadable({
loader: () => import("../TeamGroup"),
loading: Loading,
});
const Member = Loadable({
loader: () => import("../TeamMember"),
loading: Loading,
});
const GroupDetails = Loadable({
loader: () => import("../Group/GroupDetails"),
loading: Loading,
});
const GroupSetting = Loadable({
loader: () => import("../Group/GroupDetailSetting"),
loading: Loading,
});
export default ((props)=>{
const OIdentifier = props.match.params.OIdentifier;
const groupId = props.match.params.groupId;
const pathname = props.location.pathname;
const [ detail , setDetail ] = useState(undefined);
const [ flag , setFlag ] = useState(false);
// 设置页面:顶部不需要设置按钮了
useEffect(()=>{
if(pathname){
if(pathname.indexOf(`/organize/${OIdentifier}/group/${groupId}/setting`)>-1){
setFlag(false);
}else{
setFlag(true);
}
}
},[pathname])
useEffect(()=>{
if(OIdentifier){
getDetail(OIdentifier);
}
},[OIdentifier]);
function getDetail(id) {
const url = `/organizations/${id}.json`;
axios.get(url).then(result=>{
if(result && result.data){
setDetail(result.data);
}
}).catch(error=>{})
}
return(
<div className="teamDetail">
{
detail &&
<Cards
title={detail.name}
rightBtn={
flag && <span className="subNavs">
<Link to={``} className="active"><span>组织成员</span>{detail.num_users && <lable>{detail.num_users}</lable>}</Link>
<Link to={``}><span>组织团队</span>{detail.num_teams &&<lable>{detail.num_teams}</lable>}</Link>
</span>
}
img={detail.avatar_url}
desc={!flag && detail.description}
/>
}
<Switch {...props}>
{/* 组织团队-设置 */}
<Route
path="/organize/:OIdentifier/group/:groupId/setting"
render={(props) => {
return <GroupSetting {...props} />
}}
></Route>
{/* 组织团队-成员 */}
<Route
path="/organize/:OIdentifier/group/:groupId/member"
render={(props) => {
return <GroupDetails {...props} />
}}
></Route>
{/* 组织成员 */}
<Route
path="/organize/:OIdentifier/member"
render={(props) => {
return <Member {...props} />
}}
></Route>
{/* 组织-新建团队 */}
<Route
path="/organize/:OIdentifier/group/new"
render={(props) => {
return <GroupNew {...props} />
}}
></Route>
{/* 组织团队 */}
<Route
path="/organize/:OIdentifier/group"
render={(props) => {
return <Group {...props} />
}}
></Route>
</Switch>
</div>
)
})