# 控件类型
基于 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,不显示;