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;
							 |