美文网首页
antd form component

antd form component

作者: 奋斗的小小小兔子 | 来源:发表于2018-07-17 17:14 被阅读232次
    1. 两个属性
    • destroyOnClose关闭弹框后,清空之前写的内容
    • maskClosable 点击弹框外部的阴影,是否关闭弹框
      <Modal title="弹框" visible okText="确定" cancelText="取消" destroyOnClose maskClosable={false}>
        ...
      </Modal>
    
    
    1. Input 正则输入
     <FormItem {...formItemLayout} label="案件标签">
           {getFieldDecorator('name', { initialValue: defaults.name || '', rules: [{ required: true, message: '必填,仅支持英文及数字和下划线_', pattern: /^[A-Za-z0-9\\_]+$/ }] })(<Input />)}
      </FormItem>
    
    

    antd form component 完整示例

    import React, { Component } from 'react';
    import PropTypes from 'prop-types';
    import { Modal, Form, Input, TreeSelect, InputNumber } from 'antd';
    
    const FormItem = Form.Item;
    
    class TaskTypeForm extends Component {
      static propTypes = {
        defaults: PropTypes.shape(),
        loading: PropTypes.bool,
        visible: PropTypes.bool,
        error: PropTypes.string,
        submit: PropTypes.func,
        closeModal: PropTypes.func,
        infoOptions: PropTypes.arrayOf(PropTypes.shape()),
        roleOptions: PropTypes.arrayOf(PropTypes.shape()),
      };
    
      constructor(props) {
        super(props);
        this.submit = this.submit.bind(this);
      }
    
      submit() {
        const defaults = this.props.defaults;
        this.props.form.validateFields((err, values) => {
          if (!err) {
            const command = {
              id: defaults.id,
              name: values.name,
              expireDays: values.expireDays,
              infoOptionIds: values.infoOptionIds ? values.infoOptionIds.join(',') : '',
            };
            this.props.submit(command);
          }
        });
      }
    
      render() {
        const formItemLayout = {
          labelCol: {
            xs: { span: 6 },
          },
          wrapperCol: {
            xs: { span: 14 },
          },
        };
        const { getFieldDecorator } = this.props.form;
        const {  error, visible, closeModal, infoOptions } = this.props;
        const defaults = this.props.defaults;
        const infoOptionVal = defaults.infoOptionIds ? defaults.infoOptionIds.split(',') : [];
        return (
          <Modal title={`${defaults.id ? '编辑' : '添加'}案件标签`} visible={visible} onOk={this.submit} okText="确定" cancelText="取消" onCancel={() => closeModal(defaults)} destroyOnClose maskClosable={false}>
          <Form>
                <FormItem {...formItemLayout} label="案件标签">
                 {getFieldDecorator('name', { initialValue: defaults.name || '', rules: [{ required: true, message: '必填,仅支持英文及数字和下划线_', pattern: /^[A-Za-z0-9\\_]+$/ }] })(<Input />)}
                </FormItem>
                <FormItem {...formItemLayout} label="信息权限">
                  {getFieldDecorator('infoOptionIds', { initialValue: infoOptionVal, rules: [{ required: true, message: '信息权限 必填' }] })(
                    <TreeSelect multiple treeData={infoOptions} />)}
                </FormItem>
                <FormItem {...formItemLayout} label="案件有效期">
                  {getFieldDecorator('expireDays', { initialValue: defaults.expireDays, rules: [{ required: true, message: '案件有效期 必填' }] })(<InputNumber min={0} style={{ width: 284 }} />)}
                </FormItem>
                {error && <div className="ant-row ant-form-item has-error"><div className="ant-col-xs-offset-6 ant-col-xs-18 ant-form-explain">{error}</div></div>}
              </Form>
          </Modal>
        );
      }
    }
    
    
    const Wrapped = Form.create()(TaskTypeForm);
    export default Wrapped;
    
    

    相关文章

      网友评论

          本文标题:antd form component

          本文链接:https://www.haomeiwen.com/subject/mqsgpftx.html