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

273 lines
8.7 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-12-15 17:04:16 +08:00
import { BasicDataService } from '../services/basic-data-service';
import { OperateSpinServiceService } from '../services/operate-spin-service.service';
2018-11-27 18:16:25 +08:00
import { HttpClientService } from '../services/http-client.service';
2019-01-23 10:40:58 +08:00
import { NzMessageService } from 'ng-zorro-antd';
2018-11-27 18:16:25 +08:00
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-12-19 13:40:46 +08:00
public user_name: string;
public role_type: string;
2018-11-27 18:16:25 +08:00
public menuClose: boolean = false;
public isSpinning: any = false;
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,
2019-01-23 10:40:58 +08:00
private message: NzMessageService
2018-11-27 18:16:25 +08:00
) {
this.operateSpinService.spinSubject.subscribe(
val => this.isSpinning = val
)
2018-11-16 11:52:45 +08:00
this.basicDataService.loadBasicData();
}
2018-10-26 11:33:25 +08:00
ngOnInit() {
2018-12-24 18:32:32 +08:00
if (sessionStorage.getItem('userInfo')) {
this.user_name = JSON.parse(sessionStorage.getItem('userInfo')).login_name;
this.role_type = JSON.parse(sessionStorage.getItem('userInfo')).real_name;
} else {
let cookieMsg = ['SESSION', 'token']
cookieMsg.forEach(element => {
this.delCookie(element)
})
this.router.navigate(['/login']);
}
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-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 => {
2018-12-24 18:32:32 +08:00
let sessionStorageMsg = ['userInfo']
sessionStorageMsg.forEach(element => {
sessionStorage.removeItem(element)
})
2019-01-23 10:40:58 +08:00
this.message.success('退出系统成功!');
2018-11-27 18:16:25 +08:00
this.router.navigate(['/login']);
}
)
}
2018-12-24 18:32:32 +08:00
public delCookie($name) {
let myDate = new Date();
myDate.setTime(-1000);
document.cookie = $name + "=''; expires=" + myDate.toUTCString();
}
2018-10-26 11:33:25 +08:00
}