ConversationActions

最近更新时间:2025-09-12 18:14:52

我的收藏

概述

ConversationActions 组件负责单条会话的操作,默认支持删除、置顶、免打扰和标记未读/已读。

基础用法

ConversationList 中,可以通过 actionsConfig 属性快速自定义会话操作。
<template>
<UIKitProvider>
<ConversationList :actions-config="actionsConfig" />
</UIKitProvider>
</template>

<script setup lang="ts">
import { UIKitProvider, ConversationList } from '@tencentcloud/chat-uikit-vue3';
import type { ConversationModel } from '@tencentcloud/chat-uikit-vue3';

const actionsConfig = {
enablePin: false,
onConversationDelete: (conversation: ConversationModel) => {
console.log('Delete conversation success');
},
customConversationActions: {
'custom-actions-1': {
label: 'custom-actions',
onClick: (conversation: ConversationModel) => {
console.log(conversation);
},
},
},
};
</script>

高阶用法

如果需要更深度的定制,可以直接替换 ConversationListConversationActions 属性。
<template>
<UIKitProvider>
<ConversationList
:ConversationActions="CustomConversationActions"
/>
</UIKitProvider>
</template>

<script setup lang="ts">
import { defineComponent } from 'vue';
import { UIKitProvider, ConversationList, ConversationActions } from '@tencentcloud/chat-uikit-vue3';
import type { ConversationActionsProps } from '@tencentcloud/chat-uikit-vue3';

const CustomConversationActions = defineComponent({
name: 'CustomConversationActions',
setup(props: ConversationActionsProps) {
return () => h(ConversationActions, {
...props,
enableDelete: false
});
}
});
</script>

Props

ConversationActions 组件的接口类型 ConversationActionsProps 基于 ConversationActionsConfig 接口进行扩展。

ConversationActionsProps

参数名
类型
默认值
说明
conversation(Required)
ConversationModel
-
必选参数,表示当前渲染会话操作对应的会话
className
string
-
自定义根元素的类名
style
CSSProperties
-
自定义根元素的样式

ConversationActionsConfig

参数名
类型
默认值
说明
enablePin
boolean
true
是否显示置顶功能按钮
enableMute
boolean
true
是否显示免打扰功能按钮
enableDelete
boolean
true
是否显示删除功能按钮
enableMarkUnread
boolean
true
是否显示标记未读功能按钮
onMarkConversationUnread
(conversation: ConversationModel, e?: Event) => void
-
自定义标记未读/已读会话的行为
onConversationPin
(conversation: ConversationModel, e?: Event) => void
-
自定义置顶/取消置顶会话的行为
onConversationMute
(conversation: ConversationModel, e?: Event) => void
-
自定义免打扰/取消免打扰会话的行为
onConversationDelete
(conversation: ConversationModel, e?: Event) => void
-
自定义删除会话的行为
customConversationActions
Record<string, ConversationActionItem>
-
自定义会话操作项
PopupIcon
any
-
自定义动作弹窗的图标
PopupElements
any[]
-
自定义动作弹窗的内容
onClick
(e: Event, key?: string, conversation?: ConversationModel) => void
-
点击动作项时的回调函数
onClose
() => void
-
关闭动作弹窗时的回调函数(H5 专用)

ConversationActionItem

参数名
类型
默认值
说明
enable
boolean
true
是否启用自定义操作项
label
string
-
自定义操作项的展示内容
onClick
(conversation: ConversationModel, e?: Event) => void
-
点击自定义操作项时的回调函数

Events

事件名
参数
说明
click
(e: Event, key?: string, conversation?: ConversationModel)
点击操作项时触发
close
()
关闭操作弹窗时触发
markConversationUnread
(conversation: ConversationModel, e?: Event)
标记会话未读/已读时触发
conversationPin
(conversation: ConversationModel, e?: Event)
置顶/取消置顶会话时触发
conversationMute
(conversation: ConversationModel, e?: Event)
免打扰/取消免打扰会话时触发
conversationDelete
(conversation: ConversationModel, e?: Event)
删除会话时触发

自定义组件

基础功能开关

通过设置 enablePinenableDeleteenableMuteenableMarkUnread 参数,您可以灵活地控制 ConversationActions 中的会话置顶、会话免打扰、会话删除和标记未读的显示。
<template>
<!-- 禁用置顶功能 -->
<ConversationActions :enablePin="false" :conversation="conversation" />

<!-- 禁用删除功能 -->
<ConversationActions :enableDelete="false" :conversation="conversation" />

<!-- 禁用免打扰功能 -->
<ConversationActions :enableMute="false" :conversation="conversation" />

<!-- 禁用标记未读功能 -->
<ConversationActions :enableMarkUnread="false" :conversation="conversation" />
</template>
enablePin: false
enableDelete: false
enableMute: false
enableMarkUnread="false"





事件响应

ConversationActions 组件默认支持会话删除、会话置顶/取消置顶、会话免打扰/取消免打扰、标记未读/已读功能,如已有功能的事件响应不符合您的需求,您可以自定义事件响应处理函数并进行覆盖;除了支持对于功能事件响应的自定义外,您还可以通过 @click 获取基础点击事件响应。
<template>
<ConversationList :conversation-actions="CustomConversationActions" />
</template>

<script setup lang="ts">
import { defineComponent, h } from 'vue';
import { ConversationActions, Toast } from '@tencentcloud/chat-uikit-vue3';
import type { ConversationActionsProps, ConversationModel } from '@tencentcloud/chat-uikit-vue3';

const CustomConversationActions = defineComponent({
name: 'CustomConversationActions',
setup(props: ConversationActionsProps) {
const handleConversationDelete = (conversation: ConversationModel) => {
conversation.deleteConversation().then(() => {
console.log('delete conversation successfully!');
}).catch(() => {
console.log('delete conversation failed!');
});
};

return () => h(ConversationActions, {
...props,
onConversationDelete: handleConversationDelete
});
}
});
</script>

自定义操作

customConversationActions 用于在 ConversationActions 上新增自定义操作项列表。
示例:新增自定义操作项
<template>
<ConversationList :ConversationActions="CustomConversationActions" />
</template>

<script setup lang="ts">
import { defineComponent, h } from 'vue';
import { ConversationActions } from '@tencentcloud/chat-uikit-vue3';
import type { ConversationActionsProps, ConversationModel } from '@tencentcloud/chat-uikit-vue3';

const CustomConversationActions = defineComponent({
name: 'CustomConversationActions',
setup(props: ConversationActionsProps) {
return () => h(ConversationActions, {
...props,
customConversationActions: {
'custom-actions-1': {
label: 'custom-actions',
onClick: (conversation: ConversationModel) => {
console.log(conversation);
},
},
}
});
}
});
</script>

UI 界面定制

您可以通过 PopupIcon 参数定制唤醒弹出按钮样式,通过 PopupElements 定制弹出内容。
示例:自定义唤起按钮
<template>
<ConversationList :ConversationActions="CustomConversationActions" />
</template>

<script setup lang="ts">
import { defineComponent, h } from 'vue';
import { ConversationActions } from '@tencentcloud/chat-uikit-vue3';
import type { ConversationActionsProps } from '@tencentcloud/chat-uikit-vue3';

const CustomConversationActions = defineComponent({
name: 'CustomConversationActions',
setup(props: ConversationActionsProps) {
const customIcon = h('div', '自定义 Icon');

return () => h(ConversationActions, {
...props,
PopupIcon: customIcon
});
}
});
</script>