chore: commit oxfmt formatting changes and verify artifacts

This commit is contained in:
2026-07-02 15:55:09 +08:00
parent 34726cc46d
commit 4f4cee157a
77 changed files with 5576 additions and 1400 deletions

View File

@@ -36,7 +36,12 @@ interface MenuItemType {
}
const allMenuItems: MenuItemType[] = [
{ key: '/dashboard', icon: <DashboardOutlined />, label: '数据面板', permission: 'dashboard:view' },
{
key: '/dashboard',
icon: <DashboardOutlined />,
label: '数据面板',
permission: 'dashboard:view',
},
{ key: '/room-visual', icon: <AppstoreOutlined />, label: '宿舍总览', permission: 'room:view' },
{ key: '/students', icon: <TeamOutlined />, label: '学生管理', permission: 'student:view' },
{ key: '/rooms', icon: <HomeOutlined />, label: '宿舍管理', permission: 'room:view' },
@@ -50,9 +55,24 @@ const allMenuItems: MenuItemType[] = [
label: '教室管理',
permission: 'classroom:view',
children: [
{ key: '/classroom-schedule', icon: <CalendarOutlined />, label: '排期总览', permission: 'classroom:view' },
{ key: '/classrooms', icon: <ReadOutlined />, label: '教室列表', permission: 'classroom:view' },
{ key: '/classroom-rentals', icon: <FileProtectOutlined />, label: '租赁订单', permission: 'rental:view' },
{
key: '/classroom-schedule',
icon: <CalendarOutlined />,
label: '排期总览',
permission: 'classroom:view',
},
{
key: '/classrooms',
icon: <ReadOutlined />,
label: '教室列表',
permission: 'classroom:view',
},
{
key: '/classroom-rentals',
icon: <FileProtectOutlined />,
label: '租赁订单',
permission: 'rental:view',
},
{ key: '/tenants', icon: <TagsOutlined />, label: '租赁方', permission: 'tenant:view' },
],
},
@@ -80,7 +100,7 @@ const MainLayout: React.FC = () => {
// 按 permission 过滤菜单
const filterByPermission = (items: MenuItemType[]): MenuItemType[] => {
return items
.map(item => {
.map((item) => {
if (item.children) {
const kids = filterByPermission(item.children);
if (kids.length === 0) return null;
@@ -107,7 +127,7 @@ const MainLayout: React.FC = () => {
};
const transformToMenuItems = (items: MenuItemType[]): any[] => {
return items.map(item => ({
return items.map((item) => ({
key: item.key,
icon: item.icon,
label: item.label,
@@ -129,33 +149,94 @@ const MainLayout: React.FC = () => {
return (
<Layout style={{ minHeight: '100vh' }}>
{!isMobile && (
<Sider trigger={null} collapsible collapsed={collapsed} theme="light" style={{ background: '#fff', borderRight: '1px solid #e5e5e7' }}>
<div style={{ height: 64, display: 'flex', alignItems: 'center', justifyContent: 'center', color: '#1d1d1f', fontSize: collapsed ? 16 : 17, fontWeight: 600, borderBottom: '1px solid #e5e5e7' }}>
<Sider
trigger={null}
collapsible
collapsed={collapsed}
theme="light"
style={{ background: '#fff', borderRight: '1px solid #e5e5e7' }}
>
<div
style={{
height: 64,
display: 'flex',
alignItems: 'center',
justifyContent: 'center',
color: '#1d1d1f',
fontSize: collapsed ? 16 : 17,
fontWeight: 600,
borderBottom: '1px solid #e5e5e7',
}}
>
{collapsed ? '恭' : '恭学教育基地'}
</div>
{menuContent}
</Sider>
)}
{isMobile && (
<Drawer placement="left" open={drawerOpen} onClose={() => setDrawerOpen(false)} width={240} styles={{ body: { padding: 0 } }} title="恭学教育基地">
<Drawer
placement="left"
open={drawerOpen}
onClose={() => setDrawerOpen(false)}
width={240}
styles={{ body: { padding: 0 } }}
title="恭学教育基地"
>
{menuContent}
</Drawer>
)}
<Layout style={{ background: '#f5f5f7' }}>
<Header style={{ padding: '0 16px', background: '#fff', display: 'flex', alignItems: 'center', justifyContent: 'space-between', borderBottom: '1px solid #e5e5e7', boxShadow: 'none' }}>
<Header
style={{
padding: '0 16px',
background: '#fff',
display: 'flex',
alignItems: 'center',
justifyContent: 'space-between',
borderBottom: '1px solid #e5e5e7',
boxShadow: 'none',
}}
>
<Button
type="text"
icon={isMobile ? <MenuUnfoldOutlined /> : (collapsed ? <MenuUnfoldOutlined /> : <MenuFoldOutlined />)}
onClick={() => isMobile ? setDrawerOpen(true) : setCollapsed(!collapsed)}
icon={
isMobile ? (
<MenuUnfoldOutlined />
) : collapsed ? (
<MenuUnfoldOutlined />
) : (
<MenuFoldOutlined />
)
}
onClick={() => (isMobile ? setDrawerOpen(true) : setCollapsed(!collapsed))}
/>
<Dropdown menu={{ items: [{ key: 'logout', icon: <LogoutOutlined />, label: '退出登录', onClick: handleLogout }] }}>
<Dropdown
menu={{
items: [
{
key: 'logout',
icon: <LogoutOutlined />,
label: '退出登录',
onClick: handleLogout,
},
],
}}
>
<div style={{ cursor: 'pointer', display: 'flex', alignItems: 'center', gap: 8 }}>
<Avatar icon={<UserOutlined />} />
<span>{user.name || user.username || '用户'}</span>
</div>
</Dropdown>
</Header>
<Content style={{ margin: isMobile ? 12 : 24, padding: isMobile ? 12 : 24, background: '#fff', borderRadius: 12, overflow: 'auto' }}>
<Content
style={{
margin: isMobile ? 12 : 24,
padding: isMobile ? 12 : 24,
background: '#fff',
borderRadius: 12,
overflow: 'auto',
}}
>
<Outlet />
</Content>
</Layout>