# 常见问题
提醒
fApi
为创建表单后返回的实例,field
为字段名称,rule
为表单生成规则
# 手动修改某个字段的值
fApi.bind()[field] = '修改后的值'
fApi.model()[field].value = '修改后的值'
rule[2].value = '修改后的值' //rule[2]是field字段的生成规则
fApi.setValue(field,value)
说明: 如果修改的值为数组必须直接赋值或使用push
,splice
等方法修改
# 批量赋值
fApi.setValue({[field1]:value1,[field2]:value2})
# 动态修改表单规则
fApi.model()[field].props.disabled = false
rule[2].props.disabled = false //rule[2]是要修改的生成规则
说明: 修改的属性需要提前在生成规则里预定义
# 追加表单字段
在 goods_name 字段后面增加一份图片上传组件,默认添加到尾部
fApi.append($formCreate.maker.upload( '产品主图', 'logo', 'http://img1.touxiang.cn/uploads/20131030/30-075657_191.jpg' ).props({ "action": "", "maxLength": 1, "multiple": false, "type": "select", "uploadType": "image", "name": "file", "onSuccess": function (res, file) { file.url = res.data } }) .validate({required:true, type: 'array', min: 1, message: '请上传1张图片', trigger: 'change'} ),'goods_name')
在 goods_name 字段之前增加一份 input 组件,默认添加到头部
fApi.prepend({ type:"input", title:"商品简介", field:"goods_info", value:"", props: { "type": "text", "placeholder": "请输入商品简介", }, validate:[ { required: true, message: '请输入商品简介', trigger: 'blur' }, ], },'goods_name')
在表单尾部追加一个 input 组件
rules.push({ type:"input", title:"商品简介", field:"goods_info", value:"", props: { "type": "text", "placeholder": "请输入商品简介", }, validate:[ { required: true, message: '请输入商品简介', trigger: 'blur' }, ], })
# 删除表单字段
删除指定字段
fApi.removeField(field)
删除最后一个字段
rules.pop()
# 隐藏指定字段
fApi.hidden(true, field)
# 根据后台返回的规则生成表单
fetch('api').then(rule=>{
$f = formCreate.create(rule,{
onSubmit(formData){
// 表单提交事件
fApi.btn.loading(true)
//TODO 提交表单
}
})
})
# 隐藏默认提交按钮
设置全局配置options.submitBtn = false
即可隐藏
# 定制默认提交按钮
option: {
submitBtn: {
type: "basic",
size: "mini",
icon: "",
shape: "round",
innerText: "submit",
col: {
span: 4,
offset: 10
}
}
}
# 显示默认重置按钮
设置全局配置options.resetBtn = true
即可显示
# Vue 版本不支持 compile
使用选中的 Vue 完整版
# 获取 $f
# 在配置项中调用外层组件的方法
# 规则正在其他form-create中使用
一个生成规则rule
只能同时在一个<form-create>
中使用. 如果需要多次使用:
- 在使用前自行深拷贝
- 从被使用的
<form-create>
中移除
# 验证规则无效
请注意 value 的数据类型.如果组件为多选或区间选择时 value 的数据类型为Array
,需要在验证规则中设置type:'array'
# switch 组件不显示
将 slot 配置项配置在 props 中
props: {
"trueValue":"1",
"falseValue":"0",
"slot": {
open:"上架",
close:"下架",
},
}
# 修改组件值后页面没有更新
在表单创建后到成功渲染之前修改是无效的
- 在生成表单之前修改
- 在
option.mounted
中修改 - 在首次表单渲染后修改