import React, { useEffect, useState } from 'react'; import { Modal, Button, message } from 'antd'; import DimensionMetricRelationTableTransfer from './DimensionMetricRelationTableTransfer'; import { ISemantic } from '../data'; import { updateMetric } from '../service'; import FormItemTitle from '@/components/FormHelper/FormItemTitle'; type Props = { onCancel: () => void; open: boolean; metricItem?: ISemantic.IMetricItem; relationsInitialValue?: ISemantic.IDrillDownDimensionItem[]; onSubmit: (relations: ISemantic.IDrillDownDimensionItem[]) => void; onRefreshRelationData?: () => void; }; const DimensionAndMetricRelationModal: React.FC = ({ open, metricItem, relationsInitialValue, onCancel, onSubmit, onRefreshRelationData, }) => { const [relationList, setRelationList] = useState([]); useEffect(() => { if (Array.isArray(relationsInitialValue)) { setRelationList(relationsInitialValue); } }, [relationsInitialValue]); const saveMetric = async (relationList: any) => { const queryParams = { ...metricItem, relateDimension: { ...(metricItem?.relateDimension || {}), drillDownDimensions: relationList, }, }; const { code, msg } = await updateMetric(queryParams); if (code === 200) { onSubmit(relationList); onRefreshRelationData?.(); return; } message.error(msg); }; const renderFooter = () => { return ( <> ); }; return ( <> } maskClosable={false} open={open} footer={renderFooter()} onCancel={onCancel} >
{ setRelationList(relations); }} />
); }; export default DimensionAndMetricRelationModal;