# 更新记录
需求收集: 如果您有好的建议可以通过 github (opens new window) / gitee (opens new window) / 联系我 的方式提交给我
# 2.7.0 (2024-12-24)
- 功能特性与3.2.13版本对齐
 - 适配TDesign Vue2版本
 - 适配Vant
 - 上传组件支持 
Object[] 
# 2.5.36 (2024-06-02)
- 新增 增加
options.onChange参数 - 新增 api增加
getRenderRule方法,用于获取最终渲染规则 - 新增 api增加
getRefRule方法,用于通过name查询组件规则 - 新增 api增加
getData方法,用于获取全局数据 - 新增 
control.condition增加empty,notEmpty和pattern对比方式 - 新增 api增加
fetch方法,用于请求远程接口 - 新增 update回调增加
linkField参数 - 新增 组件增加
disabled配置,全局禁用表单组件 - 优化 子表单基础表单配置
 - 优化 重置默认值逻辑
 - 优化 表单禁用逻辑
 - 优化 JSON解析
 - 修复 避免请求2次触发
 
# 2.5.35 (2024-03-31)
- 新增 
api增加Top字段, 获取最顶级表单的api - 新增 组件增加
disabled配置,全局禁用表单组件 - 优化 子表单基础表单配置
 - 优化 
group组件 
# 2.5.34 (2024-03-11)
- 组件增加
title插槽,支持自定义表单的标签区域 - 修复 
options.title配置不生效问题 
# 2.5.33 (2023-09-12)
options中增加beforeFetch配置,用于处理fetch请求时的参数fetch中的action支持配置为promise, 直接加载数据select组件支持渲染optionGroup组件- 新增 formCreate新增
setData和removeData方法 
type setData = (name:string,value:any) =>void;
type removeData = (name:string)=>void;
- 新增 增加loadData自定义属性
 
//设置数据
formCreate.setData('address',[]);
//生成规则
{
    type:'select',
    options: [],
    effect: {
        loadData:{
            attr:'address',
            to:'options'
        }
    }
}
- 优化
group组件 
# 2.5.32 (2023-08-11)
- 重构 
group组件, 重写样式,并增加序号和上下移动功能,增加sortBtn和parse参数 - 新增 api中新增
wrapEl和formEl方法,用于获取对应的vue组件实例 - 优化 fetch.parse 配置,支持配置字符串,指定路径,例如
props.options 
# 2.5.31 (2023-07-14)
- 优化 替换代码中的
eval方法 
# 2.5.30 (2023-06-29)
- 优化
validate方法保持向下兼容 
# 2.5.29 (2023-06-28)
- 新增 rule中的
update配置项增加了一个来源参数,可以用来判断触发方式 
type Origin = 'init' | 'link' | 'change';
type update = (value:any, api:Api, origin:Origin) => boolean|undefined;
- 新增 增加针对field设置插槽,格式为
'field-'+field 
//生成规则
{
  field:'name'
}
<form-create>
  <slot #field-name="slot">
    //render
  </slot>
</form-create>
- 新增 增加自定义属性
componentValidate, 可以通过组件的方法进行验证 
//生成规则
{
  effect: {
    componentValidate: true
    // componentValidate: 'check'
  }
}
//自定义组件
{
  methods:{
    //check(){//todo}
    formCreateValidate(val,call) {
      //todo
      call();
    }
  }
}
- 新增 前后缀组件支持注入
formCreateInject - 增加 
validate-fail表单验证失败和validate-field-fail字段验证失败事件 - 修改
validate和validateField方法,返回promise - 修复
upload组件value错误的问题 - 修复
checkbox组件勾选的问题 
# 2.5.28 (2023-04-17)
- 新增 增强
control配置项,增加method,condition配置 
type method=  'display' | 'disabled' | 'hidden' | 'required';
type condition = '==' | '!=' | '<>' | '>' | '>=' | '<' | '<=' | 'in' | 'notIn' | 'on' | 'notOn' | 'between' | 'notBetween';
- 新增 支持通过rule.cache来配置组件是否只渲染一次
 - 优化 自定义属性
