This commit is contained in:
cbb
2026-02-07 14:13:00 +08:00
parent 8f5999e7fe
commit 0657b0a718
7 changed files with 112 additions and 21 deletions

View File

@@ -30,7 +30,8 @@
TUIStore,
StoreName,
TUITranslateService,
IMessageModel
IMessageModel,
TUIGroupService
} from '@tencentcloud/chat-uikit-engine-lite'
import { TUIGlobal } from '@tencentcloud/universal-api'
import {
@@ -64,6 +65,7 @@
// #endif
interface IProps {
role?: string
messageItem: IMessageModel
isMultipleSelectMode: boolean
}
@@ -75,8 +77,10 @@
const emits = defineEmits<IEmits>()
const props = withDefaults(defineProps<IProps>(), {
isMultipleSelectMode: false,
messageItem: () => ({} as IMessageModel)
role: '',
messageItem: () => ({}) as IMessageModel
})
const featureConfig = TUIChatConfig.getFeatureConfig()
const TYPES = TUIChatEngine.TYPES
@@ -116,18 +120,10 @@
key: 'revoke',
text: TUITranslateService.t('TUIChat.撤回'),
iconUrl: revokeIcon,
renderCondition() {
renderCondition: () => {
if (!featureConfig.RevokeMessage || !message.value) return false
if (isRedEnvelopeMessage(message.value)) return false
// console.log(message.value.conversationType === 'GROUP', '====')
console.log(message.value, '====')
// if (message.value.conversationType === 'GROUP') {
// TUIGroupService.getGroupAttributes({
// groupID: 'group1',
// keyList: ['key1', 'key2']
// })
// }
if (isRevokeMessage(message.value)) return true
return (
message.value.flow === 'out' &&
message.value.status === 'success'
@@ -214,7 +210,7 @@
const message = ref<IMessageModel>()
const messageToolDom = ref<HTMLElement>()
onMounted(() => {
onMounted(async () => {
TUIStore.watch(StoreName.CHAT, {
translateTextInfo: onMessageTranslationInfoUpdated,
voiceToTextInfo: onMessageConvertInfoUpdated
@@ -430,6 +426,20 @@
}
}
/** 判断群聊时撤回状态 */
const isRevokeMessage = (message: IMessageModel): boolean => {
if (message.conversationType === 'GROUP') {
if (props.role === 'Owner') {
return true
}
if (props.role === 'Admin') {
return true
}
return message.flow === 'out' && message.status === 'success'
}
return message.flow === 'out' && message.status === 'success'
}
function onMessageTranslationInfoUpdated(
info: Map<string, ITranslateInfo[]>
) {