聊天框数据根据最新时间逐步往上显示
This commit is contained in:
@@ -152,7 +152,7 @@
|
|||||||
:class="activeMenu === 'settings' ? '' : 'active'"
|
:class="activeMenu === 'settings' ? '' : 'active'"
|
||||||
>
|
>
|
||||||
<div
|
<div
|
||||||
v-for="message in currentMessages"
|
v-for="message in contactMessages"
|
||||||
:key="message.id"
|
:key="message.id"
|
||||||
class="message-row"
|
class="message-row"
|
||||||
:class="{
|
:class="{
|
||||||
@@ -238,7 +238,7 @@ export default {
|
|||||||
// 最近聊天列表
|
// 最近聊天列表
|
||||||
recentChats: [],
|
recentChats: [],
|
||||||
// 聊天消息
|
// 聊天消息
|
||||||
contactMessages: {},
|
contactMessages: [],
|
||||||
// 搜索联系人
|
// 搜索联系人
|
||||||
searchText: "",
|
searchText: "",
|
||||||
// 输入的消息内容
|
// 输入的消息内容
|
||||||
@@ -261,15 +261,6 @@ export default {
|
|||||||
contact.contactName.toLowerCase().includes(keyword)
|
contact.contactName.toLowerCase().includes(keyword)
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
|
||||||
// 当前联系人对应的消息
|
|
||||||
currentMessages() {
|
|
||||||
if (!this.currentContact) {
|
|
||||||
return [];
|
|
||||||
}
|
|
||||||
|
|
||||||
return this.contactMessages[this.currentContact.contactName] || [];
|
|
||||||
},
|
|
||||||
},
|
},
|
||||||
|
|
||||||
created() {
|
created() {
|
||||||
@@ -350,21 +341,18 @@ export default {
|
|||||||
limit: limit,
|
limit: limit,
|
||||||
})
|
})
|
||||||
.then((response) => {
|
.then((response) => {
|
||||||
const contactMessages = {};
|
const contactMessages = [];
|
||||||
const messages = response.data.messages || [];
|
const messages = response.data.messages || [];
|
||||||
// 把联系人的消息按联系人 id 分组存储
|
// 把联系人的消息按联系人 id 分组存储
|
||||||
messages.forEach((item) => {
|
messages.forEach((item) => {
|
||||||
if (!contactMessages[contactName]) {
|
contactMessages.push({
|
||||||
contactMessages[contactName] = [];
|
|
||||||
}
|
|
||||||
contactMessages[contactName].push({
|
|
||||||
...item,
|
...item,
|
||||||
from:
|
from:
|
||||||
item.senderName === this.currentUser.username ? "me" : "other",
|
item.senderName === this.currentUser.username ? "me" : "other",
|
||||||
time: item.time || item.createdAt,
|
time: item.time || item.createdAt,
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
this.contactMessages = contactMessages;
|
this.contactMessages = contactMessages.reverse();
|
||||||
console.log("contactMessages", contactMessages);
|
console.log("contactMessages", contactMessages);
|
||||||
})
|
})
|
||||||
.catch((error) => {
|
.catch((error) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user