import { Modal, Spin, Avatar } from 'antd'; import { memo, useEffect, useState } from 'react'; import style from './index.less'; import { MessageFilled } from '@ant-design/icons'; import { getFeishuUserDetail } from '../server'; import { FormattedMessage, useDispatch, useSelector, useIntl } from 'umi'; import bg from './bg.png'; const UserInfo = () => { const { formatMessage } = useIntl(); const SexMap = { 0: formatMessage({ id: 'base.common.user.state.sex.0', defaultMessage: '男' }), 1: formatMessage({ id: 'base.common.user.state.sex.1', defaultMessage: '女' }), 2: formatMessage({ id: 'base.common.user.state.sex.2', defaultMessage: '保密' }), }; const dispatch = useDispatch(); const { showUserInfo, userId, account } = useSelector<{ public: API.StoreState }, API.StoreState>( (state: any) => state.public, ); const [user, setUser] = useState>({}); const [loading, setLoading] = useState(true); const handleCancel = () => { dispatch({ type: 'public/showFeishuUserDetail', payload: { showUserInfo: false, }, }); }; useEffect(() => { if (showUserInfo) { setUser({}); setLoading(true); getFeishuUserDetail({ userId, account }) .then((data) => { setUser(data?.data); }) .finally(() => { setLoading(false); }); } }, [showUserInfo, userId, account]); return (
{loading ? (
) : (
{user?.account?.charAt(0).toUpperCase()}
{user.nameZh}({user.account}) {user.state === 0 ? ( ) : ( '' )}
{user.department}
{user.jobName}
{user.email}
{/*
{user.workStation}
{user.sex ? SexMap[user.sex] : ''}
*/} {user.companyNumber ? ( <>
{user.companyNumber}
) : null}
)}
); }; export default memo(UserInfo);