本文介绍form-create生成规则与组件的关系

form-create 是一个可以通过 JSON 生成具有动态渲染、数据收集、验证和提交功能的表单生成器。并且支持生成任何 Vue 组件。结合内置17种常用表单组件和自定义组件,再复杂的表单都可以轻松搞定。

如果对您有帮助,您可以在 GitHub 上给作者点个"Star" 支持一下 谢谢!

下图为组件生成规则和组件的关系说明

form-create 规则详细说明

基础规则

type

  • ​类型: String
  • 说明: 设置生成组件的名称

field

  • ​类型: String
  • 说明: 设置表单组件的字段名称,自定义组件可以不配置

title

  • ​类型: String
  • 说明: 组件的名称,可以不设置

name

  • ​类型: String
  • 说明: 自定义组件的字段名称

value

  • ​类型: any
  • 说明: 表单组件的字段值,自定义组件可以不用设置

className

  • ​类型: String
  • 说明: 设置组件的class

info

  • ​类型: String
  • 说明: 设置组件的提示信息
  • 全局配置说明: iview | element-ui

native

  • ​类型: Bool
  • 说明: 是否原样生成组件,不嵌套的FormItem

hidden

  • ​类型: Bool
  • 说明: 设置组件是否显示

扩展规则

validate

  • 类型: Array
  • 说明: 设置表单组件的验证规则

options

  • 类型: Array
  • 说明: 设置radio,select,checkbox等组件option选择项

inject

  • 类型: any
  • 说明: 设置事件注入是的自定义数据

col

  • 类型: Object
  • 说明: 设置组件的布局规则

control

  • 类型: Object
  • 说明: 控制其他组件显示

   详细说明

children

  • 类型: Array<rule|string|maker>

  • 说明: 设置父级组件的插槽,默认为default.可配合 slot 配置项使用

    • 示例1
    formCreate.maker.create('button').children([
    '按钮内容'
    ]);
    • 示例2
    maker.input('text','text','text').children([
    maker.create('span').children(['append']).slot('append')
    ])
    • 示例3
    formCreate.maker.create('i-row').children([
    formCreate.maker.create('i-col').props('span',12).children([
    formCreate.maker.template('<span>自定义组件</span>',new Vue)
    ]),
    ]);

emit

  • 类型: Array
  • 说明: 组件模式下配置使用emit方式触发的事件名,可与emitPrefix参数配合

示例:

//以下三种方式效果相同

rules = [{//emit 方式触发 change 事件
field:'goods_name',
//...
emit:['change']
},{// 自定义 emit 事件前缀,默认为 field 字段
field:'goods_info',
//...
emit:['change'],
emitPrefix:'gi'
},{// 直接在规则写回调方法
field:'goods_tag',
//...
event:{
change:function() {
//TODO
}
}
}]
<div id="app">
<form-create :rule="rules" @goods-name-change="change" @gi-change="change"></form-create>
</div>
new Vue({
el:'#app',
data: {
rules:rules
},
methods:{
change:function(){
//TODO
}
}
})

emitPrefix

  • 类型: Object
  • 说明: 自定义 组件emit事件的前缀
  • 默认: 组件 field 字段

模板规则

template 组件必须设置一下参数,其他组件无需设置

template

  • 类型: string
  • 说明: 模板组件的生成模板

vm

  • 类型: Vue|Function
  • 说明: 模板组件的 Vue 示例对象,用于解析模板

通用规则

props

  • ​参数: Object
  • 说明: 设置组件的props

class

  • ​参数: Object|String|Array
  • 说明: 设置组件的class

style

  • ​参数: Object|String
  • 说明: 设置组件的style

attrs

  • ​参数: Object
  • 说明: 设置组件普通的 HTML 特性

domProps

  • ​参数: Object
  • 说明: 设置组件的 DOM 属性

on

  • ​参数: Object
  • 说明: 设置组件的事件

nativeOn

  • ​参数: Object
  • 说明: 监听组件的原生事件

directives

  • ​参数: Array
  • 说明: 设置组件的自定义指令

scopedSlots

  • ​参数: Object
  • 说明: 设置组件的插槽

slot

  • ​参数: String
  • 说明: 设置组件的插槽名称,如果组件是其它组件的子组件,需为插槽指定名称

自定义配置项说明

form-create教程系列:

form-create教程:移除默认提交按钮

form-create教程:给内置组件和自定义组件添加事件

form-create教程:自定义布局,实现一行多个组件

