全局变量函数
全局Modal
- 使用场景:godzilla tab/工作台 iframe 中调用全局模态框
- globalModal 用于在页面中显示一个全局的 Modal,区别于quantex-design中的Modal
- globalModal 遮罩会覆盖菜单、header、footer 整个页面
- globalModal 提供方法: info、success、warning、error、confirm
- 调用上面方法返回一个 Modal 实例,拥有方法:destroy、update
- 其他详细用法可以参考antd Modal组件
// 使用方式
const modalInstance = window.top?.globalModal.info({
title: 'This is a notification message',
content: (
<div>
<p>some messages...some messages...</p>
<p>some messages...some messages...</p>
</div>
),
onOk() {},
});
// 销毁 Modal
modalInstance.destroy();
// 更新 Modal
modalInstance.update({
title: 'This is a new message',
content: (
<div>
<p>some messages...some messages...</p>
</div>
),
});
打开新窗口
// 打开一个新窗口,返回值,为true,打开新窗口,为false,已打开该窗口
window.openWindow({
url: 'sample/User', // 【必填】或者绝对地址(例如:http://www.baidu.com)
title: '用户管理', //【可选】最好加上,窗口显示的名称(document.title)
name: '用户管理', // 可选】窗口的标识,如果指定了,那么就不允许打开两个相同名字的窗口, 所以,如果允许打开多个窗口,则可不传
params: {} // 参数
});
打开 TAB
通过主窗口打开某个菜单,该全局函数只存在主窗口中
window.openMenuByMain({
type: 'tab', // 以tab的方式打开(默认),否则,以新窗口打开(调用window.openWindow)
url: 'sample/User', // 【必填】或者绝对地址(例如:http://www.baidu.com)
title: '用户管理', //【可选】窗口显示的名称(document.title),当type不为tab时有效
name: '用户管理', // 【必填】最好加上,窗口显示的名称(document.title)
params: {}, // url参数
props: {} // 组件参数
});
获取 URL 参数
// http://127.0.0.1:8888?x=1&y=2 => {x:1,y:2}
window.getUrlParams(url); // url参数可选,如果不传则取location.href
系统登出
重定向到登录页或者 SSO 登录页
window.logout();
postMessage 主子系统间通信
// portal应用向子系统iframe发起消息通知
window.postMessageToIframe({
appId: 'pro', // 应用ID
page: 'sample/User', // 页面URL
type: 'openPage' // 其它: openPage/closePage/reloadPage等
// ... 其它参数
});
// portal应用向子系统iframe发起主题切换通知
window.notifyIframeSwitchTheme(appId);
// 获取当前系统主题
window.getCurrentTheme();
获取微应用页面
window.importMicroPage(appId, url);
全局变量
// 保存所有的iframe实例,key为appId,value为iframe实例
window.iframeContainers = new Map();
// 保存所有的按钮权限,key为btnCode,value为按钮信息
window.btnCodeMap = new Map();
// 是不是以iframe的形式被加载
window.isInIframe;
// 是不是以工作台的形式被加载
window.isInWorkbench;