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

FormCreate官网:https://www.form-create.com

帮助文档:https://form-create.com/v3/


1. 生成内置组件
<template>
<div>
<form-create :rule="rule" v-model:api="fApi" :option="options" v-model="value">
</form-create>
</div>
</template> <script>
export default {
data() {
return {
fApi: {},
value: {},
options: {
onSubmit: (formData) => {
alert(JSON.stringify(formData))
},
resetBtn: true
},
rule: [
{type: 'input', field: 'field1', title: 'input', value: ''},
{type: 'datePicker', field: 'field2', title: 'date', value: ''},
]
}
}
}
</script>

2. 生成UI组件

<template>
<div>
<form-create :rule="rule" v-model:api="fApi" :option="options" v-model="value">
</form-create>
</div>
</template> <script>
export default {
data() {
return {
fApi: {},
value: {},
options: {
onSubmit: (formData) => {
alert(JSON.stringify(formData))
},
resetBtn: true
},
rule: [
{
type: 'AButton',
props: {
size: 'mini'
},
children: ['AButton']
},
{
type: 'AImage',
//非表单组件不会自动生成col,自定义组件需要通过native控制是否生成col
native: false,
props: {
width: '200px',
src: 'https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png',
}
},
]
}
}
}
</script>

3. 生成自定义组件

<template>
<div>
<form-create :rule="rule" v-model:api="fApi" :option="options" v-model="value">
</form-create>
</div>
</template> <script>
import {h, defineComponent, resolveComponent} from 'vue'
import formCrate from '@form-create/ant-design-vue'
import formCreate from "@form-create/ant-design-vue";
// import UserSelect from "./UserSelect.vue";
//自定义表单组件
const UserSelect = defineComponent({
props: {
//预定义
disabled: Boolean,
modelValue: Number,
options: Array,
},
emits: ['update:modelValue'],
data: function () {
return {
value: this.modelValue,
}
},
render() {
return h(resolveComponent('ASelect'), {
disabled: this.disabled,
value: this.value,
'onUpdate:value': this.onChange,
options: this.options
});
},
watch: {
modelValue(n) {
//同步 value 的值
this.value = n
}
},
methods: {
onChange: function (val) {
this.value = val;
//更新组件内部的值
this.$emit('update:modelValue', val)
},
},
}); export default {
beforeCreate() {
//挂载组件
formCrate.component('UserSelect', UserSelect);
},
data() {
return {
fApi: {},
value: {},
options: {
onSubmit: (formData) => {
alert(JSON.stringify(formData))
},
resetBtn: true
},
rule: [
{
type: 'UserSelect',
field: 'field1',
title: '用户选择',
value: '小王',
props: {
options: [
{label: '小王', value: '小王'},
{label: '小李', value: '小李'},
]
},
},
]
}
}
}
</script>

4. 通过插槽生成组件

<template>
<div>
<form-create :rule="rule" v-model:api="fApi" :option="options" v-model="value">
</form-create>
</div>
</template> <script>
export default {
data() {
return {
fApi: {},
value: {},
options: {
onSubmit: (formData) => {
alert(JSON.stringify(formData))
},
resetBtn: true
},
rule: [
{
type: 'div',
style: 'width:200px;height:200x;background-color:#FF7271;',
children: [
{
type: 'span',
style: 'color:#FFFFFF;',
children: ['FormCreate']
}
]
},
]
}
}
}
</script>

5. 生成HTML标签

<template>
<div>
<form-create :rule="rule" v-model:api="fApi" :option="options" v-model="value">
<template #type-UserSelect="scope">
<ASelect :value="scope.model.value" v-bind="scope.prop" @update:value="scope.model.callback">
</ASelect>
</template>
</form-create>
</div>
</template> <script>
export default {
data() {
return {
fApi: {},
value: {},
options: {
onSubmit: (formData) => {
alert(JSON.stringify(formData))
},
resetBtn: true
},
rule: [
{
type: 'UserSelect',
field: 'field1',
title: '用户选择',
value: '小王',
props: {
options: [
{label: '小王', value: '小王'},
{label: '小李', value: '小李'},
]
},
},
]
}
}
}
</script>

