0.4.2 • Published 5 years ago

ant-design-form v0.4.2

Weekly downloads
4
License
ISC
Repository
github
Last release
5 years ago

安装

npm install ant-design-form
yarn add ant-design-form

使用

import {FormView} from 'ant-design-form'
ReactDOM.render(<FormView />, mountNode);

可能需要引入ant-design的样式

import 'antd/dist/antd.css'; // or 'antd/dist/antd.less'

说明

Ant-Design是React一个非常好用的UI库。几乎涉猎了所有场景,但是在B端。对于增删改查,更多的会用到表单。但是表单的创建或者说使用又比较繁琐,比如校验规则、与特定ID绑定等等。

比如

<Form.Item label="Select[multiple]">
    {getFieldDecorator('select-multiple', {
        rules: [
            { required: true, message: 'Please select your favourite colors!', type: 'array' },
        ],
    })(
        <Select mode="multiple" placeholder="Please select favourite colors">
            <Option value="red">Red</Option>
            <Option value="green">Green</Option>
            <Option value="blue">Blue</Option>
        </Select>,
    )}
</Form.Item>

这样的<Form.Item>你一定写过不少。

但是,"ant-design-form"来了。

暂时支持三个组件。

  1. SearchView
  2. FormView
  3. ModalView

SearchView

Demo

<SearchView
    data={
      [{
        label: '所有订单',
        key: 'pharmacyType',
        type: 'select',
        defaultValue: '所有订单',
        option: [
            { severKey: 'allList', showValue: '所有订单' }, 
            { severKey: 'unpay', showValue: '待付款订单' }, 
            { severKey: 'cancel', showValue: '订单取消' }, 
            { severKey: 'returnGoods', showValue: '退订/退货' }, 
            { severKey: 'success', showValue: '交易成功' }, 
            { severKey: 'paid', showValue: '已付款' }
        ],
      }, {
        label: '开始时间',
        key: 'startTime',
        type: 'datePicker',
        Message: '请选择时间',
      }, {
        label: '结束时间',
        key: 'endTime',
        type: 'datePicker',
        Message: '请选择时间',
      }, {
        label: '关键字',
        key: 'keywords',
        type: 'input',
        Message: '请输入商品名称',
      }]
  }
  searchFun={(params) => {console.log(params)}}
 />

demo

点击搜索之后:

搜索

参数名说明数据类型
searchFun用于与服务端交互的一个函数,点击查询之后会回调。会返回data中所设置的keyfunction
data用于设置显示的样式(调用ant-design中的某个组件)array< object >

SearchView-data