required - 修复 
group组件按钮展示问题 - 修复 设置自定义属性required后,验证规则失效问题
 
# 2.5.27 (2022-10-07)
- 优化 uniqueId方法的生成规则,默认
F开头 - 优化组件渲染
 
# 2.5.26 (2022-08-21)
- 新增 api中新增
clearEffectData方法, 支持清空effect数据 - 新增 options中新增
forceCoverValue配置项,可以设置modelValue是否覆盖更新,默认为false - 新增 支持重写
fetch请求方法 
formCreate.fetch = (options) =>{
  //todo
}
- 优化 api中的
coverValue方法 - 优化 
elementUI中的group组件展示 - 优化 
rule中的type非必填,默认为input - 优化 api中的
resetFields方法 
# 2.5.25 (2022-07-24)
- 优化自定义属性
required和fetch - 更新 ts
 - 优化内置组件传参
 
# 2.5.24 (2022-07-03)
- 修改
required属性默认的提示语 - 修复 
control可能失效 bug 
# 2.5.23 (2022-06-19)
- 修复 value 数据可能有误
 - 优化内置组件的 key
 - 优化 resetFields 方法
 
# 2.5.22 (2022-06-05)
- api 新增 deferSyncValue 方法
 - 优化 
display配置 - 优化 
group组件 
# 2.5.21 (2022-05-11)
- 修复 
frame组件width配置无效问题 #498 - 优化 
required自定义属性 
# 2.5.20 (2022-05-01)
options新增appendValue配置项, 控制formData中是否包含表单中不存在的字段,默认为false#485rule新增component配置项, 快速定义用于规则渲染的自定义组件. 之前需要先挂载自定义组件例如:
//通过 component 设置自定义组件 const rule = { type:'test', component: { render(h){ return h('span','test') } } }api新增setEffect方法, 设置组件的自定义属性例如:
const rule = { type:'input', field:'input', effect:{ required: true } } api.setEffect('input','required', false);优化 重新实现
subForm, 自动绑定子表单, 无需手动绑定优化 打包
优化
group组件, 修改子表单规则后回自动同步修改已生成的子表单规则修复
update属性对null值的 bug #488
# 2.5.19 (2022-03-20)
- 优化 
required自定义属性 
# 2.5.18 (2022-03-15)
formCreate新增getApi方法,通过全局方法获取表单的api组件新增
name配置项例如:
<form-create name="form" :rule="rule" />const api = formCreate.getApi('form')新增
requierd自定义属性, 可以实现不同value类型的表单组件必填例如:
//设置组件必填 const rule = { type:'input', effect:{ required: true } } //自定义错误信息 const rule = { type:'input', effect:{ required: '自定义错误信息' } } //关闭组件必填 const rule = { type:'input', effect:{ required: false } }新增 支持通过
$[attr]设置自定义属性例如:
//自定义错误信息 const rule = { type:'input', $required: '自定义错误信息' }新增
html组件例如:
const rule = { type:'html', children: ['<span>html</span>'] }更新
frame组件, 可以通过form_create_helper.api操作表单更新
group组件 props 增加defaultValue配置项
# 2.5.17 (2022-01-07)
- 新增 
ant-design-vue支持ts - 新增 子表单支持插槽扩展
 - 优化 json 解析
 
# 2.5.16 (2021-12-28)
- 优化 组件值同步
 - 优化 upload 组件
 
# 2.5.15 (2021-12-24)
- 增加 parseFn 方法
 - 优化 复制规则
 - 优化 editor 组件
 - 优化 组件值同步
 
# 2.5.14 (2021-12-19)
- 优化 
fetch支持设置为function - 修复 复制规则可能出错问题
 - 修复 修改
options后,没有选中问题 
# 2.5.13 (2021-12-01)
- 新增 预览模式
 - 新增 
beforeCreate,created,update事件 - api 新增 
emit,all方法 - 优化 info 信息触发点
 - 优化 富文本组件, 增加 config 配置项
 - 修复 options 没有更新问题
 
# 2.5.12 (2021-11-19)
- 修复 
options可能报错问题 - 优化稳定性
 
