diff --git a/components/ChatHistory.vue b/components/ChatHistory.vue index 218be47..2934566 100644 --- a/components/ChatHistory.vue +++ b/components/ChatHistory.vue @@ -12,7 +12,13 @@ 新建对话 - + {{ item.title }} - + @@ -85,6 +92,8 @@ export default { showPopup: false, currentActiveGroup: -1, currentActiveIndex: -1, + activeItemId: "", // 存储当前激活项的ID + scrollToView: "", // 用于scroll-into-view属性 }; }, watch: { @@ -99,8 +108,43 @@ export default { this.$emit("update:show", val); } }, + // 监听聊天历史数据变化,找到激活项并滚动 + chatHistoryList3: { + handler() { + this.$nextTick(() => { + this.scrollToActiveItem(); + }); + }, + deep: true, + immediate: true, + }, }, methods: { + // 滚动到激活的聊天项 + scrollToActiveItem() { + // 查找激活的聊天项 + let activeItemFound = false; + + for ( + let groupIndex = 0; + groupIndex < this.chatHistoryList3.length; + groupIndex++ + ) { + const group = this.chatHistoryList3[groupIndex]; + for (let index = 0; index < group.conversation.length; index++) { + const item = group.conversation[index]; + if (item.isActiveChat) { + activeItemFound = true; + this.activeItemId = `chat-item-${item.id}`; + // 设置scrollToView的值,使scroll-view自动滚动到该元素 + this.scrollToView = this.activeItemId; + break; + } + } + if (activeItemFound) break; + } + }, + selectChatItem(groupIndex, index, conversationId) { // this.currentActiveGroup = groupIndex; // this.currentActiveIndex = index; @@ -183,7 +227,7 @@ export default { } } } - + .bottom-space { height: 30rpx; width: 100%; @@ -204,7 +248,7 @@ export default { align-items: center; .user-avatar { - width: 56rpx; + width: 56rpx; height: 56rpx; border-radius: 50%; margin-right: 30rpx; diff --git a/pages/home/index/index.vue b/pages/home/index/index.vue index 87a24e9..a0a9f14 100644 --- a/pages/home/index/index.vue +++ b/pages/home/index/index.vue @@ -376,7 +376,18 @@ export default { deep: true, }, }, - onLoad() {}, + onLoad() { + // 预加载背景图 + // uni.getImageInfo({ + // src: '/static/common/images/images_bg.png', + // success: () => { + // console.log('背景图预加载成功'); + // }, + // fail: (err) => { + // console.error('背景图预加载失败', err); + // } + // }); + }, methods: { handleLeftClick() { this.$u.api.GetConversationPage().then((res) => { @@ -573,16 +584,6 @@ export default {