Skip to content

gintamamadao/config-form

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

config-form

generate form based on the json config

项目简介

中后台系统往往需要编写大量的表单逻辑,而且其中大量工作重复度高,为了减少没必要的重复工作,对 antd 组件库中的表单组件结合一些常用的表单逻辑封装成一个组件,该组件可以根据 json 配置生成表单逻辑。

环境安装

  • 安装本项目
npm i config-form --save

使用例子

import { ConfigForm } from "config-form";

const UserForm = ({ data }) => {
    const [value, setValue] = useState("");
    const formInfos = [
        {
            formType: "Input",
            label: "账号",
            help: "输入邮箱或者手机号作为账号",
            placeholder: "请输入账号",
            errorHint: "账号不能为空",
            required: true,
            value: value,
            onChange: v => setValue(v)
        }
    ];
    return <ConfigForm formInfos={formInfos}></ConfigForm>;
};

上面的例子中,ConfigForm 根据 formInfos 里的信息生成了一个包含了标签,提示,占位符,错误提示等逻辑的字符串输入框。

目录

ConfigForm

属性

字段 类型 说明
formInfos object arry 要生成表单的信息
check boolean 默认值为 false, 当值为 true 时,才会显示错误信息
layout object 即 antd 组件库中的 Form 组件的 layout 属性
hidden boolean 默认值为 false, 当值为 true 时,表单隐藏

formInfos 属性配置

字段 类型 说明
formType string 要成表单的类型
... ... ...

formType 指定了用那一个表单组件,formInfos 属性的配置会根据不同的表单组件有不同的属性,下面我们分别介绍。

ItemView

antd 组件库中的 Form.Item 的再一层封装的容器组件,下面所有的输入组件都用这个组件包装的,所以都有以下配置属性,除了 children 属性。

属性配置

字段 类型 说明
required boolean 是否必要
check boolean 默认值为 false, 当值为 true 时,才会显示错误信息
disabled boolean 默认值为 false, 当值为 true 时,禁止修改
isIllegal boolean 默认值为 false, 当值为 true 时表明当前输入错误
errorHint string 错误提示
label string 标签
layout object 即 antd 组件库中的 Form 组件的 layout 属性
hidden boolean 默认值为 false, 当值为 true 时,表单隐藏
help string 帮助提示
children object or funciton 子元素

Input

字符串输入框

属性配置

字段 类型 说明
required boolean 是否必要
check boolean 默认值为 false, 当值为 true 时,才会显示错误信息
disabled boolean 默认值为 false, 当值为 true 时,禁止修改
isIllegal boolean 默认值为 false, 当值为 true 时表明当前输入错误
errorHint string 错误提示
label string 标签
layout object 即 antd 组件库中的 Form 组件的 layout 属性
hidden boolean 默认值为 false, 当值为 true 时,表单隐藏
help string 帮助提示
style object input 输入框的样式
type string 输入框的类型,值为"text" 或 "textArea" 默认为 "text"
value string 输入框的值
focusControl boolean 默认值为 false, 当值为 true 时,组件为受控组件
placeholder string 输入框的占位符
row number 当 type 的值为 "textArea" 时,输入框的行数
onChange function 当输入值变化的回调函数

PatternInput

带格式校验的字符串输入框

属性配置

字段 类型 说明
required boolean 是否必要
check boolean 默认值为 false, 当值为 true 时,才会显示错误信息
disabled boolean 默认值为 false, 当值为 true 时,禁止修改
isIllegal boolean 默认值为 false, 当值为 true 时表明当前输入错误
errorHint string 错误提示
label string 标签
layout object 即 antd 组件库中的 Form 组件的 layout 属性
hidden boolean 默认值为 false, 当值为 true 时,表单隐藏
help string 帮助提示
style object input 输入框的样式
type string 输入框的类型,值为"text" 或 "textArea" 默认为 "text"
value string 输入框的值
focusControl boolean 默认值为 false, 当值为 true 时,组件为受控组件
placeholder string 输入框的占位符
row number 当 type 的值为 "textArea" 时,输入框的行数
pattern string 对当前输入值的格式要求
patternInfo object 自定义对当前输入值的格式要求
onChange function 当输入值变化的回调函数

pattern 支持的格式要求

  • sign (标识)
  • uri (链接)
  • version (版本号)
  • email (邮件地址)
  • phone (手机号)
  • json (json 字符串)

