登录新增类型

This commit is contained in:
gyq
2024-07-30 16:00:08 +08:00
parent d8b9d01aa7
commit 5d3fdd5acf
3 changed files with 127 additions and 101 deletions

View File

@@ -1,5 +1,5 @@
import { login, getInfo, logout } from '@/api/login'
import { getToken, setToken, removeToken } from '@/utils/auth'
import { login, getInfo, logout } from "@/api/login";
import { getToken, setToken, removeToken } from "@/utils/auth";
const user = {
state: {
@@ -13,91 +13,97 @@ const user = {
mutations: {
// 是否为手动退出登录
SD_LOGOUT: (state, f) => {
state.sdLogout = f
state.sdLogout = f;
},
SET_TOKEN: (state, token) => {
state.token = token
state.token = token;
},
SET_USER: (state, user) => {
state.user = user
state.user = user;
},
SET_ROLES: (state, roles) => {
state.roles = roles
state.roles = roles;
},
SET_LOAD_MENUS: (state, loadMenus) => {
state.loadMenus = loadMenus
state.loadMenus = loadMenus;
}
},
actions: {
// 登录
Login({ commit }, userInfo) {
const rememberMe = userInfo.rememberMe
const rememberMe = userInfo.rememberMe;
return new Promise((resolve, reject) => {
login(userInfo.username, userInfo.password, userInfo.code, userInfo.uuid).then(res => {
// console.log('登录成功后返回===', res)
localStorage.setItem('logoutHandle', false)
localStorage.setItem('shopId', res.shopId)
localStorage.setItem('shopName', res.shopName)
localStorage.setItem('logo', res.logo)
setToken(res.token, rememberMe)
commit('SET_TOKEN', res.token)
setUserInfo(res.user, commit)
// 第一次加载菜单时用到, 具体见 src 目录下的 permission.js
commit('SET_LOAD_MENUS', true)
resolve()
}).catch(error => {
reject(error)
})
})
login(userInfo)
.then(res => {
// console.log('登录成功后返回===', res)
localStorage.setItem("logoutHandle", false);
localStorage.setItem("shopId", res.shopId);
localStorage.setItem("shopName", res.shopName);
localStorage.setItem("logo", res.logo);
setToken(res.token, rememberMe);
commit("SET_TOKEN", res.token);
setUserInfo(res.user, commit);
// 第一次加载菜单时用到, 具体见 src 目录下的 permission.js
commit("SET_LOAD_MENUS", true);
resolve();
})
.catch(error => {
reject(error);
});
});
},
// 获取用户信息
GetInfo({ commit }) {
return new Promise((resolve, reject) => {
getInfo().then(res => {
setUserInfo(res, commit)
resolve(res)
}).catch(error => {
reject(error)
})
})
getInfo()
.then(res => {
setUserInfo(res, commit);
resolve(res);
})
.catch(error => {
reject(error);
});
});
},
// 登出
LogOut({ commit }) {
return new Promise((resolve, reject) => {
logout().then(res => {
logOut(commit)
resolve()
}).catch(error => {
logOut(commit)
reject(error)
})
})
logout()
.then(res => {
logOut(commit);
resolve();
})
.catch(error => {
logOut(commit);
reject(error);
});
});
},
updateLoadMenus({ commit }) {
return new Promise((resolve, reject) => {
commit('SET_LOAD_MENUS', false)
})
commit("SET_LOAD_MENUS", false);
});
}
}
}
};
export const logOut = (commit) => {
commit('SET_TOKEN', '')
commit('SET_ROLES', [])
removeToken()
}
export const logOut = commit => {
commit("SET_TOKEN", "");
commit("SET_ROLES", []);
removeToken();
};
export const setUserInfo = (res, commit) => {
// 如果没有任何权限,则赋予一个默认的权限,避免请求死循环
if (res.roles.length === 0) {
commit('SET_ROLES', ['ROLE_SYSTEM_DEFAULT'])
commit("SET_ROLES", ["ROLE_SYSTEM_DEFAULT"]);
} else {
commit('SET_ROLES', res.roles)
commit("SET_ROLES", res.roles);
}
commit('SET_USER', res.user)
}
commit("SET_USER", res.user);
};
export default user
export default user;