import { Form, Input, Modal } from 'antd'; import React, { useEffect } from 'react'; interface DictItemModalProps { // 模态框是否可见 visible: boolean; // 是否为编辑模式 isEdit: boolean; // 编辑时的字典项数据 editingData?: any; // 当前选中的字典 selectedDict?: any; // 取消回调 onCancel: () => void; // 确认回调 onOk: (values: any) => Promise; } const DictItemModal: React.FC = ({ visible, isEdit, editingData, selectedDict, onCancel, onOk, }) => { const [form] = Form.useForm(); // 当模态框打开或编辑数据变化时,重置或设置表单值 useEffect(() => { if (visible) { if (isEdit && editingData) { // 编辑模式,设置表单值为编辑数据 form.setFieldsValue(editingData); } else { // 新增模式,重置表单 form.resetFields(); } } }, [visible, isEdit, editingData, form]); // 表单提交处理 const handleOk = async () => { try { const values = await form.validateFields(); await onOk(values); } catch (error) { // 表单验证失败,不关闭模态框 } }; return (
); }; export default DictItemModal;