diff options
author | 2021-01-08 09:16:00 +0000 | |
---|---|---|
committer | 2021-01-08 09:16:00 +0000 | |
commit | ef6cdb416e078ba33c772299f79cca8680b1d703 (patch) | |
tree | a5d455025f25e2b13816af42c9b72a4ea4d381d5 /usecaseui-portal/src/app/guard | |
parent | 0356c8ae8394adbb28123ddf4e727fc5b64c8fef (diff) | |
parent | 5bead046179e8e00c2cc4681992a6ffe24e4b97e (diff) |
Merge "feat: embedding vue framwork in angular" into newarc
Diffstat (limited to 'usecaseui-portal/src/app/guard')
-rw-r--r-- | usecaseui-portal/src/app/guard/jump.guard.ts | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/usecaseui-portal/src/app/guard/jump.guard.ts b/usecaseui-portal/src/app/guard/jump.guard.ts new file mode 100644 index 00000000..27892115 --- /dev/null +++ b/usecaseui-portal/src/app/guard/jump.guard.ts @@ -0,0 +1,46 @@ +import {CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot} from "@angular/router"; +import { Route } from "@angular/compiler/src/core"; +import { menu, address } from "../const/index" +import { environment } from '../../environments/environment' + + +export class JumpGuard implements CanActivate { + + canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean { + let next: boolean = true + console.log(state.url) + const target: string = state.url + console.log('不在该框架') + // looking for the source of this path + const menuList: Array<any> = menu.MENU_ITEM + let source: string = null + for (let item of menuList) { + if (item.path === target) { + source = item.source + } else { + for (let val of item.children) { // If you can't find it, recurse deeper + if (val.path === target) { + source = val.source + } + } + } + } + if (source === null) { // The source of the path is not recorded in the routing table + console.log('The source of the path is not recorded in the routing table') + } else { + const targetServer = address.ADDRESS[source] + console.log(targetServer, environment) + let newUrl: string = '' + if (environment.production === false) { + newUrl = `${targetServer}#${target}` + console.log(newUrl) + } else { // production + let baseUrl = window.location.href.split('#')[0] + newUrl = `${baseUrl}${source}/#${target}` + } + next = false + window.location.href = newUrl + } + return next; + } +}
\ No newline at end of file |