Mention 提及
在输入框中 @ 提及某人或某物。
基础用法
最简用法。
字段映射
可通过 props 自定义 options 的字段别名。
文本域
输入类型可设为 textarea。
自定义标签
通过 label 插槽自定义选项标签。
远程加载选项
异步加载候选项。
自定义触发前缀
通过 prefix 自定义触发字符,默认 @,也支持 Array<string>。
整体删除
将 whole 设为 true 时,按退格可整体删除提及片段;可用 check-is-whole 自定义判断逻辑。
与表单配合
与 u-form 组合使用。
TIP
本组件基于 u-input 封装,输入相关属性与原生行为保持一致,此处不再重复,详见输入框文档。
提及 API
提及 属性
| 名称 | 说明 | 类型 | 默认值 |
|---|---|---|---|
| options | 候选项列表 | array | [] |
| props | 字段映射配置 | object | {value: 'value', label: 'label', disabled: 'disabled'} |
| prefix | 触发提及的前缀字符,长度须为 1;或字符串数组 | string | array | '@' |
| split | 分隔提及的字符,长度须为 1 | string | ' ' |
| filter-option | 自定义过滤逻辑;传 false 可关闭内置过滤 | false | Function | — |
| placement | 弹出层位置 | string | 'bottom' |
| show-arrow | 下拉是否显示箭头 | boolean | false |
| offset | 下拉层偏移 | number | 0 |
| whole | 退格删除时是否整体删除提及内容 | boolean | false |
| check-is-whole | 退格删除时自定义是否视为整体提及 | Function | — |
| loading | 下拉是否处于加载态 | boolean | false |
| model-value / v-model | 输入值 | string | — |
| popper-class | 下拉自定义类名 | string / object | '' |
| popper-style | 下拉自定义样式 | string / object | — |
| popper-options | Popper.js 参数 | object 参考 Popper 文档 | — |
| 输入框属性 | — | — | — |
提及 事件
| 名称 | 说明 | 类型 |
|---|---|---|
| search | 匹配到前缀时触发 | Function |
| select | 选择候选项时触发 | Function |
| whole-remove | 整体删除提及时触发(whole 或 check-is-whole 生效时) | Function |
| 输入框事件 | — | — |
提及 插槽
| 名称 | 说明 | 类型 |
|---|---|---|
| label | 选项标签内容 | object |
| loading | 加载态内容 | — |
| header | 下拉顶部内容 | — |
| footer | 下拉底部内容 | — |
| 输入框插槽 | — | — |
提及 暴露
| 名称 | 说明 | 类型 |
|---|---|---|
| input | 输入框组件实例引用 | object |
| tooltip | 文字提示组件实例 | object |
| dropdownVisible | 下拉是否可见 | object |
类型声明
展开类型声明
ts
type MentionOption = {
value?: string
label?: string
disabled?: boolean
[key: string]: any
}
type MentionOptionProps = {
value?: string
label?: string
disabled?: string
[key: string]: string | undefined
}