# 2.5.11 (2021-10-17)
新增
deep配置项优化 允许
field重复优化
frame,upload组件, 允许禁用时预览优化
json解析优化
value同步修复
control首次可能不生效问题删除
helper
# 2.5.10 (2021-10-07)
新增 支持通过插槽扩展组件, 例如自定义
inputNumber组件的渲染,通过type-input-number插槽扩展 (说明)新增
form.title配置项, 全局配置,不生成组件的label增强
json解析增强
control功能, 支持控制当前 rule 中规则的显示状态{ value: 1, rule: ['field1', 'field2'] }
不兼容项
修改
repeat事件名称为repeat-field移除
fc.sub-form事件监听修改注入组件
props名称为formCreateInjectformCreate>formCreateInject.apiformCreateOptions>formCreateInject.optionsformCreateRule>formCreateInject.ruleformCreateField>formCreateInject.fieldfc.sub-form 事件>formCreateInject.subForm()
# 2.5.9 (2021-09-18)
新增
subForm组件新增syncDisabled配置项新增
factory方法, 创建一个全新的formCreate对象 (说明)新增 自定义属性新增
load事件,调整init事件触发时机新增
repeat事件, 当组件字段重复时触发优化
formData数据, 支持增量返回额外字段优化 支持
element-ui表单的label-suffix配置项 #402优化
remove事件触发时机优化 增强
json解析功能修复 移除规则时可能意外报错问题
# 2.5.8 (2021-07-25)
- 支持 自定义 
key - 新增 
group组件新增syncDisabled配置项 - 修复 
control.prepend配置项 #370 - 优化 
fetch.parse配置项 #367 
# 2.5.7 (2021-06-04)
- 修复 
fetch可能无效问题 
# 2.5.6 (2021-05-04)
- 新增 
optionsTo配置项 - 新增 
group组件新增onBeforeAdd和onBeforeRemove配置项 - 优化 允许
children为null和undefined - 修复 操作
children时可能报错问题 
# 2.5.5 (2021-04-24)
- 新增 
removeField,removeRule事件 - 优化 
fetch方法 - 优化 
change事件 - 修复 
editor组件disabled可能失效问题 - 完善 
tpyescript 
# 2.5.4 (2021-04-11)
- 新增 在运行时解析
toJson生成的函数字符串 - 优化 
toJson方法 - 优化 
element-ui弹窗显示 - 修复 
group组件value可能显示错误问题 - 修复 
option.global可能会丢失问题 - 完善 
tpyescript 
# 2.5.3 (2021-04-05)
- 新增 
toJson方法 - 优化 
effect触发 - 优化 
select组件 - 优化 
info显示 
# 2.5.2 (2021-03-28)
- 新增 
fetch功能 - 优化 
effect功能 - 优化 子表单
option继承 - 优化 打包
 - 优化 
sub-form,group组件 - 优化 
title显示 - 优化 typescript
 - 修复 
ant-design-vue布局失效问题 
# 2.5.1 (2021-03-20)
- 优化 内置组件插槽配置
 - 优化 
frame,group,sub-form,select组件 - 优化 
value同步机制 - 修复 
control可能报错问题 - 优化 
reload机制 - 修复 全局配置 
col无效问题 - 新增 
fapi新增parent和children属性 - 新增 
sync配置项, 支持props同步 - 优化 
validate,validateField方法 - 修复 
page失效问题 - 优化 表单销毁机制
 - 优化 参数注入
 - 优化 typescript
 
# 2.5.0 (2021-02-15) 金牛年🌟
- 重构内部核心代码
 - 优化内部渲染机制
 - 优化内部生命周期事件
 - 重构 
TypeScript - 新增 
nextTick方法,设置渲染后的回调 - 新增 use方法,类似 Vue
 - 新增 支持分页加载组件,加速首屏渲染
 - 新增 自定义配置项
