当前位置: 首页 > news >正文

开源的Vue低代码表单设计器 form-create-designer v3.2.9 版本发布,新增10多种功能

form-create-designer 是一款开源的低代码表单设计器,通过数据驱动表单渲染。可以通过拖拽的方式快速创建表单,提高开发者对表单的开发效率,节省开发者的时间。并广泛应用于在政务系统、OA系统、ERP系统、电商系统、流程管理等领域。

项目采用 Vue 和 ElementPlus/ElementUI 进行页面构建,内置多语言解决方案,支持二次扩展开发,支持自定义组件扩展。兼容 Vue2 和 Vue3 版本。

帮助文档 | 在线演示 | Github | Gitee

特点

  • 支持事件配置
  • 支持样式配置
  • 支持表格布局
  • 支持表单验证
  • 支持表单多语言
  • 使用JSON数据生成表单
  • 支持扩展自定义组件
  • 内置30+常用的表单组件和布局组件
  • 提供丰富的表单操作API
  • 支持子表单和分组

v3.2.9 版本更新内容

  • 使用新版图标,我们专门为低代码设计器产品制作了系列图标。
    在这里插入图片描述

  • 新增 增加图片组件

  • 新增 增加标签页组件,表格表单组件 (Vue2版本)

  • 新增 增加updateDefaultRule配置项, 设置组件的初始化规则

  • 新增 完善表单事件,增加表单重置事件和重载事件

  • 新增 事件列表增加说明
    在这里插入图片描述

  • 新增 增强样式配置, 增加尺寸相关配置
    在这里插入图片描述

  • 新增 增加取消当前选中组件的按钮
    在这里插入图片描述

  • 新增 远程数据支持配置querydataType参数,处理数据回调中支持获取api和rule
    在这里插入图片描述

  • 新增 事件模块中增加规则相关内置事件

-orig-sign%3Du7HZNkIjbUMZ9oIxYPImCnYKc8s%253D&pos_id=img-5s2c8lzU-1735612425196)

  • 新增 支持给组件配置自定义props
    在这里插入图片描述

  • 新增 内置JSON预览模块

在这里插入图片描述

  • 新增 增加表单多语言配置
    在这里插入图片描述

  • 新增 支持通过updateConfigOnBlur 配置项控制组件右侧配置项的更新方式

  • 新增 增加configFormOrder配置项,控制组件右侧配置表单的顺序

  • 完善 upload组件配置

  • 完善 选择项支持配置多种数据类型
    在这里插入图片描述

  • 优化 复制时自动刷新name, 使用autoResetName配置项控制,默认开启 (不向下兼容,配置为false后和之前版本一致)

  • 优化 内置函数导出

  • 优化 页面滚动条显示

  • 优化组件操作,支持不选中组件即可操作组件
    在这里插入图片描述

PC端设计器

CDN:

<link rel="stylesheet" href="https://unpkg.com/element-plus/dist/index.css"></link>
<script src="https://unpkg.com/vue"></script>
<script src="https://unpkg.com/element-plus/dist/index.full.js"></script>
<script src="https://unpkg.com/@form-create/element-ui@next/dist/form-create.min.js"></script>
<script src="https://unpkg.com/@form-create/designer@next/dist/index.umd.js"></script>

NodeJs:

npm install @form-create/designer@next
npm install @form-create/element-ui@next
npm install element-plus
import FcDesigner from '@form-create/designer'
import ELEMENT from 'element-plus';
import 'element-plus/dist/index.css';app.use(ELEMENT);
app.use(FcDesigner)
app.use(FcDesigner.formCreate)

使用

<fc-designer ref="designer"/>

移动端设计器

CDN:

<link rel="stylesheet" href="https://unpkg.com/element-plus/dist/index.css"></link>
<link rel="stylesheet" href="https://unpkg.com/vant@4/lib/index.css"/>
<script src="https://unpkg.com/vue"></script>
<script src="https://unpkg.com/element-plus/dist/index.full.js"></script>
<script src="https://unpkg.com/vant@4/lib/vant.min.js"></script>
<script src="https://unpkg.com/@form-create/element-ui@next/dist/form-create.min.js"></script>
<script src="https://unpkg.com/@form-create/vant@next/dist/form-create.min.js"></script>
<script src="https://unpkg.com/@form-create/vant-designer@next/dist/index.umd.js"></script>

