# 生成规则
说明
组件生成器的配置方法名称与规则的配置项相同,配置参数也相同
# 示例
例如生成一个 input 组件:
# 基础配置
# type
- 类型:
String
- 说明: 设置生成组件的名称
# field
- 类型:
String
- 说明: 设置表单组件的字段名称,自定义组件可以不配置
# title
- 类型:
String|Object
- 说明: 字段的名称,可以不设置
# name
- 类型:
String
- 说明: 自定义组件的字段名称
# value
- 类型:
any
- 说明: 表单组件的字段值,自定义组件可以不用设置
# className
- 类型:
String
- 说明: 设置
FormItem
的class
不推荐,建议使用 wrap
配置
# info v0.0.4+
- 类型:
String|Object
- 说明: 设置组件的提示信息
- 全局配置说明: iview | element-ui | ant-design-vue
- 配置说明
# native
- 类型:
Bool
- 说明: 是否原样生成组件,不嵌套的
FormItem
中
# hidden v1.0.5+
- 类型:
Bool
- 说明: 设置组件是否生成
# display v2.5.0+
- 类型:
Bool
- 说明: 设置组件是否显示
# prefix v2.5.0+
- 类型:
string|Object
- 说明: 设置组件的前缀
- 配置说明
# suffix v2.5.0+
- 类型:
string|Object
- 说明: 设置组件的后缀
- 配置说明
# 扩展配置
# component v2.5.20+
- 类型:
Object
- 说明: 定义用于规则渲染的自定义组件, 无需挂载自定义组件
- 配置说明
# validate
- 类型:
Array
- 说明: 设置表单组件的验证规则
- 配置说明
# options
- 类型:
Array
- 说明: 设置
radio
,select
,checkbox
等组件option
选择项
# optionsTo v2.5.6+
- 类型:
string
- 说明: 设置
options
配置项插入的位置. 例如props.data
# inject
- 类型:
any
- 说明: 设置事件注入是的自定义数据
- 配置说明
# effect
- 类型:
Object
- 说明: 设置自定义属性
- 配置说明
# update
- 类型:
Function
- 说明: 设置 update 回调
- 配置说明
# link
- 类型:
Array
- 说明:
link
中配置的字段发生变化后,触发该组件的update
- 配置说明
# col
- 类型:
Object
- 说明: 设置组件的布局规则
- 配置说明
# wrap
- 类型:
Object
- 说明: 设置组件的
FormItem
规则 - 配置说明
# sync
- 类型:
Array
- 说明: 配置
prop.sync
,设置props
中属性的双向绑定
# control
- 类型:
Object
- 说明: 控制其他组件显示
- 配置说明
# children
类型:
Array<rule|string|maker>
说明: 设置父级组件的插槽,默认为
default
.可配合slot
配置项使用- 示例1
formCreate.maker.create('button').children([ '按钮内容' ])
- 示例2
maker.input('text','text','text').children([ maker.create('span').children(['append']).slot('append') ])
- 示例3
formCreate.maker.create('i-row').children([ formCreate.maker.create('i-col').props('span',12).children([ formCreate.maker.template('<span>自定义组件</span>', () => new Vue) ]), ])
# emit
- 类型:
Array
- 说明: 使用
emit
方式触发的事件名,可与emitPrefix
参数配合
示例:
//以下三种方式效果相同
rules = [{//emit 方式触发 change 事件
field:'goods_name',
//...
emit:['change']
},{// 自定义 emit 事件前缀,默认为 field 字段
field:'goods_info',
//...
emit:['change'],
emitPrefix:'gi'
},{// 直接在规则写回调方法
field:'goods_tag',
//...
on:{
change:function() {
//TODO
}
}
}]
<div id="app">
<form-create :rule="rules" @goods-name-change="change" @gi-change="change"></form-create>
</div>
new Vue({
el:'#app',
data: {
rules:rules
},
methods:{
change:function(){
//TODO
}
}
})
# nativeEmit
类型:
Array
说明: 使用
emit
方式触发的原生事件名,可与emitPrefix
参数配合
# emitPrefix
- 类型:
Object
- 说明: 自定义 组件
emit
事件的前缀 - 默认: 组件
field
字段 - 配置说明
# 模板配置 不推荐
template 组件必须设置一下参数,其他组件无需设置
# template 不推荐
- 类型:
string
- 说明: 模板组件的生成模板
# vm 不推荐
- 类型:
Vue|Function
- 说明: 模板组件的 Vue 示例对象,用于解析模板
# 通用配置
# props
- 参数:
Object
- 说明: 设置组件的
props
# class
- 参数:
Object|String|Array
- 说明: 设置组件的
class
# style
- 参数:
Object|String
- 说明: 设置组件的
style
# attrs
- 参数:
Object
- 说明: 设置组件普通的 HTML 特性
# domProps
- 参数:
Object
- 说明: 设置组件的 DOM 属性
# on
- 参数:
Object
- 说明: 设置组件的事件
# nativeOn
- 参数:
Object
- 说明: 监听组件的原生事件
# directives
- 参数:
Array
- 说明: 设置组件的自定义指令
# scopedSlots
- 参数:
Object
- 说明: 设置组件的插槽
# slot
- 参数:
String
- 说明: 设置组件的插槽名称,如果组件是其它组件的子组件,需为插槽指定名称