Skip to content

OverflowToolbar 收纳工具栏

当工具栏项目过多,容器宽度不足以显示所有项目时,自动将溢出的项目收纳到"更多"弹出框中。适用于工具栏、标签栏、操作按钮组等场景。

基础用法

传入 list 数组即可渲染工具栏项目。当容器宽度不足时,超出的项目会自动收起到"更多"弹出框中。

自定义插槽

通过 itemmoremore-content 插槽可以完全自定义工具栏项目和弹出框的样式。

props

属性名说明类型默认值
list工具栏项目列表OverflowToolbarItem[][]
trigger弹出框触发方式'click' | 'hover''click'
visiblePopover控制弹出框显示状态(v-model)booleanundefined
minShowNum最小显示个数number0

slots

插槽名说明插槽参数
item自定义工具栏项目{ item: OverflowToolbarItem }
more自定义"更多"按钮-
more-content自定义弹出框内容{ overflowList: OverflowToolbarItem[] }

methods

通过 ref 获取组件实例后可调用以下方法:

方法名说明类型
forceUpdate强制更新组件,当列表项动态变化后需要手动调用() => void

类型定义

可以直接导入

typescript
import { OverflowToolbarItem } from 'element-ai-vue'

OverflowToolbarItem

typescript
interface OverflowToolbarItem {
  /** 唯一标识符  */
  key: string | number
  /** 显示文本 */
  text?: string
  /** 图标地址 */
  icon?: string
  /** 其他自定义属性 */
  [key: string]: any
}

动态更新列表

当动态添加或删除列表项时,需要调用 forceUpdate() 方法来强制刷新组件布局:

ts
const overflowToolbarRef = useTemplateRef('overflowToolbarRef')

// 添加项目后
list.value.push({ key: 'new-item', text: '新项目' })
overflowToolbarRef.value?.forceUpdate()

// 删除项目后
list.value.pop()
overflowToolbarRef.value?.forceUpdate()