Badge 徽标数

图标右上角的圆形徽标数字。

何时使用

一般出现在通知图标或头像的右上角,用于显示需要处理的消息条数,通过醒目视觉形式吸引用户处理。

组件演示

基本

简单的徽章展示。

  1. <template>
  2. <v-badge :count="5">
  3. <a href="#" class="head-example" />
  4. </v-badge>
  5. </template>
  6. <style>
  7. .ant-badge:not(.ant-badge-status) {
  8. margin-right: 16px;
  9. }
  10. .head-example {
  11. width: 42px;
  12. height: 42px;
  13. border-radius: 6px;
  14. background: #eee;
  15. display: inline-block;
  16. }
  17. </style>

独立使用

不包裹任何元素即是独立使用,可自定样式展现。在右上角的 badge 则限定为红色。

  1. <v-badge :count="25"></v-badge>
  2. <v-badge :count="4" :count-style="{ 'background-color': '#fff', 'color': '#999', 'box-shadow': '0 0 0 1px #d9d9d9 inset',}"></v-badge>
  3. <v-badge :count="109" :count-style="{ 'background-color': '#87d068'}"></v-badge>

封顶数字

超过 overflowCount 的会显示为 ${overflowCount}+,默认的 overflowCount99

  1. <template>
  2. <v-badge :count="99">
  3. <a href="#" class="head-example" />
  4. </v-badge>
  5. <v-badge :count="100">
  6. <a href="#" class="head-example" />
  7. </v-badge>
  8. <v-badge :count="99" :overflow-count="10">
  9. <a href="#" class="head-example" />
  10. </v-badge>
  11. <v-badge :count="1000" :overflow-count="999">
  12. <a href="#" class="head-example" />
  13. </v-badge>
  14. </template>
  15. <style>
  16. .ant-badge:not(.ant-badge-status) {
  17. margin-right: 16px;
  18. }
  19. .head-example {
  20. width: 42px;
  21. height: 42px;
  22. border-radius: 6px;
  23. background: #eee;
  24. display: inline-block;
  25. }
  26. </style>

讨嫌的小红点

没有具体的数字。

  1. <v-badge dot>
  2. <v-icon type="notification" />
  3. </v-badge>
  4. <v-badge dot>
  5. <a href="#">Link something</a>
  6. </v-badge>

可点击

用 a 标签进行包裹即可。

  1. <template>
  2. <a href="#">
  3. <v-badge :count="5">
  4. <span class="head-example" />
  5. </v-badge>
  6. </a>
  7. </template>
  8. <style>
  9. .ant-badge:not(.ant-badge-status) {
  10. margin-right: 16px;
  11. }
  12. .head-example {
  13. width: 42px;
  14. height: 42px;
  15. border-radius: 6px;
  16. background: #eee;
  17. display: inline-block;
  18. }
  19. </style>

动态

展示动态变化的效果。

  1. <template>
  2. <div>
  3. <div>
  4. <v-badge :count="counter">
  5. <a href="#" class="head-example" />
  6. </v-badge>
  7. <v-button-group>
  8. <v-button @click="decline">
  9. <v-icon type="minus" />
  10. </v-button>
  11. <v-button @click="increase">
  12. <v-icon type="plus" />
  13. </v-button>
  14. </v-button-group>
  15. </div>
  16. <div style="margin-top: 10px">
  17. <v-badge :dot="show">
  18. <a href="#" class="head-example" />
  19. </v-badge>
  20. <v-switch v-model="show"/>
  21. </div>
  22. </div>
  23. </template>
  24. <script>
  25. export default {
  26. data:()=> ({
  27. counter: 5,
  28. show:true
  29. }),
  30. methods: {
  31. decline() {
  32. this.counter--;
  33. },
  34. increase() {
  35. this.counter++;
  36. }
  37. }
  38. }
  39. </script>
  40. <style>
  41. .ant-badge:not(.ant-badge-status) {
  42. margin-right: 16px;
  43. }
  44. .head-example {
  45. width: 42px;
  46. height: 42px;
  47. border-radius: 6px;
  48. background: #eee;
  49. display: inline-block;
  50. }
  51. </style>

状态点

用于表示状态的小圆点。

  1. <v-badge status="success"></v-badge>
  2. <v-badge status="error"></v-badge>
  3. <v-badge status="default"></v-badge>
  4. <v-badge status="processing"></v-badge>
  5. <v-badge status="warning"></v-badge>
  6. <br />
  7. <v-badge status="success" text="Success"></v-badge>
  8. <br/>
  9. <v-badge status="error" text="Error"></v-badge>
  10. <br />
  11. <v-badge status="default" text="Default"></v-badge>
  12. <br />
  13. <v-badge status="processing" text="Processing"></v-badge>
  14. <br />
  15. <v-badge status="warning" text="Warning"></v-badge>
  16. </template>

API

Badge Props

参数说明类型默认值
count展示的数字,大于 overflowCount 时显示为 ${overflowCount}+,为 0 时隐藏number0
overflowCount展示封顶的数字值number99
dot不展示数字,只有一个小红点booleanfalse
countStyle设置count的样式object-
status设置 badge 为状态点('success'、'processing'、'default'、'error'、'warning')string-
text在设置了 status 的前提下有效,设置状态点的文本string-