@zj-library/vue-components
v1.0.4
Published
vue封装的相关组件
Downloads
16
Readme
组件文档
基于element-plus封装的常见的一些组件
组件列表
| 组件名 | 描述 | |--------|------| | date-picker | el-date-picker的封装版本 | | form-item | el-form-item的二次封装版 | | form-table-container | 将el-table和el-form结合起来的组件,形成带有搜索/编辑的表格的组件 | | table-edit-column | 编辑表格中的列 | | table-edit-column-action | 编辑表格中的操作列 | | form-table-item | 用于放置在form-table-container的默认插槽中,用于同时声明表格中的列和表单项单项,相当于el-col、form-item、el-table-column的结合体 | | form-table-search-item | 用于搜索表单的搜索、重置功能 | | load-list | 带有分页的加载列表的功能 | | select-data | el-select选择框的二次封装版本 | | sugar-button | el-button的二次封装版本 |
date-picker
el-date-picker的封装版本
属性(Props)
| 名称 | 类型 | 默认值 | 描述 |
|------|------|--------|------|
| available-start-date | Date | undefined | 允许的开始日期,若只传入此参数,则会禁用该日期之前的所有日期 |
| available-end-date | Date | undefined | 允许的结束日期,若只传入传入此参数,则会禁用该日期之后的所有日期 |
| model-value | number,string,Date,[Date, Date],[string, string] | '' | 绑定值,若为数组,长度应为2 |
| readonly | boolean | false | 日期选择器是否为只读状态 |
| disabled | boolean | false | 日期选择器是否禁用 |
| size | '','large','default','small' | - | 输入框尺寸 |
| editable | boolean | true | 输入框是否可编辑 |
| clearable | boolean | true | 是否显示清除按钮 |
| placeholder | string | '' | 非范围选择模式下的占位文本 |
| start-placeholder | string | - | 范围选择模式下开始日期的占位文本 |
| end-placeholder | string | - | 范围选择模式下结束日期的占位文本 |
| type | 'year','month','Date','dates','datetime','week','datetimerange','daterange','monthrange' | date | 选择器类型 |
| format | string see | YYYY-MM-DD | 输入框中显示值的格式 |
| popper-class | string | - | 日期选择器下拉框的自定义类名 |
| popper-options | Partial<PopperOptions> | {} | 自定义下拉框配置,更多信息参见 popper.js |
| range-separator | string | '-' | 范围分隔符 |
| default-value | Date,[Date, Date] | - | 可选,日历的默认日期 |
| default-time | Date,[Date, Date] | - | 可选,选择日期范围时使用的时间值 |
| value-format | string see | - | 可选,绑定值的格式。若未指定,绑定值将为Date对象 |
| id | string,[string, string] | - | 与原生input的id属性相同 |
| name | string,[string, string] | '' | 与原生input的name属性相同 |
| unlink-panels | boolean | false | 在范围选择器中解除两个日期面板的联动 |
| prefix-icon | string,Component | '' | 自定义前缀图标组件。默认情况下,若type值为TimeLikeType,则为Clock,否则为Calendar |
| clear-icon | string,Component | CircleClose | 自定义清除图标组件 |
| validate-event | boolean | true | 是否触发表单验证 |
| disabled-date | (data: Date) => boolean | - | 一个判断日期是否禁用的函数,参数为该日期,应返回布尔值 |
| shortcuts | Array<{ text: string, value: Date,Function }> | [] | 设置快捷选项的对象数组 |
| cell-class-name | (data: Date) => string | - | 设置自定义类名 |
| teleported | boolean | true | 日期选择器下拉框是否 teleport 到 body 元素上 |
事件(Events)
| 名称 | 描述 |
|------|------|
| change | 用户确认值时触发 |
| blur | 输入框失焦时触发 |
| focus | 输入框聚焦时触发 |
| calendar-change | 日历选中日期改变时触发 |
| panel-change | 导航按钮点击时触发 |
| visible-change | 日期选择器下拉框显示/隐藏时触发 |
插槽(Slots)
| 名称 | 描述 |
|------|------|
| default | 自定义单元格内容 |
| range-separator | 自定义范围分隔符内容 |
form-item
el-form-item的二次封装版
属性(Props)
| 名称 | 类型 | 默认值 | 描述 |
|------|------|--------|------|
| value-type | 'string','number','array','object','boolean','date' | - | 验证规则中的类型 |
| pattern | RegExp | - | 验证规则中的正则表达式 |
| trigger | 'change','blur' | - | 验证规则中的触发方式 |
| message | string | - | 验证规则中的提示信息 |
| prop | string,string[] | - | model 中的键名。可以是属性的路径(例如 a.b.0 或 ['a', 'b', '0'])。在使用 validate 和 resetFields 方法时,该属性是必需的。 |
| label | string | - | 标签文本。 |
| label-width | string,number | '' | 标签宽度,例如 '50px'。支持 'auto'。 |
| required | boolean | - | 是否为必填项,若省略则由验证规则决定。 |
| rules | Arrayable<FormItemRule> | - | 表单验证规则,参见下表,更高级的用法请参考 async-validator。 |
| error | string | - | 字段错误信息,设置该值后,字段将立即验证错误并显示此信息。 |
| show-message | boolean | true | 是否显示错误信息。 |
| inline-message | string,boolean | '' | 行内样式的验证信息。 |
| size | '','large','default','small' | - | 控制该表单项内组件的尺寸。 |
| for | string | - | 与原生 label 中的 for 属性相同。 |
| validate-status | '','error','validating','success' | - | 表单项的验证状态。 |
插槽(Slots)
| 名称 | 描述 |
|------|------|
| default | 表单项的内容。 |
| label | 自定义标签显示内容。 |
| error | 自定义验证信息显示内容。 |
form-table-container
将el-table和el-form结合起来的组件,形成带有搜索/编辑的表格的组件
属性(Props)
| 名称 | 类型 | 默认值 | 描述 |
|------|------|--------|------|
| gutter | number | 0 | el-row中的gutter |
| type | 'default','edit' | default | 组件类型, 分为编辑表格和默认表格 |
插槽(Slots)
| 名称 | 描述 |
|------|------|
| default | 默认插槽,只接受FormTableSearchItem,FormTableItem,el-form-item,el-table-column组件 |
| table | el-table的放置位置,当然也可以放置除了el-table之外其他的内容 |
| form | el-form的放置位置,当然也可以放置除了el-form之外其他的内容 |
table-edit-column
编辑表格中的列
属性(Props)
| 名称 | 类型 | 默认值 | 描述 |
|------|------|--------|------|
| hide-required-asterisk | boolean | - | 是否隐藏必填的*号 |
| value-type | 'string','number','array','object','boolean','date' | - | 验证规则中的type |
| pattern | RegExp | - | 验证规则中的pattern |
| trigger | 'change','blur' | - | 验证规则中的trigger |
| message | string | - | 验证规则中的message |
| label-width | string,number | '' | 标签宽度,例如 '50px'。支持 'auto'。 |
| required | boolean | - | 是否为必填项,若省略则由验证规则决定。 |
| rules | Arrayable<FormItemRule> | - | 表单验证规则,参见下表,更高级的用法请参考 async-validator。 |
| error | string | - | 字段错误信息,设置该值后,字段将立即验证错误并显示此信息。 |
| show-message | boolean | true | 是否显示错误信息。 |
| inline-message | string,boolean | '' | 行内样式的验证信息。 |
| size | '','large','default','small' | - | 控制该表单项内组件的尺寸。 |
| for | string | - | 与原生 label 中的 for 属性相同。 |
| validate-status | '','error','validating','success' | - | 表单项的验证状态。 |
| type | 'default','selection','index','expand' | default | 列的类型。若设置为 selection,则列会显示复选框;若设置为 index,则列会显示行的索引(从 1 开始);若设置为 expand,则列会显示展开图标 |
| index | number,(index: number) => number | - | 自定义每行的索引,在 type=index 的列中生效 |
| label | string | - | 列的标题 |
| column-key | string | - | 列的键名。若需要使用 filter-change 事件,需要通过该属性标识是哪个列正在被筛选 |
| prop | string | - | 字段名。也可以使用其别名:property |
| width | string,number | '' | 列的宽度 |
| min-width | string,number | '' | 列的最小宽度。设置 width 的列有固定宽度,而设置 min-width 的列宽度会按比例分配 |
| fixed | 'left','right',boolean | false | 列是否固定在左侧/右侧。若为 true,则固定在左侧 |
| render-header | (data: { column: TableColumnCtx<T>, $index: number }) => void | - | 该列表头的渲染函数 |
| sortable | boolean,string | false | 列是否可排序。若将该属性设置为 'custom' 并监听 Table 的 sort-change 事件,可实现远程排序 |
| sort-method | <T = any>(a: T, b: T) => number | - | 排序方法,在 sortable 为 true 时生效。应返回一个数字,类似 Array.sort |
| sort-by | (row: any, index: number) => string,string,string[] | - | 指定按哪个属性排序,在 sortable 为 true 且 sort-method 为 undefined 时生效。若设置为数组,则当前一个属性相等时,会按后一个属性继续排序 |
| sort-orders | [] | ['ascending', 'descending', null] | 排序数据时使用的排序策略顺序,在 sortable 为 true 时生效。接受一个数组,当用户点击表头时,列会按数组中元素的顺序进行排序 |
| resizable | boolean | true | 列宽度是否可调整,在 el-table 的 border 为 true 时生效 |
| formatter | (row: any, column: TableColumnCtx<T>, cellValue: any, index: number) => VNode,string | - | 格式化单元格内容的函数 |
| show-overflow-tooltip | boolean | undefined | 是否隐藏超出内容,并在鼠标悬停单元格时显示提示框 |
| align | 'left','center','right' | left | 对齐方式 |
| header-align | 'left','center','right' | left | 表头的对齐方式。若省略,则会使用上述 align 属性的值 |
| class-name | string | - | 列中单元格的类名 |
| label-class-name | string | - | 该列标题的类名 |
| selectable | (row: any, index: number) => boolean | - | 判断某行是否可被选中的函数,在 type 为 'selection' 时生效 |
| reserve-selection | boolean | false | 数据刷新后是否保留选中状态,在 type 为 'selection' 时生效。注意:要使该功能生效,row-key 是必需的 |
| filters | Array<{text: string, value: string}> | - | 数据筛选选项的数组。该数组中的每个元素都需要包含 text 和 value 属性 |
| filter-placement | 'top','top-start','top-end','bottom','bottom-start','bottom-end','left','left-start','left-end','right','right-start','right-end' | - | 筛选下拉框的 placement 属性 |
| filter-class-name | string | - | 筛选下拉框的类名 |
| filter-multiple | boolean | true | 数据筛选是否支持多选 |
| filter-method | (value: any, row: any, column: TableColumnCtx<T>) => void | - | 数据筛选方法。若开启 filter-multiple,则每行都会调用该方法多次,只要其中一次调用返回 true,该行就会显示 |
| filtered-value | string[] | - | 选中数据的筛选值,当表头通过 render-header 渲染时可能会用到 |
| tooltip-formatter | (data: { row: any, column: TableColumnCtx<T>, cellValue: any }) => VNode,string | - | 使用 show-overflow-tooltip 时,自定义提示框内容 |
插槽(Slots)
| 名称 | 描述 |
|------|------|
| default | 表格列的自定义内容 |
| header | 表头的自定义内容 |
| filter-icon | 筛选图标的自定义内容 |
| expand | 展开列的自定义内容 |
table-edit-column-action
编辑表格中的操作列
属性(Props)
| 名称 | 类型 | 默认值 | 描述 |
|------|------|--------|------|
| edit-callback | function | - | 编辑操作的回调函数,接收「打开加载」和「关闭加载」两个函数作为参数 |
| delete-callback | function | - | 删除操作的回调函数,接收「打开加载」和「关闭加载」两个函数作为参数 |
| cancel-callback | function | - | 取消操作的回调函数,接收「打开加载」和「关闭加载」两个函数作为参数 |
| is-hidden-edit-btn | boolean | - | 是否隐藏「编辑」按钮 |
| is-hidden-delete-btn | boolean | - | 是否隐藏「删除」按钮 |
| has-icon | boolean | - | 是否显示编辑和删除按钮的图标 |
| is-hidden-cancel-btn | boolean | - | 是否隐藏「取消」按钮 |
| confirm-text | string | - | 「确认」按钮的文本内容 |
| cancel-text | string | - | 「取消」按钮的文本内容 |
| edit-text | string | - | 「编辑」按钮的文本内容 |
| delete-text | string | - | 「删除」按钮的文本内容 |
| btn-is-text | boolean | - | 按钮是否为「纯文本样式」(非按钮组件,仅文字) |
| label | string | - | 列的标题 |
| column-key | string | - | 列的键名。若需要使用 filter-change 事件,需要通过该属性标识是哪个列正在被筛选 |
| width | string,number | '' | 列的宽度 |
| min-width | string,number | '' | 列的最小宽度。设置 width 的列有固定宽度,而设置 min-width 的列宽度会按比例分配 |
| fixed | 'left','right',boolean | false | 列是否固定在左侧/右侧。若为 true,则固定在左侧 |
| render-header | (data: { column: TableColumnCtx<T>, $index: number }) => void | - | 该列表头的渲染函数 |
| sortable | boolean,string | false | 列是否可排序。若将该属性设置为 'custom' 并监听 Table 的 sort-change 事件,可实现远程排序 |
| sort-method | <T = any>(a: T, b: T) => number | - | 排序方法,在 sortable 为 true 时生效。应返回一个数字,类似 Array.sort |
| sort-by | (row: any, index: number) => string,string,string[] | - | 指定按哪个属性排序,在 sortable 为 true 且 sort-method 为 undefined 时生效。若设置为数组,则当前一个属性相等时,会按后一个属性继续排序 |
| sort-orders | [] | ['ascending', 'descending', null] | 排序数据时使用的排序策略顺序,在 sortable 为 true 时生效。接受一个数组,当用户点击表头时,列会按数组中元素的顺序进行排序 |
| resizable | boolean | true | 列宽度是否可调整,在 el-table 的 border 为 true 时生效 |
| formatter | (row: any, column: TableColumnCtx<T>, cellValue: any, index: number) => VNode,string | - | 格式化单元格内容的函数 |
| show-overflow-tooltip | boolean | undefined | 是否隐藏超出内容,并在鼠标悬停单元格时显示提示框 |
| align | 'left','center','right' | left | 对齐方式 |
| header-align | 'left','center','right' | left | 表头的对齐方式。若省略,则会使用上述 align 属性的值 |
| class-name | string | - | 列中单元格的类名 |
| label-class-name | string | - | 该列标题的类名 |
| selectable | (row: any, index: number) => boolean | - | 判断某行是否可被选中的函数,在 type 为 'selection' 时生效 |
| reserve-selection | boolean | false | 数据刷新后是否保留选中状态,在 type 为 'selection' 时生效。注意:要使该功能生效,row-key 是必需的 |
| filters | Array<{text: string, value: string}> | - | 数据筛选选项的数组。该数组中的每个元素都需要包含 text 和 value 属性 |
| filter-placement | 'top','top-start','top-end','bottom','bottom-start','bottom-end','left','left-start','left-end','right','right-start','right-end' | - | 筛选下拉框的 placement 属性 |
| filter-class-name | string | - | 筛选下拉框的类名 |
| filter-multiple | boolean | true | 数据筛选是否支持多选 |
| filter-method | (value: any, row: any, column: TableColumnCtx<T>) => void | - | 数据筛选方法。若开启 filter-multiple,则每行都会调用该方法多次,只要其中一次调用返回 true,该行就会显示 |
| filtered-value | string[] | - | 选中数据的筛选值,当表头通过 render-header 渲染时可能会用到 |
| tooltip-formatter | (data: { row: any, column: TableColumnCtx<T>, cellValue: any }) => VNode,string | - | 使用 show-overflow-tooltip 时,自定义提示框内容 |
插槽(Slots)
| 名称 | 描述 |
|------|------|
| header | 表头的自定义内容 |
| other-actions | 其他操作 |
form-table-item
用于放置在form-table-container的默认插槽中,用于同时声明表格中的列和表单项单项,相当于el-col、form-item、el-table-column的结合体
属性(Props)
| 名称 | 类型 | 默认值 | 描述 |
|------|------|--------|------|
| span | number | 24 | 栅格占据的列数 |
| offset | number | 0 | 栅格左侧的间隔列数 |
| push | number | 0 | 栅格向右移动的列数 |
| pull | number | 0 | 栅格向左移动的列数 |
| xs | number,{span?: number, offset?: number, pull?: number, push?: number} | - | <768px 响应式列数或列属性对象 |
| sm | number,{span?: number, offset?: number, pull?: number, push?: number} | - | ≥768px 响应式列数或列属性对象 |
| md | number,{span?: number, offset?: number, pull?: number, push?: number} | - | ≥992px 响应式列数或列属性对象 |
| lg | number,{span?: number, offset?: number, pull?: number, push?: number} | - | ≥1200px 响应式列数或列属性对象 |
| xl | number,{span?: number, offset?: number, pull?: number, push?: number} | - | ≥1920px 响应式列数或列属性对象 |
| tag | string | div | 自定义元素标签 |
| hidden-table-column | boolean | - | 是否隐藏表格的列 |
| value-type | 'string','number','array','object','boolean','date' | - | 验证规则中的type |
| pattern | RegExp | - | 验证规则中的pattern |
| trigger | 'change','blur' | - | 验证规则中的trigger |
| message | string | - | 验证规则中的message |
| label-width | string,number | '' | 标签宽度,例如 '50px'。支持 'auto'。 |
| required | boolean | - | 是否为必填项,若省略则由验证规则决定。 |
| rules | Arrayable<FormItemRule> | - | 表单验证规则,参见下表,更高级的用法请参考 async-validator。 |
| error | string | - | 字段错误信息,设置该值后,字段将立即验证错误并显示此信息。 |
| show-message | boolean | true | 是否显示错误信息。 |
| inline-message | string,boolean | '' | 行内样式的验证信息。 |
| size | '','large','default','small' | - | 控制该表单项内组件的尺寸。 |
| for | string | - | 与原生 label 中的 for 属性相同。 |
| validate-status | '','error','validating','success' | - | 表单项的验证状态。 |
| type | 'default','selection','index','expand' | default | 列的类型。若设置为 selection,则列会显示复选框;若设置为 index,则列会显示行的索引(从 1 开始);若设置为 expand,则列会显示展开图标 |
| index | number,(index: number) => number | - | 自定义每行的索引,在 type=index 的列中生效 |
| label | string | - | 列的标题 |
| column-key | string | - | 列的键名。若需要使用 filter-change 事件,需要通过该属性标识是哪个列正在被筛选 |
| prop | string | - | 字段名。也可以使用其别名:property |
| width | string,number | '' | 列的宽度 |
| min-width | string,number | '' | 列的最小宽度。设置 width 的列有固定宽度,而设置 min-width 的列宽度会按比例分配 |
| fixed | 'left','right',boolean | false | 列是否固定在左侧/右侧。若为 true,则固定在左侧 |
| render-header | (data: { column: TableColumnCtx<T>, $index: number }) => void | - | 该列表头的渲染函数 |
| sortable | boolean,string | false | 列是否可排序。若将该属性设置为 'custom' 并监听 Table 的 sort-change 事件,可实现远程排序 |
| sort-method | <T = any>(a: T, b: T) => number | - | 排序方法,在 sortable 为 true 时生效。应返回一个数字,类似 Array.sort |
| sort-by | (row: any, index: number) => string,string,string[] | - | 指定按哪个属性排序,在 sortable 为 true 且 sort-method 为 undefined 时生效。若设置为数组,则当前一个属性相等时,会按后一个属性继续排序 |
| sort-orders | [] | ['ascending', 'descending', null] | 排序数据时使用的排序策略顺序,在 sortable 为 true 时生效。接受一个数组,当用户点击表头时,列会按数组中元素的顺序进行排序 |
| resizable | boolean | true | 列宽度是否可调整,在 el-table 的 border 为 true 时生效 |
| formatter | (row: any, column: TableColumnCtx<T>, cellValue: any, index: number) => VNode,string | - | 格式化单元格内容的函数 |
| show-overflow-tooltip | boolean | undefined | 是否隐藏超出内容,并在鼠标悬停单元格时显示提示框 |
| align | 'left','center','right' | left | 对齐方式 |
| header-align | 'left','center','right' | left | 表头的对齐方式。若省略,则会使用上述 align 属性的值 |
| class-name | string | - | 列中单元格的类名 |
| label-class-name | string | - | 该列标题的类名 |
| selectable | (row: any, index: number) => boolean | - | 判断某行是否可被选中的函数,在 type 为 'selection' 时生效 |
| reserve-selection | boolean | false | 数据刷新后是否保留选中状态,在 type 为 'selection' 时生效。注意:要使该功能生效,row-key 是必需的 |
| filters | Array<{text: string, value: string}> | - | 数据筛选选项的数组。该数组中的每个元素都需要包含 text 和 value 属性 |
| filter-placement | 'top','top-start','top-end','bottom','bottom-start','bottom-end','left','left-start','left-end','right','right-start','right-end' | - | 筛选下拉框的 placement 属性 |
| filter-class-name | string | - | 筛选下拉框的类名 |
| filter-multiple | boolean | true | 数据筛选是否支持多选 |
| filter-method | (value: any, row: any, column: TableColumnCtx<T>) => void | - | 数据筛选方法。若开启 filter-multiple,则每行都会调用该方法多次,只要其中一次调用返回 true,该行就会显示 |
| filtered-value | string[] | - | 选中数据的筛选值,当表头通过 render-header 渲染时可能会用到 |
| tooltip-formatter | (data: { row: any, column: TableColumnCtx<T>, cellValue: any }) => VNode,string | - | 使用 show-overflow-tooltip 时,自定义提示框内容 |
插槽(Slots)
| 名称 | 描述 |
|------|------|
| default | el-form-item中的default插槽 |
| formItemLabel | el-form-item中的label插槽 |
| formItemError | el-form-item中的error插槽 |
| table | el-table-column中的插槽 |
form-table-search-item
用于搜索表单的搜索、重置功能
属性(Props)
| 名称 | 类型 | 默认值 | 描述 |
|------|------|--------|------|
| search-text | string | 搜索 | 搜索按钮的文本内容 |
| reset-text | string | 重置 | 重置按钮的文本内容 |
事件(Events)
| 名称 | 描述 |
|------|------|
| search | 点击搜索按钮时触发的事件 |
| reset | 点击重置按钮时触发的事件 |
load-list
带有分页的加载列表的功能
属性(Props)
| 名称 | 类型 | 默认值 | 描述 |
|------|------|--------|------|
| load | function | - | 数据加载函数,接收页码、页大小、总条数,返回包含数据的 Promise |
| error-text | string | - | 错误状态时显示的文本 |
| pagination-background | boolean | true | el-pagination的background属性 |
| pagination-size | 'large','small','default' | default | el-pagination的size属性 |
| pagination-layout | string | total, sizes, prev, pager, next, jumper | el-pagination的layout属性 |
| empty-text | string | - | 数据为空时显示的文本 |
| is-auto-load | boolean | - | 是否自动加载数据 |
| pagination-align | 'start','center','end' | - | 分页器对齐方式,可选 'start'、'center'、'end' |
| hide-on-single-page | boolean | - | 只有一页时是否隐藏分页器 |
| disable-scroll-top | boolean | - | 是否禁用滚动到顶部的行为 |
| hide-default-empty-or-error-handle | boolean | - | 隐藏默认的空数据或错误时的处理逻辑 |
| scroll-container | any | - | 滚动容器的引用 |
| page-config | object | - | 分页配置,包含 list 和 total 字段的键名映射 |
事件(Events)
| 名称 | 描述 |
|------|------|
| loaded | 数据加载完成后触发的事件 |
暴露的方法/属性(exposed)
| 名称 | 描述 | 类型 |
|------|------|------|
| refresh | 刷新列表方法 | (isForce: boolean isScrollTop: boolean ) |
| scrollToTop | 滚动到顶部 | - |
| refreshOfDelete | 删除时调用的刷新列表的方法 | (delCount: number ) |
select-data
el-select选择框的二次封装版本
属性(Props)
| 名称 | 类型 | 默认值 | 描述 |
|------|------|--------|------|
| model-value | string,number,boolean,object,array | - | 绑定值 |
| selected | object | - | 可结合v-model:selected使用,当前选中的modelValue所对应的对象 |
| labelKey | string | - | label的键名 |
| valueKey | object | - | value的键名 |
| multiple | boolean | false | 是否启用多选 |
| options | Array<{[key: string]: any}>,Function | - | 选项数据,value、label和disabled的键名可通过props自定义 |
| [props] | object | - | 配置选项 |
| disabled | boolean | false | 是否禁用选择框 |
| value-key | string | value | 值的唯一标识键名,当值为对象时必填 |
| size | '','large','default','small' | - | 输入框尺寸 |
| clearable | boolean | false | 是否可清空选择 |
| collapse-tags | boolean | false | 多选时是否将选中项折叠为文字显示 |
| collapse-tags-tooltip | boolean | false | 当启用collapse-tags时,鼠标悬停折叠文字时是否显示所有选中的标签。使用此属性需先开启collapse-tags |
| multiple-limit | number | 0 | 多选时用户最多可选择的选项数。设为0则无限制 |
| id | string | - | 原生input的id属性 |
| name | string | - | 选择框输入框的name属性 |
| effect | 'dark','light',string | light | 提示框主题,内置主题:dark / light |
| autocomplete | string | off | 选择框输入框的autocomplete属性 |
| placeholder | string | - | 占位文本,默认为'Select' |
| filterable | boolean | false | 是否可搜索 |
| allow-create | boolean | false | 是否允许创建新选项。使用此属性需先开启filterable |
| filter-method | (query: string) => void | - | 自定义搜索方法,第一个参数为当前输入值。使用此属性需先开启filterable |
| remote | boolean | false | 是否从服务器加载选项 |
| remote-method | (query: string) => void | - | 输入值变化时触发的函数,参数为当前输入值。使用此属性需先开启filterable |
| remote-show-suffix | boolean | false | 远程搜索模式下是否显示后缀图标 |
| loading | boolean | false | 是否正在从服务器加载数据 |
| loading-text | string | - | 从服务器加载数据时显示的文本,默认为'Loading' |
| no-match-text | string | - | 搜索无匹配结果时显示的文本,也可使用empty插槽,默认为'No matching data' |
| no-data-text | string | - | 无选项时显示的文本,也可使用empty插槽,默认为'No data' |
| popper-class | string | '' | 选择框下拉菜单的自定义类名 |
| popper-style | string,object | - | 选择框下拉菜单的自定义样式 |
| reserve-keyword | boolean | true | 当开启multiple和filterable时,选择选项后是否保留当前关键词 |
| default-first-option | boolean | false | 按回车时选择第一个匹配的选项。需配合filterable或remote使用 |
| teleported | boolean | true | 选择框下拉菜单是否使用 teleport,若为true,则会被传送到append-to指定的位置 |
| append-to | CSSSelector,HTMLElement | - | 选择框下拉菜单挂载到哪个元素上 |
| persistent | boolean | true | 当选择框下拉菜单未激活且persistent为false时,下拉菜单会被销毁 |
| automatic-dropdown | boolean | false | 对于不可搜索的选择框,此属性决定输入框获得焦点时是否弹出选项菜单 |
| clear-icon | string,Component | CircleClose | 自定义清空图标组件 |
| fit-input-width | boolean | false | 下拉菜单的宽度是否与输入框相同 |
| suffix-icon | string,Component | ArrowDown | 自定义后缀图标组件 |
| tag-type | '','success','info','warning','danger' | info | 标签类型 |
| tag-effect | '','light','dark','plain' | light | 标签效果 |
| validate-event | boolean | true | 是否触发表单验证 |
| offset | number | 12 | 下拉菜单的偏移量 |
| show-arrow | boolean | true | 下拉菜单是否显示箭头 |
| placement | 'top','top-start','top-end','bottom','bottom-start','bottom-end','left','left-start','left-end','right','right-start','right-end' | bottom-start | 下拉菜单的位置 |
| fallback-placements | Placement[] | ['bottom-start', 'top-start', 'right', 'left'] | 下拉菜单的备选位置列表 popper.js |
| max-collapse-tags | number | 1 | 最多显示的标签数量。使用此属性需先开启collapse-tags |
| popper-options | objectrefer to doc | {} | popper.js 参数 |
| aria-label | string | - | 与原生input的aria-label相同 |
| empty-values | array | - | 组件的空值,参见config-provider |
| value-on-clear | string,number,boolean,Function | - | 清空时的返回值,参见config-provider |
| suffix-transition | boolean | true | 下拉菜单显示/隐藏时图标的动画 |
| tabindex | string,number | - | 输入框的tabindex属性 |
事件(Events)
| 名称 | 描述 |
|------|------|
| change | 选中值变化时触发 |
| visible-change | 下拉菜单显示/隐藏时触发 |
| remove-tag | 多选模式下移除标签时触发 |
| clear | 可清空的选择框点击清空图标时触发 |
| blur | 输入框失去焦点时触发 |
| focus | 输入框获得焦点时触发 |
| popup-scroll | 下拉菜单滚动时触发 |
| update:selected | 用于v-model:selected的事件 |
插槽(Slots)
| 名称 | 描述 |
|------|------|
| default | 选项组件列表 |
| header | 下拉菜单顶部的内容 |
| footer | 下拉菜单底部的内容 |
| prefix | 选择框前缀内容 |
| empty | 无选项时的内容 |
| tag | 选择框标签内容,引入了子标签data、selectDisabled和deleteTag |
| loading | 选择框加载状态的内容 |
| label | 选择框标签内容。引入了index |
sugar-button
el-button的二次封装版本
属性(Props)
| 名称 | 类型 | 默认值 | 描述 |
|------|------|--------|------|
| auto-loading | boolean | - | 触发点击事件之后,回调函数中会包含openLoading和closeLoading两个函数 |
| auto-message-box | boolean | - | 触发点击事件之后,会自动弹出消息框 |
| message-box-options | SugarButtonPropsRequired['messageBoxOptions'] | - | 消息框配置项 |
| size | 'large','default','small' | - | 按钮尺寸 |
| type | 'default','primary','success','warning','danger','info','','text' | - | 按钮类型,当设置color时,后者优先级更高 |
| plain | boolean | false | 是否为朴素按钮 |
| text | boolean | false | 是否为文字按钮 |
| bg | boolean | false | 文字按钮是否始终显示背景色 |
| link | boolean | false | 是否为链接按钮 |
| round | boolean | false | 是否为圆角按钮 |
| circle | boolean | false | 是否为圆形按钮 |
| loading-icon | string,Component | Loading | 自定义加载图标组件 |
| disabled | boolean | false | 是否禁用按钮 |
| icon | string,Component | - | 图标组件 |
| autofocus | boolean | false | 与原生按钮的autofocus属性相同 |
| native-type | 'button','submit','reset' | button | 与原生按钮的type属性相同 |
| auto-insert-space | boolean | false | 自动在两个中文字符之间插入空格(仅当文本长度为2且所有字符均为中文时生效) |
| color | string | - | 自定义按钮颜色,会自动计算hover和active状态的颜色 |
| dark | boolean | false | 深色模式,会自动将color转换为深色模式下的颜色 |
| tag | string,Component | button | 自定义元素标签 |
事件(Events)
| 名称 | 描述 |
|------|------|
| click | 按钮点击事件 |
插槽(Slots)
| 名称 | 描述 |
|------|------|
| default | 自定义默认内容 |
| loading | 自定义加载组件 |
| icon | 自定义图标组件 |
