From 66177af625bb2db53347297d0e7d130384c92949 Mon Sep 17 00:00:00 2001 From: Taric Xin Date: Mon, 24 Jan 2022 20:52:26 +0800 Subject: [PATCH] edit --- src/app/core/guards/auth.guard.ts | 52 +++++++++---------- .../vehicle/components/list/list.component.ts | 1 - .../routes/vehicle/vehicle-routing.module.ts | 1 - 3 files changed, 26 insertions(+), 28 deletions(-) diff --git a/src/app/core/guards/auth.guard.ts b/src/app/core/guards/auth.guard.ts index 1161c714..df5a927c 100644 --- a/src/app/core/guards/auth.guard.ts +++ b/src/app/core/guards/auth.guard.ts @@ -1,17 +1,5 @@ import { Inject, Injectable, Injector } from '@angular/core'; -import { - ActivatedRouteSnapshot, - CanActivate, - CanActivateChild, - CanLoad, - Route, - Router, - RouterStateSnapshot, - UrlSegment, - UrlTree -} from '@angular/router'; -import { sysConf } from '@conf/sys.conf'; -import { CoreService } from '@core'; +import { ActivatedRouteSnapshot, CanActivate, CanActivateChild, RouterStateSnapshot } from '@angular/router'; import { ACLGuard, ACLService } from '@delon/acl'; import { MenuService } from '@delon/theme'; import { BaseService, EAUserService } from '@shared'; @@ -21,31 +9,43 @@ import { map } from 'rxjs/operators'; const auths = ['YUNLI-CART-SEARCH', 'YUNLI-CART-DAOC1HU', 'YUNLI-CART-DETAIL', 'YUNLI-CART-AUDIT-SEARCH']; @Injectable() -export class AuthGuard implements CanActivate, CanActivateChild, CanLoad { - constructor(private srv: ACLService, router: Router, private baseService: BaseService, private menuService: MenuService) {} - canLoad(route: Route, segments: UrlSegment[]): boolean | UrlTree | Observable | Promise { - return true; - } +export class AuthGuard implements CanActivate, CanActivateChild { + constructor(private srv: ACLService, private baseService: BaseService, private menuService: MenuService) {} canActivate(route: ActivatedRouteSnapshot, _state: RouterStateSnapshot | null): Observable { - return this.handle(); + if (Object.keys(route.params)?.length > 0 || !route.routeConfig?.path) { + return this.handle(); + } else { + return this.handle(_state?.url); + } } canActivateChild(childRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable { - return this.handle(); + return this.handle(this.settingRoute(childRoute.params, state.url)); } - private handle(): Observable { - // 1 - return this.baseService.request('/api/mdc/cuc/user/getUserDetail').pipe( + private handle(route?: string): Observable { + if (!route) { + return of(true); + } + console.log(route); + + return this.baseService.request('/api/mdc/cuc/user/getUserDetail', { link: route }).pipe( map(_ => { - console.log(this.srv.data); this.srv.setAbility(auths); this.menuService.resume(); - console.log(this.srv.data); - return true; }) ); } + + private settingRoute(params: any, route: string) { + let _route = route; + for (const key of Object.keys(params)) { + if (_route.indexOf(params[key]) > -1) { + _route = _route.replace(params[key], ':id'); + } + } + return _route; + } } diff --git a/src/app/routes/vehicle/components/list/list.component.ts b/src/app/routes/vehicle/components/list/list.component.ts index 65c5d7a1..f6e84cab 100644 --- a/src/app/routes/vehicle/components/list/list.component.ts +++ b/src/app/routes/vehicle/components/list/list.component.ts @@ -249,7 +249,6 @@ export class VehicleComponentsListComponent implements OnInit { buttons: [ { text: '查看', - acl: 'SUPPLY-INDEX-bulkSearch', click: item => { this.router.navigate(['./detail', item.id], { relativeTo: this.ar, queryParams: { carId: item.carId } }); // this.router.navigate(['./view', item.id], { relativeTo: this.ar, queryParams: { tenantId: item.tenantId } }); diff --git a/src/app/routes/vehicle/vehicle-routing.module.ts b/src/app/routes/vehicle/vehicle-routing.module.ts index 7dc78201..3dbb76af 100644 --- a/src/app/routes/vehicle/vehicle-routing.module.ts +++ b/src/app/routes/vehicle/vehicle-routing.module.ts @@ -18,7 +18,6 @@ import { VehicleComponentsListComponent } from './components/list/list.component const routes: Routes = [ { path: '', - canLoad: [AuthGuard], canActivate: [AuthGuard], canActivateChild: [AuthGuard], children: [