页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

注意,这里的接口和数据挖掘中的接口一致。

Markdown
# install 初始化接口

**触发时机**:</strong>etl创建时。

**作用**:此时etl刚进行创建,此时开发者可以在此接口中通过on方法添加对etl事件的监听,并进行一些数据准备等初始化操作。

**示例代码**

```JavaScript
import SmartBIExt from  'smartbi-ext-x'
let {
  DataminingModule: {
     BaseDataminingExtender,
     DataminingEventEmum: {
      DATAMINING_ON_SAVE_DIALOG_INIT,
      DATAMINING_ON_INIT
     }
  },
  Utils: {
    ExtensionUtil: { rmi }
  }
} = SmartBIExt

class SaveDialogExtender extends BaseDataminingExtender {
  
  constructor() {
    super()
  }

  install () {
    // 监听保存面板事件
    this.on(DATAMINING_ON_SAVE_DIALOG_INIT, async (iSaveDialog) => {
      // 设置根节点id
      let resp = await rmi('UserService', 'getCurrentUser')
      iSaveDialog.setRootNodeId(`SELF_${resp.result.id}`)
      // 设置节点过滤方法
      iSaveDialog.setNodeFilter(item => {
        return true
      })
    })

    this.on(DATAMINING_ON_INIT,  (datamining) => {
      // 设置保存成功回调
      datamining.setCustomSaveCallback(function (result) {
        console.info(result)
      })
    })
  }  

}

export default SaveDialogExtender

```

# 扩展接口

扩展接口是自助ETL中提供的外部对系统进行修改的接口,这些接口会在对应的生命周期执行。

开发者实现相关接口时,只需在install方法中,通过on方法监听对应的事件,并实现对应的回调方法,以下示例代码均在install方法中编写。

## Datamining 自助ETL/数据挖掘接口

### DATAMINING_ON_SAVE_DIALOG_INIT

**触发时机**:首次打开保存弹窗时

**作用**:指定用户的可保存的目录

| | **名称** | **类型** | **说明** |
| ------------ | ----------- | ------------------------------------------------------------ | ------------------------------ |
| **输入参数** | iSaveDialog | [ISaveDialog](https://smartbi.feishu.cn/docs/doccnd0RTRACnIwLJwmzRCX1d5d#FCmlCJ) | 保存弹窗对象(见下文接口对象) |
| **返回值** | - | | |

**示例代码**

```JavaScript
this.on(AUGMENTEDDATASETDATAMINING_ON_SAVE_DIALOG_INIT, async (iSaveDialog) => {
  // 删除所有操作按钮

iSaveDialog.setOperateButtonFilter(item => {

return false

})

// 设置根节点为我的空间中的分析报表设置根节点id
  let resp = await rmi('UserService', 'getCurrentUser')
  iSaveDialog.setRootNodeId(`SELF_ANALYSIS_${resp.result.id}`)
  // 设置节点过滤方法
  iSaveDialog.setNodeFilter(item => {
    return true
  })
})
```

### DATAMINING_ON_INIT

**触发时机**:点击新建的子菜单时:打开自助ETL/数据挖掘界面后

**作用**:自定义新建点击的处理:获取editor对象,并调用其中的方法,例如,设置保存后的回调函数。

**说明**:可以在点击新建即席查询、交互式仪表盘(自由布局、自适应布局)时,定制自己的处理逻辑

| | **名称** | **类型** | **说明** |
| ------------ | --------------- | --------------- | ------------------------------------------------------------ |
| **输入参数** | iAugmentDataseteditor | IAugmentDataset | 数据模型对象 | | **输入参数** |
args | Json对象 | **restype**:资源类型,SMARTBIX_PAGE、COMBINED_QUERY分别代表仪表盘、即席查询 **action**:动作, SMARTBIX_CRAETE_LARGESCREEN_DASHBOARD_WITH_DATASETID、 SMARTBIX_CRAETE_DASHBOARD_WITH_DATASETID、 SMARTBIX_CREATE_MODEL_QUERY_WITH_DATASETID分别代表:创建自由布局、创建自适应布局、创建即席查询 **dataSetId**:数据模型id 示例,如下: `{ restype: 'SMARTBIX_PAGE', action: 'SMARTBIX_CRAETE_LARGESCREEN_DASHBOARD_WITH_DATASETID', dataSetId: 'I8a8a9fb6018210a510a51735018210a517350000' } ` |
| **返回值** | - | | |

**示例代码**

```JavaScript
class AugmentExtentor extends BaseAugmentExtender{

async install () {

let resp = await rmi('UserService', 'getCurrentUser');

this.on(AUGMENTEDDATASETDATAMINING_ON_CREATE_RESOURCEINIT,  (iAugmentDatasetImpl, argsdatamining) => {
 console.log(resp)

if (resp.result.name === 'admin') {

// 禁止原创建的逻辑

iAugmentDatasetImpl.setCreateResource(false);

}  // 设置保存成功回调
   datamining.setCustomSaveCallback(function (result) {
      console.info(result)
   })

}

})
```