Files
airport-chengdu-web/src/app/pages/pages.component.ts
T

255 lines
8.0 KiB
TypeScript
Raw Normal View History

2018-10-26 11:33:25 +08:00
import { Component, OnInit } from '@angular/core';
2018-10-29 16:27:34 +08:00
import { Router, NavigationEnd, ActivatedRoute } from '@angular/router';
2018-11-27 18:16:25 +08:00
import { BasicDataService } from './basic-data-service';
2018-11-29 10:40:23 +08:00
import { OperateSpinServiceService } from './operate-spin-service.service';
2018-11-27 18:16:25 +08:00
import { HttpClientService } from '../services/http-client.service';
2018-10-29 16:27:34 +08:00
2018-11-27 18:16:25 +08:00
import { ToastService } from '../components/toast/toast.service';
import { ToastConfig, ToastType } from '../components/toast/toast-model';
import { filter } from 'rxjs/operators';
2018-10-29 16:27:34 +08:00
// import 'rxjs/add/operator/map';
// import 'rxjs/add/operator/mergeMap';
2018-10-26 11:33:25 +08:00
@Component({
selector: 'app-pages',
templateUrl: './pages.component.html',
styleUrls: ['./pages.component.scss']
})
export class PagesComponent implements OnInit {
2018-11-27 18:16:25 +08:00
public menuClose: boolean = false;
2018-12-03 11:28:24 +08:00
public isSpinning: any = true;
2018-10-26 11:33:25 +08:00
menuData = [
{
"name": "航班动态",
"icon": 'fa-plane',
"isExpend": false,
2018-10-29 16:27:34 +08:00
"isActive": true,
"path": "/app/main"
2018-10-26 11:33:25 +08:00
},
{
"name": "季度计划",
"icon": 'fa-cube',
"isExpend": false,
2018-10-29 16:27:34 +08:00
"isActive": false,
"path": "/app/season"
2018-10-26 11:33:25 +08:00
},
{
"name": "历史数据",
"icon": 'fa-history',
"isExpend": false,
2018-10-29 16:27:34 +08:00
"isActive": false,
"path": "/app/history"
2018-10-26 11:33:25 +08:00
},
{
"name": "基础数据",
"icon": 'fa-database',
"isExpend": false,
2018-11-16 11:52:45 +08:00
"children": [
2018-11-12 14:32:28 +08:00
{
"name": "值机岛",
"icon": "fa-eercast",
"isExpend": false,
"isActive": false,
"path": "/app/basic/checkingroup"
},
{
"name": "登机门",
"icon": "fa-h-square",
"isExpend": false,
"isActive": false,
"path": "/app/basic/gate"
},
{
"name": "航站楼",
"icon": "fa-wpexplorer",
"isExpend": false,
"isActive": false,
"path": "/app/basic/terminal"
},
{
"name": "行李传送带",
"icon": "fa-ils",
"isExpend": false,
"isActive": false,
"path": "/app/basic/chut"
},
{
"name": "行李转盘",
"icon": "fa-connectdevelop",
"isExpend": false,
"isActive": false,
"path": "/app/basic/carousel"
},
{
"name": "机位",
"icon": "fa-exchange",
"isExpend": false,
"isActive": false,
"path": "/app/basic/stand"
},
{
"name": "值机柜台",
"icon": "fa-desktop",
"isExpend": false,
"isActive": false,
"path": "/app/basic/checkindesk"
},
{
"name": "机场",
"icon": "fa-fighter-jet",
"isExpend": false,
"isActive": false,
"path": "/app/basic/airport"
},
{
"name": "城市",
"icon": "fa-globe",
"isExpend": false,
"isActive": false,
"path": "/app/basic/city"
},
{
"name": "机型",
"icon": "fa-file-text-o",
"isExpend": false,
"isActive": false,
"path": "/app/basic/aircrafttype"
},
{
"name": "飞机",
"icon": "fa-plane",
"isExpend": false,
"isActive": false,
"path": "/app/basic/aircraft"
},
{
"name": "航站楼区域",
"icon": "fa-area-chart",
"isExpend": false,
"isActive": false,
"path": "/app/basic/terminalarea"
},
{
"name": "航空公司",
"icon": "fa-building-o",
"isExpend": false,
"isActive": false,
"path": "/app/basic/airline"
},
]
2018-10-26 11:33:25 +08:00
},
{
"name": "系统管理",
"icon": "fa-window-restore",
"isExpend": false,
"children": [
{
"name": "个人设置",
"icon": "fa-cog",
2018-10-29 16:27:34 +08:00
"isExpend": false,
"isActive": false,
"path": "/app/system/settings"
2018-10-26 11:33:25 +08:00
},
{
"name": "角色管理",
"icon": "fa-users",
2018-10-29 16:27:34 +08:00
"isExpend": false,
"isActive": false,
"path": "/app/system/roles"
2018-10-26 11:33:25 +08:00
},
{
"name": "用户管理",
"icon": "fa-user",
2018-10-29 16:27:34 +08:00
"isExpend": false,
"isActive": false,
"path": "/app/system/users"
2018-10-26 11:33:25 +08:00
},
{
"name": "部门管理",
"icon": "fa-street-view",
2018-10-29 16:27:34 +08:00
"isExpend": false,
"isActive": false,
"path": "/app/system/departments"
2018-10-26 11:33:25 +08:00
},
{
"name": "操作日志",
"icon": "fa-sticky-note",
2018-10-29 16:27:34 +08:00
"isExpend": false,
"isActive": false,
"path": "/app/system/logs"
2018-10-26 11:33:25 +08:00
},
{
"name": "数据同步",
"icon": "fa-refresh",
2018-10-29 16:27:34 +08:00
"isExpend": false,
"isActive": false,
"path": "/app/system/synchronization"
2018-10-26 11:33:25 +08:00
},
]
}]
2018-11-29 10:40:23 +08:00
2018-10-29 16:27:34 +08:00
constructor(
private router: Router,
2018-11-27 18:16:25 +08:00
private basicDataService: BasicDataService,
2018-12-03 11:28:24 +08:00
private operateSpinService: OperateSpinServiceService,
2018-11-27 18:16:25 +08:00
private httpClient: HttpClientService,
private toastService: ToastService,
) {
2018-11-16 11:52:45 +08:00
this.basicDataService.loadBasicData();
}
2018-10-26 11:33:25 +08:00
ngOnInit() {
2018-10-29 16:27:34 +08:00
let activeRoute = this.router.url;
2018-11-16 11:52:45 +08:00
this.selectActiveMenu(this.menuData, activeRoute);
2018-10-29 16:27:34 +08:00
this.router.events.pipe(
filter(event => event instanceof NavigationEnd),
).subscribe((event) => {
2018-11-16 11:52:45 +08:00
this.selectActiveMenu(this.menuData, event['urlAfterRedirects'])
2018-10-29 16:27:34 +08:00
});
2018-12-03 11:28:24 +08:00
this.operateSpinService.spinSubject.subscribe(
val => this.isSpinning = val
)
2018-11-29 10:40:23 +08:00
2018-10-29 16:27:34 +08:00
}
2018-11-27 18:16:25 +08:00
toggleMenu() {
this.menuClose = !this.menuClose;
}
2018-10-29 16:27:34 +08:00
/**
* 判断是否有子节点
* @param item
*/
isLeaf(item: any) {
return !item.children || !item.children.length;
}
2018-11-16 11:52:45 +08:00
selectActiveMenu(menuData, activeRoute) {
2018-10-29 16:27:34 +08:00
menuData.forEach(item => {
if (this.isLeaf(item)) {
if (item.path === activeRoute) {
item.isActive = true;
} else {
item.isActive = false;
}
2018-11-16 11:52:45 +08:00
} else {
this.selectActiveMenu(item.children, activeRoute)
2018-10-29 16:27:34 +08:00
}
})
2018-10-26 11:33:25 +08:00
}
2018-11-27 18:16:25 +08:00
confirmLogout() {
this.httpClient.post('/logout').subscribe(
data => {
const toastCfg = new ToastConfig(ToastType.SUCCESS, '', '退出系统成功!', 3000);
this.toastService.toast(toastCfg);
this.router.navigate(['/login']);
}
)
}
2018-10-26 11:33:25 +08:00
}