js 表單生成器,根據參數生成form表單

form-create

version npm JS gzip size

具有動態渲染、數據收集、校驗和提交功能的表單生成器,支持雙向數據綁定和事件擴展,組件包含有複選框、單選框、輸入框、下拉選擇框等表單元素以及省市區三級聯動,時間選擇,日期選擇,顏色選擇,滑塊,評分,框架,樹型,文件/圖片上傳等功能組件。

已支持 iview3

Github | Gitee | Npm | form-create 文檔

圖例 demo

安裝

npm install form-create

OR

git clone https://github.com/xaboy/form-create.git
cd form-create
npm install

運行

npm run dev

OR

雙擊打開 demo/index.html

引入

瀏覽器:

<!-- import Vue 2.5-->
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/vue.min.js"></script>

<!-- import iview 2.14.3-->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/styles/iview.css">
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/iview.min.js"></script>

<!-- 省市區三級聯動json數據,不使用三級聯動不需要引入 -->
<script src="district/province_city_area.js"></script>

<!-- 模擬數據,實際使用中不需要引入 -->
<script src="demo/mock.js"></script>

<!-- import formCreate -->
<script src="dist/form-create.min.js"></script>

NodeJs:

import Vue from 'vue';
import iView from 'iview';
import 'iview/dist/styles/iview.css';
import formCreat from 'form-create'

//三級聯動數據,不用可以不引入
import 'form-create/district/province_city_area.js'
//示例規則,實際使用中不需要引入
import 'form-create/mock.js'

Vue.use(iView);
Vue.use(formCreat)

Demo

使用 maker 生成器生成: demo

使用 json 生成: demo

各組件生成: demo

三種模式創建表單

說明:
mock() 爲表單生成規則
root 爲表單插入節點
$f 爲表單實例

標籤模式

標籤模式下 rule 規則發生變化會實時動態渲染表單

<div id="app1">
    <form-create ref="fc" :rule="rule" :option="option"></form-create>
</div>
let rules = mock();
new Vue({
    el:'#app1',
    data:{
        //表單生成規則
        rule:rules,
        //組件參數配置
        option:{
            //顯示錶單重置按鈕
            resetBtn:true,
            //表單提交事件
            onSubmit:function (formData) {

                //formData爲表單數據

                //按鈕進入提交狀態
                this.$f.btn.loading();
                //重置按鈕禁用
                this.$f.resetBtn.disabled();

                //重置按鈕恢復正常
                //this.$f.resetBtn.disabled();
                //按鈕進入可點擊狀態
                //this.$f.btn.loading(false);
            }
        },
        //初始化變量
        $f: {},
        model: {}
    },
    mounted:function () {

        //獲取表單api
        this.$f = this.$refs.fc.$f;

        //獲取雙向數據綁定的數據規則
        this.model = this.$f.model();
    }
});

構造方法

<div id="app2">
    <div id="form-create"></div>
</div>
let rules = mock();
new Vue({
    el:'#app2',
    data:{
        //初始化變量
        $f:{},
        model:{}
    },
    mounted:function () {

        //表單插入的節點
        const root = document.getElementById('form-create');

        //$f爲表單api
        this.$f = this.$formCreate(
            //表單生成規則
            rules,
            //組件參數配置
            {
                el:root,
                //顯示錶單重置按鈕
                resetBtn:true,
                //表單提交事件
                onSubmit:function (formData) {

                    //formData爲表單數據

                    //按鈕進入提交狀態
                    this.$f.btn.loading();
                    //重置按鈕禁用
                    this.$f.resetBtn.disabled();

                    //重置按鈕恢復正常
                    //this.$f.resetBtn.disabled();
                    //按鈕進入可點擊狀態
                    //this.$f.btn.loading(false);
                }
        });

        //獲取雙向數據綁定的數據規則
        this.model = this.$f.model();
    }

})

全局方法

<div id="app3">
    <div id="form-create"></div>
</div>
//表單插入的節點
var root = document.getElementById('form-create'),rules = mock();
//初始化變量
var $f = {},model = {};

//$f爲表單api
$f = window.formCreate(
    //表單生成規則
    rules,
    //組件參數配置
    {
        el:root,
        //顯示錶單重置按鈕
        resetBtn:true,
        //表單提交事件
        onSubmit:function (formData) {

            //formData爲表單數據

            //按鈕進入提交狀態
            $f.btn.loading();
            //重置按鈕禁用
            $f.resetBtn.disabled();

            //重置按鈕恢復正常
            //$f.resetBtn.disabled();
            //按鈕進入可點擊狀態
            //$f.btn.loading(false);
        }
});

//獲取雙向數據綁定的數據規則
model = $f.model();

PHP 表單生成器

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章