Skip to content

Tag 标签

tag组件一般用于标记和选择,我们提供了更加丰富的表现形式,能够较全面的涵盖您的使用场景

平台差异说明

平台差异说明

App(vue)App(nvue)H5微信小程序

基本使用

  • 通过type参数设置主题类型,默认为primary, 可取值warning, success, error
  • text设置标签内容
html
<su-tag text="雪月夜" type="success" />
<su-tag text="标签" type="warning"></su-tag>
<su-tag text="标签" type="success"></su-tag>
<su-tag text="标签" type="error"></su-tag>

自定义尺寸

  • 通过设置size参数,可以设置标签的类型,largemediummini
html
<su-tag text="一丘之貉" mode="large" />
<su-tag text="沆瀣一气" mode="medium" />
<su-tag text="狼狈为奸" mode="mini" />

圆形标签

通过shape参数,可以设置标签的形状,默认是square(方形,带圆角),可选:circle(两边半圆形)

  • 类似胶囊形状
html
<su-tag text="主谓宾" shape="circle" />
<su-tag text="定状补" shape="square" />

镂空标签

html
<su-tag text="标签" plain></su-tag>
<su-tag text="标签" type="warning" plain></su-tag>
<su-tag text="标签" type="success" plain></su-tag>
<su-tag text="标签" type="error" plain></su-tag>

镂空带背景色

  • 添加plainFill属性镂空带背景色
html
<su-tag text="标签" plain></su-tag>
<su-tag text="标签" type="warning" plain plainFill></su-tag>
<su-tag text="标签" type="success" plain plainFill></su-tag>
<su-tag text="标签" type="error" plain plainFill></su-tag>

可关闭标签

tag在右上角提供了删除标签的样式

html
<template>
  <su-tag text="标签" size="mini" closable :show="close1" @close="close1 = false"></su-tag>
  <su-tag text="标签" type="warning" closable :show="close2" @close="close2 = false"></su-tag>
  <su-tag text="标签" type="success" plain size="large" closable :show="close3" @close="close3 = false"></su-tag>
</template>

<script setup>
  import { ref, reactive } from 'vue'

  const close1 = ref(true)
  const close2 = ref(true)
  const close3 = ref(true)
  const radios = reactive([{ checked: true }, { checked: false }, { checked: false }])
  const checkboxs = reactive([{ checked: true }, { checked: false }, { checked: false }])
</script>

带图片和图标

html
<su-tag text="标签" size="mini" icon="map" plain></su-tag>
<su-tag text="标签" type="warning" icon="tags-fill"></su-tag>
<su-tag text="标签" type="success" plain size="large" icon="https://cdn.uviewui.com/uview/example/tag.png"></su-tag>

单选标签和多选标签

html
<template>
  <!-- 单选 -->
  <view class="u-page__tag-item" v-for="(item, index) in radios" :key="index">
    <su-tag :text="`选项${index + 1}`" :plain="!item.checked" type="warning" :name="index" @click="radioClick"></su-tag>
  </view>
  <!-- 多选 -->
  <view class="u-page__tag-item" v-for="(item, index) in checkboxs" :key="index">
    <su-tag :text="`选项${index + 1}`" :plain="!item.checked" type="warning" :name="index" @click="checkboxClick"></su-tag>
  </view>
</template>

<script setup>
  import { reactive } from 'vue'

  const radios = reactive([{ checked: true }, { checked: false }, { checked: false }])
  const checkboxs = reactive([{ checked: true }, { checked: false }, { checked: false }])

  const radioClick = (name) => {
    radios.forEach((item, index) => {
      item.checked = index === name
    })
  }

  const checkboxClick = (name) => {
    checkboxs[name].checked = !checkboxs[name].checked
  }
</script>
<style lang="scss">
  .u-page__tag-item {
    margin-right: 20px;
  }
</style>

示例源码

点击可以查看 右侧演示页面的源码

API

Props

参数说明类型默认值可选值
type主题类型Stringprimarysuccess / info / warning / error
disabled不可用Booleantruefalse
size标签大小Stringdefaultmini
shape标签形状Stringsquarecircle
text标签的文字内容String--
bg-color自定义标签的背景颜色String--
color文字的颜色String--
border-color标签的边框颜色String--
close-color关闭按钮图标的颜色String#C6C7CB-
name点击时返回的索引值,用于区分例遍的数组哪个元素被点击了String | Number--
plainFill镂空时是否填充背景色Booleanfalsefalse / true
plain是否镂空Booleanfalsefalse / true
closable是否可关闭,设置为true,文字右边会出现一个关闭图标Booleanfalsetrue
show标签显示与否Booleantruefalse
icon内置图标,或绝对路径的图片String--

Event

事件名说明回调参数版本
click点击标签触发name: 传递的name参数值-
closeclosabletrue时,点击标签关闭按钮触发name: 传递的name参数值-

Released under the MIT License.

Released under the MIT License.