81 lines
2.0 KiB
TypeScript
Raw Normal View History

2026-01-08 16:35:06 +08:00
import { Apis } from '@/gen/Apis';
import {
2026-02-04 12:32:17 +08:00
DownOutlined,
2026-01-08 16:35:06 +08:00
LogoutOutlined,
UnlockOutlined,
UserOutlined,
} from '@ant-design/icons';
import { history } from '@umijs/max';
import { Avatar, Dropdown, MenuProps, Space } from 'antd';
2026-02-04 12:32:17 +08:00
import { useEffect, useState } from 'react';
2026-01-08 16:35:06 +08:00
import { stateActions } from '../../libs/valtio/actions';
import AvatarIcon from './AvatarIcon.png';
import ChangePassword from './ChangePassword';
export default function AvatarProps({ user }: { user: any }) {
const [open, setOpen] = useState(false);
// const [openDrawer, setOpenDrawer] = useState(false);
// const showDrawer = () => {
// setOpenDrawer(true);
// };
// const onClose = () => {
// setOpenDrawer(false);
// };
const items: MenuProps['items'] = [
{
key: 'changePassword',
label: (
<Space
onClick={() => {
setOpen(true);
}}
>
<UnlockOutlined />
</Space>
),
},
{
key: 'logout',
label: (
<Space
onClick={() => {
Apis.Common.Auth.Logout().then(() => {
stateActions.setLogout();
2026-02-06 17:40:04 +08:00
sessionStorage.removeItem('loginUserInfo');
2026-01-08 16:35:06 +08:00
history.push('/login');
});
}}
>
<LogoutOutlined />
退
</Space>
),
},
];
2026-02-04 12:32:17 +08:00
useEffect(() => {
let loginUserInfo = sessionStorage.getItem('loginUserInfo');
console.log(loginUserInfo, 'loginUserInfo');
2026-02-06 17:40:04 +08:00
if (loginUserInfo === 'I0xZMDEyM18wMQ==') {
2026-02-04 12:32:17 +08:00
setOpen(true);
console.log('登录成功');
}
}, []);
2026-01-08 16:35:06 +08:00
return (
<>
<Dropdown menu={{ items }} trigger={['click']}>
<a onClick={(e) => e.preventDefault()}>
<Space>
<Avatar icon={<UserOutlined />} src={AvatarIcon} size={28} />
<span>{user?.name}</span>
2026-02-04 12:32:17 +08:00
<DownOutlined />
2026-01-08 16:35:06 +08:00
</Space>
</a>
</Dropdown>
<ChangePassword open={open} setOpen={setOpen} />
</>
);
}