使用开源的 Vue 移动端表单设计器创建表单

FcDesigner Vant 版是一款基于 Vue3.0 的移动端低代码可视化表单设计器工具,通过数据驱动表单渲染。可以通过拖拽的方式快速创建表单,提高开发者对表单的开发效率,节省开发者的时间。

源码下载 | 演示地址 | 帮助文档


本项目采用 Vue3.0 和 ElementPlus 进行移动端页面构建,移动端使用的是 vant4.0 版本,内置多语言解决方案,支持二次扩展开发,支持自定义组件扩展。

  • 内置中英文语言,轻松应对全球化需求。

  • 提供 32 种常用组件,覆盖多种场景,满足多样化需求。

  • 支持灵活扩展自定义组件,满足个性化需求。

  • 支持二次扩展开发,满足深度定制需求。

  • 完美兼容 PC 端功能:表单大纲、操作记录、数据录入、组件生成、事件配置、表单验证、栅格布局、表格布局等。

安装​

首先,安装 @form-create/vant-designer

npm install @form-create/vant-designer@^3

引入​

CDN 引入

如果您选择使用 CDN,可以按照以下步骤在 HTML 文件中引入相关依赖:

<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>
<div id="app">
    <fc-designer-mobile height="100vh"></fc-designer-mobile>
</div>
<script>
    const { createApp } = Vue;
    const app = createApp({});
    app.use(ElementPlus);
    app.use(vant);
    app.use(FcDesignerMobile);
    app.use(FcDesignerMobile.formCreate);
    app.mount('#app');
</script>

Node.js 引入

对于使用 Node.js 的项目,按照以下步骤在您的 Vue 3 项目中引入并配置:

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';
// 创建 Vue 应用
const app = createApp(App);
app.use(ELEMENT)
app.use(vant)
app.use(FcDesignerMobile)
app.use(FcDesignerMobile.formCreate)
// 挂载应用
app.mount('#app');

使用​

在 Vue 3 组件中,您可以通过以下方式使用 fc-designer 组件:

<template>
    <fc-designer-mobile ref="designer" height="100vh" />
</template>
<script setup>
    import { ref } from 'vue';
    // 可以在此处获取设计器实例或进行其他操作
    const designer = ref(null);
</script>

组件配置​

使用 fc-designer-mobile 组件来实现表单设计器。以下是各配置项的详细说明:

<fc-designer ref="designer" :locale="locale" height="100vh"/>
  • locale Object

多语言配置对象。默认为中文。通过设置此属性,可以切换到其他语言的界面文本。

  • mask boolean

是否显示组件遮罩层。默认为 true,此时用户无法操作组件。设置为 false 可以让用户直接操作设计器中的组件。

  • height string|number

设计器组件的高度。可以使用字符串(如 500px100vh)或数字(如 500)。指定设计器的显示高度。

  • menu MenuList

自定义左侧菜单列表。此配置会覆盖设计器的默认菜单列表。MenuList 应包含你希望在设计器左侧显示的菜单项。

  • config Config

配置设计器内的模块显示状态和默认规则。通过此配置,可以控制哪些模块可见,以及修改默认设置。

  • handle Handle

设计器顶部的扩展操作按钮。Handle 是一个包含按钮名称和回调函数的数组。通过此配置,可以添加自定义操作按钮并指定其行为。

表单渲染​

确保在使用 formCreateMobile 和 FcDesignerMobile 进行表单设计和回显时,正确地处理 JSON 数据格式是至关重要的。以下文档详细介绍了如何获取、回显、渲染表单。

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

获取设计表单的数据​

在表单设计器中,可以通过以下方法获取表单的生成规则和配置,这些数据通常会被保存到数据库中,以便后续加载和回显。

//获取表单的生成规则
const ruleJson = this.$refs.designer.getJson();
//获取表单的配置
const optionsJson = this.$refs.designer.getOptionsJson();


//todo 保存JSON数据到数据库中

这些数据可以用来保存到数据库中,确保表单的状态和配置可以在页面刷新或重新加载时恢复。

回显设计表单​

当需要回显设计好的表单时,您需要加载之前保存的 JSON 规则和配置,并将其应用到设计器中。

//todo 加载表单JSON规则


//回显表单
this.$refs.designer.setOptions(optionsJson);
this.$refs.designer.setRule(ruleJson);

通过这些方法,可以将之前保存的表单规则和配置应用到设计器中,从而恢复表单的状态。

表单渲染​

