import ModalFooter from '@/components/modal-footer'; import SealInput from '@/components/seal-form/seal-input'; import SealSelect from '@/components/seal-form/seal-select'; import { PageAction, PasswordReg } from '@/config'; import { PageActionType } from '@/config/types'; import { UserOutlined, UserSwitchOutlined } from '@ant-design/icons'; import { useIntl } from '@umijs/max'; import { Form, Modal, Select } from 'antd'; import { useEffect } from 'react'; import { UserRoles, UserRolesOptions } from '../config'; import { FormData, ListItem } from '../config/types'; type AddModalProps = { title: string; action: PageActionType; open: boolean; onOk: (values: FormData) => void; data?: ListItem; onCancel: () => void; }; const AddModal: React.FC = ({ title, action, open, onOk, data, onCancel }) => { const [form] = Form.useForm(); const intl = useIntl(); const initFormValue = () => { if (action === PageAction.EDIT && open) { form.setFieldsValue({ ...data, is_admin: data?.is_admin ? UserRoles.ADMIN : UserRoles.USER }); } else if (action === PageAction.CREATE && open) { form.setFieldsValue({ is_admin: UserRoles.USER }); } }; const handleSumit = () => { form.submit(); }; useEffect(() => { initFormValue(); }, [open]); return ( } >
name="username" rules={[ { required: true, message: intl.formatMessage( { id: 'common.form.rule.input' }, { name: intl.formatMessage({ id: 'common.table.name' }) } ) } ]} > name="full_name" rules={[{ required: false }]}> name="is_admin" rules={[{ required: false }]}> {UserRolesOptions.map((item) => { return ( {item.value === UserRoles.ADMIN ? ( ) : ( )} {intl.formatMessage({ id: item.label })} ); })} name="password" rules={[ { required: true, pattern: PasswordReg, message: intl.formatMessage({ id: 'users.form.rule.password' }) } ]} >
); }; export default AddModal;