Browse Source

一些优化

master
xsx 2 years ago
parent
commit
0a63c817b6
  1. 14
      im-web/src/api/httpRequest.js
  2. 11
      im-web/src/store/friendStore.js

14
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({

11
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 = [];

Loading…
Cancel
Save