• Card 卡片
    • 何时使用
    • 代码演示
      • 典型卡片
      • 无边框
      • 更灵活的内容展示
      • 网格型内嵌卡片
      • 栅格卡片
      • 内部卡片
      • 预加载的卡片
      • 支持更多内容配置
      • 简洁卡片
      • 带页签的卡片
  • API
    • Card
    • 事件
    • Card.Grid
    • Card.Meta

    Card 卡片

    通用卡片容器

    何时使用

    最基础的卡片容器,可承载文字、列表、图片、段落,常用于后台概览页面。

    代码演示

    Card卡片 - 图1

    典型卡片

    包含标题、内容、操作区域。

    1. <template>
    2. <a-card title="Card Title">
    3. <a href="#" slot="extra">more</a>
    4. <p>card content</p>
    5. <p>card content</p>
    6. <p>card content</p>
    7. </a-card>
    8. </template>

    Card卡片 - 图2

    无边框

    在灰色背景上使用无边框的卡片

    1. <template>
    2. <div style="background:#ECECEC; padding:30px">
    3. <a-card title="Card title" :bordered="false" style="width: 300px">
    4. <p>Card content</p>
    5. <p>Card content</p>
    6. <p>Card content</p>
    7. </a-card>
    8. </div>
    9. </template>

    Card卡片 - 图3

    更灵活的内容展示

    可以利用 Card.Meta 支持更灵活的内容

    1. <template>
    2. <a-card
    3. hoverable
    4. style="width: 240px"
    5. >
    6. <img
    7. alt="example"
    8. src="https://os.alipayobjects.com/rmsportal/QBnOOoLaAfKPirc.png"
    9. slot="cover"
    10. />
    11. <a-card-meta
    12. title="Europe Street beat">
    13. <template slot="description">www.instagram.com</template>
    14. </a-card-meta>
    15. </a-card>
    16. </template>

    Card卡片 - 图4

    网格型内嵌卡片

    一种常见的卡片内容区隔模式。

    1. <template>
    2. <a-card title="Card Title">
    3. <a-card-grid style="width:25%;textAlign:'center'">Content</a-card-grid>
    4. <a-card-grid style="width:25%;textAlign:'center'">Content</a-card-grid>
    5. <a-card-grid style="width:25%;textAlign:'center'">Content</a-card-grid>
    6. <a-card-grid style="width:25%;textAlign:'center'">Content</a-card-grid>
    7. <a-card-grid style="width:25%;textAlign:'center'">Content</a-card-grid>
    8. <a-card-grid style="width:25%;textAlign:'center'">Content</a-card-grid>
    9. <a-card-grid style="width:25%;textAlign:'center'">Content</a-card-grid>
    10. </a-card>
    11. </template>

    Card卡片 - 图5

    栅格卡片

    在系统概览页面常常和栅格进行配合。

    1. <template>
    2. <div style="background-color: #ececec; padding: 20px;">
    3. <a-row :gutter="16">
    4. <a-col :span="8">
    5. <a-card title="Card title" :bordered=false>
    6. <p>card content</p>
    7. </a-card>
    8. </a-col>
    9. <a-col :span="8">
    10. <a-card title="Card title" :bordered=false>
    11. <p>card content</p>
    12. </a-card>
    13. </a-col>
    14. <a-col :span="8">
    15. <a-card title="Card title" :bordered=false>
    16. <p>card content</p>
    17. </a-card>
    18. </a-col>
    19. </a-row>
    20. </div>
    21. </template>

    Card卡片 - 图6

    内部卡片

    可以放在普通卡片内部,展示多层级结构的信息

    1. <template>
    2. <a-card title="Card title">
    3. <p style="fontSize: 14px;color: rgba(0, 0, 0, 0.85); marginBottom: 16px;fontWeight: 500"
    4. >
    5. Group title
    6. </p>
    7. <a-card title="Inner card title">
    8. <a href="#" slot="extra">More</a>
    9. Inner Card content
    10. </a-card>
    11. <a-card title="Inner card title" :style="{ marginTop: '16px' }">
    12. <a href="#" slot="extra">More</a>
    13. Inner Card content
    14. </a-card>
    15. </a-card>
    16. </template>

    Card卡片 - 图7

    预加载的卡片

    数据读入前会有文本块样式

    1. <template>
    2. <div>
    3. <a-card :loading="loading" title="Card title">
    4. whatever content
    5. </a-card>
    6. <a-button @click="handleClick" style="marginTop: 16px">Toggle loading</a-button>
    7. </div>
    8. </template>
    9. <script>
    10. export default {
    11. data() {
    12. return {
    13. loading: true,
    14. }
    15. },
    16. methods: {
    17. handleClick() {
    18. this.loading = !this.loading
    19. }
    20. },
    21. }
    22. </script>

    Card卡片 - 图8

    支持更多内容配置

    一种支持封面、头像、标题和描述信息的卡片。

    1. <template>
    2. <a-card
    3. hoverable
    4. style="width: 300px"
    5. >
    6. <img
    7. alt="example"
    8. src="https://gw.alipayobjects.com/zos/rmsportal/JiqGstEfoWAOHiTxclqi.png"
    9. slot="cover"
    10. />
    11. <template class="ant-card-actions" slot="actions">
    12. <a-icon type="setting" />
    13. <a-icon type="edit" />
    14. <a-icon type="ellipsis" />
    15. </template>
    16. <a-card-meta
    17. title="Card title"
    18. description="This is the description">
    19. <a-avatar slot="avatar" src="https://zos.alipayobjects.com/rmsportal/ODTLcjxAfvqbxHnVXCYX.png" />
    20. </a-card-meta>
    21. </a-card>
    22. </template>

    Card卡片 - 图9

    简洁卡片

    只包含内容区域。

    1. <template>
    2. <a-card style="width: 300px">
    3. <p>Card content</p>
    4. <p>Card content</p>
    5. <p>Card content</p>
    6. </a-card>
    7. </template>

    Card卡片 - 图10

    带页签的卡片

    可承载更多内容

    1. <template>
    2. <div>
    3. <a-card
    4. style="width:100%"
    5. title="Card title"
    6. :tabList="tabList"
    7. :activeTabKey="key"
    8. @tabChange="key => onTabChange(key, 'key')"
    9. >
    10. <span slot="customRender" slot-scope="item">
    11. <a-icon type="home"/>{{item.key}}
    12. </span>
    13. <a href="#" slot="extra">More</a>
    14. {{contentList[key]}}
    15. </a-card>
    16. <br /><br />
    17. <a-card
    18. style="width:100%"
    19. :tabList="tabListNoTitle"
    20. :activeTabKey="noTitleKey"
    21. @tabChange="key => onTabChange(key, 'noTitleKey')"
    22. >
    23. <p v-if="noTitleKey === 'article'">article content</p>
    24. <p v-else="noTitleKey === 'app'">app content</p>
    25. <p v-else="noTitleKey === 'project'">project content</p>
    26. </a-card>
    27. </div>
    28. </template>
    29. <script>
    30. export default {
    31. data () {
    32. return {
    33. tabList: [{
    34. key: 'tab1',
    35. // tab: 'tab1',
    36. scopedSlots: { tab: 'customRender'}
    37. }, {
    38. key: 'tab2',
    39. tab: 'tab2',
    40. }],
    41. contentList: {
    42. tab1: 'content1',
    43. tab2: 'content2',
    44. },
    45. tabListNoTitle: [{
    46. key: 'article',
    47. tab: 'article',
    48. }, {
    49. key: 'app',
    50. tab: 'app',
    51. }, {
    52. key: 'project',
    53. tab: 'project',
    54. }],
    55. key: 'tab1',
    56. noTitleKey: 'app',
    57. }
    58. },
    59. methods: {
    60. onTabChange (key, type) {
    61. console.log(key, type)
    62. this[type] = key
    63. },
    64. },
    65. }
    66. </script>

    API

    Card

    参数说明类型默认值
    actions卡片操作组,位置在卡片底部slots-
    activeTabKey当前激活页签的 keystring-
    headStyle自定义标题区域样式object-
    bodyStyle内容区域自定义样式object-
    bordered是否有边框booleantrue
    cover卡片封面slot-
    defaultActiveTabKey初始化选中页签的 key,如果没有设置 activeTabKeystring第一个页签
    extra卡片右上角的操作区域string|slot-
    hoverable鼠标移过时可浮起booleanfalse
    loading当卡片内容还在加载中时,可以用 loading 展示一个占位booleanfalse
    tabList页签标题列表, 可以通过scopedSlots属性自定义tabArray<{key: string, tab: any, scopedSlots: {tab: 'XXX'}}>-
    title卡片标题string|slot-
    type卡片类型,可设置为 inner 或 不设置string-

    事件

    事件名称说明回调参数
    tabChange页签切换的回调(key) => void

    Card.Grid

    Card.Meta

    PropertyDescriptionTypeDefault
    avatar头像/图标slot-
    description描述内容string|slot-
    title标题内容string|slot-