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}
))}
{/* 标签页操作 */} {/* 功能说明 */}

🎯 核心功能

  • 多标签页支持:支持同时打开多个页面标签
  • 右键菜单:右键点击标签页显示操作菜单
  • 智能导航:关闭标签时自动切换到相邻标签
  • 状态持久化:标签页状态在组件间共享
  • 自定义样式:支持主题定制和样式覆盖

🖱️ 右键菜单操作

  • 刷新:重新加载当前标签页
  • 关闭:关闭当前标签页
  • 关闭其他:关闭除当前标签外的所有标签
  • 关闭左侧:关闭当前标签左侧的所有标签
  • 关闭右侧:关闭当前标签右侧的所有标签

💡 使用提示

  • 点击上方的页面卡片可以快速打开对应的标签页
  • 右键点击任意标签页可以看到完整的操作菜单
  • 使用工具栏按钮可以批量操作标签页
  • 演示页面(当前页面)被设置为不可关闭
  • 在实际项目中,标签页会自动与路由系统集成
); }