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