ant-design-vue/components/comment/demo/list.vue

79 lines
2.2 KiB
Vue

<docs>
---
order: 1
title:
zh-CN: 配合 List 组件
en-US: Usage with list
---
## zh-CN
配合 List 组件展现评论列表
## en-US
Displaying a series of comments using the `antd` List Component.
</docs>
<template>
<a-list
class="comment-list"
:header="`${data.length} replies`"
item-layout="horizontal"
:data-source="data"
>
<template #renderItem="{ item }">
<a-list-item>
<a-comment :author="item.author" :avatar="item.avatar">
<template #actions>
<span v-for="(action, index) in item.actions" :key="index">{{ action }}</span>
</template>
<template #content>
<p>
{{ item.content }}
</p>
</template>
<template #datetime>
<a-tooltip :title="item.datetime.format('YYYY-MM-DD HH:mm:ss')">
<span>{{ item.datetime.fromNow() }}</span>
</a-tooltip>
</template>
</a-comment>
</a-list-item>
</template>
</a-list>
</template>
<script lang="ts">
import dayjs from 'dayjs';
import { defineComponent } from 'vue';
import relativeTime from 'dayjs/plugin/relativeTime';
dayjs.extend(relativeTime);
export default defineComponent({
setup() {
return {
data: [
{
actions: ['Reply to'],
author: 'Han Solo',
avatar: 'https://zos.alipayobjects.com/rmsportal/ODTLcjxAfvqbxHnVXCYX.png',
content:
'We supply a series of design principles, practical patterns and high quality design resources (Sketch and Axure), to help people create their product prototypes beautifully and efficiently.',
datetime: dayjs().subtract(1, 'days'),
},
{
actions: ['Reply to'],
author: 'Han Solo',
avatar: 'https://zos.alipayobjects.com/rmsportal/ODTLcjxAfvqbxHnVXCYX.png',
content:
'We supply a series of design principles, practical patterns and high quality design resources (Sketch and Axure), to help people create their product prototypes beautifully and efficiently.',
datetime: dayjs().subtract(2, 'days'),
},
],
dayjs,
};
},
});
</script>