This repository has been archived on 2025-11-04. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
ndm-web-client-r/src/App.tsx
2025-07-31 17:09:53 +08:00

74 lines
2.6 KiB
TypeScript

import type { MenuTheme } from 'antd';
import type { FC } from 'react';
import { AlertFilled, AreaChartOutlined, HomeFilled, VideoCameraFilled } from '@ant-design/icons';
import { Button, Layout, Menu, theme, Typography } from 'antd';
import { useState } from 'react';
const { Content, Footer, Header, Sider } = Layout;
const { Title } = Typography;
const App: FC = () => {
const { token: { colorBgContainer } } = theme.useToken();
const [menuTheme] = useState<MenuTheme>('light');
const [count, setCount] = useState(0);
return (
<Layout style={{ height: '100%' }}>
<Header style={{ background: colorBgContainer }}>
<Title level={2}></Title>
</Header>
<Layout>
<Sider collapsible defaultCollapsed collapsedWidth={64} trigger={null} style={{ background: colorBgContainer }}>
<Menu
theme='light'
mode='inline'
defaultSelectedKeys={['home']}
items={[
{
label: '实时数据看板',
key: 'home',
icon: <HomeFilled />,
theme: menuTheme,
},
{
label: '实时设备状态',
key: 'device',
icon: <VideoCameraFilled />,
theme: menuTheme,
},
{
label: '设备告警记录',
key: 'alarm',
icon: <AlertFilled />,
theme: menuTheme,
},
{
key: 'statistics', // analysis
icon: <AreaChartOutlined />,
theme: menuTheme,
},
]}
>
</Menu>
</Sider>
<Content style={{ overflow: 'auto' }}>
{/* 内容区域 */}
<Button onClick={() => setCount(count + 1)}>{`count is ${count}`}</Button>
<div style={{ width: '300px', height: '300px', margin: '50px', backgroundColor: 'cadetblue' }}>Content</div>
<div style={{ width: '300px', height: '300px', margin: '50px', backgroundColor: 'cadetblue' }}>Content</div>
<div style={{ width: '300px', height: '300px', margin: '50px', backgroundColor: 'cadetblue' }}>Content</div>
<div style={{ width: '300px', height: '300px', margin: '50px', backgroundColor: 'cadetblue' }}>Content</div>
<div style={{ width: '300px', height: '300px', margin: '50px', backgroundColor: 'cadetblue' }}>Content</div>
<div>Bottom</div>
</Content>
</Layout>
<Footer style={{ background: colorBgContainer }}>
<div>Footer</div>
</Footer>
</Layout>
);
};
export default App;