1、不显示导出弹窗
示例1
代码块 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
import SmartBIExt from 'smartbi-ext' let { DashModule: { DashEventEmum: { PAGE_ON_BEFORE_EXPORT_DIALOG }, BaseDashExtender } } = SmartBIExt class DashInterfaceExtension extends BaseDashExtender { install () { this.on(PAGE_ON_BEFORE_EXPORT_DIALOG, (iPage, { portletId, props }) => { // 省略默认值设置步骤 props.openDialog = false; // 不打开导出弹窗 }) } } export default DashInterfaceExtension |
...
代码块 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
import SmartBIExt from 'smartbi-ext'
let {
DashModule: {
DashEventEmum: {
PAGE_ON_PORTLET_BEFORE_EXPORT
},
BaseDashExtender
}
} = SmartBIExt
class DashInterfaceExtension extends BaseDashExtender {
install () {
this.on(PAGE_ON_PORTLET_BEFORE_EXPORT, (iPage, { portletId, exportType }) => {
// 提供exportSetting, 则下面的接口不会显示弹窗
// 目前exportSetting是空对象, 表示所有设置项都使用默认值
let exportSetting = {}
iPage.execExport({ exportType, portletId, exportSetting })
// 下面是第二种方式
// let setting = iPage.execGenerateExportSetting({ exportType })
// iPage.execExportWithSetting({ exportType, portletId, setting })
})
}
}
export default DashInterfaceExtension |
2、修改导出弹窗
代码块 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
import SmartBIExt from 'smartbi-ext'
let {
DashModule: {
DashEventEmum: {
PAGE_ON_BEFORE_EXPORT_DIALOG
},
BaseDashExtender
}
} = SmartBIExt
class DashInterfaceExtension extends BaseDashExtender {
install () {
this.on(PAGE_ON_BEFORE_EXPORT_DIALOG, (iPage, { portletId, props }) => {
props.defaultValue.fileName = '固定报表'; // 设置文件名
props.disables.fileName = true;
props.visibles.exportMode = false; // 隐藏导出渠道
})
}
}
export default DashInterfaceExtension |
3、定制导出弹窗
代码块 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
// MyExportSettingDialogHandler.js
import SmartbiBIExt from 'smartbi-ext'
// MyExportSettingDialog.vue的代码自由发挥, 不再详细展示
import MyExportSettingDialog from './MyExportSettingDialog.vue'
const layer = SmartbiBIExt.InterfaceObject.IGlobal.getLayer()
export default {
open (parent, exportSetting, callback) {
this.layerId = layer.iframe('导出弹窗', {
content: {
content: MyExportSettingDialog,
parent,
data: { // 传递给MyExportSettingDialog的数据
setting: exportSetting,
apply: (exportSetting) => {
callback(exportSetting)
this.close()
},
cancel: () => {
this.close()
}
}
}
})
},
close () {
layer.close(this.layerId)
}
} |
代码块 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
import SmartBIExt from 'smartbi-ext'
// 在当前目录定义一个自己的导出弹窗
import MyExportSettingDialogHandler from './MyExportSettingDialogHandler.js'
let {
DashModule: {
DashEventEmum: {
PAGE_ON_PORTLET_BEFORE_EXPORT
},
BaseDashExtender
}
} = SmartBIExt
class DashInterfaceExtension extends BaseDashExtender {
install () {
this.on(PAGE_ON_PORTLET_BEFORE_EXPORT, (iPage, { portletId, exportType }) => {
// 获取默认的导出设置
let setting = iPage.execGenerateExportSetting({ portletId, exportType })
MyExportSettingDialogHandler.open(this, setting, (setting) => {
iPage.execExportWithSetting({ exportType, portletId, setting })
})
})
}
}
export default DashInterfaceExtension |
代码块 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
import SmartBIExt from 'smartbi-ext'
// 在当前目录定义一个自己的导出弹窗
import MyExportSettingDialogHandler from './MyExportSettingDialogHandler.js'
let {
DashModule: {
DashEventEmum: {
PAGE_ON_BEFORE_EXPORT
},
BaseDashExtender
}
} = SmartBIExt
class DashInterfaceExtension extends BaseDashExtender {
install () {
this.on(PAGE_ON_BEFORE_EXPORT, (iPage, { exportType }) => {
// 获取默认的导出设置
let setting = iPage.execGenerateExportSetting({ exportType })
MyExportSettingDialogHandler.open(this, setting, (setting) => {
iPage.execExportWithSetting({ exportType, setting })
})
})
}
}
export default DashInterfaceExtension |
4、定制导出流程
代码块 | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
import SmartBIExt from 'smartbi-ext'
let {
DashModule: {
DashEventEmum: {
PAGE_ON_BEFORE_EXPORT
},
BaseDashExtender
}
} = SmartBIExt
class DashInterfaceExtension extends BaseDashExtender {
install () {
this.on(PAGE_ON_BEFORE_EXPORT, (iPage, { exportType }) => {
// 自定义导出流程
// 这里做审核之类的事情
let pass = true; // 审核是否通过
if (pass) {
// 使用系统的导出弹窗
iPage.execOpenExportSettingDialog({ exportType }, (setting) => {
// 获取导出接口入参
iPage.execGetExportSetting({ exportType, setting }, (ret) => {
if (ret === false) {
// 创建临时页面失败
return
}
let { exportData, doAfterExport } = ret
// 使用exportData调用自定义导出接口
// 导出完毕, 调用导出完成回调
doAfterExport()
})
})
}
})
}
}
export default DashInterfaceExtension |