页面树结构
转至元数据结尾
转至元数据起始

正在查看旧版本。 查看 当前版本.

与当前比较 查看页面历史

« 前一个 版本 7 下一个 »

https://smartbi.feishu.cn/docx/OTxAd7uHQozpVpxEHkSchKZkngf


相关:SMS-36264

install 初始化接口

触发时机:数据模型创建时。

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

示例代码

import SmartBIExt from  'smartbi-ext'
let {
  AugmentModule: {
    AugmentEventEmum: {
      AUGMENTEDDATASET_ON_SAVE_DIALOG_INIT
    },
    BaseAugmentExtender
  }
  Utils: {
    ExtensionUtil: { rmi }
  }
} = SmartBIExt
class AugmentExtentor extends BaseAugmentExtender{
  async install () {
    // 通过RMI获取当前用户信息,供后续使用
    let resp = await rmi('UserService', 'getCurrentUser')
    let userInfo = resp.result
    this.on(AUGMENTEDDATASET_ON_SAVE_DIALOG_INIT, (iSaveDialog) => {
    })
  }
}

扩展接口

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

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

AugmentedDataSet 数据模型接口

AUGMENTEDDATASET_ON_SAVE_DIALOG_INIT

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

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

名称类型说明
输入参数iSaveDialogISaveDialog保存弹窗对象
返回值-

示例代码

this.on(AUGMENTEDDATASET_ON_SAVE_DIALOG_INIT, async (iSaveDialog) => {
  // 删除所有操作按钮
  iSaveDialog.setOperateButtonFilter(item => {
    return false
  })
  // 设置根节点为我的空间中的分析报表
  let resp = await rmi('UserService', 'getCurrentUser')
  iSaveDialog.setRootNodeId(`SELF_ANALYSIS_${resp.result.id}`)
})

AUGMENTEDDATASET_ON_CREATE_RESOURCE

触发时机:点击新建的子菜单时

作用:自定义新建点击的处理

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

名称类型说明
输入参数iAugmentDatasetiAugmentDatasetImpl数据模型对象
输入参数argsJson 对象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'
}
返回值-

示例代码

class AugmentExtentor extends BaseAugmentExtender{
  async install () {
    let resp = await rmi('UserService', 'getCurrentUser');
    this.on(AUGMENTEDDATASET_ON_CREATE_RESOURCE, (iAugmentDatasetImpl, args) => {
        console.log(resp)
        if (resp.result.name === 'admin') {
          // 禁止原创建的逻辑
          iAugmentDatasetImpl.setCreateResource(false);
        }
    })
  }
}

AUGMENTEDDATASET_ON_TOOLBAR_INIT

触发时机:工具类初始化

作用:配置工具栏按钮是否显示

名称类型说明
输入参数iToolbarToolbarImpl工具类对象
返回值-

说明:

iToolbar 的 getButtons()方法,返回一个按钮数组,通过改变数组的个数,达到显示或隐藏按钮;

示例代码

this.on(AUGMENTEDDATASET_ON_TOOLBAR_INIT, (iToolbar) => {
  // 获取按钮配置
  let btns = iToolbar.getButtons();
  for (let i = 0; i < btns.length; i++) {
    if (btns[i].action === 'SAVE') {
      // 移除save的子菜单
      btns[i].children = [];
      // 去掉下拉图标
      btns[i].type = 'icon';
    }
  }
  // 设置按钮配置
  // iToolbar.setButtons(btns);
})

AUGMENTEDDATASET_ON_VIEWENTRY_CLICK

触发时机:私有查询新建按钮点击

作用:屏蔽新建私有查询的菜单项

名称类型说明
输入参数iViewEntryImplViewEntryImpl私有查询新建按钮对象
返回值-

示例代码

this.on(AUGMENTEDDATASET_ON_VIEWENTRY_CLICK, (iViewEntryImpl) => {
  // 屏蔽数据源表、日期维表
  iViewEntryImpl.hideMenus(['BASIC_TABLE', 'TIME_TABLE']);
  /* 
TIME_TABLE、ETL_VIEW、PROC_VIEW、JS_VIEW、JAVA_VIEW、COMBINEDQUERY_VIEW、SQL_VIEW、EXCEL_VIEW、BASIC_TABLE,分别代表:生成日期表、ETL高级查询、存储过程查询、脚本查询、Java查询、即席查询、SQL查询、导入文件、数据源表
  */
})

接口对象

ISaveDialog

资源保存弹窗对象,可删除操作按钮(上一级和创建文件夹)或指定可保存的目录

setOperateButtonFilter

作用:过滤右上角的操作按钮

名称类型说明
输入参数filterFuncfunction过滤方法,第一个参数为操作按钮信息
返回值-

示例代码

iSaveDialog.setOperateButtonFilter(item => {
  // 移除返回上一级按钮
  return item.id !== 'DRILL_UP'
})

setRootNodeId

作用:设置资源树中的根节点 id,设置后只可查看或查找该节点下的文件或资源

名称类型说明
输入参数idstring节点 id
返回值-

示例代码

let resp = await rmi('UserService', 'getCurrentUser')
// 设置根节点为我的空间下
iSaveDialog.setRootNodeId(`SELF_${resp.result.id}`)

setNodeFilter

作用:根据自定义的白名单或黑名单对显示节点进行过滤

名称类型说明
输入参数filterFuncfunction过滤方法,第一个参数为 NodeItem
返回值-

示例代码

let whiteList = ['I8a8a9f0b017f6c946c94975c017f6d7fe0d7029f']
// 在我的空间下只显示资源及指定文件夹
iSaveDialog.setNodeFilter(item => {
  if (item.type !== 'SELF_TREENODE') {
    return true
  }
  return whiteList.some(id => item.id === id)
})

iAugmentDataset

setCreateResource

作用:是否执行创建资源处理

名称类型说明
输入参数isCreateboolean是否执行创建资源处理
返回值-

iToolbar

getButtons

作用:是否执行创建资源处理

名称类型说明
输入参数getButtons获取按钮的配置信息
返回值

setButtons

作用:是否执行创建资源处理

名称类型说明
输入参数setButtonsjson 对象设置按钮的配置信息
返回值-

iViewEntryImpl

hideMenus

作用:隐藏菜单项

名称类型说明
输入参数idsArray菜单项的 id 数组,说明如下:TIME_TABLE、ETL_VIEW、PROC_VIEW、JS_VIEW、JAVA_VIEW、COMBINEDQUERY_VIEW、SQL_VIEW、EXCEL_VIEW、BASIC_TABLE,分别代表:生成日期表、ETL 高级查询、存储过程查询、脚本查询、Java 查询、即席查询、SQL 查询、导入文件、数据源表
返回值-
  • 无标签