NodeJs:

npm install @form-create/vant-designer@next
npm install @form-create/element-ui@next
npm install @form-create/vant@next
npm install element-plus
npm install vant
import FcDesignerMobile from '@form-create/vant-designer'
import ELEMENT from 'element-plus';
import vant from 'vant';
import 'vant/lib/index.css';
import 'element-plus/dist/index.css';app.use(ELEMENT)
app.use(vant)
app.use(FcDesignerMobile)
app.use(FcDesignerMobile.formCreate)

使用

<fc-designer-mobile ref="designer"/>

表单渲染

在使用设计好的规则进行表单设计和回显时,正确地处理 JSON 数据格式是至关重要的。以下文档详细介绍了如何渲染表单,并包含了动态加载和保存表单配置的高级用法示例。

挂载 formCreate 示例

//从设计器中导入 formCreate
import {formCreate} from '@form-create/designer';
//挂载 formCreate
app.use(formCreate);

表单渲染示例

以下示例演示如何获取后端存储的表单规则,并通过 formCreate 渲染表单。

    <template><div id="app"><form-create v-if="rule.length" v-model="formData" v-model:api="fApi" @sumbit="handleSubmit" :rule="rule":option="option"></form-create></div></template><script setup>import {formCreate} from '@form-create/designer';const rule = ref([]);const options = ref({});const fApi = ref(null);//表单数据const formData = ref({});function handleSubmit(formData) {// 模拟提交表单数据到后端axios.post('/api/submitFormData', formData).then(response => {console.log('提交成功:', response.data);}).catch(error => {console.error('提交失败:', error);});}onMounted(() => {// 模拟从后端加载表单JSON规则axios.get('/api/getFormRules').then(response => {const {ruleJson, optionsJson, formData} = response.data;rule.value = formCreate.parseJson(ruleJson);options.value = formCreate.parseJson(optionsJson);formData.value = formData;}).catch(error => {console.error('加载表单规则失败:', error);});});</script>

注意事项

  • 确保从后端返回的 JSON 数据格式正确,以保证 formCreate.parseJson 的正常工作。
  • 在实际实现时,根据你的 API 结构调整请求URL和数据字段名称。

通过这些示例和说明,开发者可以在 Vue 应用中实现动态表单渲染与数据持久化提交,高效管理表单的设计和使用。

保存规则

提供了保存表单设计的功能,使开发者能够持久化存储表单设计,以便用户在页面刷新或重载后能够恢复先前的状态。这对于复杂表单的管理和持久化至关重要。

必须使用 formCreate.parseJson 代替 JSON.stringify 方法,使用 formCreate.toJson 代替 JSON.parse 方法来转换 JSON 数据,以确保数据格式正确。

显示保存按钮

设计器中内置了一个保存按钮,通过 config.showSaveBtn 配置项来控制其显示。此功能允许用户在表单设计完成后方便地触发保存操作。
在这里插入图片描述

以下代码展示了如何在配置中启用保存按钮:

    {config: {showSaveBtn: true}}

保存数据

当用户点击保存按钮时,会触发 save 事件。开发者可以自定义处理该事件以实现保存功能,将设计好的表单规则和配置发送到服务器或本地存储。

保存数据示例

