import { Radar } from '@ant-design/plots'; import { PageContainer } from '@ant-design/pro-components'; import { Link, useRequest } from '@umijs/max'; import { Avatar, Card, Col, List, Row, Skeleton, Statistic } from 'antd'; import dayjs from 'dayjs'; import relativeTime from 'dayjs/plugin/relativeTime'; import type { FC } from 'react'; import EditableLinkGroup from './components/EditableLinkGroup'; import type { ActivitiesType, CurrentUser } from './data.d'; import { fakeChartData, queryActivities, queryProjectNotice } from './service'; import useStyles from './style.style'; dayjs.extend(relativeTime); const links = [ { title: '操作一', href: '', }, { title: '操作二', href: '', }, { title: '操作三', href: '', }, { title: '操作四', href: '', }, { title: '操作五', href: '', }, { title: '操作六', href: '', }, ]; const PageHeaderContent: FC<{ currentUser: Partial; }> = ({ currentUser }) => { const { styles } = useStyles(); const loading = currentUser && Object.keys(currentUser).length; if (!loading) { return ( ); } return (
早安, {currentUser.name} ,祝你开心每一天!
{currentUser.title} |{currentUser.group}
); }; const ExtraContent: FC> = () => { const { styles } = useStyles(); return (
); }; const Workplace: FC = () => { const { styles } = useStyles(); const { loading: projectLoading, data: projectNotice = [] } = useRequest(queryProjectNotice); const { loading: activitiesLoading, data: activities = [] } = useRequest(queryActivities); const { data } = useRequest(fakeChartData); const renderActivities = (item: ActivitiesType) => { const events = item.template.split(/@\{([^{}]*)\}/gi).map((key) => { if (item[key as keyof ActivitiesType]) { const value = item[key as 'user']; return ( {value.name} ); } return key; }); return ( } title={ {item.user.name}   {events} } description={ {dayjs(item.updatedAt).fromNow()} } /> ); }; return ( } extraContent={} > 全部项目} loading={projectLoading} bodyStyle={{ padding: 0, }} > {projectNotice.map((item) => ( {item.title} } description={item.description} style={{ width: '100%', }} />
{item.member || ''} {item.updatedAt && ( {dayjs(item.updatedAt).fromNow()} )}
))}
loading={activitiesLoading} renderItem={(item) => renderActivities(item)} dataSource={activities} className={styles.activitiesList} size="large" /> {}} links={links} linkElement={Link} />
{projectNotice.map((item) => { return ( {item.member.substring(0, 3)} ); })}
); }; export default Workplace;