form-create 3.1.31 发布,优化渲染逻辑, 提升表单性能


FormCreate 是一个可以通过 JSON 生成具有动态渲染、数据收集、验证和提交功能的表单生成组件。支持5个UI框架,并且支持生成任何 Vue 组件。内置20种常用表单组件和自定义组件,再复杂的表单都可以轻松搞定目前在OA系统、ERP系统、电商系统、流程管理等系统中已稳定应用。

帮助文档 | 源码下载 

3.1.31 版本及近期主要更新了以下内容

  • 高级版FormCreate表单设计器强势登场,让表单设计更简单
  • 优化渲染逻辑, 提升表单性能
  • 新增 api 增加 getRenderRule 方法, 获取组件的最终渲染规则
  • 新增 api 增加 getRefRule 方法, 可以通过 name 字段获取规则
  • 新增 api 增加 bus 属性, 可以监听和触发自定义事件
  • 新增 api 增加 fetch 方法, 可以手动加载远程数据
  • 新增 upload 回调参数中增加 linkField 字段,可以判断是由那个关联字段触发
  • 新增 validate 自动注入 inject 字段,可以在自定义验证函数中拿到规则和api
  • 新增 组件的options配置中增加 onChange 回调,修改表单时触发
  • 优化 reuqired 属性
  • 优化 修改组件的 disabled 配置实现逻辑​
  • 新增 api增加Top字段, 获取最顶级表单的api
  • 新增 组件增加disabled配置,全局禁用表单组件
  • 优化组件隐藏逻辑
  • 优化element-plus兼容性
  • 优化 子表单基础表单配置
  • 优化 计算属性
  • 修复 options.beforeFetch 配置不生效问题​
  • 组件增加title插槽,支持自定义表单的标签区域
  • 修复 options.title 配置不生效问题
  • 修复 options.beforeFetch 配置不生效问题
  • 修复 ElementPlus兼容老版本
  • 修复 Ts描述​

Features🌟

  • 重构 group组件, 重写样式,并增加序号和上下移动功能,增加sortBtn和parse参数
  • 新增 api中新增wrapElformEl方法,用于获取对应的vue组件实例
  • 新增 formCreate新增setDataremoveData方法
ts
type setData = (name:string,value:any) =>void;
type removeData = (name:string)=>void;
  • 新增 增加loadData自定义属性
js
//设置数据
formCreate.setData('address',[]);
js
//生成规则
{
type:'select',
options: [],
effect: {
loadData:{
attr:'address',
to:'options'
}
}
}
  • 优化 fetch.parse 配置,支持配置字符串,指定路径,例如props.options

安装

根据自己使用的 UI 安装对应的版本

element-ui

npm install @form-create/element-ui@next
 

ant-design-vue

npm install @form-create/ant-design-vue@next
 

arco-design

npm install @form-create/arco-design@next
 

naive-ui

npm install @form-create/naive-ui@next
 

tdesign

npm install @form-create/tdesign@next
 

引入

CDN:

element-plus

<link href="https://unpkg.com/[email protected]/dist/index.css"></link>
<script src="https://unpkg.com/vue@next"></script>
<script src="https://unpkg.com/[email protected]/dist/index.full.js"></script>
<script src="https://unpkg.com/@form-create/element-ui@next/dist/form-create.min.js"></script>
 

ant-design-vue

<link href="https://unpkg.com/[email protected]/dist/antd.min.css"></link>
<script src="https://unpkg.com/vue@next"></script>
<script src="https://unpkg.com/dayjs"></script>
<script src="https://unpkg.com/[email protected]/dist/antd.min.js"></script>
<script src="https://unpkg.com/@form-create/ant-design-vue@next/dist/form-create.min.js"></script>
 

NodeJs:

element-plus ^2.0

import formCreate from '@form-create/element-ui'
app.use(formCreate)
 

element-plus (with unplugin-vue-components/vite & ElementPlusResolver)

import formCreate from '@form-create/element-ui'
import install from '@form-create/element-ui/auto-import'
formCreate.use(install)
app.use(formCreate)
 

ant-design-vue ^3.0

import formCreate from '@form-create/ant-design-vue'
app.use(formCreate)
 

arco-design ^2.0

import formCreate from '@form-create/arco-design'
app.use(formCreate)
 

naive-ui ^2.0

import formCreate from '@form-create/naive-ui'
app.use(formCreate)
 

tdesign ^0.17.3

import formCreate from '@form-create/tdesign'
app.use(formCreate)
 

使用

可通过以下2种方式创建表单:

组件模式, 全局方法

组件模式​

使用 <form-create></form-create> 标签创建表单

html
<div id="app">
<form-create v-model="formData" v-model:api="fApi" :rule="rule" :option="option"></form-create>
</div>

NodeJs​

js
export default {
data() {
return {
//实例对象
fApi: {},
//表单数据
formData: {},
//表单生成规则
rule: [
{
type: 'input',
field: 'goods_name',
title: '商品名称'
},
{
type: 'datePicker',
field: 'created_at',
title: '创建时间'
}
],
//组件参数配置
option: {
//表单提交事件
onSubmit: function (formData) {
alert(JSON.stringify(formData))
}
}
}
}
}

在 setup 中使用​

