import React, {useEffect, useState} from 'react'; import {Modal, Form, Input, Select, Message} from '@arco-design/web-react'; import UploadFile from '@/components/Upload'; import {createUser, updateUser} from '@/api/user'; import {genderDict, statusDict} from "@/enum/dict"; interface Props { record: { [key: string]: any } | null, visible: boolean, handleConfirm: () => void, handleCancel: () => void } function FormComponent(props: Props) { const {visible, record, handleConfirm, handleCancel} = props; const [confirmLoading, setConfirmLoading] = useState(false); const onOk = async () => { try { setConfirmLoading(true); const values = await form.validate(); const data = { ...values, avatarId: values.avatar?.[0]?.response ?? null }; if (record?.id) { await updateUser(data); } else { await createUser(data); } Message.success(`${record?.id ? '更新' : '新增'}成功!`); handleConfirm(); } catch (e) { console.log(e); } finally { setConfirmLoading(false); } }; const [form] = Form.useForm(); useEffect(() => { record && form.setFieldsValue({ ...record, avatar: record.avatar ? [{ uid: record.avatar.id, response: record.avatar.id, url: record.avatar.path }] : undefined }); }, [record]); useEffect(() => { !visible && form.resetFields() }, [visible]); return ( {`${record?.id ? '更新' : '新增'}数据`}} visible={visible} onOk={onOk} onCancel={handleCancel} confirmLoading={confirmLoading} >
{!record?.id && }
); } export default FormComponent;