summaryrefslogtreecommitdiffstats
path: root/usecaseui-portal/src/app/guard
diff options
context:
space:
mode:
authorxu ran <xuranyjy@chinamobile.com>2021-01-08 09:16:00 +0000
committerGerrit Code Review <gerrit@onap.org>2021-01-08 09:16:00 +0000
commitef6cdb416e078ba33c772299f79cca8680b1d703 (patch)
treea5d455025f25e2b13816af42c9b72a4ea4d381d5 /usecaseui-portal/src/app/guard
parent0356c8ae8394adbb28123ddf4e727fc5b64c8fef (diff)
parent5bead046179e8e00c2cc4681992a6ffe24e4b97e (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.ts46
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