中化加油站项目
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

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)
})
})
}
}