feat: add user profile & logout...
This commit is contained in:
parent
fb7706094b
commit
efc51355dd
@ -1,10 +1,26 @@
|
|||||||
import React from 'react';
|
import React from 'react';
|
||||||
import { Layout, Menu } from 'antd';
|
import { Layout, Menu, Dropdown, Avatar } from 'antd';
|
||||||
import { Link } from 'umi';
|
|
||||||
import './style.less';
|
import './style.less';
|
||||||
|
import { history, Link, request, useModel } from 'umi';
|
||||||
|
import { UserOutlined } from '@ant-design/icons';
|
||||||
|
|
||||||
|
const overlay = (
|
||||||
|
<Menu>
|
||||||
|
<Menu.Item disabled>个人资料</Menu.Item>
|
||||||
|
<Menu.Divider></Menu.Divider>
|
||||||
|
<Menu.Item onClick={async () => {
|
||||||
|
await request('/users:logout');
|
||||||
|
localStorage.removeItem('NOCOBASE_TOKEN');
|
||||||
|
(window as any).routesReload();
|
||||||
|
history.push('/login');;
|
||||||
|
// window.location.href = '/login';
|
||||||
|
}}>退出登录</Menu.Item>
|
||||||
|
</Menu>
|
||||||
|
);
|
||||||
|
|
||||||
export function TopMenuLayout(props: any) {
|
export function TopMenuLayout(props: any) {
|
||||||
const { menu = [] } = props.page;
|
const { menu = [] } = props.page;
|
||||||
|
const { initialState = {}, loading, error, refresh, setInitialState } = useModel('@@initialState');
|
||||||
return (
|
return (
|
||||||
<Layout style={{ height: '100vh' }}>
|
<Layout style={{ height: '100vh' }}>
|
||||||
<Layout.Header style={{height: 48, lineHeight: '48px', padding: 0}} className="nb-header">
|
<Layout.Header style={{height: 48, lineHeight: '48px', padding: 0}} className="nb-header">
|
||||||
@ -16,6 +32,13 @@ export function TopMenuLayout(props: any) {
|
|||||||
</Menu.Item>
|
</Menu.Item>
|
||||||
))}
|
))}
|
||||||
</Menu>
|
</Menu>
|
||||||
|
<div className={'noco-user'} style={{position: 'absolute', right: 24, color: 'rgba(255, 255, 255, 0.65)'}}>
|
||||||
|
<Dropdown overlay={overlay} placement="bottomRight">
|
||||||
|
<span className="nbui-dropdown-link" onClick={e => e.preventDefault()}>
|
||||||
|
<Avatar size={'small'} icon={<UserOutlined/>} style={{marginRight: 5}}/> {initialState.currentUser.nickname}
|
||||||
|
</span>
|
||||||
|
</Dropdown>
|
||||||
|
</div>
|
||||||
</Layout.Header>
|
</Layout.Header>
|
||||||
<Layout.Content>
|
<Layout.Content>
|
||||||
{props.children}
|
{props.children}
|
||||||
|
Loading…
Reference in New Issue
Block a user