diff --git a/src/app/core/guards/auth.guard.ts b/src/app/core/guards/auth.guard.ts new file mode 100644 index 00000000..23ae320d --- /dev/null +++ b/src/app/core/guards/auth.guard.ts @@ -0,0 +1,53 @@ +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 { ACLGuard, ACLService } from '@delon/acl'; +import { EAUserService } from '@shared'; +import { Observable, of } from 'rxjs'; + +const auths = ['YUNLI-CART-SEARCH', 'YUNLI-CART-DAOCHU', 'YUNLI-CART-DETAIL']; + +@Injectable() +export class AuthGuard implements CanActivate, CanActivateChild, CanLoad { + constructor(srv: ACLService, router: Router, private eaUserSrv: CoreService, private router2: Router, private inject: Injector) {} + canLoad(route: Route, segments: UrlSegment[]): boolean | UrlTree | Observable | Promise { + throw true; + } + + canActivate(route: ActivatedRouteSnapshot, _state: RouterStateSnapshot | null): Observable { + const canOpen = this.eaUserSrv.loginStatus; + if (!canOpen) { + this.router2.navigate([sysConf.login_url], { + queryParams: { + returnUrl: _state?.url + } + }); + return of(!canOpen); + } + return of(true); + } + + canActivateChild(childRoute: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable { + const canOpen = this.eaUserSrv.loginStatus; + if (!canOpen) { + this.router2.navigate([sysConf.login_url], { + queryParams: { + returnUrl: state?.url + } + }); + return of(!canOpen); + } + return of(true); + } +} diff --git a/src/app/global-config.module.ts b/src/app/global-config.module.ts index a09fa770..1e998b36 100644 --- a/src/app/global-config.module.ts +++ b/src/app/global-config.module.ts @@ -13,7 +13,7 @@ import { environment } from '@env/environment'; const alainConfig: AlainConfig = { st: { modal: { size: 'lg' } }, pageHeader: { homeI18n: 'home', recursiveBreadcrumb: true }, - auth: { login_url: '/passport/login' } + auth: { login_url: '/dashboard' } }; const alainModules = [AlainThemeModule.forRoot(), DelonACLModule.forRoot()]; diff --git a/src/app/routes/usercenter/components/driver/driver.component.ts b/src/app/routes/usercenter/components/driver/driver.component.ts index cbf6b16f..31a5d828 100644 --- a/src/app/routes/usercenter/components/driver/driver.component.ts +++ b/src/app/routes/usercenter/components/driver/driver.component.ts @@ -112,7 +112,7 @@ export class UserCenterComponentsDriverComponent implements OnInit { nzComponentParams: { isCanCreate: true, url: '/api/fcc/accountBalance/getDriverAccountDetailByOperator', - params: { accountType: 2, roleId: item.appUserId, ctfId: item.identityNo } + params: { accountType: 2, roleId: item.appUserId, ctfId: item.identityNo, clientName: item.name } }, nzFooter: null }); diff --git a/src/app/routes/usercenter/components/freight/list/list.component.ts b/src/app/routes/usercenter/components/freight/list/list.component.ts index e7c01a2e..8619619a 100644 --- a/src/app/routes/usercenter/components/freight/list/list.component.ts +++ b/src/app/routes/usercenter/components/freight/list/list.component.ts @@ -77,7 +77,7 @@ export class FreightComponentsListComponent implements OnInit { nzComponentParams: { isCanCreate: true, url: '/api/fcc/accountBalance/getShipperAccountBalanceDetailByOperator', - params: { accountType: 1, roleId: item.adminAppUserId, ctfId: item.unifiedSocialCreditCode } + params: { accountType: 1, roleId: item.adminAppUserId, ctfId: item.unifiedSocialCreditCode, clientName: item.enterpriseName } }, nzFooter: null });