import { CheckCard, ProCard } from '@ant-design/pro-components'; import { useRequest } from '@umijs/max'; import { Col, Row, Spin } from 'antd'; import { useContext, useEffect, useState } from 'react'; import { getRuleList } from '@/services/api'; import { $t } from '@/utils/i18n'; import { RuleCardBodyInfo } from '../../RuleCardBody'; import { MultiCopyPopupContext } from '../context'; type RuleCheckCardProps = { dataSourceId: string | number; }; const RuleCheckCard = ({ dataSourceId }: RuleCheckCardProps) => { const { ruleMeta, currentRuleType, setSelectRules } = useContext( MultiCopyPopupContext, ); const [ruleList, setRuleList] = useState([]); const { loading } = useRequest( () => getRuleList({ type: currentRuleType, dataSourceId, }), { refreshDeps: [dataSourceId, currentRuleType], onSuccess: ({ data = [] }: { data: API.RuleListItem[] }) => { setRuleList(data); setSelectRules(data); }, onError: () => { setRuleList([]); }, }, ); useEffect(() => { return () => setSelectRules([]); }, []); if (!dataSourceId) return
{$t('pages.clones.step1.tips')}
; if (loading) return ; return ( { if (Array.isArray(value)) { const selectedRules = value.map((item) => ruleList.find((rule) => rule.id === item), ) as API.RuleListItem[]; setSelectRules(selectedRules); } }} className="w-100" defaultValue={ruleList.map((item) => item.id)} > {ruleList.map((rule) => ( } className="w-100" /> ))} ); }; export default RuleCheckCard;