import { Component, Input, Output, EventEmitter, OnInit } from '@angular/core'; import { Router } from '@angular/router'; import { Menu, User, Module, ILoaderService, Panel, Message, IMessageService } from 'sigma-ng/admin-panel'; @Component({ selector: 'admin-panel', templateUrl: './panel.component.html', styleUrls: ['./panel.component.css'], exportAs: 'admin-panel', providers: [] }) export class PanelComponent implements OnInit { @Input() panel: Panel; @Input('message-service') messageService: IMessageService; @Output() onload: EventEmitter = new EventEmitter; toggle: boolean = false; modules: Module[]; messages: Message[]; public constructor(private router: Router) { } ngOnInit(): void { if(!localStorage.getItem('token')) this.router.navigateByUrl(this.panel.links.logout); if(this.panel.service != null) { this.panel.service.get().subscribe(result => { this.initialMenus(result.menus); this.panel.module = result.module; this.panel.user = result.user; this.onload.emit(true); },() => { this.onload.emit(false); }); } } initialMenus(menus: Menu[]) { this.panel.menus = []; for(let i = 0;i < menus.length;i++) { if(!menus[i].parentId) { let menu = new Menu(menus[i]); for(let j = 0;j < menus.length;j++) { if(menus[j].parentId == menus[i].id) { let child = new Menu(menus[j]); child.parent = menu; menu.childs.push(child); } } this.panel.menus.push(menu); } } } openMenu(menu: Menu) { for(let i = 0;i < this.panel.menus.length;i++) this.panel.menus[i].close(); } getMenusByParentId(parentId: number) { let list: any[] = []; if(this.panel.menus) { for(let i = 0;i < this.panel.menus.length;i++) { if(this.panel.menus[i].parentId == parentId) list.push(this.panel.menus[i]); } } return list; } loadModule() { } loadTask() { } loadMessage() { } }