Files
bbq/src/app/core/core.service.ts
Taric Xin d00c9a2aeb edit
2022-02-14 17:56:28 +08:00

93 lines
2.4 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* @Author: Maple
* @Date: 2021-03-22 11:42:26
* @LastEditors: Do not edit
* @LastEditTime: 2021-05-27 14:06:18
* @Description: 全局核心服务
*/
import { Injectable, Injector } from '@angular/core';
import { Router } from '@angular/router';
import { ReuseTabService } from '@delon/abc/reuse-tab';
import { DA_SERVICE_TOKEN, ITokenService } from '@delon/auth';
import { CacheService } from '@delon/cache';
import { SettingsService } from '@delon/theme';
import { EnvironmentService } from '@env/environment.service';
import { NzMessageService } from 'ng-zorro-antd/message';
@Injectable({
providedIn: 'root'
})
export class CoreService {
// 获取当前登录用户信息
public $api_get_current_user_info = `/scm/cuc/cuc/user/getUserDetail`;
// 获取当前用户所拥有的菜单
public $api_get_current_user_menus = `/api/mdc/cuc/functionInfo/getUserHaveFunctionsList`;
position = { lat: '', lng: '' };
constructor(private injector: Injector) {}
// 注入路由
public get router(): Router {
return this.injector.get(Router);
}
// 注入全局设置服务
public get settingSrv(): SettingsService {
return this.injector.get(SettingsService);
}
// 注入缓存服务
public get cacheSrv(): CacheService {
return this.injector.get(CacheService);
}
// 注入令牌服务
public get tokenSrv(): ITokenService {
return this.injector.get(DA_SERVICE_TOKEN);
}
// 注入消息服务
public get msgSrv(): NzMessageService {
return this.injector.get(NzMessageService);
}
// 注入环境服务
public get envSrv(): EnvironmentService {
return this.injector.get(EnvironmentService);
}
// 注入路由复用服务
private get reuseTabService(): ReuseTabService {
return this.injector.get(ReuseTabService);
}
// 登录状态
public get loginStatus(): boolean {
try {
return !!this.tokenSrv.get()?.token;
} catch (error) {
return false;
}
}
// 权限认证凭据TOKEN
public get token(): string {
return this.tokenSrv.get()?.token || '';
}
/**
* 登出系统
* @param showMsg 是否显示登录过期弹窗
*/
logout(showMsg: boolean = false): void {
if (showMsg) {
this.msgSrv.warning('未登录或登录信息已过期,请重新登录!');
}
this.settingSrv.setUser({});
this.tokenSrv.clear();
this.cacheSrv.clear();
this.router.navigate([this.tokenSrv.login_url]);
}
}