WDRouterRule.ets 1.75 KB
import router from '@ohos.router'
import { Action } from 'wdBean'
import { ToastUtils } from 'wdKit'
import { Action2Page } from './Action2Page'
import { WDRouterPage } from './WDRouterPage'
import { RouterJumpInterceptor } from './RouterJumpInterceptor'

export class WDRouterRule {
  static jumpWithAction(action?: Action) {
    if (!action || !action.type) {
      ToastUtils.showToast("跳转参数异常", 1000);
      return
    }
    let page = Action2Page.get(action);
    WDRouterRule.jumpWithPage(page, action)
  }

  static jumpWithPage(page?: WDRouterPage, params?: object, singleMode?: boolean) {
    if (page) {
      let action = RouterJumpInterceptor.getInterceptorAction(page)
      if (action && action.on(params, singleMode)) {
        return
      }

      let mode = router.RouterMode.Standard
      if (singleMode) {
        mode = router.RouterMode.Single
      }
      if (params) {
        // router.pushUrl({   url: 'pages/routerpage2', , params: params })
        // console.log('page.url()==',page.url(),JSON.stringify(params))
        router.pushUrl({ url: page.url(), params: params })
      } else {
        router.pushUrl({ url: page.url() }, mode)
      }
    } else {
      ToastUtils.showToast("功能开发中", 1000);
    }
  }

  static jumpWithReplacePage(page?: WDRouterPage, params?: object) {
    if (page) {
      let action = RouterJumpInterceptor.getInterceptorAction(page)
      if (action && action.on(params)) {
        return
      }
      if (params) {
        // router.pushUrl({   url: 'pages/routerpage2', , params: params })
        router.replaceUrl({ url: page.url(), params: params })
      } else {
        router.replaceUrl({ url: page.url() })
      }
    } else {
      ToastUtils.showToast("功能开发中", 1000);
    }
  }


}