**【注意】由于这个会将当前页面中的大部分跳转拦截，注意写好判断条件**

说明：可以实现拦截复写跳转前参数，数据，地址等内容

参数：

fn：实际跳转的方法 info：要跳转或打开的页面的信息数据

props：主要寄存路由对象(match,location,history)，以及一些不固定的非页面数据，如按钮数据btnData，字段数据等

用法：可放在ecode中，配合按钮js使用

```javascript
ebdfpageSDK.registerJumpLinkRewrite((fn, info, props) => {
 // 这里写好判断条件
  console.log(info, props)
  /*{
      "nameType": "fixed",
      "name": "a",
      "type": "fixed",
      "value": "111"
  }*/
  var params = (info?.params || []).map((p) => {
    if (p.name === 'a') { //要拦截的参数名称
      return { ...p, value: props.data?.aaaValue } //复写的参数值
    }
    return p;
  })
  fn({ ...info, params }, props)
})
```

## 案例：

### 1、列表右上角按钮打开新建系统流程，数据带给多条明细

```
ebdfpageSDK.registerJumpLinkRewrite((fn, info, props) => {
  console.log(info, props)

  var params = (info?.params || []).map((p) => {
    if (p.name === 'a') {
      return { ...p, value: p.value.split(',').join(';') }
    }
    return p;
  })
  fn({ ...info, params }, props)
})
```

[图片附件未整合: ../../../../_assets/271425818268270592/001-8b9f0425c5.png]

[图片附件未整合: ../../../../_assets/271425818268270592/002-183a383776.png]

附：页面打开方式类型定义

```javascript
  const OpenType = {
    Default: '4',
    New: '0',//新窗口
    SlideLeftFromRight: '1',//右侧滑出
    Modal: '5', //弹出框
    /** 右侧分栏 */
    RightLayout: '7',
    /** 重定向 */
    Replace: '8'
  };
```

### 2、字段按钮等动作配置打开外部地址多余参数去除

```
ebdfpageSDK.registerJumpLinkRewrite((fn, info, props) => {

  fn({ ...info, ownParams:{} }, props)
})
```

[图片附件未整合: ../../../../_assets/271425818268270592/003-d918bbc8f9.png]

### 3、复写h5的事件改为webview方式

> 背景：em列表按钮打开新建流程提交后回退到首页了，需要回退到列表

```
ebdfpageSDK.registerJumpLinkRewrite((fn, info, props) => {
   let _info = info;
   if(props.clientType==="MOBILE"&&info?.page?.pageId==="SubmitApplication"){
     _info = {
       ..._info,
       openMode:"10",  //新的webview方式打开
       page:{
         ..._info.page,
         openMode:"10"
       }
     }
   }
  fn(_info , props)
})
```

[图片附件未整合: ../../../../_assets/271425818268270592/004-eb1384f751.png]

[图片附件未整合: ../../../../_assets/271425818268270592/005-aaab5345dc.png]

### 4、表格视图按钮事件配置打开系统流程，提交后想刷新列表

> 在表格视图代码块写拦截jumpLink事件，传递onSave,流程提交后会触发过来

```
ebdfpageSDK.registerJumpLinkRewrite((fn, info, props) => {
 // 这里写好判断条件
  console.log(info, props)
 

  fn({ ...info }, {...props,onSave:()=>{
    alert(1)
  }})
})
```

[图片附件未整合: ../../../../_assets/271425818268270592/006-8a912a0963.png]

[图片附件未整合: ../../../../_assets/271425818268270592/007-3a332ce93c.png]

### 5、打开流程参数某些字段编码

```
ebdfpageSDK.registerJumpLinkRewrite((fn, info, props) => {
  console.log(info, props)

  var params = (info?.params || []).map((p) => {
    /需要XXXXX 修改下对应的字段key
    if (p.name === 'XXXXX') {
      return { ...p, value: encodeURIComponent(p.value) }
    }
    return p;
  })
  fn({ ...info, params }, props)
})
```
