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

79 lines
2.1 KiB

4 years ago
import React from "react";
import {Navbar,Nav,Button} from "react-bootstrap";
import {Manager} from "./Manager";
import {User} from "./User";
import {Active} from "./Active";
4 years ago
/**
*
*/
enum Menu {
manager,
user,
active
}
/**
*
*/
4 years ago
export class Main extends React.Component<any, any>{
constructor(props: Readonly<any>) {
super(props);
//默认菜单
this.state={
menu:Menu.manager,
subMenu:<Manager/>
}
}
//获取菜单名颜色
getMenuColor(menu:Menu){
return this.state.menu===menu?"black":"blue"
}
//切换菜单
changeMenu(menu:Menu){
this.setState({
menu:menu
})
switch (menu) {
case Menu.manager:
this.setState({
subMenu:<Manager/>
});break;
case Menu.user:
this.setState({
subMenu:<User/>
});break;
case Menu.active:
this.setState({
subMenu:<Active/>
});break;
}
}
4 years ago
render() {
4 years ago
return (
<div>
<Navbar bg="light">
<Nav className="mr-auto">
<Nav.Link style={{color:this.getMenuColor(Menu.manager)}} onClick={()=>this.changeMenu(Menu.manager)}></Nav.Link>
<Nav.Link style={{color:this.getMenuColor(Menu.user)}} onClick={()=>this.changeMenu(Menu.user)}></Nav.Link>
<Nav.Link style={{color:this.getMenuColor(Menu.active)}} onClick={()=>this.changeMenu(Menu.active)}></Nav.Link>
</Nav>
<Navbar.Text>
{this.props.manager}
</Navbar.Text>
<Button variant="outline-primary" className="ml-3" onClick={()=>this.props.logout()}></Button>
</Navbar>
{this.state.subMenu}
</div>
4 years ago
)
}
}