import React from 'react';
import { Button, Card, Space, Divider, Row, Col, Statistic, Alert } from 'antd';
import {
PlusOutlined,
UserOutlined,
SettingOutlined,
HomeOutlined,
FileTextOutlined,
TeamOutlined
} from '@ant-design/icons';
import { MyPageContainer, usePageTabs } from '@/common';
import { history } from '@umijs/max';
/**
* 多标签页功能演示页面
* 展示完整的标签页管理功能
*/
export default function TabsDemo() {
const tabsApi = usePageTabs({
tabKey: 'tabs-demo',
tabLabel: '标签页演示',
closable: false // 演示页面不可关闭
});
// 模拟打开不同的页面标签
const openTab = (key: string, label: string, path: string) => {
tabsApi.addTab({
key,
label,
path,
closable: true
});
// 注意:在实际项目中,这里应该使用 history.push(path)
// 由于这是演示,我们只是添加标签而不实际跳转
console.log(`模拟跳转到: ${path}`);
};
const demoTabs = [
{
key: 'employees',
label: '员工管理',
path: '/employees',
icon: ,
description: '管理公司员工信息'
},
{
key: 'companies',
label: '公司管理',
path: '/company/companies',
icon: ,
description: '管理公司基本信息'
},
{
key: 'house-bills',
label: '房屋账单',
path: '/house_bills',
icon: ,
description: '查看和管理房屋账单'
},
{
key: 'system-admins',
label: '系统管理员',
path: '/system/admins',
icon: ,
description: '管理系统管理员账户'
},
{
key: 'system-roles',
label: '角色管理',
path: '/system/sys_roles',
icon: ,
description: '管理系统角色权限'
}
];
return (
{/* 统计信息 */}
}
/>
}
/>
}
/>
{/* 快速打开标签页 */}
{demoTabs.map(tab => (
openTab(tab.key, tab.label, tab.path)}
style={{ cursor: 'pointer', textAlign: 'center' }}
>
{tab.icon}
{tab.label}
{tab.description}
))}
{/* 标签页操作 */}
{/* 功能说明 */}
🎯 核心功能
- 多标签页支持:支持同时打开多个页面标签
- 右键菜单:右键点击标签页显示操作菜单
- 智能导航:关闭标签时自动切换到相邻标签
- 状态持久化:标签页状态在组件间共享
- 自定义样式:支持主题定制和样式覆盖
🖱️ 右键菜单操作
- 刷新:重新加载当前标签页
- 关闭:关闭当前标签页
- 关闭其他:关闭除当前标签外的所有标签
- 关闭左侧:关闭当前标签左侧的所有标签
- 关闭右侧:关闭当前标签右侧的所有标签
💡 使用提示
- 点击上方的页面卡片可以快速打开对应的标签页
- 右键点击任意标签页可以看到完整的操作菜单
- 使用工具栏按钮可以批量操作标签页
- 演示页面(当前页面)被设置为不可关闭
- 在实际项目中,标签页会自动与路由系统集成
);
}