126 lines
3.7 KiB
TypeScript
Raw Normal View History

2025-07-25 16:42:54 +08:00
import React from 'react';
import { Button, Card, Space, Divider } from 'antd';
import { PlusOutlined, UserOutlined, SettingOutlined } from '@ant-design/icons';
import { MyPageContainer } from './MyPageContainer';
import { usePageTabs } from './usePageTabs';
import { history } from '@umijs/max';
/**
* 使
* 使MyPageContainer的多标签页功能
*/
export function TabsExample() {
const tabsApi = usePageTabs({
tabKey: 'tabs-example',
tabLabel: '标签页示例'
});
const handleAddTab = (key: string, label: string, path: string) => {
tabsApi.addTab({
key,
label,
path,
closable: true
});
history.push(path);
};
return (
<MyPageContainer
enableTabs
tabKey="tabs-example"
tabLabel="标签页示例"
title="多标签页功能演示"
>
<Card title="标签页操作示例" style={{ marginBottom: 16 }}>
<Space wrap>
<Button
type="primary"
icon={<PlusOutlined />}
onClick={() => handleAddTab('user-list', '用户列表', '/users')}
>
</Button>
<Button
icon={<UserOutlined />}
onClick={() => handleAddTab('user-profile', '用户详情', '/users/profile')}
>
</Button>
<Button
icon={<SettingOutlined />}
onClick={() => handleAddTab('settings', '系统设置', '/settings')}
>
</Button>
</Space>
<Divider />
<Space wrap>
<Button onClick={() => tabsApi.closeOtherTabs()}>
</Button>
<Button onClick={() => tabsApi.closeLeftTabs()}>
</Button>
<Button onClick={() => tabsApi.closeRightTabs()}>
</Button>
<Button onClick={() => tabsApi.refreshTab()}>
</Button>
</Space>
</Card>
<Card title="功能说明">
<div style={{ lineHeight: '1.8' }}>
<h4>🎯 </h4>
<ul>
<li><strong></strong></li>
<li><strong></strong></li>
<li><strong></strong></li>
<li><strong></strong></li>
</ul>
<h4>🖱 </h4>
<ul>
<li><strong></strong></li>
<li><strong></strong></li>
<li><strong></strong></li>
<li><strong></strong></li>
<li><strong></strong></li>
</ul>
<h4>💻 使</h4>
<pre style={{ background: '#f5f5f5', padding: '12px', borderRadius: '4px' }}>
{`// 1. 在页面组件中使用
import { MyPageContainer, usePageTabs } from '@/common';
function YourPage() {
usePageTabs({
tabKey: 'your-page',
tabLabel: '页面标题'
});
return (
<MyPageContainer
enableTabs
tabKey="your-page"
tabLabel="页面标题"
>
{/* 页面内容 */}
</MyPageContainer>
);
}`}
</pre>
</div>
</Card>
</MyPageContainer>
);
}