<docs> --- order: 3 title: zh-CN: 回复框 en-US: Reply Editor --- ## zh-CN 评论编辑器组件提供了相同样式的封装以支持自定义评论编辑器。 ## en-US Comment can be used as editor, user can customize the editor component. </docs> <template> <a-list v-if="comments.length" :data-source="comments" :header="`${comments.length} ${comments.length > 1 ? 'replies' : 'reply'}`" item-layout="horizontal" > <template #renderItem="{ item }"> <a-list-item> <a-comment :author="item.author" :avatar="item.avatar" :content="item.content" :datetime="item.datetime" /> </a-list-item> </template> </a-list> <a-comment> <template #avatar> <a-avatar src="https://joeschmoe.io/api/v1/random" alt="Han Solo" /> </template> <template #content> <a-form-item> <a-textarea v-model:value="value" :rows="4" /> </a-form-item> <a-form-item> <a-button html-type="submit" :loading="submitting" type="primary" @click="handleSubmit"> Add Comment </a-button> </a-form-item> </template> </a-comment> </template> <script lang="ts" setup> import { ref } from 'vue'; import dayjs from 'dayjs'; import relativeTime from 'dayjs/plugin/relativeTime'; dayjs.extend(relativeTime); type Comment = Record<string, string>; const comments = ref<Comment[]>([]); const submitting = ref<boolean>(false); const value = ref<string>(''); const handleSubmit = () => { if (!value.value) { return; } submitting.value = true; setTimeout(() => { submitting.value = false; comments.value = [ { author: 'Han Solo', avatar: 'https://joeschmoe.io/api/v1/random', content: value.value, datetime: dayjs().fromNow(), }, ...comments.value, ]; value.value = ''; }, 1000); }; </script>