项目作者: DerrickTel

项目描述 :
快速构建ant-design的表单
高级语言: JavaScript
项目地址: git://github.com/DerrickTel/ant-design-form.git
创建时间: 2019-07-04T01:37:13Z
项目社区:https://github.com/DerrickTel/ant-design-form

开源协议:

下载


警告

现在的版本是针对4.0之前的ant-design

现在在帮忙维护https://github.com/ant-design/pro-components

chenshuai大哥帮忙做了很多我想做但是我做不出来的东西。

安装

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

使用

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

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

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

说明

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

比如

  1. <Form.Item label="Select[multiple]">
  2. {getFieldDecorator('select-multiple', {
  3. rules: [
  4. { required: true, message: 'Please select your favourite colors!', type: 'array' },
  5. ],
  6. })(
  7. <Select mode="multiple" placeholder="Please select favourite colors">
  8. <Option value="red">Red</Option>
  9. <Option value="green">Green</Option>
  10. <Option value="blue">Blue</Option>
  11. </Select>,
  12. )}
  13. </Form.Item>

这样的你一定写过不少。

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

暂时支持三个组件。

  1. SearchView
  2. FormView
  3. ModalView

SearchView

Demo

  1. <SearchView
  2. data={
  3. [{
  4. label: '所有订单',
  5. key: 'pharmacyType',
  6. type: 'select',
  7. defaultValue: '所有订单',
  8. option: [
  9. { severKey: 'allList', showValue: '所有订单' },
  10. { severKey: 'unpay', showValue: '待付款订单' },
  11. { severKey: 'cancel', showValue: '订单取消' },
  12. { severKey: 'returnGoods', showValue: '退订/退货' },
  13. { severKey: 'success', showValue: '交易成功' },
  14. { severKey: 'paid', showValue: '已付款' }
  15. ],
  16. }, {
  17. label: '开始时间',
  18. key: 'startTime',
  19. type: 'datePicker',
  20. Message: '请选择时间',
  21. }, {
  22. label: '结束时间',
  23. key: 'endTime',
  24. type: 'datePicker',
  25. Message: '请选择时间',
  26. }, {
  27. label: '关键字',
  28. key: 'keywords',
  29. type: 'input',
  30. Message: '请输入商品名称',
  31. }]
  32. }
  33. searchFun={(params) => {console.log(params)}}
  34. />

demo

点击搜索之后:

搜索

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

SearchView-data

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

SearchView-data-type

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

SearchView-data-option

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

FormView

Demo

点击提交之后

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

FormView-formData

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

FormView-formData-type

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

FormView-formData-option

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

ModalView

Demo

点击新增

点击查看

点击编辑

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

Markdown

  1. const dataSource = [
  2. {
  3. key: '1',
  4. name: '胡彦斌',
  5. age: 32,
  6. id: 'asd111asd111',
  7. },
  8. {
  9. key: '2',
  10. name: '胡彦祖',
  11. age: 42,
  12. id: 'asd222asd222',
  13. },
  14. ];
  15. class ReactDemo extends PureComponent {
  16. state = {
  17. visible: false,
  18. showData: {},
  19. category: 'check',
  20. }
  21. clickModal = (category, showData) =>{
  22. this.setState({
  23. visible: true,
  24. category,
  25. showData
  26. });
  27. }
  28. hideModal = () => {
  29. this.setState({visible: false})
  30. }
  31. columns = () => [
  32. {
  33. title: 'ID',
  34. dataIndex: 'id',
  35. key: 'id',
  36. },
  37. {
  38. title: '姓名',
  39. dataIndex: 'name',
  40. key: 'name',
  41. },
  42. {
  43. title: '年龄',
  44. dataIndex: 'age',
  45. key: 'age',
  46. },
  47. {
  48. title: '操作',
  49. render: (text, record) => <>
  50. <Button onClick={() => this.clickModal('check', record)} type="primary">查看</Button>
  51. <Divider type="vertical" ></Divider>
  52. <Button onClick={() => this.clickModal('edit', record)}>编辑</Button>
  53. </>
  54. }
  55. ];
  56. render(){
  57. const {visible, category, showData} = this.state;
  58. return (
  59. <Card title="ModalViewDemo">
  60. <Button onClick={() => this.clickModal('create', {})}>我是新增</Button>
  61. <ModalView
  62. onOk={params => {console.log(params); this.setState({visible: false})}}
  63. onCancel={() => {this.setState({visible: false})}}
  64. show={visible}
  65. category={category}
  66. data={[
  67. {
  68. label: 'ID(无需录入)',
  69. key: 'id',
  70. type: 'input',
  71. Message: 'ID自动录入无需您操心~',
  72. disabled: true,
  73. },
  74. {
  75. label: '姓名',
  76. key: 'name',
  77. type: 'input',
  78. Message: '请输入姓名',
  79. },
  80. {
  81. label: '年龄',
  82. key: 'age',
  83. type: 'select',
  84. Message: '请选择年龄',
  85. option: [
  86. { severKey: '32', showValue: '12岁' },
  87. { severKey: '42', showValue: '13岁' },
  88. ],
  89. },
  90. ]}
  91. showData={showData}
  92. />
  93. <Table dataSource={dataSource} columns={this.columns()} ></Table>
  94. </Card>
  95. );
  96. }
  97. }
参数名 说明 数据类型
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 图片上传组件的请求header object
imgUploadUrl 图片上传组件的请求地址 string
fileUploadHeaders 文件(暂时只支持excel)上传地址 string
fileUploadUrl 文件(暂时只支持excel)上传header string
cascaderOption 联级选择组件(cascader)的option array< object >
selectSearch 使用selectSearch这个组件时的查询函数 function
selectSearchOption 使用selectSearch这个组件时显示的下拉框 array< object >
selectSearchCallBack 使用selectSearch这个组件时点击选中的回调函数,默认返回选中的key function

ModalView-data

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

ModalView-data-type

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

ModalView-data-option

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