加载消息时按时间排序以确保最新消息在最后

This commit is contained in:
jxxghp
2025-07-20 08:32:10 +08:00
parent 1586137a5d
commit cd58498971
+15 -13
View File
@@ -43,16 +43,11 @@ function handleSSEMessage(event: MessageEvent) {
} }
// 使用优化的SSE连接 // 使用优化的SSE连接
const sseConnection = useSSE( useSSE(`${import.meta.env.VITE_API_BASE_URL}system/message?role=user`, handleSSEMessage, 'message-view', {
`${import.meta.env.VITE_API_BASE_URL}system/message?role=user`, backgroundCloseDelay: 5000,
handleSSEMessage, reconnectDelay: 3000,
'message-view', maxReconnectAttempts: 3,
{ })
backgroundCloseDelay: 5000,
reconnectDelay: 3000,
maxReconnectAttempts: 3
}
)
// 调用API加载存量消息 // 调用API加载存量消息
async function loadMessages({ done }: { done: any }) { async function loadMessages({ done }: { done: any }) {
@@ -73,10 +68,17 @@ async function loadMessages({ done }: { done: any }) {
// 已加载过 // 已加载过
isLoaded.value = true isLoaded.value = true
if (currData.value.length > 0) { if (currData.value.length > 0) {
// 按时间排序,确保最新的消息在最后
currData.value.sort((a, b) => {
const timeA = a.reg_time || a.date || ''
const timeB = b.reg_time || b.date || ''
return compareTime(timeA, timeB)
})
// 取最后一条时间为存量消息最新时间 // 取最后一条时间为存量消息最新时间
lastTime.value = currData.value[currData.value.length - 1].reg_time ?? '' lastTime.value =
// 倒序 currData.value[currData.value.length - 1].reg_time ?? currData.value[currData.value.length - 1].date ?? ''
currData.value.reverse()
// 合并数据 // 合并数据
messages.value = [...currData.value, ...messages.value] messages.value = [...currData.value, ...messages.value]
if (page.value === 1) { if (page.value === 1) {