import { DictValueEnumObj } from '@/components/DictTag'; import KFModal from '@/components/KFModal'; import { ProForm, ProFormDigit, ProFormRadio, ProFormSelect, ProFormText, ProFormTextArea, } from '@ant-design/pro-components'; import { FormattedMessage, useIntl } from '@umijs/max'; import { Form } from 'antd'; import React, { useEffect } from 'react'; export type NoticeFormData = Record & Partial; export type NoticeFormProps = { onCancel: (flag?: boolean, formVals?: NoticeFormData) => void; onSubmit: (values: NoticeFormData) => Promise; open: boolean; values: Partial; noticeTypeOptions: DictValueEnumObj; statusOptions: DictValueEnumObj; }; const NoticeForm: React.FC = (props) => { const [form] = Form.useForm(); const { noticeTypeOptions, statusOptions } = props; const formLayout = { labelCol: { span: 4 }, wrapperCol: { span: 20 }, }; useEffect(() => { form.resetFields(); form.setFieldsValue({ noticeId: props.values.noticeId, noticeTitle: props.values.noticeTitle, noticeType: props.values.noticeType, noticeContent: props.values.noticeContent, status: props.values.status || Object.keys(statusOptions)[0], createBy: props.values.createBy, createTime: props.values.createTime, updateBy: props.values.updateBy, updateTime: props.values.updateTime, remark: props.values.remark, }); }, [form, props, statusOptions]); const intl = useIntl(); const handleOk = () => { form.submit(); }; const handleCancel = () => { props.onCancel(); }; const handleFinish = async (values: Record) => { props.onSubmit(values as NoticeFormData); }; return ( ); }; export default NoticeForm;