effect - 新增 支持修改
type - 新增 
control支持配置规则插入位置 - 优化 
control符合条件的都会生效,之前版本只能生效第一个 - 新增 支持给组件配置前缀后缀 
prefix,suffix - 新增 
update配置,value发送变化后触发 - 新增 
link配置项,value变化后主动触发其他规则的update - 新增 支持局部挂载自定义指令 
directive - 新增 支持 
wrap配置项,配置FormItem - 新增 
object组件 - 新增 支持自定义
title,info组件 - 新增 富文本组件
wangEditor - 新增 
nativeEmit属性,通过emit方式监听原生事件 - 新增 原生事件支持事件注入
 - 新增 
display配置项,控制组件显示状态 - 支持 
value.sync获取双向绑定的formData - 优化 错误提示
 - 增强 
UI扩展,组件扩展,parser扩展,maker扩展 - 优化 默认的表单提交按钮
 - 优化 
group组件样式 - 重构 
group组件 - 新增 
coverValue方法,覆盖方式设置表单值 - 优化 拆分原有的
updateRule为updateRule,mergeRule 
不兼容项
- 移除 
ant-design-vue的labelCol,wrapperCol配置,合并到wrap配置项 - 修改 
group组件定义rule后value类型,可通过定义props.field解决 - 修改 
updateRule方法, 移除第三个参数. 用mergeRule代替 - 移除 
setParser,createParser方法 - 重构 
TypeScript - 移除 
set-value事件,合并到change事件 - 修改 
on-reload事件名称为reload - 移除 
emit事件field中的_转换为- 
# 1.0.20 (2020-11-01)
- 优化 错误提示
 - 优化 
