本文介绍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. 云服务器解析域名去掉Tomcat的8080端口号显示

  2. 抓包工具-Charles基础使用

    正在整理,等待编辑过后更新....... 竟然字少不能发不出去 那..... 现..... 在..... 够..... 了..... 吗?????? 不..... 够..... 我..... 在... ...

  3. Netty源码学习系列之5-NioEventLoop的run方法

    前言     NioEventLoop的run方法,是netty中最核心的方法,没有之一.在该方法中,完成了对已注册的channel上来自底层操作系统的socket事件的处理(在服务端时事件包括客户端 ...

  4. Appium移动端自动化测试--搭建模拟器和真机测试环境

    详细介绍安装Android Studio及Android SDK.安装Appium Server. 文章目录如下 目录 文章目录如下 模拟器--安装Android Studio及Android SDK ...

  5. css引入的方式有哪些_四种css的引入方式与特点

    在网页中css主要负责html文档的样式显示,目前css主要有4种引入方式:行内式.内嵌式.导入式.链接式. 1.行内式 行内式也叫内联样式,是指标记的style属性中设定CSS样式,这种方式没有体现 ...

  6. 推荐一款ui架构--frozenui

    首页是这样定义的 移动框架 重磅出击 简单易用,轻量快捷,为移动端服务的前端框架 链接地址 http://frozenui.github.io/base.html#layout

  7. vue-devtools的安装

    为了能够很好的检查vue代码,安装vue-devtools; 1.下载devtools插件,建议大家去找正规的路径下载(随便在网页上下载的缺文件,我已入坑),正规地址:https://github.c ...

  8. USACO07NOV Cow Relays G 题解

    题目 For their physical fitness program, \(N (2 ≤ N ≤ 1,000,000)\) cows have decided to run a relay ra ...

  9. CentOS7下安装Docker《超详细新手教程》

    1.使用 root 权限登录 Centos.确保 yum 包更新到最新. sudo yum update 2.卸载旧版本(如果安装过旧版本的话) sudo yum remove docker dock ...

  10. python数据处理(七)之数据探索和分析

    1.探索数据 1.1 安装agate库 1.2 导入数据 1.3 探索表函数 a.排序 b.最值,均值 c.清除缺失值 d.过滤 e.百分比 1.4 连结多个数据集 a.捕捉异常 b.去重 c.缺失数 ...