Files
uniapp-im-shop/utils/call-user.js
2026-02-09 02:10:27 +08:00

60 lines
1.5 KiB
JavaScript

import TUIChatEngine, {
TUIChatService
} from '@tencentcloud/chat-uikit-engine-lite'
import { CHAT_MSG_CUSTOM_TYPE } from '../TUIKit/constant'
import { useAuthUser } from '../composables/useAuthUser'
import { useUserStore } from '../stores/user'
/** 格式化时间显示 */
const formatTime = date => {
const minutes = Math.floor(date / 60)
const seconds = date % 60
return `${minutes.toString().padStart(2, '0')}:${seconds
.toString()
.padStart(2, '0')}`
}
/** 通话消息发送 */
export const sendCallMsg = async state => {
const { resetTime, stopTimer } = useUserStore()
const { callUserId, callMode, callDuration, tencentUserSig } =
useAuthUser()
const to = callUserId.value
const userID = tencentUserSig.value.userId
if (to !== userID) {
let title = ''
if ([0, 11].includes(state)) {
title = { 0: '已挂断', 11: '对方已拒绝' }[state]
} else {
title = `通话时长 ${formatTime(callDuration.value)}`
}
const payload = {
data: JSON.stringify({
businessID:
callMode.value == 0
? CHAT_MSG_CUSTOM_TYPE.VOICE_CALL
: CHAT_MSG_CUSTOM_TYPE.VIDEO_CALL,
title,
userID: to
}),
description: title,
extension: title
}
const options = {
to,
payload,
conversationType: TUIChatEngine.TYPES.CONV_C2C,
needReadReceipt: false
}
resetTime()
await TUIChatService.sendCustomMessage(options)
} else {
resetTime()
}
if (callMode.value == 1) {
stopTimer()
}
}