group组件expand配置项 - 优化 
upload组件被禁用时无法预览问题 #268 - 修复 
hidden配置项可能失效问题 - 修复 
hidden组件无法重置问题 - 修复 
maker.group方法不存在 
# 1.0.19 (2020-09-11)
- 新增 
Group组件 expand 属性,控制默认打开个数 - 新增 通过 
Group组件监听子表单的事件{ type:'group', //... props: { rules: [ { type: 'input', field: 'test', emit: ['change'], //... } ] }, on: { ['test-change']: function () { //TODO input 组件 change 事件 } } } - 修复 
Group组件value可能会不同步问题 - 修复 
upload组件previewMask参数无效问题 - 优化 
emit事件触发 - 新增 
emit-event事件,有emit时触发 
# 1.0.18 (2020-08-12)
- 修复 
Group组件可能出现赋值失效问题 #240 (opens new window) - 修复 
ElmentUI.Upload组件可能出现报错问题 #207 (opens new window) - 修复 
emit事件可能会触发两次的问题 - 更新 
TypeScript 
# 1.0.17 (2020-07-16)
- 修复 
hidden可能会失效问题 - 修复 
group组件可能会额外生成多组的问题 - 修复 
control可能会失效的问题 - 修复 
datePicker,timePicker组件formatValue可能导致报错的问题 - 新增 
frame组件支持通过previewMask配置预览图片弹窗的遮罩是否显示 - 优化 
$emit事件 - 优化 表单销毁时可能报错
 - 优化 
frame组件助手方法加载时机 - 新增 支持设置 
title的class,style等属性let rule = { title:{ class:'titleClass', style:'backgroundColor:red', title:'商品名称' } //title:'商品名称' } 
# 1.0.16 (2020-06-17)
- 修复 渲染时可能出现死循环
 - 修复 
antd.switch组件修改值问题 - 修复 
antd.selectplaceholder 不显示 - 更新 
TypeScript - 修复 
group组件remove事件修改值时UI可能不更新问题 - 修复 
frame组件预览可能无法正常显示问题 - 新增 
group组件支持控制按钮隐藏按钮大写和自定义按钮,- 配置项 
fontSize,button, - 插槽 
button,default 
 - 配置项 
 
# 1.0.15 (2020-05-31)
- 优化 
parseJson,toJson方法,避免错误解析function - 优化 对生成规则的深拷贝
 - 优化 
group组件生成的子表单自动跟随父表单的配置 - 新增 
control.handle方法增加第二个参数fApi - 新增 
frame组件支持reload,okBtn,closeBtn配置,form_create_helper增加onOk,onClose方法可设置页面关闭回调事件 - 重构 
frame,upload组件的弹出框,移除原有的modal - 修复 
upload预览可能死循环问题 - 修复 
group组件验证可能不通过问题 - 修复 
toJson可能出现规则丢失问题 - 修复 全局配置
labelCol,wrapperCol不生效问题 - 修复 
hidden组件可能会渲染问题 
# 1.0.14 (2020-05-14)
- 优化 
frame组件 value 类型 - 修复 
frame组件 在safari浏览器下无法正常关闭问题 
# 1.0.13 (2020-05-11)
- 优化 
$f.append,$f.prepend方法 - 修改 内置的
copyRule方法 - 优化 自动拷贝生成规则的条件
 - 支持 控制是否自动生成
col,row组件和设置class 
# 1.0.12 (2020-04-30)
- 修复 局部挂载时
fragment组件报错 - 修复 
removeField可能无效问题 - 新增 双向数据绑定的 formData 
$f.form - 新增 
control事件,control生效或移除时触发 
# 1.0.11 (2020-04-21)
- 移除 
ElementUI label多行的样式 - 修复 ts 
vue.use(formCreate)类型报错问题 #196 - 新增 
maker实例增加inject,model方法 - 新增 内置
fragment组件 - 修复 
maker二次追加属性不生效问题 - 支持 
ant-design-vue文档npm i @form-create/ant-design-vue@^2.5 
# 1.0.10 (2020-04-18)
- 修复 
timePicker组件偶尔无法选择问题 - 修复  在
ie10中可能报错问题 - 修复 
parseJson方法可能报错问题 - 修复 
control可能不生效问题 - 重构 
vData类,支持事件重复监听 - 修复 
onSubmit方法报错问题 - 修复 
frame组件width,height属性类型错误问题 - 修复 
checkbox组件可能报错问题 - 修复 
control控制的规则多包裹一层div#199 - 新增 
frame组件增加srcKey配置项,支持value为对象 - 新增 
group组件增加change事件 - 新增 表单整体的
change事件 - 优化 
ElementUI label多行的样式 - 优化 ts #196
 
# 1.0.9 (2020-03-24)
- 修复 
field可能重复问题 - 修复 
DatePicker组件验证时可能报错问题 
# 1.0.8 (2020-03-15)
- 修复 合并公共布局规则时报错问题 #181
 - 修复 
group组件有可能会报错的问题 - 修复 追加组件后验证失效问题
 - 修复 
DatePicker组件值转换问题 - 更新 
TypeScript - 增加 优化
method方法,可拿到返回值 - 增加 在
group组件的事件中传入index#183 - 增加 增加
control配置项,可用于控制其他组件显示 - 增加 
options.form.className配置项,支持设置表单的class 
# 1.0.7 (2020-03-02)
- 修复 初始化全局配置时的字段错误 #166
 - 修复 
DatePicker组件验证报错问题 - 更新 
TypeScript - 修复 
frame组件src修改后,没有实时更新问题 - 增加 
group组件,可实现数组组件,hash组件功能 - 优化 组件生成规则复用
 - 优化 组件信息提示按钮位置
 
# 1.0.6 (2020-01-16)
- 支持
TypeScript - 修复
elm.frame组件在input类型icon不显示问题 - 修复
iview.tree组件首次渲染没有选中问题 
# 1.0.5 (2019-12-7)
- 重构 
hidden,visibility功能 - 生成规则增加 
hidden,visibility配置项 - 修复 
value可能会意外发生改变问题 - 修复 
value改变后,页面组件有可能没有渲染问题 
# 1.0.4 (2019-11-21)
- 新增 
formData配置项,可设置表单初始值 - 修复 
type未定义时可能出现死循环问题 - 修复 
type大写时可能未识别组件问题 - 支持 
iview v4版本 
npm i @form-create/iview4@^2.5
# 1.0.3 (2019-08-26)
- 修复 多次v-if后表单内控件绑定的事件失效 #125 (opens new window)
 - 修复 toJson方法函数转json
 - 修复 内置按钮不显示时,移除多余的布局 div
 - 新增 手动触发事件方法
$f.trigger - 新增 获取组件
vm方法$f.el - 增强 
props中的函数支持事件注入 - 增强 
removeField,updateRule返回当前规则 - 增强 事件注入参数中增加
self当前规则 - 增强 vm 参数支持设置为
Function 
{
    vm:function(){
        return new Vue;
    }
}
# 1.0.2 (2019-08-11)
- 修复 样式被覆盖问题 #121 (opens new window)
 - 修复 datePicker,timePicker 组件验证问题,取值问题 #118 (opens new window)
 - 修复 
append,prepend方法报错 - 增强 生成规则定义
name后,可通过component方法获取 - 增加 
on,off,once方法绑定 emit 事件 
# 1.0.1 (2019-07-29)
- 增加 
$f.updateValidate,$f.updateValidates方法 #116 (opens new window) - 修复 输入框设置最大最小字符无效 #115 (opens new window)
 - 修复 upload组件同时上传多张图片报错问题
 - 修复 ElementUI.upload组件加载动画不显示问题
 
# 1.0.0 (2019-07-21)
- 修复 timePicker 组件无法选择问题
 - 修复 type为template时会引发栈溢出问题 #110 (opens new window)
 - 新增 自定义组件props中自动注入
$f,可以用props.formCreate接收 - 新增 
$f.getRule方法,获取指定field的生成规则 
# 0.0.5 (2019-07-07)
- 优化 
$f.toJson方法,不支持转换template组件 - 新增 
$f.updateRule,$f.updateRules方法 
//更新 goods_name
$f.updateRule('goods_name',{
    props:{
        disabled:true
    }
})
//批量更新
$f.updateRules({
    'goods_name':{
        props:{
            disabled:true
        }
    }
})
- 新增 
injectEvent全局配置项,设置是否开启事件注入,注入$f,rule等参数.开启后事件的第一个参数为注入的参数 
//注入参数的数据结构
{
    $f:Object,//api
    rule:Array,//生成规则
    option:Object,//全局配置
    inject:Any,//自定义注入的参数
}
//全局开启
{
    injectEvent:true
}
//指定事件开启
rule:{
    //inject为事件额外的自定义注入参数
    emit:[{name:'click',inject:true}]
}
- 修复 移除组件的同时又新增
field与移除组件相同的组件时组件收到值undefined问题 
# 0.0.4 (2019-06-30)
- 新增 
$f.toJson和formCreate.parseJson方法, 将生成规则转为 json 和反转 - 新增 
info配置项,配置组件的提示信息 - 新增 
option.info配置项,设置组件提示信息的相关配置 - 移除 对时间组件,日期组件的值得二次处理
 - 增加 
$f.method方法不存在时的错误提示 - 增加 
frame组件的modal配置项,可设置modal的属性 - 修复 
element-ui部分组件placeholder属性无效问题 - 更新 
element-ui时间组件,日期组件maker生成器 
# 0.0.3
内部功能重构、 功能精简和优化、 扩展更简单
新功能
- 自定义组件可转换为表单组件,具有验证和内置组件的功能
 - 增加组件的全局配置
 - 增加 
name配置项,自定义组件可配置 - 增加 判断表单是否修改的方法 
changeStatus - 增加 获取组件隐藏状态方法
hiddenStatus - 增加 
rule.native配置项 - 增加 
$f.method方法,可调用组件方法 
修改
- 将 
switch组件slot配置,移动到props.slot中 - 修改 
$f.validate方法的参数 - 修改 
$f.hidden,$f.visibility,$f.disabled方法的参数顺序 - 修改 方法名
$f.submitStatus=>$f.submitBtnProps - 修改 方法名
$f.resetBtnStatus=>$f.resetBtnProps - 重构 
frame组件,移动event到props中 
移除
- 移除 自定义组件相关事件
 - 移除 
frame组件 spin 配置项 - 移除 全局配置中 
upload配置项 - 移除 表单最外层的 
margin20px - 移除 
$f.btn.finish和$f.resetBtn.finish方法 - 移除 
defaultSlot配置项 - 移除 内置组件自动填充默认属性
 - 移除 组件规则中的
hidden和visibility属性 - 移除 
upload组件onSuccess中返回 url 自动添加功能 - 移除 
iview版 event 配置项自动添加on-前缀功能