form-create 组件生成规则说明的更多相关文章

  1. 表单组件 form fastadmin(生成表单元素)

    Form组件 定义文件位置: /extend/fast/Formphp 通用参数 $name 通常为我们组件的名称(name属性值),我们在后台接收时可以通过这个名称来获取到它所对应的值 $value ...

  2. 《React后台管理系统实战 :一》:目录结构、引入antd、引入路由、写login页面、使用antd的form登录组件、form前台验证、高阶函数/组件

    实战 上接,笔记:https://blog.csdn.net/u010132177/article/details/104150177 https://gitee.com/pasaulis/react ...

  3. 【共享单车】—— React后台管理系统开发手记:AntD Form基础组件

    前言:以下内容基于React全家桶+AntD实战课程的学习实践过程记录.最终成果github地址:https://github.com/66Web/react-antd-manager,欢迎star. ...

  4. django之分页器、多对多关系、form校验组件

    批量插入数据 bulk_create # 1.往书籍表中插入数据 1000 # for i in range(1000): # 这种插入方式 效率极低 # models.Book.objects.cr ...

  5. apidoc快速生成在线文档,apidoc生成静态文件的生成规则以及原理分析

    在老大的指引下,需要将系统的json文件格式转换成apidoc的json格式,也就是json格式的重组,但是这个apidoc的生成格式是不固定的,因为apidoc有自己一套的生成规则,我需要研究一下是 ...

  6. Java规则引擎drools:drt动态生成规则并附上具体项目逻辑

    一 整合 由于本人的码云太多太乱了,于是决定一个一个的整合到一个springboot项目里面. 附上自己的项目地址https://github.com/247292980/spring-boot 以整 ...

  7. React: 有状态组件生成真实DOM结点

    上次我们分析了无状态组件生成 DOM 的过程,无状态组件其实就是纯函数,它不维护内部的状态,只是根据外部输入,输出一份视图数据.而今天我们介绍的有状态组件,它有内部的状态,因此在组件的内部,可以自行对 ...

  8. Oracle中使用hash_hmac() 函数报错问题/以及Oracle遇到Oauth1.0授权和oauth_signature生成规则

    最近在Oracle上发现使用hash_hmac()报找不到此函数.为此特意查到oracle的文档.详细请看官网回答:https://cx.rightnow.com/app/answers/detail ...

  9. C#dll版本号默认生成规则

    原文:C#dll版本号默认生成规则 1.版本号自动生成方法 只需把 AssemblyInfo.cs文件中的[assembly: AssemblyVersion("1.0.0.0") ...

随机推荐

  1. 博弈论Nim取子问题,困扰千年的问题一行代码解决

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是算法与数据结构专题26篇文章,我们来看看一个新的博弈论模型--Nim取子问题. 这个博弈问题非常古老,延续长度千年之久,一直到20世纪 ...

  2. tableau入门学习笔记--分页功能

    最近在使用tableau来制作报表,对于tableau也是第一次接触并使用,每天学习些新的功能来记录在博客里,给他人方便,也给自己方便 tableau分页功能 很多时候由于工作表过长而出现拖拽条,如果 ...

  3. node:semantic version instruction

    [major].[minor].[patch] MAJOR version when you make incompatible API changes, MINOR version when you ...

  4. Python必须知道的异常处理

    异常处理 把可能会发生的错误,提前在代码里进行捕捉(监测) try : code except Exception: 出错后要执行的代码 下面是常见的异常: attributeError 试图访问一个 ...

  5. day36 解决粘包问题

    目录 一.tcp粘包问题出现的原因 二.解决粘包问题low的办法 三.egon式解决粘包问题 四.实现并发 1 tcp 2 udp 一.tcp粘包问题出现的原因 前引: tcp的客户端与服务端进行通信 ...

  6. 一篇文章掌握 Python 内置 zip() 的全部内容

    一篇文章掌握 Python 内置 zip() 的全部内容 zip() 是 Python 中最好用的内置类型之一,它可以接收多个可迭代对象参数,再返回一个迭代器,可以把不同可迭代对象的元素组合起来. 我 ...

  7. NW.js Mac App 签名公证流程

    使用 Developer ID 为 Mac 软件签名 - Apple Developer 在MacOS 10.15之前,应用如果没有签名(signature),那么首次打开时就会弹出"无法验 ...

  8. 管理用户和组 、 tar备份与恢复 、 cron计划任务-云计算学习(4)

    配置用户和组账号 问题 本例要求创建下列用户.组以及组的成员关系: 新建用户 alex,其用户ID为3456,密码是flectrag 创建一个名为 adminuser 的组 创建一个名为 natash ...

  9. 关于小白一天摆弄Axure产品原型的心得

    因为项目所需,被迫快速设计产品原型,制作app使用视频,这里简单分享一些一个小白第一次触碰产品原型设计的一些心得: 原型设计工具的选用 我这里针对的是贫穷学生党,分享的是自己尝试的几款.有钱大佬自行绕 ...

  10. 蜂鸟E203系列——Linux下运行hello world例程

    欲观原文,请君移步 创建程序 在 -/hbird-e-sdk-master/software 路径下创建一个"helloworld"中文件夹 在 -/hbird-e-sdk-mas ...