聊天修改

This commit is contained in:
18631081161 2026-01-22 17:38:16 +08:00
parent d5e677a09b
commit b22add232d

View File

@ -477,6 +477,43 @@ const loadMessages = async (isLoadMore = false) => {
id: msg.messageId ?? msg.id ?? Date.now(),
isMine: typeof msg.isSelf === 'boolean' ? msg.isSelf : msg.senderId === myUserId.value
}
//
if (msg.messageType >= 4) {
//
mapped.status = ExchangeStatus.PENDING
if (msg.extraData) {
try {
const extraData = JSON.parse(msg.extraData)
// Status status
const status = extraData.Status ?? extraData.status ?? ExchangeStatus.PENDING
mapped.status = status
//
if (msg.messageType === MessageType.EXCHANGE_WECHAT && status === ExchangeStatus.ACCEPTED) {
//
// Pascal Case camelCase
const senderWeChat = extraData.SenderWeChat ?? extraData.senderWeChat
const receiverWeChat = extraData.ReceiverWeChat ?? extraData.receiverWeChat
mapped.exchangedContent = mapped.isMine ? receiverWeChat : senderWeChat
}
//
if (msg.messageType === MessageType.EXCHANGE_PHOTO && status === ExchangeStatus.ACCEPTED) {
//
// Pascal Case camelCase
const senderPhotos = extraData.SenderPhotos ?? extraData.senderPhotos
const receiverPhotos = extraData.ReceiverPhotos ?? extraData.receiverPhotos
mapped.photos = mapped.isMine ? receiverPhotos : senderPhotos
mapped.photoCount = mapped.photos?.length || 0
}
} catch (e) {
console.error('解析消息extraData失败:', e)
}
}
}
return mapped
})
@ -781,19 +818,22 @@ const handleRespondExchange = async (messageId, accept) => {
if (message) {
message.status = accept ? ExchangeStatus.ACCEPTED : ExchangeStatus.REJECTED
if (accept && res.data?.exchangedData) {
// JSON
if (message.messageType === MessageType.EXCHANGE_WECHAT) {
message.exchangedContent = res.data.exchangedData
} else if (message.messageType === MessageType.EXCHANGE_PHOTO) {
try {
const photos = JSON.parse(res.data.exchangedData || '[]')
try {
const exchangedData = JSON.parse(res.data.exchangedData)
//
if (message.messageType === MessageType.EXCHANGE_WECHAT) {
//
message.exchangedContent = exchangedData.SenderWeChat || exchangedData.senderWeChat
} else if (message.messageType === MessageType.EXCHANGE_PHOTO) {
//
const photos = exchangedData.SenderPhotos || exchangedData.senderPhotos || []
if (Array.isArray(photos)) {
message.photos = photos
message.photoCount = photos.length
}
} catch (e) {
console.error('解析交换照片数据失败:', e)
}
} catch (e) {
console.error('解析交换数据失败:', e)
}
}
}