import { ModalForm, ProForm, ProFormSelect, ProFormText, ProDescriptions, } from '@ant-design/pro-components'; import { Form } from 'antd'; import React, { useEffect } from 'react'; export type WebsiteFormProps = { onCancel: (flag?: boolean, formVals?: unknown) => void; onSubmit: (values: API.Website.WebsiteItem) => Promise; open: boolean; values?: Partial; mode?: 'view' | 'edit' | 'create'; }; const WebsiteEdit: React.FC = (props) => { const [form] = Form.useForm(); const { mode = props.values ? 'edit' : 'create' } = props; useEffect(() => { if (props.open) { form.resetFields(); if (props.values) { form.setFieldsValue(props.values); } } }, [form, props.values?.websiteId, props.open]); const handleCancel = () => { props.onCancel(); form.resetFields(); }; const handleFinish = async (values: Record) => { await props.onSubmit(values as API.Website.WebsiteItem); }; if (mode === 'view') { return ( handleCancel(), footer: null, }} submitter={false} > column={2} dataSource={props.values || {}}> ); } return ( title={mode === 'edit' ? '编辑网站信息' : '新建网站信息'} form={form} autoFocusFirstInput open={props.open} modalProps={{ destroyOnClose: true, onCancel: () => handleCancel(), }} submitTimeout={2000} onFinish={handleFinish} > ); }; export default WebsiteEdit;