Skip to content

SuggestionPopover 建议弹出框 ​

代码示例 ​

基本示例 ​

使用 data 传入数据,

loading

触发方式 ​

使用 trggier 来决定弹出框的触发方式。目前有 click 和 manual 两种方式,默认为 click。trggier 为 manual 时,需要你手动修改弹出框显示状态

loading

分组数据 ​

data 数组中的项,添加 group 字段来表示为分组数据。分组数据和普通数据不能混合

loading

自定义渲染列表项 ​

使用 item 插槽自定义渲染列表项

loading

加载中和空数据 ​

loading

其他插槽 ​

另外还提供了 header 和 body 插槽,方便开发者扩展

loading

移动端适配 ​

目前移动端判断逻辑是,视窗宽度小于 768px

将窗口宽度缩小到 768px,可以点击查看上面的示例

Props ​

属性类型必填默认值说明
dataSuggestionData是-建议数据
titlestring否-弹出框标题
iconVNode | Component否-标题图标
showboolean否-控制弹出框显示/隐藏,仅在 trigger 为 'manual' 时有效
trigger'click' | 'manual'否'click'触发方式:点击或手动控制
selectedGroupstring否-当前选中分组 (v-model)
groupShowMoreTrigger'click' | 'hover'否-分组"显示更多"的触发方式
loadingboolean否false是否显示加载状态
topOffsetnumber否-顶部偏移量

Slots ​

弹出框插槽结构示意图:

txt
+---------------------------+         +-----------+
|     SuggestionPopover     |  <----  |  trigger  |
|  +---------------------+  |         +-----------+
|  |       header        |  |
|  +---------------------+  |
|  |                     |  |
|  |        body         |  |
|  |   +-------------+   |  |
|  |   |   item[]    |   |  |
|  |   +-------------+   |  |
|  |                     |  |
|  |  loading / empty    |  |
|  +---------------------+  |
+---------------------------+
插槽名类型说明
trigger() => VNode | VNode[]自定义触发器
item({ item }: { item: SuggestionItem }) => VNode | VNode[]自定义渲染列表项
loading() => VNode | VNode[]自定义加载状态显示
empty() => VNode | VNode[]自定义空状态显示
header() => VNode | VNode[]自定义头部区域
body() => VNode | VNode[]自定义列表区域

Events ​

事件名参数说明
item-clickitem: SuggestionItem点击建议项时触发
group-clickgroup: SuggestionGroup点击分组时触发
open-弹窗打开时触发
close-弹窗关闭时触发
click-outsideevent: MouseEvent点击弹窗外部区域时触发

Types ​

SuggestionItem - 建议项数据结构

属性类型说明
idstring项唯一标识
textstring显示文本

SuggestionGroup - 建议分组数据结构

属性类型说明
groupstring分组标识
labelstring分组显示名称
iconVNode | Component分组图标
itemsSuggestionItem[]分组下的建议项

SuggestionData - 建议数据联合类型

typescript
type SuggestionData = (SuggestionItem | SuggestionGroup)[]

表示数据可以是:

  • 平铺的建议项数组 SuggestionItem[]
  • 分组的建议项数组 SuggestionGroup[]