import React, { FC, memo, useEffect } from 'react'; import { Form } from '@ant-design/compatible'; import '@ant-design/compatible/assets/index.css'; import { Select, Input, Modal, Button, InputNumber } from 'antd'; import { baseFormOptionsType } from '../types'; import Color from '../Color'; const { Option } = Select; const formItemLayout = { labelCol: { span: 6 }, wrapperCol: { span: 14 }, }; interface EditorModalProps { item: any; onSave: (data: any) => void; visible: boolean; form: any } const EditorModal: FC = props => { const { item, onSave, visible, form } = props; const { getFieldDecorator, validateFieldsAndScroll, setFieldsValue, getFieldsValue, } = form const onFinish = (values: any) => { onSave && onSave(values); }; const handleOk = () => { form .validateFields() .then(values => { onSave && onSave({ ...item, ...values }, true); }) .catch(err => { // console.log(err); }); }; useEffect(() => { if (form && item && visible) { form.resetFields(item); } }, [form, item, visible]); // console.log(item, '@@@') return ( <> } forceRender visible={visible} onOk={handleOk} closable={false} > {!!item &&
{getFieldDecorator('label', { initialValue: item?.label, rules: [{ required: true, message: '请输入字段名!' }] })( )} {getFieldDecorator('placeholder', { initialValue: item?.placeholder })( )}
}
); }; export default memo(Form.create({ onValuesChange: (props, changedValues, allValues) => { props?.onSave({ ...props?.item, ...allValues }); } })(EditorModal));