# FormItem 表单项
FormItem不是一个组件,是一系列数据录入组件的统称。 这些组件都有公共的属性、参数和功能。
# 公用属性参数
表单项的公共属性参数,继承 el-form-item 的的全部特性。 需要与MyForm结合使用才有效。
参数名称 | 类型 | 默认值 | 说明 |
---|---|---|---|
name | String | - | 表单域 model 字段名称, 等价于 el-form-item 的 prop 参数 |
width | String | - | 宽度,css属性,支持像素,百分比和表达式,也可以在MyForm中统一设置itemWidth |
props | Object | - | 输入组件参数对象,即 el-form-item 包含的组件参数 |
options | Array | - | 选项数据,有选项的输入组件才有效 |
keyMap | Object | {id, parentId, label, value} | 选项数据对象属性名称映射 |
collapsible | Boolean | false | 可收起 |
stopEnterEvent | Boolean | false | 阻止回车事件冒泡 |
depend | String | - | 依赖字段名称 |
dependValue | * | - | 依赖字段的值,即依赖字段的值等于该值才会显示,可以设置匹配函数 |
cascade | String | - | 级联的上级字段名称,需要与loader配合加载数据 |
loader | Function | - | 加载数据函数,必须返回Promise |
dict | String | - | 字典名称,只是标识,需要与loader配合 或 表单的dictMap加载数据 |
disabled | Boolean | - | 禁用 |
readonly | Boolean | - | 只读 |
placeholder | String | - | 占位文本 |
# 使用方式
表单项组件有两种调用方式:
- 单独使用
- 与MyForm结合使用
# 单独使用
表单项组件可单独使用。注意:单独使用时与表单相关的公共参数功能即失效。用法:
单独使用等价于:
<el-input placeholder="请输入标题" v-model="title"></el-input>
# 结合MyForm
通常表单项需要结合MyForm使用,才能能便利实现数据录入功能。
等价于:
<el-form :model="model" @submit="handleSubmit">
<el-form-item prop="title" label="标题">
<el-input v-model="title" placeholder="请输入标题"></el-input>
</el-form-item>
</el-form>
2
3
4
5
6
# 通用功能
# 样式设置
通过设置表单项宽度可实现行列排版
# 输入组件参数
表单项内部都包含了一个输入组件,如:my-input 是 el-form-item 和 el-input 的结合体, 内部输入组件就是el-input.
输入组件的参数通过 props
设置。
# 选项数据
有选项数据的输入组件通过options
参数设置。以下表单项组件有选项:
- my-select
- my-checkbox
- my-radio
- my-cascader
- my-tag-select
- my-tree-select
# 数据加载函数
options
的数据也可以通过函数加载,常用在需要远程请求获取的数据
# 折叠
设置 collapsible
可以实现折叠表单项,常用在筛选条件多的时候,把次要的折叠起来,节省空间。
# 依赖
当表单项显示的条件是根据其他表单项的值来确定时,可以设置 depend
、dependValue
来实现。
# 级联
当表单项的选项数据时根据其他表单项的值来决定的,设置 cascade
,配合loader来加载选项数据
# 选项数据对象属性名称映射
有选项数据的输入组件通过keyMap
参数设置映射。以下表单项组件有选项:
- my-select
- my-checkbox
- my-radio
- my-cascader
- my-tag-select
- my-tree-select
# 表单项组件
表单项组件包括以下组件。
# Autocomplete 自动完成
根据输入内容提供对应的输入建议。
基于 el-autocomoplete
实现, 兼容 el-autocomoplete
全部的参数、插槽和事件。
# Cascader 级联选择器
基于 el-cascader
实现, 兼容 el-cascader
全部的参数、插槽和事件。
数据源: $docs/data/tree.json,组件默认支持有父子关系的一维数组(树的原始数组,没有children)。亦可以支持完整的树结构数组(性能优化)