百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

2400+ Stars,Vue可拖拽布局的表单设计器,最新版本支持Antd

toyiye 2024-04-06 13:46 39 浏览 0 评论

基于Vue,ElementUI开发的一款表单设计器,提高表单开发效率的利器,让开发者从枯燥的表单代码编写中解放出来,提供了常用的表单组件,可以直接使用,同时支持自定义增加组件以及提供api支持对表单做自定义操作,最新版本已添加对Antd的支持。


工具地址:

http://tools.xiaoyaoji.cn/form

GitHub地址:

https://github.com/GavinZhuLei/vue-form-making


表单设计器主界面


特性

  • 可视化配置页面
  • 提供栅格布局,并采用flex实现对齐
  • 一键预览配置的效果
  • 一键生成配置json数据
  • 一键生成代码,立即可运行
  • 提供自定义组件满足用户自定义需求
  • 提供远端数据接口,方便用户需要异步获取数据加载
  • 提供功能强大的高级组件
  • 支持表单验证
  • 快速获取表单数据

  • 设计器介绍

    设计器页面分4个部分,组件库、工作台、配置栏、工具栏。


    组件库

    设计器的左方列出了所有支持的组件库,不用写任何代码即可直接使用,将组件拖动到工作台即可。如果已有的组件库不能满足需求,有自定义区域,可以在自定义区域中写入自己的代码,可以基于框架添加自己的组件到组件库中。

    组件库


    工作台

    中间最大的区域则是工作台,显示的是组件信息,在工作台中可以方便的选中,拖动,复制,删除组件操作。当选中某个组件后,右边的配置栏会出现当前组件的的所有可配置属性。


    配置栏


    表单属性可配置整个表单的全局属性。

    Element


    Antd

    组件属性


    这是Grid布局,可以添加多列,主要点击添加列,设置列的长度即可。

    多选框组,可以设置数据,布局,校验等


    也可以设置数据源,动态获取多选框各列的值。


    目前有两种动态数据的方式,一种是通过赋值变量的方式自动获取值,还有一种是自己实现方法函数获取值。

    单行文本框

    针对单行文本框,子表单等还可以设置数据的验证格式

    更多组件的功能和用法可以参考网站文档,有很详细的说明,同时每个组件的各种属性都可以自定义,自行添加新的组件属性信息。

    工具栏

    工具栏中列出了几个常用的功能。


    预览

    点击预览按钮,可以实时预览表单


    预览界面

    点击获取数据可以的得到表单的所有数据

    生成代码可以生成Vue组件,可以在Vue项目中引用,也可以直接生成html文件,在本地浏览器即可打开

    生成JSON,可以将整个表单数据转换成JSON数据,点击导入JSON,即可还原回原来的表单。


    例子中的表单数据文件地址:
    http://cdn.form.xiaoyaoji.cn/FormJSON.txt
    将JSON数据导入即可看到表单页面:
    http://form.xiaoyaoji.cn


    示例


    省市区数据联动示例:
    http://form.xiaoyaoji.cn/demo/#/ProvinceCityDistrict



    数据动态加载示例:
    http://form.xiaoyaoji.cn/demo/#/ProvinceCityDistrict


    更多示例更新中。。。


    安装方法


    CDN

    目前可以通过 unpkg.com/form-making

    获取到最新版本的资源,在页面上引入 js 和 css 文件即可开始

    <!-- 引入样式 -->
    <link rel="stylesheet" href="https://unpkg.com/form-making/dist/FormMaking.css">
    <!-- 引入组件库 -->
    <script src="https://unpkg.com/form-making/dist/FormMaking.umd.js"></script>
    
    <!-- 需要在设计器中预览代码需要引入ace.js库 -->
    <script src="https://unpkg.com/form-making/public/lib/ace/ace.js"></script>
    

    建议使用 CDN 引入 FormMaking 的用户在链接地址上锁定版本,以免将来 FormMaking 升级时受到非兼容性更新的影响。锁定版本的方法请查看 unpkg.com

    通过 CDN 的方式我们可以很容易地使用 FormMaking 来加载表单设计页面。



    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="UTF-8">
      <!-- 引入样式 -->
      <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
      <link rel="stylesheet" href="https://unpkg.com/form-making/dist/FormMaking.css">
    </head>
    <body>
      <div id="app">
        <!-- 需要设置编辑区域高度 -->
        <fm-making-form style="height: 500px;" preview generate-code generate-json>
        </fm-making-form>
      </div>
    </body>
      <!-- 引入组件库 -->
      <script src="https://unpkg.com/vue/dist/vue.js"></script>
      <script src="https://unpkg.com/element-ui/lib/index.js"></script>
      <script src="https://unpkg.com/form-making/dist/FormMaking.umd.js"></script>
      <!-- 需要在设计器中预览代码需要引入ace.js库 -->
      <script src="https://unpkg.com/form-making/public/lib/ace/ace.js"></script>
      
      <script>
        new Vue({
          el: '#app'
        })
      </script>
    </html>
    

    npm 安装

    推荐使用 npm 的方式安装,它能更好地和 webpack打包工具配合使用。

    npm install form-making -S

    快速使用

    1.引入 Element

    项目中使用的是 element-ui 的组件库,在使用的时候需要引入 Element 包。

    2.引入 FormMaking

    完整引入

    import FormMaking from 'form-making'
    import 'form-making/dist/FormMaking.css'
    
    Vue.use(FormMaking)
    

    部分引入

    import {
      GenerateForm,
      MakingForm
    } from 'form-making'
    import 'form-making/dist/FormMaking.css'
    
    Vue.component(GenerateForm.name, GenerateForm)
    Vue.component(MakingForm.name, MakingForm)
    /* 或写为
     * Vue.use(GenerateForm)
     * Vue.use(MakingForm)
     */
    

    3.引入 ace.js

    默认情况下没有引入ace.js,如果需要使用ace.js,需要自己引入。


    至此,一个基于 Vue 和 Element 的表单设计器已经搭建完毕,现在就可以编写代码了。

    Ant Design Vue 支持

    最新版本表单生成器新增加了支持 Ant Design Vue 组件渲染,如果需要antd支持,需要安装antd并引入项目中。

    1.安装 antd


    2.引入 antd


    3.引入 antd 表单生成器


    4.使用 antd 表单



    二次开发

    表单设计器二次开发用于商业用途需要购买商业授权

    获取代码

    基础版本:
    git clone https://github.com/GavinZhuLei/vue-form-making.git
    
    高级版本需要授权获取

    运行项目

    npm run serve

    运行启动的项目是引用设计器的官方网站代码,设计器源码在 src/components 下面

    打包设计器

    修改代码后,可以通过以下代码重新对设计器进行打包,打包过后放在 dist/ 目录下面,可在代码中直接引用

    npm run build-bundle

    扩展表单属性

    下面将介绍如何在设计器的基础上二次开发扩展自定义组件

    1. 添加配置参数

    src/components/Container.vue

    <script>
      export default {
        // ...
       	data () {
          return {
            widgetForm: {
              list: [],
              config: {
                labelWidth: 100,
                labelPosition: 'top',
                size: 'small'
                // 在此处扩展表单的配置信息
              },
            },
          }
        }
      }
    </script>
    

    2. 扩展设计器配置

    src/components/FormConfig.vue 下添加对表单的配置,其中 props.data 是上面配置信息的 widgetForm.config

    3. 添加渲染信息

    配置完成后,最后就是渲染,在 src/components/GenerateForm.vue 下添加自己增加的配置即完成了对表单属性的扩展

    扩展组件

    1. 添加自定义组件信息

    src/components/componentsConfig.js 下添加配置信息,目前包括 basicComponents advanceComponents layoutComponents 三个对象,分别对应设计器中基础字段、高级字段、布局字段,将配置信息添加到对应的字段下面:

    {
      type: 'input', // 组件类型,保持唯一
      name: '单行文本', //组件展示名称
      icon: 'icon-input', //组件展示icon, 如果需要自定义,请参考 如何自定义图标
      options: { // 组件配置信息,根据自定义组件自己添加配置
        defaultValue: '', // 该值表示组件的默认值
      }
    }
    

    2. 引用组件

    src/components/WidgetFormItem.vue 、 src/components/GenerateFormItem.vue 下分别引入自定义的组件:

    import CustomComponent from '你的组件地址'
      
    export default {
      components: {
        CustomComponent
      }
    }
    

    3. 添加组件配置信息

    src/components/WidgetConfig.vue 下根据自己要求添加配置信息, props.data 结构为上面的配置信息,至此,自定义扩展的组件就成功的引入到设计器中

    自定义图标

    项目使用的是阿里字体图标库 iconfont , 如果需要自定义图标配置,请将图标加入到自己的项目中,然后选择Font class,将代码下载到本地替换 src/iconfont 文件夹下的文件

    最新版本1.2.9

  • 添加撤销、重做操作
  • 子表单添加数据校验
  • 支持 Ant Design Vue 组件
  • 修复子表单卡顿问题
  • 优化代码编辑器
  • 修复浮点数问题
  • 相关推荐

    为何越来越多的编程语言使用JSON(为什么编程)

    JSON是JavascriptObjectNotation的缩写,意思是Javascript对象表示法,是一种易于人类阅读和对编程友好的文本数据传递方法,是JavaScript语言规范定义的一个子...

    何时在数据库中使用 JSON(数据库用json格式存储)

    在本文中,您将了解何时应考虑将JSON数据类型添加到表中以及何时应避免使用它们。每天?分享?最新?软件?开发?,Devops,敏捷?,测试?以及?项目?管理?最新?,最热门?的?文章?,每天?花?...

    MySQL 从零开始:05 数据类型(mysql数据类型有哪些,并举例)

    前面的讲解中已经接触到了表的创建,表的创建是对字段的声明,比如:上述语句声明了字段的名称、类型、所占空间、默认值和是否可以为空等信息。其中的int、varchar、char和decimal都...

    JSON对象花样进阶(json格式对象)

    一、引言在现代Web开发中,JSON(JavaScriptObjectNotation)已经成为数据交换的标准格式。无论是从前端向后端发送数据,还是从后端接收数据,JSON都是不可或缺的一部分。...

    深入理解 JSON 和 Form-data(json和formdata提交区别)

    在讨论现代网络开发与API设计的语境下,理解客户端和服务器间如何有效且可靠地交换数据变得尤为关键。这里,特别值得关注的是两种主流数据格式:...

    JSON 语法(json 语法 priority)

    JSON语法是JavaScript语法的子集。JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔花括号保存对象方括号保存数组JS...

    JSON语法详解(json的语法规则)

    JSON语法规则JSON语法是JavaScript对象表示法语法的子集。数据在名称/值对中数据由逗号分隔大括号保存对象中括号保存数组注意:json的key是字符串,且必须是双引号,不能是单引号...

    MySQL JSON数据类型操作(mysql的json)

    概述mysql自5.7.8版本开始,就支持了json结构的数据存储和查询,这表明了mysql也在不断的学习和增加nosql数据库的有点。但mysql毕竟是关系型数据库,在处理json这种非结构化的数据...

    JSON的数据模式(json数据格式示例)

    像XML模式一样,JSON数据格式也有Schema,这是一个基于JSON格式的规范。JSON模式也以JSON格式编写。它用于验证JSON数据。JSON模式示例以下代码显示了基本的JSON模式。{"...

    前端学习——JSON格式详解(后端json格式)

    JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写。同时也易于机器解析和生成。它基于JavaScriptProgrammingLa...

    什么是 JSON:详解 JSON 及其优势(什么叫json)

    现在程序员还有谁不知道JSON吗?无论对于前端还是后端,JSON都是一种常见的数据格式。那么JSON到底是什么呢?JSON的定义...

    PostgreSQL JSON 类型:处理结构化数据

    PostgreSQL提供JSON类型,以存储结构化数据。JSON是一种开放的数据格式,可用于存储各种类型的值。什么是JSON类型?JSON类型表示JSON(JavaScriptO...

    JavaScript:JSON、三种包装类(javascript 包)

    JOSN:我们希望可以将一个对象在不同的语言中进行传递,以达到通信的目的,最佳方式就是将一个对象转换为字符串的形式JSON(JavaScriptObjectNotation)-JS的对象表示法...

    Python数据分析 只要1分钟 教你玩转JSON 全程干货

    Json简介:Json,全名JavaScriptObjectNotation,JSON(JavaScriptObjectNotation(记号、标记))是一种轻量级的数据交换格式。它基于J...

    比较一下JSON与XML两种数据格式?(json和xml哪个好)

    JSON(JavaScriptObjectNotation)和XML(eXtensibleMarkupLanguage)是在日常开发中比较常用的两种数据格式,它们主要的作用就是用来进行数据的传...

    取消回复欢迎 发表评论:

    请填写验证码