chore: base layout

This commit is contained in:
2025-07-31 17:09:53 +08:00
parent f2c4dd37ac
commit e862d40a71

View File

@@ -1,7 +1,73 @@
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 = () => {
return <div>Hello World</div>;
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;