| | |
| | | import { useUserStoreHook } from "@/store/modules/user"; |
| | | import { storageLocal, isString, isIncludeAllChildren } from "@pureadmin/utils"; |
| | | import type { nowRoleType } from "@/store/types"; |
| | | import type { LoginResult, RoleItem } from "@/api/types"; |
| | | |
| | | export interface DataInfo<T> { |
| | | /** token */ |
| | |
| | | username?: string; |
| | | /** 昵称 */ |
| | | nickname?: string; |
| | | /** 当前登录用户的角色列表 */ |
| | | exRoles?: RoleItem[]; |
| | | /** 当前登录用户的角色 */ |
| | | exRoles?: Array<string>; |
| | | roles?: Array<string>; |
| | | /** 当前登录用户的按钮级别权限 */ |
| | | permissions?: Array<string>; |
| | | isManager: boolean; |
| | | } |
| | | /** |
| | | * AdminResult_CusExtendDto,全局返回结果 |
| | |
| | | /** |
| | | * 交易主体 代码 同角色代码 |
| | | */ |
| | | transactionCode: string; |
| | | transactionCode?: string; |
| | | /** |
| | | * 交易主体名称 |
| | | */ |
| | |
| | | * 将`accessToken`、`expires`、`refreshToken`这三条信息放在key值为authorized-token的cookie里(过期自动销毁) |
| | | * 将`avatar`、`username`、`nickname`、`exRoles`、`permissions`、`refreshToken`、`expires`这七条信息放在key值为`user-info`的localStorage里(利用`multipleTabsKey`当浏览器完全关闭后自动销毁) |
| | | */ |
| | | export function setToken(data: DataInfo<Date>) { |
| | | export function setToken(data: LoginResult) { |
| | | let expires = 0; |
| | | const { accessToken, refreshToken } = data; |
| | | const { isRemembered, loginDay } = useUserStoreHook(); |
| | |
| | | : {} |
| | | ); |
| | | |
| | | function setUserKey({ avatar, username, nickname, exRoles, permissions }) { |
| | | function setUserKey({ |
| | | avatar, |
| | | username, |
| | | nickname, |
| | | exRoles, |
| | | permissions, |
| | | roles, |
| | | isManager |
| | | }) { |
| | | useUserStoreHook().SET_AVATAR(avatar); |
| | | useUserStoreHook().SET_USERNAME(username); |
| | | useUserStoreHook().SET_NICKNAME(nickname); |
| | | useUserStoreHook().SET_ROLES(exRoles); |
| | | useUserStoreHook().SET_EXROLES(exRoles); |
| | | useUserStoreHook().SET_ROLES(roles); |
| | | useUserStoreHook().SET_PERMS(permissions); |
| | | useUserStoreHook().SET_ISMANAGER(isManager); |
| | | storageLocal().setItem(userKey, { |
| | | refreshToken, |
| | | expires, |
| | |
| | | username, |
| | | nickname, |
| | | exRoles, |
| | | permissions |
| | | roles, |
| | | permissions, |
| | | isManager |
| | | }); |
| | | } |
| | | |
| | | if (data.exRoles) { |
| | | const { username, exRoles } = data; |
| | | if (data.exRoles && data.roles) { |
| | | const { username, exRoles, roles, isManager } = data; |
| | | setUserKey({ |
| | | avatar: data?.avatar ?? "", |
| | | username, |
| | | nickname: data?.nickname ?? "", |
| | | exRoles, |
| | | permissions: data?.permissions ?? [] |
| | | roles, |
| | | permissions: data?.permissions ?? [], |
| | | isManager |
| | | }); |
| | | } else { |
| | | const avatar = |
| | |
| | | storageLocal().getItem<DataInfo<number>>(userKey)?.nickname ?? ""; |
| | | const exRoles = |
| | | storageLocal().getItem<DataInfo<number>>(userKey)?.exRoles ?? []; |
| | | const roles = |
| | | storageLocal().getItem<DataInfo<number>>(userKey)?.roles ?? []; |
| | | const permissions = |
| | | storageLocal().getItem<DataInfo<number>>(userKey)?.permissions ?? []; |
| | | const isManager = |
| | | storageLocal().getItem<DataInfo<number>>(userKey)?.isManager ?? false; |
| | | setUserKey({ |
| | | avatar, |
| | | username, |
| | | nickname, |
| | | exRoles, |
| | | permissions |
| | | roles, |
| | | permissions, |
| | | isManager |
| | | }); |
| | | } |
| | | } |
| | |
| | | storageLocal().setItem(userKey, obj); |
| | | } |
| | | |
| | | export function setRoleListInfo(data: DataInfo<string>) { |
| | | useUserStoreHook().SET_ROLES_LIST(data); |
| | | export function setRoleListInfo(data: RoleItem[]) { |
| | | useUserStoreHook().SET_EXROLES_LIST(data); |
| | | storageLocal().setItem("rolesList", data); |
| | | } |
| | | |
| | |
| | | const obj = list.find(item => { |
| | | return item.code == data.code; |
| | | }); |
| | | data = { ...obj, ...data }; |
| | | data = Object.assign(obj, data); |
| | | } |
| | | useUserStoreHook().SET_ROLES([data.name]); |
| | | useUserStoreHook().SET_NOW_ROLE(data); |
| | | storageLocal().setItem("nowRole", data); |
| | | } |