聊天修改
This commit is contained in:
parent
d5e677a09b
commit
b22add232d
|
|
@ -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)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user