|
@@ -6,89 +6,89 @@ import defAva from '@/assets/images/profile.jpg';
|
|
|
import store from '@/store';
|
|
import store from '@/store';
|
|
|
|
|
|
|
|
export const useUserStore = defineStore('user', () => {
|
|
export const useUserStore = defineStore('user', () => {
|
|
|
- const token = ref(getToken());
|
|
|
|
|
- const name = ref('');
|
|
|
|
|
- const nickname = ref('');
|
|
|
|
|
- const userId = ref<string | number>('');
|
|
|
|
|
- const tenantId = ref<string>('');
|
|
|
|
|
- const avatar = ref('');
|
|
|
|
|
- const roles = ref<Array<string>>([]); // 用户角色编码集合 → 判断路由权限
|
|
|
|
|
- const permissions = ref<Array<string>>([]); // 用户权限编码集合 → 判断按钮权限
|
|
|
|
|
- const rolesName = ref<string>(''); // 用户角色名称集合
|
|
|
|
|
|
|
+ const token = ref(getToken());
|
|
|
|
|
+ const name = ref('');
|
|
|
|
|
+ const nickname = ref('');
|
|
|
|
|
+ const userId = ref<string | number>('');
|
|
|
|
|
+ const tenantId = ref<string>('');
|
|
|
|
|
+ const avatar = ref('');
|
|
|
|
|
+ const roles = ref<Array<string>>([]); // 用户角色编码集合 → 判断路由权限
|
|
|
|
|
+ const permissions = ref<Array<string>>([]); // 用户权限编码集合 → 判断按钮权限
|
|
|
|
|
+ const rolesName = ref<string>(''); // 用户角色名称集合
|
|
|
|
|
|
|
|
- /**
|
|
|
|
|
- * 登录
|
|
|
|
|
- * @param userInfo
|
|
|
|
|
- * @returns
|
|
|
|
|
- */
|
|
|
|
|
- const login = async (userInfo: LoginData): Promise<void> => {
|
|
|
|
|
- const [err, res] = await to(loginApi(userInfo));
|
|
|
|
|
- if (res) {
|
|
|
|
|
- const data = res.data;
|
|
|
|
|
- setToken(data.access_token);
|
|
|
|
|
- token.value = data.access_token;
|
|
|
|
|
- return Promise.resolve();
|
|
|
|
|
- }
|
|
|
|
|
- return Promise.reject(err);
|
|
|
|
|
- };
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 登录
|
|
|
|
|
+ * @param userInfo
|
|
|
|
|
+ * @returns
|
|
|
|
|
+ */
|
|
|
|
|
+ const login = async (userInfo: LoginData): Promise<void> => {
|
|
|
|
|
+ const [err, res] = await to(loginApi(userInfo));
|
|
|
|
|
+ if (res) {
|
|
|
|
|
+ const data = res.data;
|
|
|
|
|
+ setToken(data.access_token);
|
|
|
|
|
+ token.value = data.access_token;
|
|
|
|
|
+ return Promise.resolve();
|
|
|
|
|
+ }
|
|
|
|
|
+ return Promise.reject(err);
|
|
|
|
|
+ };
|
|
|
|
|
|
|
|
- // 获取用户信息
|
|
|
|
|
- const getInfo = async (): Promise<void> => {
|
|
|
|
|
- const [err, res] = await to(getUserInfo());
|
|
|
|
|
- if (res) {
|
|
|
|
|
- const data = res.data;
|
|
|
|
|
- const user = data.user;
|
|
|
|
|
- const profile = user.avatar == '' || user.avatar == null ? defAva : user.avatar;
|
|
|
|
|
|
|
+ // 获取用户信息
|
|
|
|
|
+ const getInfo = async (): Promise<void> => {
|
|
|
|
|
+ const [err, res] = await to(getUserInfo());
|
|
|
|
|
+ if (res) {
|
|
|
|
|
+ const data = res.data;
|
|
|
|
|
+ const user = data.user;
|
|
|
|
|
+ const profile = user.avatar == '' || user.avatar == null ? defAva : user.avatar;
|
|
|
|
|
|
|
|
- if (data.roles && data.roles.length > 0) {
|
|
|
|
|
- // 验证返回的roles是否是一个非空数组
|
|
|
|
|
- roles.value = data.roles;
|
|
|
|
|
- rolesName.value = user?.roles.map((item: any) => item.roleName || item.remark).join(',');
|
|
|
|
|
- permissions.value = data.permissions;
|
|
|
|
|
- } else {
|
|
|
|
|
- roles.value = ['ROLE_DEFAULT'];
|
|
|
|
|
- }
|
|
|
|
|
- name.value = user.userName;
|
|
|
|
|
- nickname.value = user.nickName;
|
|
|
|
|
- avatar.value = profile;
|
|
|
|
|
- userId.value = user.userId;
|
|
|
|
|
- tenantId.value = user.tenantId;
|
|
|
|
|
- return Promise.resolve();
|
|
|
|
|
- }
|
|
|
|
|
- return Promise.reject(err);
|
|
|
|
|
- };
|
|
|
|
|
|
|
+ if (data.roles && data.roles.length > 0) {
|
|
|
|
|
+ // 验证返回的roles是否是一个非空数组
|
|
|
|
|
+ roles.value = data.roles;
|
|
|
|
|
+ rolesName.value = user?.roles.map((item: any) => item.roleName || item.remark).join(',');
|
|
|
|
|
+ permissions.value = data.permissions;
|
|
|
|
|
+ } else {
|
|
|
|
|
+ roles.value = ['ROLE_DEFAULT'];
|
|
|
|
|
+ }
|
|
|
|
|
+ name.value = user.userName;
|
|
|
|
|
+ nickname.value = user.nickName;
|
|
|
|
|
+ avatar.value = profile;
|
|
|
|
|
+ userId.value = user.userId;
|
|
|
|
|
+ tenantId.value = user.tenantId;
|
|
|
|
|
+ return Promise.resolve();
|
|
|
|
|
+ }
|
|
|
|
|
+ return Promise.reject(err);
|
|
|
|
|
+ };
|
|
|
|
|
|
|
|
- // 注销
|
|
|
|
|
- const logout = async (): Promise<void> => {
|
|
|
|
|
- await logoutApi();
|
|
|
|
|
- token.value = '';
|
|
|
|
|
- roles.value = [];
|
|
|
|
|
- permissions.value = [];
|
|
|
|
|
- removeToken();
|
|
|
|
|
- };
|
|
|
|
|
|
|
+ // 注销
|
|
|
|
|
+ const logout = async (): Promise<void> => {
|
|
|
|
|
+ await logoutApi();
|
|
|
|
|
+ token.value = '';
|
|
|
|
|
+ roles.value = [];
|
|
|
|
|
+ permissions.value = [];
|
|
|
|
|
+ removeToken();
|
|
|
|
|
+ };
|
|
|
|
|
|
|
|
- const setAvatar = (value: string) => {
|
|
|
|
|
- avatar.value = value;
|
|
|
|
|
- };
|
|
|
|
|
|
|
+ const setAvatar = (value: string) => {
|
|
|
|
|
+ avatar.value = value;
|
|
|
|
|
+ };
|
|
|
|
|
|
|
|
- return {
|
|
|
|
|
- userId,
|
|
|
|
|
- tenantId,
|
|
|
|
|
- token,
|
|
|
|
|
- nickname,
|
|
|
|
|
- rolesName,
|
|
|
|
|
- avatar,
|
|
|
|
|
- roles,
|
|
|
|
|
- permissions,
|
|
|
|
|
- login,
|
|
|
|
|
- getInfo,
|
|
|
|
|
- logout,
|
|
|
|
|
- setAvatar
|
|
|
|
|
- };
|
|
|
|
|
|
|
+ return {
|
|
|
|
|
+ userId,
|
|
|
|
|
+ tenantId,
|
|
|
|
|
+ token,
|
|
|
|
|
+ nickname,
|
|
|
|
|
+ rolesName,
|
|
|
|
|
+ avatar,
|
|
|
|
|
+ roles,
|
|
|
|
|
+ permissions,
|
|
|
|
|
+ login,
|
|
|
|
|
+ getInfo,
|
|
|
|
|
+ logout,
|
|
|
|
|
+ setAvatar
|
|
|
|
|
+ };
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
export default useUserStore;
|
|
export default useUserStore;
|
|
|
// 非setup
|
|
// 非setup
|
|
|
export function useUserStoreHook() {
|
|
export function useUserStoreHook() {
|
|
|
- return useUserStore(store);
|
|
|
|
|
|
|
+ return useUserStore(store);
|
|
|
}
|
|
}
|