AllenChinese / vue-form-making

基于Vue,ElementUI开发的一款表单设计器,提高表单开发效率的利器,让开发者从枯燥的表单代码编写中解放出来

Home Page:http://tools.xiaoyaoji.cn/form

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

form-making

基于Vue,ElementUI开发的一款表单设计器,提高表单开发效率的利器,让开发者从枯燥的表单代码编写中解放出来

工具地址:http://tools.xiaoyaoji.cn/form

特性

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

CDN

<!-- 引入样式 -->
<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/src-min/ace.js"></script>

Install

npm install form-making -S

Quick Start

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

// or
import {
  GenerateForm
} from 'form-making'
import 'form-making/dist/FormMaking.css'

Vue.component(GenerateForm.name, GenerateForm)

Template

<fm-generate-form></fm-generate-form>

设计器引用

import {MakingForm} from 'form-making'
Vue.component(MakingForm.name, MakingForm)
<!-- 需要设置编辑区域高度 -->
<fm-making-form style="height: 500px;" preview generate-code generate-json>
    <template slot="action">
    </template>
  </fm-making-form>

<!-- 需要在设计器中预览代码需要引入ace.js库 -->
<script src="https://unpkg.com/form-making/public/lib/ace/src-min/ace.js"></script>
props
Prop name Description Type Default value
preview 预览,头部操作按钮 Boolean false
generate-json 生成JSON Boolean false
generate-code 生成代码 Boolean false
methods
Function name Description
getJSON 获取设计器生成的JSON数据
getHtml 获取生成可使用的html代码
setJSON(value) 根据value值设置表单设计器
slots
Slot name Description
action 自定义设计器操作按钮,展示在设计头部区域

表单渲染

通过 在线地址 或者引用设计器生成的JSON,用于表单渲染

下面就是加载对应的数据用于展示,假设你已经正确加载组件

<fm-generate-form
    :data="jsonData"
    :remote="remoteFuncs"
    :value="values"
    ref="generateForm">
</fm-generate-form>
new Vue({
    ...
    data () {
        return {
            jsonData: {}, // 表单配置中生成的json数据
            values: {}, // 表单需要显示的表单数据
            remoteFuncs: {
                // 组件配置时配置的远端方法,保持和配置时输入的名称一致
                func_test (resolve) {
                  // 模拟接口请求
                  setTimeout(() => {
                    const options = [
                      {id: '1', name: '1111'},
                      {id: '2', name: '2222'},
                      {id: '3', name: '3333'}
                    ]
                    
                    // 获取到的值和标签可以通过配置页远端配置
                    // 值:id  标签:name
        
                    resolve(options) // 将后端获取的数据放入回调函数中
                  }, 2000)
                },
                func_test2....
            }
        }
    },
    methods: {
        ...{
            // 调用此方法验证表单数据和获取表单数据
            this.$refs.generateForm.getData().then(data => {
                // 数据校验成功
                // data 为获取的表单数据
            }).catch(e => {
                // 数据校验失败
            })
        }
    }
})

高级字段使用

社区资料笔记

支持

  • 如果你发现了新的 bug,或者有新的 feature request,请新建一个 issue

捐赠

如果觉得还不错,请作者喝杯咖啡吧 ☺

开源协议

LGPL

商业许可

开源版本遵循 LGPL 条款发布,如果您不能接受 LGPL,并且需要将该项目用于商业用途且不想保留版权信息(底部“Powered by GavinZhuLei”版权及链接),为保障您的合法权益,需购买商业授权

About

基于Vue,ElementUI开发的一款表单设计器,提高表单开发效率的利器,让开发者从枯燥的表单代码编写中解放出来

http://tools.xiaoyaoji.cn/form

License:GNU Lesser General Public License v3.0


Languages

Language:JavaScript 99.3%Language:HTML 0.2%Language:Vue 0.1%Language:CSS 0.1%Language:LiveScript 0.0%Language:Makefile 0.0%Language:Kotlin 0.0%Language:Java 0.0%Language:Objective-C 0.0%Language:PLpgSQL 0.0%Language:Dockerfile 0.0%Language:R 0.0%Language:Nix 0.0%Language:LSL 0.0%Language:HCL 0.0%Language:Red 0.0%Language:Liquid 0.0%Language:TypeScript 0.0%Language:Scala 0.0%Language:Pascal 0.0%Language:TeX 0.0%Language:Shell 0.0%Language:ActionScript 0.0%Language:Groovy 0.0%Language:Csound 0.0%Language:ABAP 0.0%Language:FreeMarker 0.0%Language:Lua 0.0%Language:Forth 0.0%Language:Visual Basic 0.0%Language:Tcl 0.0%Language:VHDL 0.0%Language:C++ 0.0%Language:Clojure 0.0%Language:AutoHotkey 0.0%Language:Fortran 0.0%Language:Perl 0.0%Language:Gherkin 0.0%Language:Elixir 0.0%Language:Bro 0.0%Language:Go 0.0%Language:Common Lisp 0.0%Language:Mask 0.0%Language:Scheme 0.0%Language:OCaml 0.0%Language:Ruby 0.0%Language:Cirru 0.0%Language:GLSL 0.0%Language:Haskell 0.0%Language:Assembly 0.0%Language:Rust 0.0%Language:Dart 0.0%Language:Elm 0.0%Language:Erlang 0.0%Language:NSIS 0.0%Language:Vala 0.0%Language:Python 0.0%Language:Haxe 0.0%Language:PowerShell 0.0%Language:CoffeeScript 0.0%Language:Eiffel 0.0%Language:F# 0.0%Language:PHP 0.0%Language:OpenSCAD 0.0%Language:D 0.0%Language:Csound Score 0.0%Language:PigLatin 0.0%Language:Verilog 0.0%Language:Batchfile 0.0%Language:Julia 0.0%Language:MATLAB 0.0%Language:Csound Document 0.0%Language:Io 0.0%Language:XQuery 0.0%Language:Ada 0.0%Language:ColdFusion 0.0%Language:C# 0.0%Language:COBOL 0.0%Language:JSONiq 0.0%