vue自定义表单生成器form-create使用详解

2020-06-13 10:46:40易采站长站整理

实例对象 $f

可以通过 $f 快速操作表单,例如:

$f.hidden:隐藏指定组件
$f.validate:验证表单
$f.setValue:修改表单组件的值
$f.append:追加表单组件

自定义组件

生成

通过标签生成


{
type:'el-button',
name: 'btn',
props:{
type:'primary',
field:'btn',
loading:true
},
children:['加载中']}

通过模板生成


{
type:'template',
name:'btn'
template:'<el-button :loading="loading">{{text}}<el-button>',
vm: new Vue({
data:{
loading:true,
text:'加载中'
}
})
}

转换为表单组件

自定义组件转换为表单组件后,可通过$f.formData,$f.getValue,$f.setValue,$f.disabled等方法快速操作组件,达到和内置组件相同的效果

预定义

props

在自定义组件内部通过props接收一下属性

value 表单的值
disabled 组件的禁用状态

例如:


vm = Vue({
props:{
value:String,
disabled:Boolean
}
})

input 事件

通过input事件更新组件内部的值

当组件值发生变化后,通过 input 事件更新值.例如:


vm.$emit('input',newValue);

挂载自定义组件

要生成的自定义组件必须通过Vue.component方法挂载到全局,或者通过formCreate.component方法挂载

例如:


formCreate.component('TestComponent',component);

或者


Vue.component('TestComponent',component);

生成

表单组件必须定义field属性

JSON


{
type:'TestComponent',
value:'test',
field:'testField',
title:'自定义组件'
}

Maker


formCreate.maker.create('TestComponent','testField','自定义组件').value('test')

示例

自定义计数器按钮组件,获取按钮点击数.该组件的功能和内置组件相同


formCreate.maker.template('<el-button @click="onClick" long :disabled="disabled">计数器-{{num}}</el-button>', new Vue({
props:{
//预定义
disabled:Boolean,
value:Number,
},
data: function () {
return {
num: this.value,
}
},
watch:{
value(n){
this.num = n;
}
},
methods: {
onClick: function () {
this.num++;
//更新组件内部的值