import React, {Component} from 'react'; import 'antd/dist/antd.css'; import './App.css'; import {Button, Dropdown, Layout, Menu, Popconfirm} 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 LogoWithName from './images/logo-with-name.svg' import Logo from './images/logo.svg' import { ApiOutlined, AuditOutlined, BlockOutlined, CloudServerOutlined, CodeOutlined, ControlOutlined, DashboardOutlined, DesktopOutlined, DisconnectOutlined, DownOutlined, FolderOutlined, GithubOutlined, HddOutlined, IdcardOutlined, InsuranceOutlined, LinkOutlined, LoginOutlined, LogoutOutlined, MenuFoldOutlined, MenuUnfoldOutlined, SafetyCertificateOutlined, 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 {getCurrentUser, isAdmin} from "./service/permission"; import UserGroup from "./components/user/UserGroup"; import LoginLog from "./components/devops/LoginLog"; import Term from "./components/access/Term"; import Job from "./components/devops/Job"; import {Header} from "antd/es/layout/layout"; import Security from "./components/devops/Security"; import Storage from "./components/devops/Storage"; import MyFile from "./components/asset/MyFile"; import Strategy from "./components/user/Strategy"; import AccessGateway from "./components/asset/AccessGateway"; import MyAsset from "./components/asset/MyAsset"; const {Footer, Content, Sider} = Layout; const {SubMenu} = Menu; const headerHeight = 60; 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(), triggerMenu: true, logo: LogoWithName, logoWidth: 140 }; onCollapse = () => { let collapsed = !this.state.collapsed; if (collapsed) { this.setState({ logo: Logo, logoWidth: 46, collapsed: collapsed, }); } else { this.setState({ logo: LogoWithName, logoWidth: 140, collapsed: 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('/account/info'); if (result['code'] === 1) { sessionStorage.setItem('user', JSON.stringify(result['data'])); this.setState({ user: result['data'], triggerMenu: true }) } 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)); } confirm = async () => { let result = await request.post('/account/logout'); if (result['code'] !== 1) { message.error(result['message']); } else { message.success('退出登录成功,即将跳转至登录页面。'); window.location.reload(); } } render() { const menu = (
); return (