门户协作开发

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

门户数据获取

门户前端数据主要存储在页面对像 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 切换组织用户后,如果需要告知同租户下其它应用,当前用户组织已切换,需通过事件派发(参考《JS SDK》下事件触发器),调用方法“refreshDataByOrgId”。具体使用方法如下:

import history from 'core/appHistory';

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

集成第三方系统

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

results matching ""

    No results matching ""