2026-01-22 16:52:40 +08:00
|
|
|
|
import { DownOutlined } from '@ant-design/icons';
|
|
|
|
|
|
import { Button, Dropdown, Popconfirm, Space } from 'antd';
|
2026-01-05 17:06:16 +08:00
|
|
|
|
import { useUserStore } from '@/store/UserStore';
|
|
|
|
|
|
import { GapBox } from '../GapBox';
|
|
|
|
|
|
|
|
|
|
|
|
export const HeaderUserInfo: React.FC = () => {
|
|
|
|
|
|
const userInfo = useUserStore().user;
|
|
|
|
|
|
|
|
|
|
|
|
return (
|
|
|
|
|
|
<GapBox>
|
2026-01-22 16:52:40 +08:00
|
|
|
|
{/* 用户信息 Dropdown */}
|
|
|
|
|
|
<Dropdown
|
|
|
|
|
|
trigger={['click']}
|
|
|
|
|
|
placement='bottomRight'
|
|
|
|
|
|
arrow
|
|
|
|
|
|
menu={{
|
|
|
|
|
|
items: [
|
|
|
|
|
|
{
|
|
|
|
|
|
key: 'user-info',
|
|
|
|
|
|
disabled: true, // 只展示,不可操作
|
|
|
|
|
|
label: (
|
|
|
|
|
|
<Space size={8} style={{ color: 'rgba(0,0,0,0.88)' }}>
|
2026-01-23 09:43:55 +08:00
|
|
|
|
<span>
|
|
|
|
|
|
{userInfo.username} ({userInfo.nickname})
|
|
|
|
|
|
</span>
|
2026-01-22 16:52:40 +08:00
|
|
|
|
</Space>
|
|
|
|
|
|
),
|
|
|
|
|
|
},
|
|
|
|
|
|
],
|
|
|
|
|
|
}}
|
|
|
|
|
|
>
|
|
|
|
|
|
<div style={{ cursor: 'pointer' }}>
|
|
|
|
|
|
<Space size={4}>
|
|
|
|
|
|
<span>欢迎您,</span>
|
|
|
|
|
|
<span
|
|
|
|
|
|
style={{
|
|
|
|
|
|
maxWidth: 120,
|
|
|
|
|
|
whiteSpace: 'nowrap',
|
|
|
|
|
|
textOverflow: 'ellipsis',
|
|
|
|
|
|
overflow: 'hidden',
|
|
|
|
|
|
}}
|
|
|
|
|
|
>
|
|
|
|
|
|
{userInfo.username}
|
|
|
|
|
|
</span>
|
|
|
|
|
|
<DownOutlined
|
|
|
|
|
|
style={{
|
|
|
|
|
|
fontSize: 10,
|
|
|
|
|
|
marginTop: 2,
|
|
|
|
|
|
color: '#666',
|
|
|
|
|
|
}}
|
|
|
|
|
|
/>
|
|
|
|
|
|
</Space>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</Dropdown>
|
|
|
|
|
|
|
|
|
|
|
|
{/* 退出登录 */}
|
2026-01-05 17:06:16 +08:00
|
|
|
|
<Popconfirm
|
|
|
|
|
|
title='确定要退出登录吗?'
|
|
|
|
|
|
onConfirm={() => {
|
|
|
|
|
|
location.hash = '#/login';
|
|
|
|
|
|
}}
|
|
|
|
|
|
>
|
|
|
|
|
|
<Button size='small' variant='text' color='primary'>
|
|
|
|
|
|
退出登录
|
|
|
|
|
|
</Button>
|
|
|
|
|
|
</Popconfirm>
|
|
|
|
|
|
</GapBox>
|
|
|
|
|
|
);
|
|
|
|
|
|
};
|