1.0.3 • Published 4 years ago

@feizheng/react-ant-form-schema3 v1.0.3

Weekly downloads
-
License
MIT
Repository
github
Last release
4 years ago

react-ant-form-schema3

React basic ant form builder.

version license size download

installation

npm install -S @feizheng/react-ant-form-schema3

update

npm update @feizheng/react-ant-form-schema3

properties

NameTypeRequiredDefaultDescription
classNamestringfalse-The extended className for component.
actionsClassNamestringfalse-Action(submit) filed class name.
initialValueobjectfalse{}Default fileds value object.
itemsarrayfalse[]Form schema.
templatefuncfalse-The form field template.
defaultComponentanyfalseInputDefault item component.
onSubmitfuncfalsenoopThe onSubmit event.
onChangefuncfalsenoopThe form filed onChange event.
onFieldChangefuncfalsenoopThe item filed onChange event.
onLoadfuncfalsenoopWhen component did mount.
formLayoutobjectfalse-The formLayout for antd.Form.
tailLayoutobjectfalse-The formLayout for last form item (eg: like actions).
submitobjectfalse{ type: 'primary', htmlType: 'submit', children: 'Save' }The submit props.
resetobjectfalse-The reset props.

item options

NameTypeDescription
labelstringThe display label.
filedstringThe form field string(name).
componentelementThe form field component.
propsobjectThe form field props.
optionsobjectThe get decorator options(like rules).

usage

  1. import css

    @import "~@feizheng/react-ant-form-schema3/dist/style.scss";
    
    // customize your styles:
    $react-ant-form-schema3-options: ()
  2. import js

    import ReactAntForm from '@feizheng/react-ant-form-schema3';
    import { Input, Checkbox } from 'antd';
    import ReactDOM from 'react-dom';
    import React from 'react';
    import ReactAntCheckbox from '@feizheng/react-ant-checkbox';
    import noop from '@feizheng/noop';
    import './assets/style.scss';
    
    const formLayout = { labelCol: { span: 6 }, wrapperCol: { span: 16 } };
    const tailLayout = { wrapperCol: { offset: 6, span: 16 } };
    
    class App extends React.Component {
      state = {
        initialValue: {
          username: 'fei',
          chk: false,
          text: 'etst...'
        },
        items: [
          {
            label: '用户名',
            field: 'username',
            formLayout: { labelCol: { span: 6 }, wrapperCol: { span: 8 } },
            options: {
              rules: [{ required: true, message: '用户名为必选' }]
            }
          },
          {
            label: '密码',
            field: 'password',
            options: {
              rules: [{ required: true, message: '密码为必选' }]
            }
          },
          {
            label: '用户协议',
            field: 'chk',
            component: ReactAntCheckbox,
            props: {
              children: 'Agree the agreement'
            }
          },
          {
            label: '描述信息',
            field: 'text',
            component: Input.TextArea
          }
        ]
      };
    
      handleSubmit = (e) => {
        return new Promise((resolve, reject) => {
          console.log('submit:::', e);
        });
      };
handleChange = (e) => {
  console.log('change.', e);
};

render() {
  return (
    <div className="app-container">
      <ReactAntForm
        formLayout={formLayout}
        tailLayout={tailLayout}
        items={this.state.items}
        initialValue={this.state.initialValue}
        onSubmit={this.handleSubmit}
        onChange={this.handleChange}
        submit={{
          type: 'primary',
          htmlType: 'submit',
          className: 'wp-10',
          children: '保存'
        }}
        reset={{
          children: '取消'
        }}
      />
    </div>
  );
}

}

ReactDOM.render(, document.getElementById('app'));

## documentation
- https://afeiship.github.io/react-ant-form-schema/


## license
Code released under [the MIT license](https://github.com/afeiship/react-ant-form-schema3/blob/master/LICENSE.txt).

[version-image]: https://img.shields.io/npm/v/@feizheng/react-ant-form-schema3
[version-url]: https://npmjs.org/package/@feizheng/react-ant-form-schema3

[license-image]: https://img.shields.io/npm/l/@feizheng/react-ant-form-schema3
[license-url]: https://github.com/afeiship/react-ant-form-schema3/blob/master/LICENSE.txt

[size-image]: https://img.shields.io/bundlephobia/minzip/@feizheng/react-ant-form-schema3
[size-url]: https://github.com/afeiship/react-ant-form-schema3/blob/master/dist/react-ant-form-schema3.min.js

[download-image]: https://img.shields.io/npm/dm/@feizheng/react-ant-form-schema3
[download-url]: https://www.npmjs.com/package/@feizheng/react-ant-form-schema3