patternInfo 属性配置

字段 类型 说明
name string 格式要求名
patternHint string 当前输入不符合格式要求时的提示
check function 校验格式是否合格的函数

MultiInput

多个字符串输入框

属性配置

字段 类型 说明
required boolean 是否必要
check boolean 默认值为 false, 当值为 true 时,才会显示错误信息
disabled boolean 默认值为 false, 当值为 true 时,禁止修改
isIllegal boolean 默认值为 false, 当值为 true 时表明当前输入错误
errorHint string 错误提示
label string 标签
layout object 即 antd 组件库中的 Form 组件的 layout 属性
hidden boolean 默认值为 false, 当值为 true 时,表单隐藏
help string 帮助提示
style object input 输入框的样式
type string 输入框的类型,值为"text" 或 "textArea" 默认为 "text"
value array 包含所有输入框的值的数组
focusControl boolean 默认值为 false, 当值为 true 时,组件为受控组件
placeholder string 输入框的占位符
row number 当 type 的值为 "textArea" 时,输入框的行数
indexHintMap object 用于在某个输入框的下面显示提示
onChange function 当输入值变化的回调函数

indexHintMap 属性配置

字段 类型 说明
[index] object key [index] 为输入框的位置 , value 为 提示配置

indexHintMap 某个[index]的属性配置

字段 类型 说明
text string 提示文字
status boolean 默认值为 false, 当值为 true 时,提示文字为红色

indexHintMap 配置例子

{
    0: {
        text: '请在第一个输入框输入姓名',
        status: true,
    }
}

该提示会出现在第一个输入框和第二输入框中间

NumberInput

数字输入框

属性配置

字段 类型 说明
required boolean 是否必要
check boolean 默认值为 false, 当值为 true 时,才会显示错误信息
disabled boolean 默认值为 false, 当值为 true 时,禁止修改
isIllegal boolean 默认值为 false, 当值为 true 时表明当前输入错误
errorHint string 错误提示
label string 标签
layout object 即 antd 组件库中的 Form 组件的 layout 属性
hidden boolean 默认值为 false, 当值为 true 时,表单隐藏
help string 帮助提示
value number 输入框的值
max number 可以输入的最大值
min number 可以输入的最小值
step number 增加数字的步长
onChange function 当输入值变化的回调函数

Select

选择器

属性配置

字段 类型 说明
required boolean 是否必要
check boolean 默认值为 false, 当值为 true 时,才会显示错误信息
disabled boolean 默认值为 false, 当值为 true 时,禁止修改
isIllegal boolean 默认值为 false, 当值为 true 时表明当前输入错误
errorHint string 错误提示
label string 标签
layout object 即 antd 组件库中的 Form 组件的 layout 属性
hidden boolean 默认值为 false, 当值为 true 时,表单隐藏
help string 帮助提示
style object 输入框的样式
value string 选择的选项的值
placeholder string 输入框的占位符
optionsData object 选项信息
disableOpts object 禁止选择的选项
filterOption boolean or function 当值为 true 时开启默认搜索过滤选项,函数则为自定义过滤规则
onChange function 当输入值变化的回调函数

optionsData 属性配置

字段 类型 说明
[key] object [key] 是选项的 value,

optionsData 某个[key]的属性配置

字段 类型 说明
text string 选项的文字内容

optionsData 配置例子

{
    man: {
        text: "男";
    },
    woman: {
        text: "女";
    }
}

disableOpts 属性配置

字段 类型 说明
[key] boolean [key] 是选项的 value, 默认值为 false, 当值为 true 时,选项无法选择
{
    man: true;
}

RadioGroup

单选框组

属性配置

字段 类型 说明
required boolean 是否必要
check boolean 默认值为 false, 当值为 true 时,才会显示错误信息
disabled boolean 默认值为 false, 当值为 true 时,禁止修改
isIllegal boolean 默认值为 false, 当值为 true 时表明当前输入错误
errorHint string 错误提示
label string 标签
layout object 即 antd 组件库中的 Form 组件的 layout 属性
hidden boolean 默认值为 false, 当值为 true 时,表单隐藏
help string 帮助提示
value string 选择的选项的值
optionsData object 选项信息
disableOpts object 禁止选择的选项
onChange function 当输入值变化的回调函数

