门户协作开发

这里的门户协作开发不是指门户功能定制,特指在不定制门户的情况下,开发应用与门户协作。门户功能定制请参考《门户定制

门户数据获取

门户前端数据主要存储在页面对像 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 方法可以与门户配置中的“切换岗位关闭已打开页面”配合使用,开启该配置执行切换方法会关闭所有已打开的页面,保证再次打开的页面中上下文组件中的当前岗位信息是正确的。

图 0

onUserInfoMenuClick 方法中,在切换用户岗位后,派发事件 refreshDataByOrgId 通知其他页面:“用户的当前岗位已切换”,在页面中增加事件监听(参考《JS SDK》下事件触发器),接收派发的 refreshDataByOrgId 事件,JS 代码如下:

import history from 'core/appHistory';

//currentPsm指切换后的成员组织数据
history.router.emitter.on("refreshDataByOrgId",({currentPsm})=>{
    //处理成员组织切换后执行逻辑
});

集成第三方系统

通过微前端方法加载第三方系统,详细操作请参考《使用无界微前端框架嵌入页面》 ,通过该方式可实现在第三方系统中操作门户内容页签页面

results matching ""

    No results matching ""