要渲染表单,您需要挂载 form-create 到 Vue 应用中,并加载表单规则和配置。

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

表单渲染示例

<template>
    <div id="app">
        <form-create-mobile v-model="formData" v-model:api="fApi" :rule="rule" :option="option"></form-create>
    </div>
</template>
<script>
    import {formCreate} from '@form-create/vant-designer';
    export default {
        data() {
            return {
                //实例对象
                fApi: {},
                //表单数据
                formData: {},
                //表单生成规则
                rule: [],
                //组件参数配置
                option: {}
            }
        },
        beforeCreate(){
            const rule,option;
            // todo 加载表单JSON规则
            this.rule = formCreate.parseJson(rule);
            this.option = formCreate.parseJson(option);
        }
    }
</script>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/893673.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数字后端零基础入门系列 | Innovus零基础LAB学习Day1

一 Floorplan 数字IC后端设计如何从零基础快速入门&#xff1f;(内附数字IC后端学习视频&#xff09; Lab5-1这个lab学习目标很明确——启动Innovus工具并完成设计的导入。 在进入lab之前&#xff0c;我们需要进入我们的FPR工作目录。 其中ic062为个人服务器账户。比如你端…

竞品分析|用户体验五要素|KANO模型

用户体验五要素 我感觉产品的设计师从最底层的战略层确定&#xff0c;再依次上升一层层确定直至最后确定表现层输出给用户的视觉效果。 KANO模型 KANO 模型是东京理工大学教授狩野纪昭(Noriaki Kano)发明的对用户需求分类和优先排序的有用工具&#xff0c;以分析用户需求对用…

harbor 如何做到物理删除镜像 harbor镜像清理脚本

一、背景 相比于nexus&#xff0c;harbor的一大优点是方便及时清理无用的docker镜像。本文就harbor怎么设置清理&#xff0c;梳理一下具体的操作办法。 harbor 版本是 v2.9.0 二、目标 随着我们推送至仓库的镜像越来越多&#xff0c;带来的一个最大运维问题就是存储空间的浪…

SL3037B降压恒压芯片DC24伏输入5伏输出带单片机,电流100mA

一、SL3037B芯片概述 SL3037B是一款内置功率MOSFET的单片降压型开关模式转换器&#xff0c;具有高效、稳定、外围元器件少等特点。它能够在宽输入电源范围&#xff08;5.5~60V&#xff09;内实现0.6A的峰值输出电流&#xff0c;并具有出色的线电压和负载调整率。此外&#xff…

利用LangChain实现大语言模型与数据库的交互对话

大语言模型使用LangChain与数据库对话 大型语言模型&#xff08;LLMs&#xff09;的兴起在技术上带来了重大转变&#xff0c;使开发者能够创建曾经难以想象的应用程序。LangChain 是一个提示编排工具&#xff0c;利用LLMs的能力改变你与数据库的通信方式。通过LangChain&#…

从零讲解线性回归(Linear Regression)

Linear Regression 线性回归 线性回归是一种简单且常用的技术&#xff0c;用来预测连续变量&#xff0c;假设预测变量&#xff08;自变量&#xff0c; x_i &#xff09;和结果变量&#xff08;因变量&#xff0c; y_i &#xff09;之间存在线性关系。线性回归公式&#xff08…

Qt自定义一个圆角对话框

如何得到一个圆角对话框&#xff1f; 步骤&#xff1a; 1、继承自QDiaglog 2、去掉系统自带的边框 3、设置背景透明,不设置4个角会有多余的部分出现颜色 4、对话框内部添加1个QWidget&#xff0c;给这个widget设置圆角&#xff0c;并添加到布局中让他充满对话框 5、后续对…

智慧校园打架斗殴检测预警系统 异常奔跑检测系统 Python 和 OpenCV 实现简单

在当今数字化时代&#xff0c;智慧校园建设已成为教育领域的重要发展方向。校园安全作为学校管理的重中之重&#xff0c;如何借助先进的技术手段实现高效、精准的安全监控&#xff0c;成为了教育工作者和技术专家共同关注的焦点。其中&#xff0c;智慧校园打架斗殴检测预警系统…

linux线程 | 线程的控制(上)

前言&#xff1a;本节内容为线程的控制。在本篇文章中&#xff0c; 博主不仅将会带友友们认识接口&#xff0c; 使用接口。 而且也会剖析底层&#xff0c;带领友友们理解线程的底层原理。 相信友友们学完本节内容&#xff0c; 一定会对线程的控制有一个很好的把握。 那么&#…

