Browse Source

更改消息排序规则

master
袁磊 8 months ago
parent
commit
baf1c42f0c
  1. 14
      uni_modules/vrapile-im/pages/chat/chatFriend.vue
  2. 2
      uni_modules/vrapile-im/pages/home/chatHome.vue
  3. 58
      uni_modules/vrapile-im/store/modules/chat.js

14
uni_modules/vrapile-im/pages/chat/chatFriend.vue

@ -5,7 +5,7 @@
<view v-if="chatObject.haveHistory==0" class="chat-body-history"> <view v-if="chatObject.haveHistory==0" class="chat-body-history">
没有更多消息了 没有更多消息了
</view> </view>
<view v-else class="chat-body-history chat-body-history-have" @click="handleHistoryMessage()">
<view v-else class="chat-body-history chat-body-history-have" @click="handleHistoryMessage(false)">
查看更多消息 查看更多消息
</view> </view>
<view class="chat-body-message"> <view class="chat-body-message">
@ -115,7 +115,7 @@
// //
onPullDownRefresh() { onPullDownRefresh() {
if(this.chatObject.haveHistory==1){ if(this.chatObject.haveHistory==1){
this.handleHistoryMessage();
this.handleHistoryMessage(true);
} }
setTimeout(() => { setTimeout(() => {
uni.stopPullDownRefresh(); uni.stopPullDownRefresh();
@ -131,7 +131,7 @@
this.messageList = this.getChatList[i].messageList; this.messageList = this.getChatList[i].messageList;
this.scrollToBottom(); this.scrollToBottom();
if(this.messageList.length == 0 && this.chatObject.haveHistory==1){ if(this.messageList.length == 0 && this.chatObject.haveHistory==1){
this.handleHistoryMessage();
this.handleHistoryMessage(true);
}else{ }else{
this.handleRead(); this.handleRead();
} }
@ -292,7 +292,7 @@
this.inputText = ""; this.inputText = "";
}, },
// //
handleHistoryMessage(){
handleHistoryMessage(scrollFlag=false){
let limit = this.chatObject["messageList"].length + 10; let limit = this.chatObject["messageList"].length + 10;
getMessageByChatKey({ getMessageByChatKey({
type: this.chatObject.type, type: this.chatObject.type,
@ -301,7 +301,7 @@
limit: limit limit: limit
}).then(res => { }).then(res => {
if(res.data.length > 0){ if(res.data.length > 0){
this.messageList = res.data.reverse();
this.messageList = res.data;
this.chatObject["messageList"] = this.messageList; this.chatObject["messageList"] = this.messageList;
let lastMessage = res.data[res.data.length-1]; let lastMessage = res.data[res.data.length-1];
this.chatObject["messageLast"] = lastMessage; this.chatObject["messageLast"] = lastMessage;
@ -322,7 +322,9 @@
break; break;
} }
} }
this.scrollToBottom();
if(scrollFlag){
this.scrollToBottom();
}
}); });
} }
} }

2
uni_modules/vrapile-im/pages/home/chatHome.vue

