Empty空状态 - 图1

Empty 空状态

空状态时的展示占位图。

何时使用

  • 当目前没有数据时,用于显式的用户提示。
  • 初始化场景时的引导创建流程。

代码演示

Empty空状态 - 图2

基本用法

简单的展示。

  1. <template>
  2. <a-empty />
  3. </template>

Empty空状态 - 图3

选择图片

可以通过设置 imageEmpty.PRESENTED_IMAGE_SIMPLE 选择另一种风格的图片。

  1. <template>
  2. <a-empty :image="simpleImage" />
  3. </template>
  4. <script lang="ts">
  5. import { defineComponent } from 'vue';
  6. import { Empty } from 'ant-design-vue';
  7. export default defineComponent({
  8. setup() {
  9. return {
  10. simpleImage: Empty.PRESENTED_IMAGE_SIMPLE,
  11. };
  12. },
  13. });
  14. </script>

Empty空状态 - 图4

自定义

自定义图片、描述、附属内容。

  1. <template>
  2. <a-empty
  3. image="https://gw.alipayobjects.com/mdn/miniapp_social/afts/img/A*pevERLJC9v0AAAAAAAAAAABjAQAAAQ/original"
  4. :image-style="{
  5. height: '60px',
  6. }"
  7. >
  8. <template #description>
  9. <span>
  10. Customize
  11. <a href="#API">Description</a>
  12. </span>
  13. </template>
  14. <a-button type="primary">Create Now</a-button>
  15. </a-empty>
  16. </template>

default

Empty空状态 - 图5

Empty空状态 - 图6

全局化配置

自定义全局组件的 Empty 样式。

  1. <template>
  2. <a-switch
  3. un-checked-children="default"
  4. checked-children="customize"
  5. v-model:checked="customize"
  6. />
  7. <a-divider />
  8. <a-config-provider>
  9. <template v-if="customize" #renderEmpty>
  10. <div style="text-align: center">
  11. <smile-outlined style="font-size: 20px" />
  12. <p>Data Not Found</p>
  13. </div>
  14. </template>
  15. <div class="config-provider">
  16. <h3>Select</h3>
  17. <a-select :style="style" :options="[]" />
  18. <h3>TreeSelect</h3>
  19. <a-tree-select :style="style" :tree-data="[]" />
  20. <h3>Cascader</h3>
  21. <a-cascader :style="style" :options="[]" :show-search="true" />
  22. <h3>Transfer</h3>
  23. <a-transfer :data-source="[]" />
  24. <h3>Table</h3>
  25. <a-table style="margin-top: 8px" :columns="columns" :data-source="[]" />
  26. <h3>List</h3>
  27. <a-list :data-source="[]" />
  28. </div>
  29. </a-config-provider>
  30. </template>
  31. <script lang="ts">
  32. import { SmileOutlined } from '@ant-design/icons-vue';
  33. import { defineComponent, ref } from 'vue';
  34. export default defineComponent({
  35. components: {
  36. SmileOutlined,
  37. },
  38. setup() {
  39. const customize = ref<boolean>(false);
  40. return {
  41. customize,
  42. style: { width: '200px' },
  43. columns: [{ title: 'Name' }, { title: 'Age' }],
  44. };
  45. },
  46. });
  47. </script>
  48. <style scoped>
  49. .code-box-demo .config-provider h3 {
  50. font-size: inherit;
  51. margin: 16px 0 8px 0;
  52. }
  53. </style>

Empty空状态 - 图7

无描述

无描述展示。

  1. <template>
  2. <a-empty :description="false" />
  3. </template>

API

  1. <Empty>
  2. <Button>创建</Button>
  3. </Empty>
参数说明类型默认值版本
description自定义描述内容string | v-slot-
imageStyle图片样式CSSProperties-
image设置显示图片,为 string 时表示自定义图片地址string | v-slotfalse

内置图片

  • Empty.PRESENTED_IMAGE_SIMPLE

    Empty空状态 - 图8

  • Empty.PRESENTED_IMAGE_DEFAULT

    Empty空状态 - 图9