对话逻辑修复

This commit is contained in:
2025-07-25 17:48:02 +08:00
parent a4c6140ed5
commit f576de68da
31 changed files with 2129 additions and 588 deletions
+41 -7
View File
@@ -80,7 +80,7 @@
:class="{ 'user-message': message.type === 'user' }"
>
<div class="message-bubble">
<div v-if="message.type === 'ai'" class="message-avatar">
<div v-if="message.type === 'ai' || message.sender === 'ai'" class="message-avatar">
<a-avatar :src="kaikaiAvatar" :size="32" />
</div>
<div class="message-content">
@@ -285,12 +285,13 @@
SearchOutlined,
HeartOutlined,
} from '@ant-design/icons-vue'
import { useChatStore } from '@/stores'
import { useChatStore, useUserStore } from '@/stores'
import { formatTime } from '@/utils'
import { messageApi, emotionSummaryApi } from '@/services/api'
import type { Dayjs } from 'dayjs'
const chatStore = useChatStore()
const userStore = useUserStore()
// 响应式数据
const messageInput = ref('')
@@ -443,9 +444,18 @@
try {
historyLoading.value = true
console.log('开始加载历史记录:', {
page,
pageSize: historyPagination.value.pageSize,
token: !!localStorage.getItem('token'),
userInfo: userStore.userInfo
})
// 调用API获取用户消息(后端会从token中获取用户信息)
const pageData = await messageApi.getUserMessages(page, historyPagination.value.pageSize)
console.log('API返回数据:', pageData)
if (page === 1) {
historyMessages.value = pageData.records || []
} else {
@@ -458,10 +468,20 @@
total: pageData.total || 0
}
console.log('历史记录加载成功:', historyMessages.value.length, '条')
console.log('历史记录加载成功:', {
total: historyMessages.value.length,
pagination: historyPagination.value
})
} catch (error) {
console.error('加载历史记录时发生错误:', error)
// 显示用户友好的错误信息
if (error.response?.status === 401) {
console.log('认证失败,可能需要重新登录')
} else if (error.response?.status === 500) {
console.log('服务器错误,请稍后重试')
}
} finally {
historyLoading.value = false
}
@@ -477,13 +497,27 @@
try {
historyLoading.value = true
console.log('开始搜索历史记录:', {
keyword: searchKeyword.value,
token: !!localStorage.getItem('token')
})
// 调用API搜索用户消息(后端会从token中获取用户信息)
const messages = await messageApi.searchUserMessages(searchKeyword.value, 100)
historyMessages.value = messages || []
console.log('搜索历史记录成功:', historyMessages.value.length, '条')
console.log('搜索历史记录成功:', {
keyword: searchKeyword.value,
total: historyMessages.value.length
})
} catch (error) {
console.error('搜索历史记录时发生错误:', error)
// 显示用户友好的错误信息
if (error.response?.status === 401) {
console.log('认证失败,搜索功能需要登录')
}
} finally {
historyLoading.value = false
}
@@ -509,15 +543,15 @@
id: msg.id,
content: msg.content,
sender: msg.sender === 'user' ? 'user' : 'ai',
timestamp: new Date(msg.createTime).getTime(),
type: 'text'
type: msg.sender === 'user' ? 'user' : 'ai', // 修复:type字段用于CSS类判断
timestamp: new Date(msg.createTime).getTime()
}))
// 按时间顺序排列(最新的在最后)
chatMessages.sort((a, b) => a.timestamp - b.timestamp)
// 添加到消息列表
messages.value.push(...chatMessages)
chatStore.messages.push(...chatMessages)
console.log('加载最近聊天记录成功:', chatMessages.length, '条')
}