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 |