首页 > 其他分享 >使用开源的 Vue 移动端表单设计器创建表单

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

时间:2024-10-14 14:48:58浏览次数:7  
标签:Vue vant app 表单 开源 designer 组件 formCreate

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>

标签:Vue,vant,app,表单,开源,designer,组件,formCreate
From: https://blog.csdn.net/weixin_40487467/article/details/142918478

相关文章

  • vue之间的传值问题---7ref实现组件之间传值
    1.父组件向子组件传值:父组件可以通过ref属性获取子组件的实例,进而访问子组件的方法和数据。父组件<template><div><child-componentref="child"></child-component><button@click="sendToChild">SendtoChild</button></div><......
  • vue之间的传值问题---6eventbus 可以实现兄弟组件通信
    1.传递数据的组件:通过eventbus中的方法$emit来发布自定义事件,并且传递数据2.接收数据的组件:通过eventbus中的方法$on来订阅事件,并通过回调函数接收数据//手写发布订阅模式classEventBus{//记录事件和回调clientList={send:[()=>{},()=>{}],}//......
  • vue之间的传值问题---2.vuex
    通过Vuex进行状态管理:是一个专为Vue.js应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。在Vuex中传递对象时,应该注意不直接传递对象的引用,1).安装Vuexnpminstallvuex--save2).然后在src......
  • Vue2用户中心页面开发教程:从零开始,用HTML、CSS和Vue构建新手友好的个人中心页面,提供完
    效果图:使用Vue.js构建用户中心页面:从零到实现在本教程中,我们将使用Vue.js构建一个用户中心页面,这是一个常见的Web应用页面。我们将涵盖页面的布局、样式,以及Vue的基本数据绑定和事件处理功能。这是一个为前端新手量身定制的项目,通过此项目可以了解如何快速构建用户友好......
  • 基于Node.js+vue汉服店铺分享系统(开题+程序+论文) 计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景在传统文化复兴的浪潮中,汉服作为中华民族传统文化的重要组成部分,近年来受到了越来越多年轻人的追捧和喜爱。随着汉服文化的普及,市场上涌现出了大量的汉服店......
  • 基于Node.js+vue高校党务系统(开题+程序+论文) 计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着信息技术的飞速发展和高校党务工作的日益复杂化,传统的手工管理方式已难以满足当前高校党务工作的需求。高校党务工作涉及学院、专业、班级等多个层级,以......
  • 基于Node.js+vue飞机订票管理系统(开题+程序+论文) 计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着全球航空业的蓬勃发展,飞机出行已成为人们日常出行的重要方式之一。然而,传统的飞机订票方式,如通过电话、柜台等,不仅效率低下,而且容易出错。同时,随着移动......
  • 基于Node.js+vue公司员工管理系统的设计与实现(开题+程序+论文) 计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景随着企业规模的扩大和业务的复杂化,公司员工管理成为了企业管理中的一项重要任务。传统的人工管理方式不仅效率低下,而且容易出错,无法满足现代企业对员工管理......
  • 【vue+printJs】前端打印, 自定义字体大小, 自定义样式, 封装共享样式
    效果示例思维导图目录1,基本使用1,依赖下载2,页面导入3,修改字体大小(可行但不推荐)2,自定义样式,字体大小1,修改字体大小(推荐)2,自定义样式3,封装共享样式3,去除页面页脚内容4,测试案例demo,直接cv可用5,print-js的其他参数说明1,基本使用1,依......
  • Java-Vue使用浏览器调用本地exe服务
    Java-浏览器调用本地exe服务Java+Vue编写的BS服务调用本地的exe服务,从技术来说介绍这块的内容本来就很少,浏览器访问本地文件从安全限制上又存在诸多限制,本文章也是本人在实际开发过程中遇到了需要这种应用的场景,花费一些时间实践出的一种解决方案。1.Vue画面-button按钮<el-button......