门户协作开发
这里的门户协作开发不是指门户功能定制,特指在不定制门户的情况下,开发应用与门户协作。门户功能定制请参考《门户定制》
门户数据获取
门户前端数据主要存储在页面对像 state 中,具体可参考《数据结构》,在同租户下的应用可获取门户 state 属性,从而减少非必要的请求
岗位切换事件
在门户右上角可以切换用户的岗位,在应用页面中通过代码也可以切换岗位,通过调用门户首页 onUserInfoMenuClick 方法切换岗位,代码如下:
//在非门户应用中获取门户首页
this.indexPage=top.getCurrentReactPage?.();
//获取用户关联的所有组织信息
const {orgsData}=this.indexPage.state;
//根据业务需求从orgsData获取用户组织信息,例如通过指定fid查找
const currentOrg=this.state.orgsData.filter(item=>item.userFid==currentFid)?.[0];//currentFid对应你要切换的组织用户fid
if(currentOrg){
//切换组织,注意方法onUserInfoMenuClick中参数是从orgsData中取出的对象
this.indexPage.onUserInfoMenuClick(currentOrg);
}
切换用户岗位 onUserInfoMenuClick 方法可以与门户配置中的“切换岗位关闭已打开页面”配合使用,开启该配置执行切换方法会关闭所有已打开的页面,保证再次打开的页面中上下文组件中的当前岗位信息是正确的。
onUserInfoMenuClick 方法中,在切换用户岗位后,派发事件 refreshDataByOrgId 通知其他页面:“用户的当前岗位已切换”,在页面中增加事件监听(参考《JS SDK》下事件触发器),接收派发的 refreshDataByOrgId 事件,JS 代码如下:
import history from 'core/appHistory';
//currentPsm指切换后的成员组织数据
history.router.emitter.on("refreshDataByOrgId",({currentPsm})=>{
//处理成员组织切换后执行逻辑
});
集成第三方系统
通过微前端方法加载第三方系统,详细操作请参考《使用无界微前端框架嵌入页面》 ,通过该方式可实现在第三方系统中操作门户内容页签页面
