import React, {Component} from 'react'; import 'antd/dist/antd.css'; import './App.css'; import {Divider, Layout, Menu} from "antd"; import {Link, Route, Switch} from "react-router-dom"; import Dashboard from "./components/dashboard/Dashboard"; import Asset from "./components/asset/Asset"; import Access from "./components/access/Access"; import User from "./components/user/User"; import OnlineSession from "./components/session/OnlineSession"; import OfflineSession from "./components/session/OfflineSession"; import Login from "./components/Login"; import DynamicCommand from "./components/command/DynamicCommand"; import Credential from "./components/credential/Credential"; import { AuditOutlined, BlockOutlined, CloudServerOutlined, CodeOutlined, DashboardOutlined, DesktopOutlined, DisconnectOutlined, IdcardOutlined, LinkOutlined, LoginOutlined, MenuFoldOutlined, MenuUnfoldOutlined, SettingOutlined, SolutionOutlined, TeamOutlined, UserOutlined, UserSwitchOutlined } from '@ant-design/icons'; import Info from "./components/user/Info"; import request from "./common/request"; import {message} from "antd/es"; import Setting from "./components/setting/Setting"; import BatchCommand from "./components/command/BatchCommand"; import {isEmpty, NT_PACKAGE} from "./utils/utils"; import {isAdmin} from "./service/permission"; import UserGroup from "./components/user/UserGroup"; import LoginLog from "./components/session/LoginLog"; const {Footer, Sider} = Layout; const {SubMenu} = Menu; class App extends Component { state = { collapsed: false, current: sessionStorage.getItem('current'), openKeys: sessionStorage.getItem('openKeys') ? JSON.parse(sessionStorage.getItem('openKeys')) : [], user: { 'nickname': '未定义' }, package: NT_PACKAGE() }; toggle = () => { this.setState({ collapsed: !this.state.collapsed, }); }; componentDidMount() { let hash = window.location.hash; let current = hash.replace('#/', ''); if(isEmpty(current)){ current = 'dashboard'; } this.setCurrent(current); this.getInfo(); } async getInfo() { let result = await request.get('/info'); if (result['code'] === 1) { this.setState({ user: result['data'] }) sessionStorage.setItem('user', JSON.stringify(result['data'])); } else { message.error(result['message']); } } updateUser = (user) => { this.setState({ user: user }) } setCurrent = (key) => { this.setState({ current: key }) sessionStorage.setItem('current', key); } subMenuChange = (openKeys) => { this.setState({ openKeys: openKeys }) sessionStorage.setItem('openKeys', JSON.stringify(openKeys)); } render() { return (
logo { !this.state.collapsed ? <> 

Next Terminal

: null }
this.setCurrent(e.key)} selectedKeys={[this.state.current]} onOpenChange={this.subMenuChange} defaultOpenKeys={this.state.openKeys} theme="dark" mode="inline" defaultSelectedKeys={['dashboard']} inlineCollapsed={this.state.collapsed} style={{lineHeight: '64px'}}> }> 控制面板 }> }> 资产列表 }> 授权凭证 }> }> 动态指令 {/*}> 静默指令 */} { isAdmin() ? <> }> }> 在线会话 }> 历史会话 }> 登录日志 }> }> 用户管理 }> 用户组管理 : undefined } }> 个人中心 { isAdmin() ? <> }> 系统设置 : undefined }
{React.createElement(this.state.collapsed ? MenuUnfoldOutlined : MenuFoldOutlined, { className: 'trigger', onClick: this.toggle, })}
{/*
*/}
); } } export default App;