import { AuthorityType } from '../../model/user/authority-type.enum'; import { Dept } from '../../model/tenant/dept'; import { Group } from '../../model/tenant/group'; import { NecErrorCollectService } from '../error-collect/error-collect.service'; import { NecLocalStorageService } from '../localStorage/local-storage.service'; import { Observable } from 'rxjs'; import { Tenant } from '../../model/tenant/tenant'; import { TenantUsableModuleType } from '../../model'; import { User } from '../../model/user/user'; import { UserInterface } from './user.interface'; import { UserPositionInfo } from '../../model/user/user-position-info'; /** * 获取当前用户相关信息的服务 */ export declare class UserService { private ls; private errorCollectService; private userInterface; private defaultAvatarUrl; private defaultTenantLogoUrl; readonly LS_USER_INFO = "userInfo"; /** * userInfo都存储在localStorage中 */ constructor(ls: NecLocalStorageService, errorCollectService: NecErrorCollectService, userInterface: UserInterface); /** * 获取整个userInfo(从缓存中获取) */ getUserInfo(): User; /** * 获取user */ getUserInfoFromServer(allowAuthorities?: string[], url?: string): Observable; /** * 获取所属医院信息(注: 如果是医院管理员则返回的是userInfo.me, 因为后台返回的数据就在me中) */ getTenant(): Tenant; /** * 获取所属医院的医院Id(注: 如果是医院管理员则是返回me.id) */ getTenantId(): number; /** * 设置当前用户的信息, 常用于登录时获取用户信息后进行保存 */ setUserInfo(userInfo: User): void; /** * 删除当前用户的信息, 常用于用户退出登录时注销信息 */ delUserInfo(): void; /** * 获取当前用户的角色 */ getAuthority(user?: User): AuthorityType; /** * 获取所属医院logo图片的url地址 */ getTenantLogoUrl(): string; /** * 获取当前用户的用户名 */ getUsername(): string; /** * 获取当前用户的真实姓名(如果没有设置过真实姓名则返回用户名) * 常用于右上角显示的用户名称等 */ getRealName(): string; /** * 获取当前用户的头像图片url(如果没有设置过, 则返回默认的头像图片) */ getAvatarUrl(): string; /** * 获取用户职位信息 */ getUserPositionInfo(userId: number, type?: string): Observable; /** * 获取多个用户职位信息 */ getMoreUserPositionInfo(userIds: number[], type?: string): Observable; /** * 查询当前用户是否是科室管理员 * 通过是否存在管理的dept或者group来判断 */ getIsManager(): boolean; /** * 查询当前用户是否已认证 * 通过是否拥有职位信息来判断 */ getIsCerified(): boolean; /** * 查询当前用户所管理的科室列表 */ getDepts(): Dept[]; /** * 查询当前用户所管理的小组列表 */ getGroups(): Group[]; /** * 获取当前用户所在医院可以使用的模块 */ getTenantUsableModules(): TenantUsableModuleType[]; }