forked from gzzfw/frontEnd/gzDyh

dminyi
2024-08-09 a2a5220469a3e1f8bc216f47c887ca4c941920b0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
/*
 * @Company: hugeInfo
 * @Author: ldh
 * @Date: 2022-03-11 11:33:21
 * @LastEditTime: 2022-04-08 11:50:21
 * @LastEditors: lwh
 * @Version: 1.0.0
 * @Description: 头部组件
 */
import React, { useEffect, useState } from 'react';
import PropTypes from 'prop-types';
import { useNavigate } from 'react-router-dom';
import { Menu, Badge, Avatar, Dropdown, Space } from 'antd';
import { QuestionCircleOutlined, BellOutlined, LogoutOutlined, UserOutlined } from '@ant-design/icons';
import * as $$ from '../../utils/utility';
 
const Header = ({ headerMenu }) => {
    let navigate = useNavigate();
 
    const [data, setData] = useState({});
 
    // 退出登录
    function handleLoginOut() {
        // $$.modalInfo({
        //     content: '是否退出登录?',
        //     onOk: () => {
        //         $$.clearLocal('customerSystemToken');
        //         $$.clearLocal('customerSystemUser');
        //         navigate('/customerSystem/login');
        //     },
        // });
    }
 
    const userMenu = (
        <Menu>
            <Menu.Item key="role" disabled>
                xxxxx角色
            </Menu.Item>
            <Menu.Divider />
            <Menu.Item key="loginOut" onClick={handleLoginOut}>
                <LogoutOutlined style={{ marginRight: '8px' }} />
                退出登录
            </Menu.Item>
        </Menu>
    );
 
    useEffect(() => {
        setData($$.getLocal('customerSystemUser'));
    }, []);
 
    return (
        <header className="header">
            <div className="header-logo">
                <span className="header-logo-title">IDR</span>
                <span className="header-logo-text">运营中心</span>
            </div>
            <div className="header-menu">
                {headerMenu.map((x, t) => {
                    return (
                        <div
                            // onClick={() => handleClickMenu(x)}
                            className="header-menu-item"
                            key={x.key}
                        >
                            <div>
                                <img src={x.icon} alt="" />
                            </div>
                            <div>{x.title}</div>
                        </div>
                    );
                })}
            </div>
            <div className="header-user">
                {/* <Space size="small"> */}
                    {/* <div className="header-user-item">
                        <QuestionCircleOutlined />
                    </div>
                    <div className="header-user-item">
                        <Badge count={2}>
                            <BellOutlined />
                        </Badge>
                    </div> */}
                    <Dropdown overlay={userMenu}>
                        <div className="header-user-avatar">
                            <Avatar icon={<UserOutlined />} />
                            <div>
                                <div className="header-user-name">{data?.trueName || 'xxx'}</div>
                                <div className="header-user-unit">{data?.unit || 'xxx'}</div>
                            </div>
                        </div>
                    </Dropdown>
                {/* </Space> */}
            </div>
        </header>
    );
};
 
Header.propTypes = {
    headerMenu: PropTypes.any,
    // headerMenuActive: PropTypes.any,
    // handleClickMenu: PropTypes.func,
};
 
export default Header;