import { forwardRef, useImperativeHandle, useState } from 'react'; import { Form, Input, App } from 'antd'; import { useTranslation } from 'react-i18next'; import type { OntologyItem, OntologyModalData, OntologyModalRef } from '../types' import RbModal from '@/components/RbModal' import { createOntologyScene, updateOntologyScene } from '@/api/ontology' const FormItem = Form.Item; interface OntologyModalProps { refresh: () => void; } const OntologyModal = forwardRef(({ refresh }, ref) => { const { t } = useTranslation(); const { message } = App.useApp(); const [visible, setVisible] = useState(false); const [editVo, setEditVo] = useState(null) const [form] = Form.useForm(); const [loading, setLoading] = useState(false) const handleClose = () => { setVisible(false); form.resetFields(); setLoading(false) setEditVo(null) }; const handleOpen = (vo?: OntologyItem) => { if (vo) { setEditVo(vo); form.setFieldsValue(vo); } else { form.resetFields(); } setVisible(true); }; const handleSave = () => { form .validateFields() .then((values) => { setLoading(true) const request = editVo?.scene_id ? updateOntologyScene(editVo.scene_id, values) : createOntologyScene(values) request .then(() => { message.success(t('common.saveSuccess')); handleClose(); refresh(); }) .finally(() => setLoading(false)) }) .catch((err) => { console.log('err', err) }); } useImperativeHandle(ref, () => ({ handleOpen, })); return (
); }); export default OntologyModal;