xsx 1 rok pred
rodič
commit
0a63c817b6

+ 6 - 8
im-web/src/api/httpRequest.js

@@ -1,8 +1,6 @@
 import axios from 'axios'
-import router from '@/router'
-import {
-	Message
-} from 'element-ui'
+
+import { Message } from 'element-ui'
 
 const http = axios.create({
 	baseURL: process.env.VUE_APP_BASE_API,
@@ -30,12 +28,12 @@ http.interceptors.response.use(async response => {
 	if (response.data.code == 200) {
 		return response.data.data;
 	} else if (response.data.code == 400) {
-		router.replace("/login");
+		location.href = "/";
 	} else if (response.data.code == 401) {
 		console.log("token失效,尝试重新获取")
 		let refreshToken = sessionStorage.getItem("refreshToken");
 		if (!refreshToken) {
-			router.replace("/login");
+			location.href = "/";
 		}
 		// 发送请求, 进行刷新token操作, 获取新的token
 		const data = await http({
@@ -45,7 +43,7 @@ http.interceptors.response.use(async response => {
 				refreshToken: refreshToken
 			}
 		}).catch(()=>{
-			router.replace("/login");
+			location.href = "/";
 		})
 		// 保存token
 		sessionStorage.setItem("accessToken", data.accessToken);
@@ -72,7 +70,7 @@ http.interceptors.response.use(async response => {
 			})
 			break
 		case 401:
-			router.replace("/login");
+			location.href = "/";
 			break
 		case 405:
 			Message({

+ 7 - 4
im-web/src/store/friendStore.js

@@ -10,6 +10,11 @@ export default {
 	},
 	mutations: {
 		setFriends(state, friends) {
+			friends.forEach((f)=>{
+				f.online = false;
+				f.onlineWeb = false;
+				f.onlineApp = false;
+			})
 			state.friends = friends;
 		},
 		updateFriend(state,friend){
@@ -49,7 +54,7 @@ export default {
 			})
 			
 			// 30s后重新拉取
-			clearTimeout(state.timer);
+			state.timer && clearTimeout(state.timer);
 			state.timer = setTimeout(()=>{
 				this.commit("refreshOnlineStatus");
 			},30000)
@@ -59,12 +64,10 @@ export default {
 				let userTerminal = onlineTerminals.find((o)=> f.id==o.userId);
 				if(userTerminal){
 					f.online = true;
-					f.onlineTerminals = userTerminal.terminals;
 					f.onlineWeb = userTerminal.terminals.indexOf(TERMINAL_TYPE.WEB)>=0
 					f.onlineApp = userTerminal.terminals.indexOf(TERMINAL_TYPE.APP)>=0
 				}else{
 					f.online = false;
-					f.onlineTerminals = [];
 					f.onlineWeb = false;
 					f.onlineApp = false;
 				}
@@ -81,7 +84,7 @@ export default {
 			});
 		},
 		clear(state) {
-			clearTimeout(state.timer);
+			state.timer && clearTimeout(state.timer);
 			state.friends = [];
 			state.timer = null;
 			state.activeFriend = [];