You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
44 lines
1.6 KiB
44 lines
1.6 KiB
import { HttpClient } from '@angular/common/http'; |
|
import { Injectable } from '@angular/core'; |
|
import { Component, OnInit, Inject } from '@angular/core'; |
|
import { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router } from '@angular/router'; |
|
import { ModeManager } from '../babylon/controller/mode-manager'; |
|
import { NzMessageService } from 'ng-zorro-antd/message'; |
|
|
|
@Injectable({ |
|
providedIn: 'root' |
|
}) |
|
export class init3DGuard implements CanActivate { |
|
|
|
constructor(private router: Router, private http: HttpClient, private message: NzMessageService,) { } |
|
|
|
// 路由守卫 |
|
canActivate(next: ActivatedRouteSnapshot, state: RouterStateSnapshot,): Promise<boolean> { |
|
return this.getGasStationBaseInfo().then((res: any) => { |
|
sessionStorage.setItem("3dSceneData", JSON.stringify(res)) |
|
let userdata = JSON.parse(sessionStorage.getItem('userdata')) |
|
if (userdata.userName == 'superadmin') { //是superadmin,是内部制作账号 |
|
ModeManager.s_isMakeMode = true; |
|
} else { |
|
ModeManager.s_isMakeMode = false; |
|
} |
|
if (userdata.userName == 'superadmin' || res.hasBuildingInfo) { |
|
return true |
|
} else { |
|
this.message.info("当前站点没有数字油站!"); |
|
return false |
|
} |
|
}); |
|
} |
|
|
|
//获取 当前加油站基本信息 |
|
getGasStationBaseInfo() { |
|
return new Promise((resolve, reject) => { |
|
let params = { organizationUnitId: (JSON.parse(sessionStorage.getItem('userdataOfgasstation'))).organization.id } |
|
this.http.get('/api/services/app/GasStation/Get', { params: params }).subscribe((data: any) => { |
|
resolve(data.result) |
|
}) |
|
}) |
|
} |
|
|
|
} |