# form-design **Repository Path**: yanyunchangfeng/form-design ## Basic Information - **Project Name**: form-design - **Description**: 这是一个表单设计组件 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: https://yanyunchangfeng.gitee.io/form-design - **GVP Project**: No ## Statistics - **Stars**: 11 - **Forks**: 3 - **Created**: 2019-01-04 - **Last Updated**: 2024-11-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # react-form-design react-form-design可通过拖拽生成自定义表单,需搭配ant design组件库使用。 ## Index * [Install](#install) * [Usage](#usage) * [API](#api) * [Compatibility](#compatibility) * [License](#license) ##sc ## Install ``` yarn add react-form-design ``` ## Usage ```css .form-display .ant-col-8, .form-display .ant-col-10 { padding-left: 16px; } .form-display .ant-form-item { display: flex; margin-bottom: 16px; } .form-display .ant-form-item-label { text-overflow: ellipsis; } .form-display .ant-form-item-control-wrapper { flex: 1 1 auto; } ``` ```jsx import { Button, Form, Tabs } from "antd"; import { FormDesign } from 'antd'; const TabPane = Tabs.TabPane; const FormItem = Form.Item; const { FormDisplay } = FormDesign; class FormShow extends PureComponent { handleSubmit = e => { e.preventDefault(); this.props.form.validateFields((err, values) => { if (!err) { console.log("Received values of form: ", values); } }); }; render() { const { fieldsData, form } = this.props; return (
); } } const WrappedFormShow = Form.create({ mapPropsToFields(props) { let obj = {}; let { initValues } = props; if (initValues) { Object.keys(initValues).forEach(key => { obj[key] = Form.createFormField({ value: initValues[key] }); }); } return obj; } })(FormShow); class App extends PureComponent { state = { fieldsData: [] }; save = data => { this.setState({ fieldsData: data }); }; onSubmit = values => { console.log(values); }; submit = () => { this.props.form.validateFields((err, values) => { if (!err) { const onSubmit = this.props; if (onSubmit) { onSubmit(values); } } }); }; render() { return (