参数名说明数据类型
label前端通知用户,组件类型(暂时只支持展示dataPicker,后续会做成自适应的string
key回调函数返回的 Json 里面的keystring
type展示定制的组件(基本上都是从ant-design里面选取的)(可以是输入框,选择框等)string
Messageplaceholder展示的文案string
defaultValue默认值根据组件来判断(如果是日期类型是moment,一般来说是string
option用于select组件中的可选项。array
additional可以给组件加样式object

SearchView-data-type

参数名说明数据类型
input文本输入框string
select选择框string
datePicker日期选择框(返回moment)string
rangePicker日期联级选择框(返回是moment,momentstring

SearchView-data-option

参数名说明数据类型
severKeyselect的Value值string
showValueselect用于前端展示的文案string

FormView

Demo

npm.io

点击提交之后

npm.io

<FormView
    formData={[
        {
            label:'select',
            key:'select',
            type:'select',
            option: [
                { severKey: '1', showValue: '处方药' }, 
                { severKey: '0', showValue:'非处方药' }
            ],
            Message: '请选择select',
        }, {
            label:'input',
            key:'input',
            type:'input',
            Message: '输入input',
        }
    ]}
    submitText="提交"
/>
参数名说明数据类型
formData用于设置显示的样式(调用ant-design中的某个组件)array< object >
showData初始参数,key对应formData,value是初始值object
selectSearch使用selectSearch这个组件时的查询函数function
selectSearchOption使用selectSearch这个组件时显示的下拉框array< object >
selectSearchCallBack使用selectSearch这个组件时点击选中的回调函数,默认返回选中的keyfunction
imgUploadUrl使用imgUpload这个组件时的上传地址,默认返回的是res.data0(暂时不支持定制,可能要提前和后端的同事协调好)string
imgUploadHeaders使用imgUpload这个组件时的上传headerobject
submitText提交按钮的文案string
cascaderOption联级选择器Cascader的下拉框array< object >

FormView-formData

参数名说明数据类型
label前端显示的文案,表示这个地方要输入什么string
key与服务端交互的keystring
type展示定制的组件(基本上都是从ant-design里面选取的)(可以是输入框,选择框等)string
Messageplaceholder展示的文案,表单错误的时候出现的文案string
option用于select组件中的可选项。array< object >
additional可以给组件加样式object

FormView-formData-type

参数名说明数据类型
input文本输入框string
select选择框string
datePicker日期选择框(返回moment)string
rangePicker日期联级选择框(返回是moment,momentstring
radioGroup单选框string
richTextEditor富文本编辑器string
imageUploadList图片上传(多张string
textArea长文本输入框string
selectSearch带搜索的选择框string
imageUpload图片上传(单张string
cascader联级选择string

FormView-formData-option

参数名说明数据类型
severKeyselect的Value值string
showValueselect用于前端展示的文案string

ModalView

Demo

npm.io

点击新增

npm.io

点击查看

npm.io

点击编辑

npm.io

点击(编辑或者新增)的确定

Markdown

const dataSource = [
  {
    key: '1',
    name: '胡彦斌',
    age: 32,
    id: 'asd111asd111',
  },
  {
    key: '2',
    name: '胡彦祖',
    age: 42,
    id: 'asd222asd222',
  },
];

class ReactDemo extends PureComponent {
  state = {
    visible: false,
    showData: {},
    category: 'check',
  }

  clickModal = (category, showData) =>{
    this.setState({
      visible: true,
      category,
      showData
    });
  }

  hideModal = () => {
    this.setState({visible: false})
  }

  columns = () => [
    {
      title: 'ID',
      dataIndex: 'id',
      key: 'id',
    },
    {
      title: '姓名',
      dataIndex: 'name',
      key: 'name',
    },
    {
      title: '年龄',
      dataIndex: 'age',
      key: 'age',
    },
    {
      title: '操作',
      render: (text, record) => <>
        <Button onClick={() => this.clickModal('check', record)} type="primary">查看</Button>
        <Divider type="vertical" />
        <Button onClick={() => this.clickModal('edit', record)}>编辑</Button>
      </>
    }
  ];

  render(){
    const {visible, category, showData} = this.state;
    return (
      <Card title="ModalViewDemo">
        <Button onClick={() => this.clickModal('create', {})}>我是新增</Button>
        <ModalView
          onOk={params => {console.log(params); this.setState({visible: false})}}
          onCancel={() => {this.setState({visible: false})}}
          show={visible}
          category={category}
          data={[
            {
              label: 'ID(无需录入)',
              key: 'id',
              type: 'input',
              Message: 'ID自动录入无需您操心~',
              disabled: true,
            },
            {
              label: '姓名',
              key: 'name',
              type: 'input',
              Message: '请输入姓名',
            },
            {
              label: '年龄',
              key: 'age',
              type: 'select',
              Message: '请选择年龄',
              option: [
                { severKey: '32', showValue: '12岁' }, 
                { severKey: '42', showValue: '13岁' },
              ],
            },
          ]}
          showData={showData}
        />
        <Table dataSource={dataSource} columns={this.columns()} />
      </Card>
    );
  }
}
参数名说明数据类型
onOk点击弹窗的确定之后的会调用的函数function
onCancel隐藏弹框之后会调用的函数(点击右上角X,点击非弹出的地方)function
show是否显示弹窗boolean
category弹窗的类型(与弹窗的title绑定)(暂时只支持'check','edit','create','import')string
data弹窗显示的数据类型array< object >
showData查看或者编辑时的默认数据object
importCallBack导入之后,点击确定的回调函数function
importColumns导入时候显示表格的表头(与Table的columns相同)array< object >
downloadUrl导入表格的下载地址string
imgUploadHeaders图片上传组件的请求headerobject
imgUploadUrl图片上传组件的请求地址string
fileUploadHeaders文件(暂时只支持excel)上传地址string
fileUploadUrl文件(暂时只支持excel)上传headerstring
cascaderOption联级选择组件(cascader)的optionarray< object >
selectSearch使用selectSearch这个组件时的查询函数function
selectSearchOption使用selectSearch这个组件时显示的下拉框array< object >
selectSearchCallBack使用selectSearch这个组件时点击选中的回调函数,默认返回选中的keyfunction

ModalView-data

参数名说明数据类型
label前端显示的文案,表示这个地方要输入什么string
key与服务端交互的keystring
type展示定制的组件(基本上都是从ant-design里面选取的)(可以是输入框,选择框等)string
Messageplaceholder展示的文案,表单错误的时候出现的文案string
option用于select组件中的可选项。array< object >
additional可以给组件加样式object

ModalView-data-type

参数名说明数据类型
input文本输入框string
select选择框string
datePicker日期选择框(返回moment)string
rangePicker日期联级选择框(返回是moment,momentstring
radioGroup单选框string
richTextEditor富文本编辑器string
imageUploadList图片上传(多张string
textArea长文本输入框string
selectSearch带搜索的选择框string
imageUpload图片上传(单张string
cascader联级选择string

ModalView-data-option

参数名说明数据类型
severKeyselect的Value值string
showValueselect用于前端展示的文案string
0.4.2

5 years ago

0.4.1

5 years ago

0.4.0

5 years ago

0.3.9

5 years ago

0.3.8

5 years ago

0.3.7

5 years ago

0.3.6

5 years ago

0.3.5

5 years ago

0.3.4

5 years ago

0.3.3

5 years ago

0.3.2

5 years ago

0.3.1

5 years ago

0.3.0

5 years ago

0.2.9

5 years ago

0.2.8

5 years ago

0.2.7

5 years ago

0.2.6

5 years ago

0.2.5

5 years ago

0.2.4

5 years ago

0.2.3

5 years ago

0.2.2

5 years ago

0.2.1

5 years ago

0.2.0

5 years ago

0.1.9

5 years ago

0.1.8

5 years ago

0.1.7

5 years ago

0.1.6

5 years ago

0.1.5

5 years ago

0.1.4

5 years ago

0.1.3

5 years ago

0.1.2

5 years ago

0.1.1

5 years ago

0.1.0

5 years ago