Skip to content

Tag 标签组件

标签组件,基于 Element Plus Tag 的封装组件,支持通过选项列表自动匹配标签文本。

基础用法

WTag 组件继承所有 Element Plus Tag 的属性,可以直接使用。

可关闭标签

不同尺寸

不同主题

Options + Value 用法

通过 optionsvalue 属性,可以从选项列表中自动匹配对应的标签文本。

单个值匹配

数组值匹配

value 为数组时,会在单个标签内使用分隔符(默认 ', ')连接显示所有匹配的标签文本。

自定义分隔符

通过 separator 属性可以自定义数组值渲染时的分隔符。

插槽使用

当使用插槽时,插槽内容优先级最高,会覆盖 labeloptions + value 匹配的结果。

默认插槽

作用域插槽

插槽提供了作用域参数,可以访问当前值、匹配的标签文本和匹配到的选项对象,用于自定义渲染。

Label 属性

通过 label 属性可以直接指定标签文本,优先级高于 options + value 匹配。

字段映射

通过 props 属性可以自定义 options 中的字段名,与 Element Plus 保持一致。

宽松匹配

通过 looseMatch 属性可以控制匹配模式。默认值为 true,支持宽松匹配(数字和字符串可以互相匹配,布尔值和字符串 'true'/'false' 可以互相匹配)。

选项属性

options 中可以通过 tagProps 属性为每个选项配置标签属性(如 typeeffect 等)。

API

属性

支持 ElTag 所有的属性。

拓展属性

参数说明类型默认值
label标签文本(优先级高于 options + value 匹配)string-
options选项列表(用于根据 value 匹配标签文本)TagOption[]-
value当前值(用于从 options 中匹配对应的选项,支持单个值或数组)TagValue | TagValue[]-
props字段映射配置(用于自定义 options 中的字段名)TagFieldProps{ label: 'label', value: 'value' }
looseMatch是否宽松匹配(默认 true,会将布尔值和字符串 'true'/'false' 互相匹配)booleantrue
separator数组值渲染时的分隔符string', '

TagOption 配置

options 数组中每一项的配置类型。

参数说明类型默认值
label标签文本(如果使用默认字段映射)string-
value标签值(如果使用默认字段映射)unknown-
tagProps标签属性(传递给 ElTag 的属性)Partial<ElTagProps>-
[key: string]允许其他自定义字段any-

TagFieldProps 配置

props 字段映射配置。

参数说明类型默认值
label标签文本字段名string'label'
value标签值字段名string'value'

事件

支持 ElTag 所有的事件。

事件名说明参数
close关闭 Tag 时触发的事件(event: MouseEvent) => void
click点击 Tag 时触发的事件(event: MouseEvent) => void

插槽

插槽名说明参数
default标签内容(优先级最高,会覆盖 label 和 options + value 匹配的结果){ value: TagValue | TagValue[], label: string | null, options: TagOption[] }

插槽参数说明

  • value: 当前值(可能是单个值或数组)
  • label: 匹配到的标签文本(单个值直接返回,数组值用分隔符拼接)
  • options: 所有匹配到的选项对象数组

基于 Element Plus 构建