optionsData 属性配置

字段 类型 说明
[key] object [key] 是选项 的 value,

optionsData 某个[key]的属性配置

字段 类型 说明
text string 选项的 label

optionsData 配置例子

{
    man: {
        text: "男";
    },
    woman: {
        text: "女";
    }
}

disableOpts 属性配置

字段 类型 说明
[key] boolean [key] 是选项的 value, 默认值为 false, 当值为 true 时,选项无法选择
{
    man: true;
}

CheckboxGroup

多选框组

属性配置

字段 类型 说明
required boolean 是否必要
check boolean 默认值为 false, 当值为 true 时,才会显示错误信息
disabled boolean 默认值为 false, 当值为 true 时,禁止修改
isIllegal boolean 默认值为 false, 当值为 true 时表明当前输入错误
errorHint string 错误提示
label string 标签
layout object 即 antd 组件库中的 Form 组件的 layout 属性
hidden boolean 默认值为 false, 当值为 true 时,表单隐藏
help string 帮助提示
value array 包含所有选择的选项的值的组合
optionsData object 选项信息
disableOpts object 禁止选择的选项
onChange function 当输入值变化的回调函数

optionsData 属性配置

字段 类型 说明
[key] object [key] 是选项的 value,

optionsData 某个[key]的属性配置

字段 类型 说明
text string 选项的 label

optionsData 配置例子

{
    man: {
        text: "男";
    },
    woman: {
        text: "女";
    }
}

disableOpts 属性配置

字段 类型 说明
[key] boolean [key] 是选项的 value, 默认值为 false, 当值为 true 时,选项无法选择
{
    man: true;
}

DatePicker

日期选择器

属性配置

字段 类型 说明
required boolean 是否必要
check boolean 默认值为 false, 当值为 true 时,才会显示错误信息
disabled boolean 默认值为 false, 当值为 true 时,禁止修改
isIllegal boolean 默认值为 false, 当值为 true 时表明当前输入错误
errorHint string 错误提示
label string 标签
layout object 即 antd 组件库中的 Form 组件的 layout 属性
hidden boolean 默认值为 false, 当值为 true 时,表单隐藏
help string 帮助提示
style object 输入框的样式
value string 选择的日期, 格式必须为"YYYY-MM-DD HH:mm:ss"
disabledDate function 判断日期是否合法的函数
hmsValueStatus string 日期的时分秒的默认值类型,reset-默认值是 "00:00:00" ,maxValue-默认值是 "23:59:59"
onChange function 当输入值变化的回调函数

TimeRange

日期范围选择器

属性配置

字段 类型 说明
required boolean 是否必要
check boolean 默认值为 false, 当值为 true 时,才会显示错误信息
disabled boolean 默认值为 false, 当值为 true 时,禁止修改
isIllegal boolean 默认值为 false, 当值为 true 时表明当前输入错误
errorHint string 错误提示
label string 标签
layout object 即 antd 组件库中的 Form 组件的 layout 属性
hidden boolean 默认值为 false, 当值为 true 时,表单隐藏
help string 帮助提示
style object 输入框的样式
value array 选择的日期组合,每个值格式必须为"YYYY-MM-DD HH:mm:ss"
disabledDate function 判断日期是否合法的函数
legalRange array 合法的日期范围,每个值格式必须为"YYYY-MM-DD HH:mm:ss"
itemLayout object 即 antd 组件库中的 Form 组件的 layout 属性,但是配置给子表单的
onChange function 当输入值变化的回调函数

Range

数字范围输入框

属性配置

字段 类型 说明
required boolean 是否必要
check boolean 默认值为 false, 当值为 true 时,才会显示错误信息
disabled boolean 默认值为 false, 当值为 true 时,禁止修改
isIllegal boolean 默认值为 false, 当值为 true 时表明当前输入错误
errorHint string 错误提示
label string 标签
layout object 即 antd 组件库中的 Form 组件的 layout 属性
hidden boolean 默认值为 false, 当值为 true 时,表单隐藏
help string 帮助提示
value array 填入的数字范围
legalRange array 合法的数字范围
onChange function 当输入值变化的回调函数

License (MIT)

Copyright (c) 2019 gintamamadao

Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:

The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Releases

No releases published

Packages

No packages published