import { forwardRef, useImperativeHandle, useState, useMemo } from 'react'; import { Form, Select, Steps, Flex, Alert, Row, Col, Statistic, Input, Button } from 'antd'; import { useTranslation } from 'react-i18next'; import type { UploadWorkflowModalData, UploadWorkflowModalRef } from '../types' import RbModal from '@/components/RbModal' import UploadFiles from '@/components/Upload/UploadFiles' import { fileUploadUrl } from '@/api/fileStorage' import RbCard from '@/components/RbCard/Card' interface UploadWorkflowModalProps { refresh: () => void; } const steps = [ 'upload', 'complex', 'node', 'configCheck', 'sureInfo', 'completed' ] const UploadWorkflowModal = forwardRef(({ refresh }, ref) => { const { t } = useTranslation(); const [visible, setVisible] = useState(false); const [form] = Form.useForm(); const [loading, setLoading] = useState(false) const [current, setCurrent] = useState(5); // 封装取消方法,添加关闭弹窗逻辑 const handleClose = () => { setVisible(false); form.resetFields(); setLoading(false) }; const handleOpen = () => { form.resetFields(); setVisible(true); }; // 封装保存方法,添加提交逻辑 const handleSave = () => { switch(current) { case 0: setCurrent(1) break; case 1: setCurrent(2) break; case 2: setCurrent(3) break; case 3: setCurrent(4) break; case 4: setCurrent(5) break; case 5: break; default: setCurrent(prev => prev + 1) break; } // form // .validateFields() // .then(() => { // }) // .catch((err) => { // console.log('err', err) // }); } // 暴露给父组件的方法 useImperativeHandle(ref, () => ({ handleOpen, handleClose })); const handleLastStep = () => { setCurrent(prev => prev - 1) } const handleJump = (type: string) => { switch(type) { case 'detail': break; default: break; } } const getFooter = useMemo(() => { switch(current) { case 0: return [ , ] case 5: return [ , ] default: return [ , , ] } }, [current]) return (
({ title: t(`application.${key}`) }))} />
{current === 0 &&
} {current === 3 && } {current === 4 &&
{t('application.baseInfo')}
source fileName fileSize
{t('application.importStatistic')}
{['complex', 'nodes', 'task'].map(key => ( ))} } {current === 5 &&
导入成功
您的工作流已成功导入,可以在应用管理中查看和管理
}
); }); export default UploadWorkflowModal;