app.component.ts 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. import {Component, HostBinding, Injector, OnInit, Type, ViewChild} from '@angular/core';
  2. import {SettingsService} from './core/settings/settings.service';
  3. import {ToastContainerDirective, ToastrService} from "ngx-toastr";
  4. import {MsgService} from "./core/service/msg.service";
  5. import {ngxLoadingAnimationTypes} from "ngx-loading";
  6. import {TranslatePipe} from "@ngx-translate/core";
  7. import {VarService} from "./core/service/var.service";
  8. import {DomSanitizer} from "@angular/platform-browser";
  9. import {HttpClient} from "@angular/common/http";
  10. import {CookieService} from "ngx-cookie-service";
  11. @Component({
  12. selector: 'app-root',
  13. templateUrl: './app.component.html',
  14. styleUrls: ['./app.component.scss']
  15. })
  16. export class AppComponent implements OnInit {
  17. @HostBinding('class.layout-fixed') get isFixed() {
  18. return this.settings.getLayoutSetting('isFixed');
  19. };
  20. @HostBinding('class.aside-collapsed') get isCollapsed() {
  21. return this.settings.getLayoutSetting('isCollapsed');
  22. };
  23. @HostBinding('class.layout-boxed') get isBoxed() {
  24. return this.settings.getLayoutSetting('isBoxed');
  25. };
  26. @HostBinding('class.layout-fs') get useFullLayout() {
  27. return this.settings.getLayoutSetting('useFullLayout');
  28. };
  29. @HostBinding('class.hidden-footer') get hiddenFooter() {
  30. return this.settings.getLayoutSetting('hiddenFooter');
  31. };
  32. @HostBinding('class.layout-h') get horizontal() {
  33. return this.settings.getLayoutSetting('horizontal');
  34. };
  35. @HostBinding('class.aside-float') get isFloat() {
  36. return this.settings.getLayoutSetting('isFloat');
  37. };
  38. @HostBinding('class.offsidebar-open') get offsidebarOpen() {
  39. return this.settings.getLayoutSetting('offsidebarOpen');
  40. };
  41. @HostBinding('class.aside-toggled') get asideToggled() {
  42. return this.settings.getLayoutSetting('asideToggled');
  43. };
  44. @HostBinding('class.aside-collapsed-text') get isCollapsedText() {
  45. return this.settings.getLayoutSetting('isCollapsedText');
  46. };
  47. VarService: Type<MsgService>;
  48. msgService: Type<MsgService>;
  49. loadConfig = {
  50. animationType: ngxLoadingAnimationTypes.circle,
  51. primaryColour: '#dd0031',
  52. secondaryColour: '#ffffff',
  53. backdropBorderRadius: '8px'
  54. }
  55. @ViewChild(ToastContainerDirective, {static: true}) toastContainer: ToastContainerDirective;
  56. constructor(public settings: SettingsService, private toastrService: ToastrService, private injector: Injector,
  57. private sanitizer: DomSanitizer,private http: HttpClient,private cookie: CookieService) {
  58. // 设置全局变量
  59. this.msgService = MsgService;
  60. VarService.INJECTOR = injector;
  61. VarService.DOM_SANITIZER = sanitizer;
  62. VarService.HTTP_CLIENT = http;
  63. VarService.COOKIE_SERVICE = cookie;
  64. }
  65. ngOnInit() {
  66. this.toastrService.overlayContainer = this.toastContainer;
  67. VarService.TOASTR = this.toastrService;
  68. // prevent empty links to reload the page
  69. document.addEventListener('click', e => {
  70. const target = e.target as HTMLElement;
  71. if (target.tagName === 'A' && ['', '#'].indexOf(target.getAttribute('href')) > -1)
  72. e.preventDefault();
  73. });
  74. }
  75. }