使用form-create生成表单组件的更多相关文章

  1. 编写antd配置表单组件

    编写antd配置表单组件 整体思路 抽取formitem的配置数组:包含组件类型.名称.label名称,相关的opts和扩展的opts,传递进入组件 组件通过Form.create()进行表单创建,能 ...

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

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

  3. Django form表单 组件

    目录 Django form表单 组件 Form 组件介绍 普通方式手写注册功能 使用form组件实现注册功能 Form 常用字段与插件 常用字段(必备) 字段参数(必备) 内置验证(必备) 自定义效 ...

  4. Form( 表单) 组件

    本节课重点了解 EasyUI 中 Form(表单)组件的使用方法, 这个组件不依赖于任何组件.一. 加载方式表单组件只能在 JS 区域设置,首先定义一张表单.<form id="box ...

  5. 第二百二十一节,jQuery EasyUI,Form(表单)组件

    jQuery EasyUI,Form(表单)组件 学习要点: 1.加载方式 2.属性列表 3.事件列表 4.方法列表 本节课重点了解 EasyUI 中 Form(表单)组件的使用方法,这个组件不依赖于 ...

  6. Vue + Element-ui实现后台管理系统(5)---封装一个Form表单组件和Table表格组件

    封装一个Form表单组件和Table组件 有关后台管理系统之前写过四遍博客,看这篇之前最好先看下这四篇博客.另外这里只展示关键部分代码,项目代码放在github上: mall-manage-syste ...

  7. 封装react antd的form表单组件

    form表单在我们日常的开发过程中被使用到的概率还是很大的,比如包含了登录.注册.修改个人信息.新增修改业务数据等的公司内部管理系统.而在使用时这些表单的样式如高度.上下边距.边框.圆角.阴影.高亮等 ...

  8. 封装Vue Element的form表单组件

    前两天封装了一个基于vue和Element的table表格组件,阅读的人还是很多的,看来大家都是很认同组件化.高复用这种开发模式的,毕竟开发效率高,代码优雅,逼格高嘛.虽然这两天我的心情很糟糕,就像& ...

  9. vue自定义表单生成器,可根据json参数动态生成表单

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

  10. 基于PHP和mysql的自动生成表单

    开发背景:公司要求管理系统能够由管理员在前台页面管理系统表单,能够对表单进行增删改查基本操作,表单的各个字段都可以被修改.删除,可以添加新的字段,并且不影响系统正常运行,前台表单展示要由系统自动处理, ...

随机推荐

  1. localhost 宿主机访问

    ssh -N -f -L localhost8888:localhost:8888 hostname

  2. 用SQL命令查看Mysql数据库大小 统计数据库空间占用

    -- 1. 进入information_schema 数据库(存放了其他的数据库的信息) use information_schema; -- 2. 查询所有数据的大小: select concat( ...

  3. PMML讲解及使用

    1. PMML概述 PMML全称预言模型标记语言(Predictive Model Markup Language),利用XML描述和存储数据挖掘模型,是一个已经被W3C所接受的标准.使用pmml储存 ...

  4. Python 在Excel单元格中应用数据条

    在Excel中添加数据条是一种数据可视化技巧,它通过条形图的形式在单元格内直观展示数值的大小,尤其适合比较同一列或行中各个单元格的数值.这种表示方式可以让大量的数字信息一目了然.本文将介绍如何使用Py ...

  5. Qt编写ffmpeg本地摄像头显示(16路本地摄像头占用3.2%CPU)

    一.前言 内核ffmpeg除了支持本地文件.网络文件.各种视频流播放以外,还支持打开本地摄像头,和正常的解析流程一致,唯一的区别就是在avformat_open_input第三个参数传入个AVInpu ...

  6. 使用ollama玩转本地大模型

    使用ollama玩转本地大模型 https://ollama.com/download 安装 安装验证 测试 ollama run llama2 ollama run qwen

  7. 将 EasySQLite 从 .NET 8 升级到 .NET 9

    前言 EasySQLite是一个.NET 8操作SQLite入门到实战的详细教程,主要是对学校班级,学生信息进行管理维护.今天咱们的主要内容是将EasySQLite从.NET 8升级到.NET 9. ...

  8. 基于.NET8.0实现RabbbitMQ的Publish/Subscribe发布订阅以及死信队列

    [前言] RabbitMQ提供了五种消息模型,分别是简单模型.工作队列模型.发布/订阅模型.路由模型和主题模型.‌‌ 简单模型(Simple)‌:在这种模式下,一个生产者将消息发送到一个队列,只有一个 ...

  9. Java生成Word文档之 XDocReport 和 Poi-tl

    近期参与的多个项目中,均涉及根据预定义模板生成Word文档以供前端下载的需求.以往,我们通常采用将Word文档转换为XML格式,并通过代码赋值变量的方式来实现这一功能.尽管此方法在技术层面可行,但当面 ...

  10. MS Webview2 拦截 interact/intercept

    https://docs.microsoft.com/en-us/microsoft-edge/webview2/how-to/webresourcerequested?tabs=dotnet 自定义 ...