import React, { useState } from 'react'; import { Form, Button, Modal, Input, Switch } from 'antd'; import styles from './style.less'; import { useMounted } from '@/hooks/useMounted'; import { message } from 'antd'; import { formLayout } from '@/components/FormHelper/utils'; import { EnumTransModelType } from '@/enum'; const FormItem = Form.Item; export type ProjectInfoFormProps = { basicInfo: any; onCancel: () => void; onSubmit: (values: any) => Promise; }; const ProjectInfoForm: React.FC = (props) => { const { basicInfo, onSubmit: handleUpdate, onCancel } = props; const { type, modelType } = basicInfo; const isMounted = useMounted(); const [formVals, setFormVals] = useState(basicInfo); const [saveLoading, setSaveLoading] = useState(false); const [form] = Form.useForm(); const handleConfirm = async () => { const fieldsValue = await form.validateFields(); const columnsValue = { ...fieldsValue, isUnique: 1 }; setFormVals({ ...formVals, ...columnsValue }); setSaveLoading(true); try { await handleUpdate({ ...formVals, ...columnsValue }); if (isMounted()) { setSaveLoading(false); } } catch (error) { message.error('接口调用出错'); setSaveLoading(false); } }; const footer = ( <> ); const titleRender = () => { let str = EnumTransModelType[modelType]; if (type === 'top') { str += '顶级'; } else if (modelType === 'add') { str += '子'; } str += '主题域'; return str; }; return (
{type !== 'top' && modelType === 'add' && ( )}
); }; export default ProjectInfoForm;