@ -153,7 +153,7 @@
limit: limit limit: limit
}).then(res => { }).then(res => {
if(res.data.length > 0){ if(res.data.length > 0){
this.getChatList[i]["messageList"] = res.data.reverse();
this.getChatList[i]["messageList"] = res.data;
let lastMessage = res.data[res.data.length-1]; let lastMessage = res.data[res.data.length-1];
this.getChatList[i]["messageLast"] = lastMessage; this.getChatList[i]["messageLast"] = lastMessage;
if(lastMessage["sendType"] == 0){ if(lastMessage["sendType"] == 0){

58
uni_modules/vrapile-im/store/modules/chat.js

@ -18,7 +18,15 @@ const chat = {
// 清空聊天列表 // 清空聊天列表
CLEAN_CHAT_LIST: (state) => { CLEAN_CHAT_LIST: (state) => {
state.chatList = new Array(); state.chatList = new Array();
storage.set(constant.chatList, state.chatList)
storage.set(constant.chatList, new Array());
state.friendList = new Array();
storage.set(constant.friendList, new Array());
state.groupList = new Array();
storage.set(constant.groupList, new Array());
state.userObject = {};
storage.set(constant.userObject, {});
state.groupObject = {};
storage.set(constant.groupObject, {});
}, },
// 存储好友聊天列表 // 存储好友聊天列表
SET_CHAT_FRIEND_LIST: (state, data) => { SET_CHAT_FRIEND_LIST: (state, data) => {
@ -59,12 +67,12 @@ const chat = {
// 存储用户对象,方便寻找用户名,头像等 // 存储用户对象,方便寻找用户名,头像等
SET_USER_OBJECT: (state, userObject) => { SET_USER_OBJECT: (state, userObject) => {
state.userObject[userObject.userId] = userObject; state.userObject[userObject.userId] = userObject;
storage.set(constant.userObject, state.userObject)
storage.set(constant.userObject, state.userObject);
}, },
// 存储群组对象,方便寻找群组名,头像等 // 存储群组对象,方便寻找群组名,头像等
SET_GROUP_OBJECT: (state, groupObject) => { SET_GROUP_OBJECT: (state, groupObject) => {
state.groupObject[groupObject.id] = groupObject; state.groupObject[groupObject.id] = groupObject;
storage.set(constant.groupObject, state.groupObject)
storage.set(constant.groupObject, state.groupObject);
} }
}, },
@ -75,28 +83,46 @@ const chat = {
commit('CLEAN_CHAT_LIST'); commit('CLEAN_CHAT_LIST');
// 查询好友 // 查询好友
getUserAllFriend().then(res => { getUserAllFriend().then(res => {
let list = []
for(let item of res.data){
list.push({type: 0, ...item, userId: params.userId})
commit('SET_USER_OBJECT', item)
let listFriend = []
for(let itemFriend of res.data){
delete itemFriend["createBy"]
delete itemFriend["updateBy"]
delete itemFriend["createTime"]
delete itemFriend["updateTime"]
listFriend.push({type: 0, ...itemFriend, userId: params.userId})
commit('SET_USER_OBJECT', {...itemFriend, userId: itemFriend.friendId})
} }
commit('SET_CHAT_FRIEND_LIST', list)
commit('SET_CHAT_FRIEND_LIST', listFriend)
// 查询群组 // 查询群组
getUserAllGroup().then(res1 => { getUserAllGroup().then(res1 => {
let list = []
for(let item1 of res1.data){
list.push({type: 1, ...item1, userId: params.userId})
let listGroup = []
for(let itemGroup of res1.data){
delete itemGroup["createBy"]
delete itemGroup["updateBy"]
delete itemGroup["createTime"]
delete itemGroup["updateTime"]
listGroup.push({type: 1, ...itemGroup, userId: params.userId})
// 查询群组人员 // 查询群组人员
getGroupUser(item1.id).then(res2 => {
for(let user of res2.data){
commit('SET_USER_OBJECT', user)
getGroupUser(itemGroup.id).then(res2 => {
for(let itemGroupUser of res2.data){
delete itemGroupUser["createBy"]
delete itemGroupUser["updateBy"]
delete itemGroupUser["createTime"]
delete itemGroupUser["updateTime"]
delete itemGroupUser["groupId"]
delete itemGroupUser["groupName"]
commit('SET_USER_OBJECT', itemGroupUser)
} }
resolve(res2) resolve(res2)
}); });
commit('SET_GROUP_OBJECT', item1)
delete itemGroup["createBy"]
delete itemGroup["updateBy"]
delete itemGroup["createTime"]
delete itemGroup["updateTime"]
commit('SET_GROUP_OBJECT', itemGroup)
} }
commit('SET_CHAT_GROUP_LIST', list)
commit('SET_CHAT_GROUP_LIST', listGroup)
}).catch(error => { }).catch(error => {
reject(error) reject(error)
}) })

Loading…
Cancel
Save