Badge徽标数 - 图1

Badge 徽标数

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

何时使用

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

代码演示

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

Badge徽标数 - 图2

基本

简单的徽章展示,当 count0 时,默认不显示,但是可以使用 showZero 修改为显示。

  1. <template>
  2. <a-badge count="5">
  3. <a href="#" class="head-example" />
  4. </a-badge>
  5. <a-badge count="0" show-zero>
  6. <a href="#" class="head-example" />
  7. </a-badge>
  8. <a-badge>
  9. <template #count>
  10. <clock-circle-outlined style="color: #f5222d" />
  11. </template>
  12. <a href="#" class="head-example"></a>
  13. </a-badge>
  14. </template>
  15. <script lang="ts">
  16. import { defineComponent } from 'vue';
  17. import { ClockCircleOutlined } from '@ant-design/icons-vue';
  18. export default defineComponent({
  19. components: {
  20. ClockCircleOutlined,
  21. },
  22. });
  23. </script>

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

99+10+999+

封顶数字

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

  1. <template>
  2. <a-badge :count="99">
  3. <a href="#" class="head-example" />
  4. </a-badge>
  5. <a-badge :count="100">
  6. <a href="#" class="head-example" />
  7. </a-badge>
  8. <a-badge :count="99" :overflow-count="10">
  9. <a href="#" class="head-example" />
  10. </a-badge>
  11. <a-badge :count="1000" :overflow-count="999">
  12. <a href="#" class="head-example" />
  13. </a-badge>
  14. </template>

Success
Error
Default
Processing
warning

状态点

用于表示状态的小圆点。

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

Badge徽标数 - 图3

自定义标题

设置鼠标放在状态点上时显示的文字

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

[

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

](#)

可点击

用 a 标签进行包裹即可。

  1. <template>
  2. <a href="#">
  3. <a-badge count="5">
  4. <span class="head-example" />
  5. </a-badge>
  6. </a>
  7. </template>

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

99+

独立使用

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

  1. <template>
  2. <a-badge count="25" />
  3. <a-badge
  4. count="4"
  5. :number-style="{
  6. backgroundColor: '#fff',
  7. color: '#999',
  8. boxShadow: '0 0 0 1px #d9d9d9 inset',
  9. }"
  10. />
  11. <a-badge count="109" :number-style="{ backgroundColor: '#52c41a' }" />
  12. </template>

Badge徽标数 - 图4

讨嫌的小红点

没有具体的数字。

  1. <template>
  2. <div id="components-badge-demo-dot">
  3. <a-badge dot>
  4. <notification-outlined />
  5. </a-badge>
  6. <a-badge :count="0" dot>
  7. <notification-outlined />
  8. </a-badge>
  9. <a-badge dot>
  10. <a href="#">Link something</a>
  11. </a-badge>
  12. </div>
  13. </template>
  14. <script lang="ts">
  15. import { defineComponent } from 'vue';
  16. import { NotificationOutlined } from '@ant-design/icons-vue';
  17. export default defineComponent({
  18. components: {
  19. NotificationOutlined,
  20. },
  21. });
  22. </script>
  23. <style scoped>
  24. #components-badge-demo-dot .anticon-notification {
  25. width: 16px;
  26. height: 16px;
  27. line-height: 16px;
  28. font-size: 16px;
  29. }
  30. </style>

Badge徽标数 - 图5

Badge徽标数 - 图6

动态

展示动态变化的效果。

en-US

The count will be animated as it changes.

  1. <template>
  2. <div>
  3. <a-badge :count="count">
  4. <a href="#" class="head-example" />
  5. </a-badge>
  6. <a-button-group>
  7. <a-button @click="decline">
  8. <minus-outlined />
  9. </a-button>
  10. <a-button @click="increase">
  11. <plus-outlined />
  12. </a-button>
  13. </a-button-group>
  14. </div>
  15. <div style="margin-top: 10px">
  16. <a-badge :dot="show">
  17. <a href="#" class="head-example" />
  18. </a-badge>
  19. <a-switch v-model:checked="show" />
  20. </div>
  21. </template>
  22. <script lang="ts">
  23. import { defineComponent, ref } from 'vue';
  24. import { MinusOutlined, PlusOutlined } from '@ant-design/icons-vue';
  25. export default defineComponent({
  26. components: {
  27. MinusOutlined,
  28. PlusOutlined,
  29. },
  30. setup() {
  31. const count = ref<number>(5);
  32. const decline = () => {
  33. if (count.value >= 1) {
  34. count.value--;
  35. }
  36. };
  37. const increase = () => {
  38. count.value++;
  39. };
  40. return {
  41. count,
  42. show: ref<boolean>(true),
  43. decline,
  44. increase,
  45. };
  46. },
  47. });
  48. </script>

Presets:

Badge徽标数 - 图7

Custom:

Badge徽标数 - 图8

多彩徽标

1.5.0 后新增。我们添加了多种预设色彩的徽标样式,用作不同场景使用。如果预设值不能满足你的需求,可以设置为具体的色值。

  1. <template>
  2. <h4 style="margin-bottom: 16px">Presets:</h4>
  3. <div>
  4. <div v-for="color in colors" :key="color">
  5. <a-badge :color="color" :text="color" />
  6. </div>
  7. </div>
  8. <h4 style="margin: 16px 0">Custom:</h4>
  9. <div>
  10. <a-badge color="#f50" text="#f50" />
  11. <br />
  12. <a-badge color="#2db7f5" text="#2db7f5" />
  13. <br />
  14. <a-badge color="#87d068" text="#87d068" />
  15. <br />
  16. <a-badge color="#108ee9" text="#108ee9" />
  17. </div>
  18. </template>
  19. <script lang="ts">
  20. import { defineComponent } from 'vue';
  21. const colors = [
  22. 'pink',
  23. 'red',
  24. 'yellow',
  25. 'orange',
  26. 'cyan',
  27. 'green',
  28. 'blue',
  29. 'purple',
  30. 'geekblue',
  31. 'magenta',
  32. 'volcano',
  33. 'gold',
  34. 'lime',
  35. ];
  36. export default defineComponent({
  37. setup() {
  38. return {
  39. colors,
  40. };
  41. },
  42. });
  43. </script>

API

  1. <a-badge :count="5">
  2. <a href="#" class="head-example" />
  3. </a-badge>
  1. <a-badge :count="5" />
参数说明类型默认值版本
color自定义小圆点的颜色string-1.5.0
count展示的数字,大于 overflowCount 时显示为 ${overflowCount}+,为 0 时隐藏number | string | slot
dot不展示数字,只有一个小红点booleanfalse
offset设置状态点的位置偏移,格式为 [x, y][number|string, number|string]-
overflowCount展示封顶的数字值number99
showZero当数值为 0 时,是否展示 Badgebooleanfalse
status设置 Badge 为状态点Enum{ ‘success’, ‘processing, ‘default’, ‘error’, ‘warning’ }‘’
text在设置了 status 的前提下有效,设置状态点的文本string‘’
numberStyle设置状态点的样式object‘’
title设置鼠标放在状态点上时显示的文字stringcount