pref:优化登录时获取不到用户页面无提示
This commit is contained in:
parent
d12d21c46d
commit
af7a81e3f0
@ -36,6 +36,10 @@ export const useUserStore = defineStore('user', () => {
|
||||
if (res) {
|
||||
const data = res.data;
|
||||
const user = data.user;
|
||||
// 对用户进行校验,防止为空时卡死在登录页
|
||||
if (user === null) {
|
||||
return Promise.reject('用户不存在,请联系相关人员');
|
||||
}
|
||||
const profile = user.avatar == '' || user.avatar == null ? defAva : user.avatar;
|
||||
|
||||
if (data.roles && data.roles.length > 0) {
|
||||
|
@ -65,6 +65,8 @@ import { useUserStore } from '@/store/modules/user';
|
||||
import { LoginData, TenantVO } from '@/api/types';
|
||||
import { to } from 'await-to-js';
|
||||
import { HttpStatus } from "@/enums/RespEnum";
|
||||
import usePermissionStore from "@/store/modules/permission";
|
||||
import { isHttp } from "@/utils/validate";
|
||||
|
||||
const userStore = useUserStore();
|
||||
const router = useRouter();
|
||||
@ -123,9 +125,27 @@ const handleLogin = () => {
|
||||
}
|
||||
// 调用action的登录方法
|
||||
const [err] = await to(userStore.login(loginForm.value));
|
||||
if (!err) {
|
||||
|
||||
// 获取用户信息
|
||||
const [getUserInfoError] = await to(useUserStore().getInfo());
|
||||
|
||||
if (!err && !getUserInfoError) {
|
||||
// 组装路由信息
|
||||
const accessRoutes = await usePermissionStore().generateRoutes();
|
||||
// 根据roles权限生成可访问的路由表
|
||||
accessRoutes.forEach((route) => {
|
||||
if (!isHttp(route.path)) {
|
||||
router.addRoute(route); // 动态添加可访问路由表
|
||||
}
|
||||
});
|
||||
await router.push({ path: redirect.value || '/' });
|
||||
} else {
|
||||
if(err){
|
||||
ElMessage.error(err);
|
||||
}
|
||||
if(getUserInfoError){
|
||||
ElMessage.error(getUserInfoError);
|
||||
}
|
||||
loading.value = false;
|
||||
// 重新获取验证码
|
||||
if (captchaEnabled.value) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user