You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
help_admin/src/Main.tsx

110 lines
3.1 KiB

4 years ago
import React from "react";
import {Button, Nav, Navbar} from "react-bootstrap";
import {Manager} from "./Manager";
import {User} from "./User";
import {Active} from "./Active";
4 years ago
import {Cookies} from "react-cookie";
import {manager_cookie} from "./account/PropCookie";
import {fontEnd} from "./api";
4 years ago
/**
*
*/
enum Menu {
manager,
user,
active
}
/**
*
*/
4 years ago
export class Main extends React.Component<
{
cookies:Cookies;
logout:Function;
},
{
menu:Menu;
subMenu:JSX.Element
}>{
4 years ago
constructor(props: Readonly<any>) {
super(props);
//默认菜单
this.state={
menu:Menu.manager,
4 years ago
subMenu:<Manager cookies={this.props.cookies}/>
}
}
//获取菜单名颜色
getMenuColor(menu:Menu){
if(this.state.menu===menu){
return {
color:"white",
backgroundColor:"blue"
}
}else{
return {
color:"blue",
backgroundColor: "white"
}
}
}
//切换菜单
changeMenu(menu:Menu){
this.setState({
menu:menu
})
switch (menu) {
case Menu.manager:
this.setState({
4 years ago
subMenu:<Manager cookies={this.props.cookies}/>
});break;
case Menu.user:
this.setState({
subMenu:<User/>
});break;
case Menu.active:
this.setState({
subMenu:<Active/>
});break;
}
}
4 years ago
render() {
4 years ago
4 years ago
return (
<div>
<Navbar bg="light">
<Navbar.Brand>+</Navbar.Brand>
<Nav variant="pills" defaultActiveKey="index" className="w-100">
<Nav.Item className="col-2">
<Nav.Link style={this.getMenuColor(Menu.manager)} onClick={()=>this.changeMenu(Menu.manager)}></Nav.Link>
</Nav.Item>
<Nav.Item className="col-2">
<Nav.Link style={this.getMenuColor(Menu.user)} onClick={()=>this.changeMenu(Menu.user)}></Nav.Link>
</Nav.Item>
<Nav.Item className="col-2">
<Nav.Link style={this.getMenuColor(Menu.active)} onClick={()=>this.changeMenu(Menu.active)}></Nav.Link>
</Nav.Item>
<Navbar.Text>
{this.props.cookies.get(manager_cookie)}
</Navbar.Text>
<Button variant="outline-info" className="ml-3" onClick={()=>window.location.href=fontEnd}></Button>
<Button variant="outline-primary" className="ml-3" onClick={()=>this.props.logout()}></Button>
</Nav>
</Navbar>
{this.state.subMenu}
</div>
4 years ago
)
}
}