vue
<template>
<FormCreate :rule="rule" :option="options" v-model="formData" v-model:api="fApi"></FormCreate>
</template>
<script setup>
//导入 form-create
import formCreate from "@form-create/element-ui";
import {ref} from "vue";
//获取 formCreate 组件
const FormCreate = formCreate.$form();
const fApi = ref({});
const formData = ref({});
const options = ref({
//表单提交事件
onSubmit: function (formData) {
alert(JSON.stringify(formData))
}
});
const rule = ref([
{
type:'input',
field:'goods_name',
title:'商品名称',
value:'form-create'
},
{
type:'checkbox',
field:'label',
title:'标签',
value:[0,1,2,3],
options: [
{label:'好用',value:0},
{label:'快速',value:1},
{label:'高效',value:2},
{label:'全能',value:3},
]
},
]);
</script>

全局方法​

使用 window 全局方法formCreate.create(rule,option)创建表单

html
<div id="app3">
<div id="form-create"></div>
</div>
js
//表单插入的节点
const root = document.getElementById('form-create')


const fApi = window.formCreate.create(
//表单生成规则
[
{
type: 'input',
field: 'goods_name',
title: '商品名称'
},
{
type: 'datePicker',
field: 'created_at',
title: '创建时间'
}
],
//组件参数配置
{
el: root,
//显示表单重置按钮
resetBtn: true,
//表单提交事件
onSubmit: function (formData) {
//按钮进入提交状态
fApi.btn.loading()
}
})

1. FormCreate官网:https://www.form-create.com
2. 帮助文档:https://pro.form-create.com/doc
3. 体验地址:https://pro.form-create.com/view


相關推薦

2024-06-27

!-- 引入 formCreate --> <script src="https://cdn.jsdelivr.net/npm/@form-create/vant/form-create.min.js"></script> <!-- 挂载组件 --> <script > const app = Vue.createApp({}); app.use(vant); app.use(formCreateMobile); app.mount('#app'); </script> NPM​ 安装

2024-08-09

xaboy form-create v3.2.4 已经发布,JS 表单生成器 此版本更新内容包括: vue3 20240808 优化 group组件 优化 优化vant时间选择组件 优化 属性计算初始值 优化 自定义属性 优化 渲染 修复 id设置未生效问题 修复 重写fetch失效

2024-09-24

件的方式 修复已知的bug 安装​ 首先,安装 @form-create/designer 的 Vue 3 版本: sh npm install @form-create/designer@^3 安装 Vue 3 版本的 form-create sh npm install @form-create/element-ui@^3 引入​ CDN 引入 如果您选择

2024-10-15

、栅格布局、表格布局等。 安装​ 首先,安装 @form-create/vant-designer npm install @form-create/vant-designer@^3 引入​ CDN 引入 如果您选择使用 CDN,可以按照以下步骤在 HTML 文件中引入相关依赖: <link rel="stylesheet" href="h

2024-02-05

发和维护过程的提质降本增效。 Diboot 3.2.0版本已于近期发布,对照我们对V3的架构设想,最后一块拼图(页面设计转代码)已经顺利完成,至今,Diboot 已实现理想中的低代码解决方案:零代码、低代码、纯代码 自由切换顺畅融

2022-10-28

新版功能 在线表单,新版在线表单编辑器使用全新页面样式。 在线表单,前端支持更多基础组件。 在线表单,前端内置业务相关的高阶组件,同时提供标准化扩展接口。 在线表单,前端支持 Javascript 监听器,对于复杂

2023-10-11

Diboot 2.9.0 版本已于近期发布,该版本主要带来了基础组件的持续打磨优化、以及工作流版本的移动端重构、极复杂流程流转相关的bug修复等。 主要优化如下: diboot-core 内核 getViewObject(queryWrapper, voClass) getValueOfField(queryWrapp

2024-03-03

Dlink 1.0.0 已经发布,交互式的 FlinkSQL Studio 此版本更新内容包括: 升级说明 Dinky 1.0 是一个重构版本,对已有的功能进行重构,并新增了若干企业级功能,修复了 0.7 的一些局限性问题。 目前无法直接从 0.7 升级到 1.0。建议

2024-07-10

这是v2.x的优化累积升级版本,包括一些重要优化、依赖更新、bugfix 等 内核 diboot-core & core starter v2.11.0 优化: 字典选项数据查询支持缓存(默认内存缓存,启用Redis则使用Redis缓存) 优化字段名转列名映射,支持

2024-08-01

: 新增:表格布局 新增:明细表单支持动态表单 优化:发起和待办任务页面改为全屏显示 优化:支持抄送发送消息 优化:触发器、流程开始和结束监听等HTTP操作有返回值的支持多层级赋值 优化:查看流程预测树时

2024-01-22

Taro 3.6.23 现已发布。Taro 是一个开放式跨端跨框架解决方案,支持使用 React/Vue/Nerv 等框架来开发微信 / 京东 / 百度 / 支付宝 / 字节跳动 / QQ 小程序 / H5 等应用。 此版本具体更新内容如下: 特性 新增了 H5/RN 的表单组件支持

2024-10-29

DDei在线设计器V1.2.41版本带来了新功能、提升了性能、增强了稳定性、扩展了多个回调函数。 新特性 1.提供了简版布局与之配套的简版控件工具箱和顶部菜单,并支持通过vue来扩展菜单。 2.由canvas渲染改为canvs+html混合渲染,

2023-10-30

提供了网站托管服务,让开发者能够在上面开发、预览和发布 Web 应用,同时优化了前端开发者的开发和部署体验。 Next.js 14 主要变化: Turbopack: App & 页面路由通过了 5000 项测试 本地服务器启动速度提升 53% 使

2024-10-16

新增 增加前台会员登录验证码开关配置项 BaInput 和 FormItem 组件增加插槽支持 可视化CRUD将字段默认值区分为多个类型进行设定 可视化CRUD修改字段的生成类型时,询问是否重置为新类型的预设属性 终端设置窗口内增加