diff --git a/pages/home/index/index.vue b/pages/home/index/index.vue index 00ef9c8..3525b2a 100644 --- a/pages/home/index/index.vue +++ b/pages/home/index/index.vue @@ -21,7 +21,7 @@ > Hi~ 我是源小新,你们的AI校园助手,非常高兴认识您,我可以为你答疑解惑。Hi~ 我是源小新,你们的AI校园助手,非常高兴认识您,我可以为你答疑解惑。 @@ -117,7 +117,7 @@ - + 已经到顶了 @@ -283,7 +283,7 @@ export default { isLoadingMore: false, // 是否正在加载更多的标志位 noMoreData: false, // 是否已加载全部历史消息 isSwitchingConversation: false, // 是否正在切换对话的标志位 - + pageQuery: { PageIndex: 1, PageSize: 20, @@ -502,7 +502,7 @@ export default { // 添加到消息列表 this.messageGroups.push(userMessage); this.messageValue = ""; - + // 立即添加一个AI回复的加载状态消息 const loadingMessage = { id: "loading_" + Math.random().toString(36).substring(2, 15), @@ -514,9 +514,9 @@ export default { messageType: 0, timeLabel: 0, displayTime: "", - isLoading: true // 标记为加载状态 + isLoading: true, // 标记为加载状态 }; - + // 添加加载状态消息到列表 this.messageGroups.push(loadingMessage); @@ -532,7 +532,9 @@ export default { this.currentConversationId = data.conversationId; // 从消息列表中移除加载状态消息 - this.messageGroups = this.messageGroups.filter(msg => !msg.isLoading); + this.messageGroups = this.messageGroups.filter( + (msg) => !msg.isLoading + ); // 创建AI回复消息对象 const aiMessage = { @@ -554,10 +556,12 @@ export default { }) .catch((error) => { console.error("API请求失败:", error); - + // 从消息列表中移除加载状态消息 - this.messageGroups = this.messageGroups.filter(msg => !msg.isLoading); - + this.messageGroups = this.messageGroups.filter( + (msg) => !msg.isLoading + ); + // 添加错误消息 const errorMessage = { id: "error_" + Math.random().toString(36).substring(2, 15), @@ -570,7 +574,7 @@ export default { timeLabel: 0, displayTime: "", }; - + this.messageGroups.push(errorMessage); }); }, @@ -638,18 +642,18 @@ export default { // 关闭弹窗 this.popupShow = false; this.isChat = true; - + // 设置切换对话标志位,防止触发上拉刷新 this.isSwitchingConversation = true; - + this.currentConversationId = ""; this.messageGroups = []; - + // 重置分页和加载状态 this.pageQuery.PageIndex = 1; this.isLoadingMore = false; this.noMoreData = false; - + // 延迟重置切换对话标志位 setTimeout(() => { this.isSwitchingConversation = false; @@ -659,18 +663,18 @@ export default { // 开始新对话 handleStartChat() { this.isChat = true; - + // 设置切换对话标志位,防止触发上拉刷新 this.isSwitchingConversation = true; - + this.currentConversationId = ""; this.messageGroups = []; - + // 重置分页和加载状态 this.pageQuery.PageIndex = 1; this.isLoadingMore = false; this.noMoreData = false; - + // 延迟重置切换对话标志位 setTimeout(() => { this.isSwitchingConversation = false; @@ -685,7 +689,7 @@ export default { // 滚动到顶部事件处理 onScrollToUpper() { console.log("触发上拉刷新"); - + // 如果已经没有更多数据或正在切换对话,不再触发上拉刷新 if (this.noMoreData || this.isSwitchingConversation) { return; @@ -711,7 +715,7 @@ export default { this.$refs.uToast.show({ title: "已经到顶了", type: "warning", - duration: 1500 + duration: 1500, }); return; } @@ -1002,7 +1006,7 @@ export default { text-align: center; margin-bottom: 32rpx; } - + .no-more-data { text-align: center; font-size: 24rpx; @@ -1050,7 +1054,7 @@ export default { display: flex; align-items: center; justify-content: flex-start; - + .dot { display: inline-block; width: 12rpx; @@ -1060,20 +1064,20 @@ export default { margin: 0 6rpx; opacity: 0.6; animation: dot-flashing 1.5s infinite linear alternate; - + &:nth-child(1) { animation-delay: 0s; } - + &:nth-child(2) { animation-delay: 0.5s; } - + &:nth-child(3) { animation-delay: 1s; } } - + @keyframes dot-flashing { 0% { opacity: 0.6;