以下是保存数据的一个简单实现示例:

    <template><fc-designer ref="designer" @save="handleSave" :config="config"/></template><script setup>const config = {showSaveBtn: true}function handleSave ({ruleJson, optionsJson}) {// 示例:调用后端接口保存表单规则和配置axios.post('/api/saveForm', {rules: ruleJson,options: optionsJson}).then(response => {// 处理保存成功的逻辑console.log('表单保存成功', response.data);}).catch(error => {// 错误处理console.error('表单保存失败', error);});}</script>

通过上述代码,当用户点击保存按钮时,表单的规则和配置以 JSON 格式发送到指定的 API 接口。

回显数据

为了在加载页面时回显之前设计的表单,需要从存储中加载之前保存的 JSON 规则和配置,将其应用到设计器中。

回显数据示例

以下是回显数据的实现示例:

    <template><fc-designer ref="designer" @save="handleSave" :config="config"/></template><script setup>const designer = ref(null)onMounted(() => {try {// 示例:从服务器端获取保存的JSON规则const { data } = await axios.get('/api/getForm');const { ruleJson, optionsJson } = data;// 回显设计的表单designer.value.setOptions(optionsJson);designer.value.setRule(ruleJson);} catch (error) {console.error('加载表单数据失败', error);}});</script>

在以上代码中,应用程序会在组件挂载后立即从服务器加载之前保存的数据,并将其应用到当前的设计器实例以恢复表单状态。

相关文章:

开源的Vue低代码表单设计器 form-create-designer v3.2.9 版本发布,新增10多种功能

form-create-designer 是一款开源的低代码表单设计器&#xff0c;通过数据驱动表单渲染。可以通过拖拽的方式快速创建表单&#xff0c;提高开发者对表单的开发效率&#xff0c;节省开发者的时间。并广泛应用于在政务系统、OA系统、ERP系统、电商系统、流程管理等领域。 项目采…...

Android Killer 无法调用jd-gui.exe

在Android Killer 时&#xff0c;点击图标转换为java代码时&#xff0c;调用jd-gui.exe 弹窗无法验证发布者&#xff0c;点击运行没反应 第一种方案&#xff1a;开启组策略&#xff08;网上找的&#xff0c;没有效果&#xff09; 键盘WinR &#xff0c;在弹出窗口中输入gped…...

24.01.01 MyBatis

对sql拆分简化之后,更适合使用MyBatisPlus 搭建项目 引入依赖 <!--Mysql 驱动--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><!--Druid数据库连接池--><dependenc…...

游戏引擎学习第70天

这一节没讲什么主要是关于接下来要干的任务 开发过程概览 我们正在进行最后的总结&#xff0c;并计划接下来的步骤。目前的目标是创建一个包含所有必要组件的游戏引擎原型版本&#xff0c;目的是让这些部分能够协同工作并展现预期效果。通过这一过程&#xff0c;可以实验和探…...

深入理解 Spring Cloud 中的 Eureka、Ribbon 和 Feign

1.eureka自我保护机制是什么? Eureka的自我保护机制是一种针对网络异常情况的安全保护措施&#xff0c;旨在防止因为网络问题导致的服务注册中心&#xff08;Eureka Server&#xff09;与微服务实例之间的通信故障。当网络分区或其他形式的网络故障发生时&#xff0c;即使微服…...

DVWA靶场Brute Force (暴力破解) 漏洞low(低),medium(中等),high(高),impossible(不可能的)所有级别通关教程

目录 暴力破解low方法1方法2 mediumhighimpossible 暴力破解 暴力破解是一种尝试通过穷尽所有可能的选项来获取密码、密钥或其他安全凭证的攻击方法。它是一种简单但通常无效率的破解技术&#xff0c;适用于密码强度较弱的环境或当攻击者没有其他信息可供利用时。暴力破解的基…...

山高路陡,无人机代替滑轨吊运物资极大提高做作业效率降低成本

在山高路陡的地区&#xff0c;无人机代替传统的滑轨吊运物资&#xff0c;极大地提高了作业效率并降低了成本。以下是对这一现象的详细分析&#xff1a; 一、无人机吊运的优势 1. 提高作业效率&#xff1a; 无人机能够快速响应并执行吊运任务&#xff0c;尤其在高山、陡峭或交…...

数据的高级处理——pandas模块进阶——数据的统计运算

今天的学习用有好几处与书上的内容有出入&#xff0c;不只是因为pycharm中函数更新、弃用的问题&#xff0c;还是作者有些疏忽。不过影响不大&#xff0c;运行报错&#xff0c;GPT分析一下&#xff0c;原因很简单。这里不进行详细书名&#xff0c;在下边的代码上已经进行详细的…...

【Leetcode】3280. 将日期转换为二进制表示

文章目录 题目思路代码复杂度分析时间复杂度空间复杂度 结果总结 题目 题目链接&#x1f517; 给你一个字符串 date&#xff0c;它的格式为 yyyy-mm-dd&#xff0c;表示一个公历日期。 date 可以重写为二进制表示&#xff0c;只需要将年、月、日分别转换为对应的二进制表示&a…...

Vue3 中自定义hook

什么是hook&#xff1f;—— 本质是一个函数&#xff0c;把setup函数中使用的Composition API进行了封装&#xff0c;类似于vue2.x中的mixin。 自定义hook的优势&#xff1a;复用代码, 让setup中的逻辑更清楚易懂。 场景需求&#xff1a;现在我需要获取当前鼠标所点击的地方的…...

嵌入式系统 第七讲 ARM-Linux内核

• 7.1 ARM-Linux内核简介 • 内核&#xff1a;是一个操作系统的核心。是基于硬件的第一层软件扩充&#xff0c; 提供操作系统的最基本的功能&#xff0c;是操作系统工作的基础&#xff0c;它负责管理系统的进程、内存、设备驱动程序、文件和网络系统&#xff0c; 决定着系统的…...

音视频入门基础:MPEG2-PS专题(2)——使用FFmpeg命令生成ps文件

一、错误的命令 通过FFmpeg命令可以将mp4文件转换为ps文件&#xff0c;PS文件中包含PS流数据。 由于PS流/PS文件对应的FFInputFormat结构为&#xff1a; const FFInputFormat ff_mpegps_demuxer {.p.name "mpeg",.p.long_name NULL_IF_CONFIG_SMALL…...

Embedding

Embedding 在机器学习中&#xff0c;Embedding 主要是指将离散的高维数据&#xff08;如文字、图片、音频&#xff09;映射到低纬度的连续向量空间。这个过程会生成由实数构成的向量&#xff0c;用于捕捉原始数据的潜在关系和结构。 Text Embedding工作原理 词向量化&#x…...

Android Studio学习笔记

01-课程前面的话 02-Android 发展历程 03-Android 开发机器配置要求 04-Android Studio与SDK下载安装 05-创建工程与创建模拟器...

Git的使用流程(详细教程)

目录 01.Git是什么&#xff1f; 1.1 Git简介 1.2 SVN与Git的最主要的区别 1.3 GIt主要特点 02.Git是干什么的&#xff1f; 2.1.Git概念汇总 2.2 工作区/暂存区/仓库 2.3 Git使用流程 03.Git的安装配置 3.1 Git的配置文件 3.2 配置-初始化用户 3.3 Git可视化…...

Keil中的gcc

文章目录 一、IDE背后的命令1.1 IDE是什么1.2 IDE的背后是命令1.3 有两套主要的编译器 二、准备工作2.1 arm-linux-gcc和gcc是类似的2.2 Code::Blocks2.2.1 设置windows环境变量2.2.2 命令行示例 三、gcc编译过程详解3.1 程序编译4步骤3.2 gcc的使用方法3.2.1 gcc使用示例3.2.2…...

bilibili 哔哩哔哩小游戏SDK接入

小游戏的文档 简介 bilibili小游戏bilibili小游戏具有便捷、轻量、免安装的特点。游戏包由云端托管&#xff0c;在哔哩哔哩APP内投放和运行&#xff0c;体验流畅&#xff0c;安全可靠。https://miniapp.bilibili.com/small-game-doc/guide/intro/ 没想过接入这个sdk比ios还难…...

springboot523基于Spring Boot的大学校园生活信息平台的设计与实现(论文+源码)_kaic

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本大学校园生活信息平台就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理完毕庞大的数据…...

【YOLO算法改进】ALSS-YOLO:无人机热红外图像|野生动物小目标检测

目录 论文信息 论文创新点 1.自适应轻量通道分割和洗牌&#xff08;ALSS&#xff09;模块 2.轻量坐标注意力&#xff08;LCA&#xff09;模块 3.单通道聚焦模块 4.FineSIOU损失函数 摘要 架构设计 轻量高效网络架构 - ALSS模块 LCA模块 单通道聚焦模块 损失函数优…...

XML解析

一&#xff0c;XML概述 1.什么是XML XML即为可扩展的标记语言&#xff08;eXtensible Markup Language&#xff09; XML是一套定义语义标记的规则&#xff0c;这些标记将文档分成许多部件并对这些部件加以标识 2.XML和HTML不同之处 XML主要用于说明文档的主题&#xff0c;而…...

FedProx实战:如何用Python在异构网络中优化联邦学习(附代码)

FedProx实战&#xff1a;Python实现异构网络联邦学习优化指南 联邦学习作为分布式机器学习的前沿分支&#xff0c;正面临两大核心挑战&#xff1a;设备间的系统异构性&#xff08;计算与通信能力差异&#xff09;和数据分布的统计异构性&#xff08;non-IID数据&#xff09;。本…...

【大数据】离线数仓核心组件:Hive 架构解析与进阶操作指南

Hive 是基于 Hadoop 的数据仓库工具&#xff0c;主要用于解决海量结构化日志的数据统计问题。它提供了一套类 SQL 的查询语言 HiveQL&#xff0c;通过将 SQL 语句转换为运行在 Hadoop 集群上的 MapReduce 或 Spark 任务&#xff0c;大幅降低了大数据分析的工程门槛。 目录 一、…...

FPGA新手避坑:用Quartus Prime 23.1的FIFO IP核实现跨时钟域传输(附仿真代码)

FPGA跨时钟域传输实战&#xff1a;Quartus Prime 23.1 FIFO IP核深度解析 第一次在Quartus Prime里拖拽FIFO IP核时&#xff0c;看着满屏的参数选项&#xff0c;我对着屏幕发呆了十分钟——到底该选同步还是异步&#xff1f;深度设多少合适&#xff1f;为什么仿真时数据总对不上…...

训练自定义游戏,构建Gymnasium训练环境

认识Gymnasium使用stable_baseline3只需要定义好Gymnasium环境&#xff0c;关注训练的奖励机制&#xff0c;将重点放在业务的开发上而不是复杂的算法。Gymnasium提供了几个核心的api&#xff1a;方法功能返回值reset()将环境重置为初始状态&#xff0c;开始新回合。obs, infost…...

Alfred-Workflow 自动化更新:利用 GitHub Releases 实现工作流无缝升级

Alfred-Workflow 自动化更新&#xff1a;利用 GitHub Releases 实现工作流无缝升级 【免费下载链接】alfred-workflow Full-featured library for writing Alfred 3 & 4 workflows 项目地址: https://gitcode.com/gh_mirrors/al/alfred-workflow Alfred-Workflow 是…...

Radiant Player与Last.fm集成:如何实现无缝音乐记录

Radiant Player与Last.fm集成&#xff1a;如何实现无缝音乐记录 【免费下载链接】radiant-player-mac :notes: Turn Google Play Music into a separate, beautiful application that integrates with your Mac. 项目地址: https://gitcode.com/gh_mirrors/ra/radiant-player…...

C#实战:基于TouchSocket构建高性能WebSocket双向通信系统

1. WebSocket与TouchSocket核心概念 第一次接触WebSocket时&#xff0c;我被它的双向通信能力惊艳到了。想象一下快递员和收件人的关系&#xff1a;传统HTTP就像每次送货都要重新敲门确认身份&#xff08;建立连接&#xff09;&#xff0c;而WebSocket则像快递员直接把包裹交给…...

3分钟掌握:如何在Windows上直接安装Android应用的终极方案

3分钟掌握&#xff1a;如何在Windows上直接安装Android应用的终极方案 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否曾经遇到过这样的情况&#xff1a;手机上有…...

终极视频修复指南:如何使用Untrunc轻松恢复损坏的MP4/MOV文件

终极视频修复指南&#xff1a;如何使用Untrunc轻松恢复损坏的MP4/MOV文件 【免费下载链接】untrunc Restore a truncated mp4/mov. Improved version of ponchio/untrunc 项目地址: https://gitcode.com/gh_mirrors/un/untrunc 你是否曾经遇到过珍贵的视频文件突然无法播…...

一键部署Chat2DB:Docker与cpolar打造跨地域数据库管理神器

1. 为什么你需要Chat2DB和Docker的黄金组合 最近两年有个特别明显的趋势&#xff1a;数据正在从专业领域走向全民化。我见过太多产品经理被SQL卡住脖子&#xff0c;市场团队等一份报表要排期三天&#xff0c;甚至财务同事为了跑个月度数据要专门请IT部门吃饭。直到去年第一次用…...