Browse Source

退群后同时删除会话

master
xsx 2 years ago
parent
commit
3c716caa37
  1. 62
      im-uniapp/App.vue
  2. 2
      im-uniapp/pages/group/group-info.vue
  3. 9
      im-uniapp/store/chatStore.js

62
im-uniapp/App.vue

@ -5,7 +5,7 @@
import * as enums from './common/enums';
import * as wsApi from './common/wssocket';
import UNI_APP from '@/.env.js'
export default {
data() {
return {
@ -58,21 +58,21 @@
})
},
pullPrivateOfflineMessage(minId) {
store.commit("loadingPrivateMsg",true)
store.commit("loadingPrivateMsg", true)
http({
url: "/message/private/pullOfflineMessage?minId=" + minId,
method: 'GET'
}).catch(()=>{
store.commit("loadingPrivateMsg",false)
}).catch(() => {
store.commit("loadingPrivateMsg", false)
})
},
pullGroupOfflineMessage(minId) {
store.commit("loadingGroupMsg",true)
store.commit("loadingGroupMsg", true)
http({
url: "/message/group/pullOfflineMessage?minId=" + minId,
method: 'GET'
}).catch(()=>{
store.commit("loadingGroupMsg",false)
}).catch(() => {
store.commit("loadingGroupMsg", false)
})
},
handlePrivateMessage(msg) {
@ -109,17 +109,17 @@
//
if (msgType.isRtcPrivate(msg.type)) {
// #ifdef MP-WEIXIN
//
return;
//
return;
// #endif
//
let delayTime = 100;
if(msg.type == enums.MESSAGE_TYPE.RTC_CALL_VOICE
|| msg.type == enums.MESSAGE_TYPE.RTC_CALL_VIDEO){
let mode = msg.type == enums.MESSAGE_TYPE.RTC_CALL_VIDEO? "video":"voice";
if (msg.type == enums.MESSAGE_TYPE.RTC_CALL_VOICE ||
msg.type == enums.MESSAGE_TYPE.RTC_CALL_VIDEO) {
let mode = msg.type == enums.MESSAGE_TYPE.RTC_CALL_VIDEO ? "video" : "voice";
let pages = getCurrentPages();
let curPage = pages[pages.length-1].route;
if(curPage != "pages/chat/chat-private-video"){
let curPage = pages[pages.length - 1].route;
if (curPage != "pages/chat/chat-private-video") {
const friendInfo = encodeURIComponent(JSON.stringify(friend));
uni.navigateTo({
url: `/pages/chat/chat-private-video?mode=${mode}&friend=${friendInfo}&isHost=false`
@ -128,8 +128,8 @@
}
}
setTimeout(() => {
uni.$emit('WS_RTC_PRIVATE',msg);
},delayTime)
uni.$emit('WS_RTC_PRIVATE', msg);
}, delayTime)
return;
}
let chatInfo = {
@ -149,7 +149,7 @@
handleGroupMessage(msg) {
//
if (msg.type == enums.MESSAGE_TYPE.LOADING) {
store.commit("loadingGroupMsg",JSON.parse(msg.content))
store.commit("loadingGroupMsg", JSON.parse(msg.content))
return;
}
//
@ -186,15 +186,15 @@
//
if (msgType.isRtcGroup(msg.type)) {
// #ifdef MP-WEIXIN
//
return;
//
return;
// #endif
//
let delayTime = 100;
if(msg.type == enums.MESSAGE_TYPE.RTC_GROUP_SETUP){
if (msg.type == enums.MESSAGE_TYPE.RTC_GROUP_SETUP) {
let pages = getCurrentPages();
let curPage = pages[pages.length-1].route;
if(curPage != "pages/chat/chat-group-video"){
let curPage = pages[pages.length - 1].route;
if (curPage != "pages/chat/chat-group-video") {
const userInfos = encodeURIComponent(msg.content);
const inviterId = msg.sendId;
const groupId = msg.groupId
@ -207,11 +207,11 @@
}
// chat-group-video
setTimeout(() => {
uni.$emit('WS_RTC_GROUP',msg);
},delayTime)
uni.$emit('WS_RTC_GROUP', msg);
}, delayTime)
return;
}
let chatInfo = {
type: 'GROUP',
targetId: group.id,
@ -272,8 +272,8 @@
// this.audioTip.src = "/static/audio/tip.wav";
// this.audioTip.play();
},
isExpired(loginInfo){
if(!loginInfo || !loginInfo.expireTime){
isExpired(loginInfo) {
if (!loginInfo || !loginInfo.expireTime) {
return true;
}
return loginInfo.expireTime < new Date().getTime();
@ -311,12 +311,12 @@
uni.switchTab({
url: "/pages/chat/chat"
})
} else{
} else {
//
// #ifdef H5
uni.navigateTo({
url: "/pages/login/login"
})
uni.navigateTo({
url: "/pages/login/login"
})
// #endif
}
}

2
im-uniapp/pages/group/group-info.vue

@ -112,6 +112,7 @@
url:"/pages/group/group"
});
this.$store.commit("removeGroup", this.groupId);
this.$store.commit("removeGroupChat",this.groupId);
},100)
}
})
@ -141,6 +142,7 @@
url:"/pages/group/group"
});
this.$store.commit("removeGroup", this.groupId);
this.$store.commit("removeGroupChat",this.groupId);
},100)
}
})

9
im-uniapp/store/chatStore.js

@ -133,6 +133,15 @@ export default {
}
}
},
removeGroupChat(state, groupId) {
let chats = this.getters.findChats();
for (let idx in chats) {
if (chats[idx].type == 'GROUP' &&
chats[idx].targetId == groupId) {
this.commit("removeChat", idx);
}
}
},
moveTop(state, idx) {
let chats = this.getters.findChats();
let chat = chats[idx];

Loading…
Cancel
Save