import React, { useMemo } from 'react'; import { Row, Col, Divider, Spin, Affix, Button } from 'antd'; import { groupBy } from 'lodash'; import styles from './index.less'; import LevelNotification from '../level-notification'; import NoticeCard from '../notice-card'; import { EventRuleItem, NoticeRuleItem, Category, } from '../../services/notice-rules/type'; const formatEventRules = (eventRules: EventRuleItem[]) => { const data = eventRules?.map((item: EventRuleItem) => { return { ...item, label: item.eventName, value: item.eventType }; }); return groupBy(data, 'groupName'); }; export interface EventListProps { className: string; loading: boolean; category?: Category; editable?: boolean; noticeData?: any; eventData?: any; onEventRule?: (value: EventRuleItem) => void; onNoticeRule?: (value: NoticeRuleItem[]) => void; onUnavailable?: (value: boolean) => void; } const NoticeRulesList: React.FC = props => { const { className, loading, eventData, noticeData, editable, onNoticeRule, category, onUnavailable, onEventRule, } = props; const dataGroupByGroupType = useMemo(() => { return formatEventRules(eventData || []); }, [eventData]); // groupTypes const groupTypes = useMemo(() => { return Object.keys(dataGroupByGroupType); }, [dataGroupByGroupType]); return (
{groupTypes?.map(item => (
{item}
{dataGroupByGroupType[item] && dataGroupByGroupType[item]?.map(i => ( ))}
))}
多级通知流程
); }; export default NoticeRulesList;