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

11
im-web/src/store/friendStore.js

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

Loading…
Cancel
Save