# 控件类型
基于 ElementUI 二次封装的组件,主要给 RocketForm 和 SearchForm 提供服务。 除自定义参数以外,所有属性都和 ElementUI 保持一致。
# 支持控件
type='text'
文本框type='textarea'
文本域type='number'
Html5 原生数字框type='input-number'
ElementUI 数字框type='select'
下拉框type='time-select'
时间选择器 - 固定时间type='time-picker'
时间选择器 - 任意时间type='date' / 'week' / 'month' / 'year' / 'dates' / 'datetime'
与 ElementUI 保持一致type='daterange' / 'monthrange' / 'datetimerange'
日期/时间 区间type='radio' / 'radio-group'
单选框type='radio-button'
单选按钮组type='switch'
开关组件type='checkbox'
复选框,组件会根据 options 字段自动判断是否使用复选框组type='cascader'
级联框type='transfer'
穿梭框type='upload'
上传框type='link'
文字链接,类似于type='button'
按钮组件type='label'
文本组件type='tips'
tips 组件type='table'
支持表单中内嵌表格组件type='slot'
如果想自定义,可以使用 slot 来自定义组件。
# 自定义参数
参数 | 说明 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
type | 支持大部分组件 | String | 参考上文 | 无 |
label | 表单文本 | String | 无 | 无 |
model | 需要渲染的 v-model | String | 无 | 无 |
tips | 提示语 | String | 无 | 无 |
change | 自定义事件 | fn(val,values,model,config) | 无 | 无 |
show | 是否显示此字段 | fn(values) | 无 | 无 |
fetchOptions | 下拉框独有,可以拉取接口 | fn() | 无 | 无 |
每个表单都支持 change 事件,用来处理自定义业务。 每个表单都支持 show 方法,用来处理显隐功能。当前只支持在 rocket-form 中做显隐。
# Input 组件
prepend 只支持 字符串,不支持配置组件。
# Select 组件
# 属性介绍
参数 | 说明 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
filterable | 是否过滤 | Boolean | true/false | true |
clearable | 是否清楚 | Boolean | true/false | true |
field | 结构映射 | Object | 无 | {label:'label',value:'value'} |
field 为字段映射,下拉框默认使用 label 和 value 渲染,如果接口返回的不是 label 和 value,可以使用 field 进行转换,非常便捷。
如果要获取 SearchForm 中的下拉值,可以使用 this.form.$userStatus.options 或者 this.form[0].options。
如果要获取 RocketForm 中的下拉值,可以使用 this.json.formList.$userStatus.options 或者 this.json.formList[0].options。因为两个组件的结构不一样。
# Date 组件
# type = date/daterange/datetime/datetimerange
参数 | 说明 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
type | 日期类型 | String | 参考标题 | 无 |
shortcuts | 日期快捷键 | Boolean | true | false | 无 |
export | 导出字段 | Array | 无 | [startTime,endTime] |
日期类型:'date', 'week', 'month', 'year', 'dates', 'datetime'
日期区间:'daterange', 'monthrange', 'datetimerange'
对于范围组件'daterange', 'monthrange', 'datetimerange',为了方便前端传参,可通过指定 export 来导出字段名称,因为范围组件只有一个 v-model 值,往往后端需要拆解为两个字段,比如 dateTime=['2021-01-01','2021-12-01'],拆解为:startTime='2021-01-01',endTime='2021-12-01';默认为 startTime,endTime,可手动设置。
# Checkbox 组件
# 属性介绍
参数 | 说明 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
type | 单选类型 | String | 参考标题 | 无 |
options[label] | 显示文本 | String | 无 | 无 |
options[value] | 表单域值 | String | Number | 无 |
# Switch 组件
# Radio 组件
# Cascader 组件
# TimeSelect
# RocketTable
# type = table
当
type=table
时,支持表单嵌套表格,表格所具备功能同 rocket-table,添加 table 属性即可。
需要注意的是:表格所拥有的事件不能定义,需要在 table 中添加 handleAction/handleCellClick/handleChange/selectionChange/sortChange 等方法进行接收。table 只能用在 RocketForm 中,不能用在 SearchForm
表格中需要的数据 data,请再 v-model 对象里面传递,不要在 table 中添加 data
参数 | 说明 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
table | 表格所需要属性,同 rocket-table 一致 | String | 参考标题 | 无 |
# 事件
参数 | 说明 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
change | 所有表单均暴露 change 事件,可做业务处理 | fn | 无 | 无 |
show | 所有表单均暴露 show 事件,可做显示和隐藏 | fn | 无 | 无 |
change 事件返回三个参数 fn(val,values,model,json),分别为当前组件值、当前表单所有值、当前组件 model 和当前 json 配置.
show 函数主要用来处理显隐功能,返回 true,显示;返回 false,不显示;