常见问题

::: warning 提醒

$f为创建表单后返回的实例,field 为字段名称,rule 为表单生成规则

:::

手动修改某个字段的值

  1. $f.bind()[field] = '修改后的值'
  2. $f.model()[field].value = '修改后的值'
  3. rule[2].value = '修改后的值' //rule[2]是field字段的生成规则
  4. $f.setValue(field,value)

说明: 如果修改的值为数组必须直接赋值或使用push,splice等方法修改

批量赋值

  1. $f.setValue({[field1]:value1,[field2]:value2})

动态修改表单规则

  1. $f.model()[field].props.disabled = false
  2. rule[2].props.disabled = false //rule[2]是要修改的生成规则

说明: 修改的属性需要提前在生成规则里预定义

追加表单字段

  1. 在 goods_name 字段后面增加一份图片上传组件,默认添加到尾部
    1. $f.append($formCreate.maker.upload(
    2. '产品主图',
    3. 'logo',
    4. 'http://img1.touxiang.cn/uploads/20131030/30-075657_191.jpg'
    5. ).props({
    6. "action": "",
    7. "maxLength": 1,
    8. "multiple": false,
    9. "type": "select",
    10. "uploadType": "image",
    11. "name": "file",
    12. "onSuccess": function (res, file) {
    13. file.url = res.data;
    14. }
    15. })
    16. .validate({required:true, type: 'array', min: 1, message: '请上传1张图片', trigger: 'change'}
    17. ),'goods_name');
  2. 在 goods_name 字段之前增加一份 input 组件,默认添加到头部

    1. $f.prepend({
    2. type:"input",
    3. title:"商品简介",
    4. field:"goods_info",
    5. value:"",
    6. props: {
    7. "type": "text",
    8. "placeholder": "请输入商品简介",
    9. },
    10. validate:[
    11. { required: true, message: '请输入商品简介', trigger: 'blur' },
    12. ],
    13. },'goods_name');
  3. 在表单尾部追加一个 input 组件

    1. rules.push({
    2. type:"input",
    3. title:"商品简介",
    4. field:"goods_info",
    5. value:"",
    6. props: {
    7. "type": "text",
    8. "placeholder": "请输入商品简介",
    9. },
    10. validate:[
    11. { required: true, message: '请输入商品简介', trigger: 'blur' },
    12. ],
    13. })

    删除表单字段

  4. 删除指定字段

    1. $f.removeField(field);
  5. 删除最后一个字段

    1. rules.pop()

隐藏指定字段

  1. $f.hidden(true, field)

根据后台返回的规则生成表单

  1. fetch('api').then(rule=>{
  2. $f = formCreate.create(rule,{
  3. onSubmit(formData){
  4. // 表单提交事件
  5. $f.btn.loading(true);
  6. //TODO 提交表单
  7. }
  8. })
  9. })

隐藏默认提交按钮

设置全局配置options.submitBtn = false即可隐藏

定制默认提交按钮

  1. option: {
  2. submitBtn: {
  3. type: "basic",
  4. size: "mini",
  5. icon: "",
  6. shape: "round",
  7. innerText: "submit",
  8. col: {
  9. span: 4,
  10. offset: 10
  11. }
  12. }
  13. }

显示默认重置按钮

设置全局配置options.resetBtn = true即可显示

Vue 版本不支持 compile

vue-version

获取 $f

参考

在配置项中调用外层组件的方法

参考 #51

规则正在其他form-create中使用

一个生成规则rule只能同时在一个<form-create>中使用. 如果需要多次使用:

  • 在使用前自行深拷贝
  • 从被使用的<form-create>中移除

验证规则无效

请注意 value 的数据类型.如果组件为多选或区间选择时 value 的数据类型为Array,需要在验证规则中设置type:'array'

验证规则说明

switch 组件不显示

将 slot 配置项配置在 props 中

  1. props: {
  2. "trueValue":"1",
  3. "falseValue":"0",
  4. "slot": {
  5. open:"上架",
  6. close:"下架",
  7. },
  8. }

修改组件值后页面没有更新

在表单创建后到成功渲染之前修改是无效的

  • 在生成表单之前修改
  • option.mounted中修改
  • 在首次表单渲染后修改