form-create 2.5.10 发布,好用的vue动态表单组件

栏目: 软件资讯 · 发布时间: 4年前

内容简介:form-create 是一个可以通过 JSON 生成具有动态渲染、数据收集、验证和提交功能的表单生成组件。支持3个UI框架,并且支持生成任何 Vue 组件。内置20种常用表单组件和自定义组件,再复杂的表单都可以轻松搞定。 文...

form-create 是一个可以通过 JSON 生成具有动态渲染、数据收集、验证和提交功能的表单生成组件。支持3个UI框架,并且支持生成任何 Vue 组件。内置20种常用表单组件和自定义组件,再复杂的表单都可以轻松搞定。

文档 | GitHub | 示例 |  可视化表单设计器

支持 UI

  • element-ui
  • iview/view-design
  • ant-design-vue

2.5.10主要更新了以下内容:

  • 新增 支持通过插槽扩展组件, 例如自定义inputNumber组件的渲染,通过type-input-number插槽扩展 (说明)
  • 新增 form.title配置项, 全局配置,不生成组件的 label
  • 增强 json 解析
  • 增强 control 功能, 支持控制当前 rule 中规则的显示状态
      {
          value: 1,
          rule: ['field1', 'field2']
      }
    

不兼容项

  • 修改 repeat 事件名称为 repeat-field

  • 移除 fc.sub-form 事件监听

  • 修改注入组件 props 名称为 formCreateInject

    • formCreate > formCreateInject.api
    • formCreateOptions > formCreateInject.options
    • formCreateRule > formCreateInject.rule
    • formCreateField > formCreateInject.field
    • fc.sub-form 事件 > formCreateInject.subForm()

示例:

通过插槽生成一个表单组件

<template>
<div>
    <form-create :rule="rule" v-model="fApi" :option="options">
        <template slot="type-field-component" slot-scope="scope">
            <ElInput :value="''+scope.model.value" @input="(v)=>scope.model.callback(parseInt(v))" />
        </template>
    </form-create>
</div>
</template>

<script>
    export default {
        data(){
            return {
                fApi:{},
                options:{
                    onSubmit: (formData)=>{
                        alert(JSON.stringify(formData))
                    },
                },
                rule:[
                    {
                        type:'fieldComponent',
                        field:'fieldComponent',
                        title:'自定义插槽',
                        value:100
                    }
                ]
            }
        }
    }
</script>

scope数据结构

interface scope {
    rule:Rule; //组件生成规则
    prop:VNodeData; //on: 事件, props: 配置
    children: Vnode[] //子级
    model: { //定义field后才有
        value: any; //表单组件 value
        callback: (value:any)=>void; //表单组件 value 更新
    };
};

安装

根据自己使用的 UI 安装对应的版本

element-ui 版本

npm i @form-create/element-ui

iview@2.x|3.x 版本

npm i @form-create/iview

iview/view-design@4.x 版本

npm i @form-create/iview4

ant-design-vue@1.5+ 版本

npm i @form-create/ant-design-vue

快速上手

本文以element-ui为例

  1. 在 main.js 中写入以下内容:
import Vue from 'vue'
import ELEMENT from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'

import formCreate from '@form-create/element-ui'

Vue.use(ELEMENT)
Vue.use(formCreate)
  1. 生成表单

在线示例

<template>
  <div id="app1">
      <form-create v-model="fApi" :rule="rule" :option="option" :value.sync="value"></form-create>
  </div>
</template>
export default {
    data() {
        return {
            //实例对象
            fApi: {},
            //表单数据
            value: {},
            //表单生成规则
            rule: [
                {
                    type: 'input',
                    field: 'goods_name',
                    title: '商品名称'
                },
                {
                    type: 'datePicker',
                    field: 'created_at',
                    title: '创建时间'
                }
            ],
            //组件参数配置
            option: {
                //表单提交事件
                onSubmit: function (formData) {
                    alert(JSON.stringify(formData))
                }
            }
        }
    }
}

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

极简算法史:从数学到机器的故事

极简算法史:从数学到机器的故事

[法] 吕克•德•布拉班迪尔 / 任轶 / 人民邮电出版社 / 2019-1 / 39.00元

数学、逻辑学、计算机科学三大领域实属一家,彼此成就,彼此影响。从古希腊哲学到“无所不能”的计算机,数字、计算、推理这些貌似简单的概念在三千年里融汇、碰撞。如何将逻辑赋予数学意义?如何从简单运算走向复杂智慧?这背后充满了人类智慧的闪光:从柏拉图、莱布尼茨、罗素、香农到图灵都试图从数学公式中证明推理的合理性,缔造完美的思维体系。他们是凭天赋制胜,还是鲁莽地大胆一搏?本书描绘了一场人类探索数学、算法与逻......一起来看看 《极简算法史:从数学到机器的故事》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具