Spring AI 整体介绍_关键组件快速入门_prompt_embedding等

Spring AI&#xff1a;Java开发者的AI集成新利器 在过去&#xff0c;Java开发者在构建AI应用时面临着缺乏统一框架的问题&#xff0c;导致不同AI服务的集成过程复杂且耗时。Spring AI应运而生&#xff0c;旨在为基于Java的应用程序提供一个标准化、高效且易于使用的AI开发平台…

用PHP爬虫API数据获取商品SKU信息实战指南

在电子商务的精细化运营中&#xff0c;SKU&#xff08;Stock Keeping Unit&#xff0c;库存单位&#xff09;信息是商品管理的核心。它不仅包含了商品的规格、价格、库存等关键数据&#xff0c;还直接影响到库存管理、价格策略和市场分析等多个方面。本文将介绍如何使用PHP爬虫…

Java程序设计:spring boot(3)——spring boot核心配置

目录 1 设置 Banner 图标 1.1 Banner 图标⾃定义 1.2 Banner 图标关闭 2 Spring Boot 配置⽂件 3 Starter 坐标 & ⾃动化配置 3.1 Starter坐标配置 3.1.1 Web starter 3.1.2 Freemarker Starter & Thymeleaf starter 3.1.3 JavaMail邮件发送 Starter 3.1.4 引…

mysql--表的约束

目录 理解表的约束和操作 如何理解&#xff1f; 1、空属性null 2、默认值default 3、列描述comment 4、自动填充zorefill 5、主键primary key &#xff08;1&#xff09;创建表时指定可以 &#xff08;2&#xff09;创建表后指定key &#xff08;3&#xff09;删除主…

注册函数和回调函数使用讲解

1.概念 注册和回调函数在C语言编程中非常常见&#xff0c;也经常用到。注册和回调的机制也大量使用在Linux内核中。学会使用注册和回调函数是C语言开发者应当掌握的一项编程技能。 函数的本质在内存上体现的是地址。我们知道函数的地址后&#xff0c;就能够调用这个函数。 …

ESP32移植Openharmony外设篇(1)MQ-2烟雾传感器

外设篇 实验箱介绍 旗舰版实验箱由2部分组成&#xff1a;鸿蒙外设模块&#xff08;支持同时8个工作&#xff09;、鸿蒙平板。 其中&#xff0c;鸿蒙平板默认采用RK3566方案。 OpenHarmony外设模块采用底板传感器拓展板方式&#xff0c;底板默认采用ESP32方案&#xff0c;也…

部署Qwen2.5-7b大模型详解

部署Qwen2.5-7b大模型详解 本文参考教程&#xff1a;https://qwen.readthedocs.io/en/latest/getting_started/quickstart.html 下载模型 https://modelscope.cn/organization/qwen 搜索 qwen2.5-7b 可以看到它提供了六个模型&#xff0c;以满足不同的需求&#xff0c;从下…

HBuilder X中搭建Vue-cli项目组件和路由以及UI库使用(二)

一、创建组件 &#xff08;1&#xff09;在vj1项目src|右键|vue文件 &#xff08;2&#xff09;组件常用模版 <!--该标签用于写HTML代码,必须有一个根标签,如下<div>是根标签--> <template> <div>首页</div> </template><!--该标签用…

c++算法第3天

本篇文章包含三道算法题&#xff0c;难度由浅入深&#xff0c;适合新手练习哟 目录 第一题 题目链接 题目解析 代码原理 代码编写 本题总结 第二题 题目链接 题目解析 代码原理 代码编写 第三题 题目链接 题目解析 代码原理 代码编写 第一题 题目链接 [NOIP2…

【word】页眉横线无法取消

小伙伴们日常想在页眉里加横线&#xff0c;直接双击页眉&#xff0c;然后在页眉横线里选择自己喜欢的横线样式就可以了。 但今天我遇到的这个比较奇特&#xff0c;有些页有这个横线&#xff0c;有些页没有&#xff0c;就很奇怪。 最后排查完&#xff0c;发现是只有标题2的页…

拓数派创始人冯雷出席联合国人居署《未来城市顾问展望2024》 报告结题专家会

近日&#xff0c;联合国人居署中国未来城市顾问委员会在内蒙古鄂尔多斯市国际会展中心召开《未来城市顾问展望2024&#xff1a;数字城市治理》报告结题会暨走进鄂尔多斯市活动。拓数派创始人、董事长兼首席执行官冯雷&#xff08;Ray Von&#xff09;应邀出席本次活动&#xff…