import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'; import { CloseOutlined, LogoutOutlined, SwapOutlined, SwapRightOutlined, UserOutlined } from '@ant-design/icons'; import { Avatar, MenuProps } from 'antd'; import globaStore from '../store/index' import HeaderDropdown from '../components/HeaderDropdown'; import styles from './index.less'; import { toJS } from 'mobx'; import { useLocalObservable, observer } from 'mobx-react' import useNewToken from '@/Hook/useNewToken'; export interface GlobalHeaderRightProps { config: any, } const AvatarDropdown: React.FC = ({ config }) => { const store = useLocalObservable(() => globaStore) const [dialogVisible, setDialogVisible] = useState(false) const [dOpen, setDopen] = useState(false) const ref1 = useRef(null); const [openTour, setOpenTour] = useState(false); const { token } = useNewToken() const userInfo: any = useMemo(() => { return toJS(store.data.userInfo) }, [store.data.userInfo]) const onMenuClick = useCallback( (event: any) => { const { key } = event; if (key === 'logout') { store.loginOut(); return; } if (key === 'company') { setDialogVisible(() => true) return } }, [], ); const items: MenuProps['items'] = [ { icon: , key: 'company', label: '切换公司' }, { icon: , key: 'logout', label: '退出登录' }] //是否首次打开平台 useEffect(() => { let isOneOpen = localStorage.getItem('isOneOpen') let isPhone = sessionStorage.getItem('isPhone') if (!isOneOpen && !openTour && !isPhone) { setOpenTour(true) } }, []) //新增字体样式 function addStyle() { const styleElement = document.createElement('style'); styleElement.textContent = '* { font-family: cursive !important; }'; styleElement.id = 'fontfamilystyle' document.head.appendChild(styleElement); } //删除字体样式 function removeStyle() { const styleElement = document.getElementById('fontfamilystyle'); if (styleElement) { document.head.removeChild(styleElement); } } useEffect(() => { console.log("config.fontfamilystyle===>", config.fontfamilystyle) if (config.fontfamilystyle) { addStyle() } else { removeStyle() } }, [config.fontfamilystyle]) return ( <> { setDopen(open) }} open={dOpen} > } alt="avatar" /> {userInfo?.nickname}
{ setDialogVisible(false) }}>

切换公司账户

{toJS(store.data.companyList)?.map((item: any) => { if (item.companyId != store.data.userInfo?.onlineCompanyId) { return
{ store.selectCompany(item?.companyId) }}>
{item?.companyInfo?.companyName}
{item?.powerLevel === 999 ? '超级管理员' : item?.powerLevel === 100 ? '系统管理员' : item?.powerLevel === 99 ? '管理员' : '普通用户'}
} else { return
{item?.companyInfo?.companyName}
{item?.powerLevel === 999 ? '超级管理员' : item?.powerLevel === 100 ? '系统管理员' : item?.powerLevel === 99 ? '管理员' : '普通用户'}
} })}
); }; export default observer(AvatarDropdown);