场景:时间过长或者因为其他原因用户信息丢失或者过期,此时用户操作页面后因为信息失效请求数据失败,被路由拦截跳转到了登录页。 登录成功之后给用户跳转到之前打开的页面而不是重新进入首页。
1、找到判断请求数据的错误码位置,原来直接跳转到登录router.push("/login"),现在给他携带上次失败页面的路由,拼接上 prepath=+router.history.current.fullPath
if ((res.data.code == "4000" || res.data.code == "3000")) {
//router.push("/login") 原跳转路径
router.push("/login?prepath="+router.history.current.fullPath);
return false;
}
2、在原来的登录页面 登录成功之后直接跳转添加判断条件,判断this.$route.query.prepath有无携带上次路径?如果有跳转上次 this.$router.push(this.$route.query.prepath);如果没有跳转首页index
if (this.$route.query.prepath) {
localStorage.setItem("TOKEN", response.data.data.token)
this.$Message.success(response.data.message)
this.$router.push(this.$route.query.prepath);
}else{
localStorage.setItem("TOKEN", response.data.data.token)
this.$Message.success(response.data.message)
this.$router.push("/index");
}