42 lines
		
	
	
		
			812 B
		
	
	
	
		
			JavaScript
		
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			812 B
		
	
	
	
		
			JavaScript
		
	
	
| import { Form, Row } from "antd";
 | |
| import FormItemsRenderer from "./FormItemsRenderer";
 | |
| 
 | |
| /**
 | |
|  * 表单构建器组件
 | |
|  */
 | |
| const FormBuilder = (props) => {
 | |
|   const {
 | |
|     values,
 | |
|     options,
 | |
|     gutter = 24,
 | |
|     span = 12,
 | |
|     labelCol = { span: 4 },
 | |
|     onFinish,
 | |
|     useAutoGenerateRequired = true,
 | |
|     ...restProps
 | |
|   } = props;
 | |
| 
 | |
|   return (
 | |
|     <Form
 | |
|       labelCol={labelCol}
 | |
|       scrollToFirstError
 | |
|       wrapperCol={{ span: 24 - labelCol.span }}
 | |
|       onFinish={onFinish}
 | |
|       initialValues={values}
 | |
|       {...restProps}
 | |
|     >
 | |
|       <Row gutter={gutter}>
 | |
|         <FormItemsRenderer
 | |
|           options={options}
 | |
|           span={span}
 | |
|           useAutoGenerateRequired={useAutoGenerateRequired}
 | |
|         />
 | |
|       </Row>
 | |
|     </Form>
 | |
|   );
 | |
| };
 | |
| 
 | |
| FormBuilder.displayName = "FormBuilder";
 | |
| 
 | |
| export default FormBuilder;
 |