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

225 lines
7.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';
import { map, filter, mergeMap } from 'rxjs/operators';
import { pipe } from 'rxjs'
// 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 {
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-12 14:32:28 +08:00
"children":[
{
"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-10-29 16:27:34 +08:00
constructor(
private router: Router,
private activatedRoute: ActivatedRoute
) { }
2018-10-26 11:33:25 +08:00
ngOnInit() {
2018-10-29 16:27:34 +08:00
let activeRoute = this.router.url;
this.selectActiveMenu(this.menuData,activeRoute);
this.router.events.pipe(
filter(event => event instanceof NavigationEnd),
).subscribe((event) => {
this.selectActiveMenu(this.menuData,event['urlAfterRedirects'])
});
}
/**
* 判断是否有子节点
* @param item
*/
isLeaf(item: any) {
return !item.children || !item.children.length;
}
selectActiveMenu(menuData,activeRoute) {
menuData.forEach(item => {
if (this.isLeaf(item)) {
if (item.path === activeRoute) {
item.isActive = true;
} else {
item.isActive = false;
}
}else{
this.selectActiveMenu(item.children,activeRoute)
}
})
2018-10-26 11:33:25 +08:00
}
}