门户V2定制-组织详情页面初始化扩展
在组织详情页面中,添加根组织,默认会选中分配组织角色,在某些租户中,需要不默认选中。即需要在门户自定义组件中,在组织详情页面的初始化事件中,修改分配组织角色绑定的数据
在页面中增加初始化事件
页面组件的事件,不能用于扩展,因此在页面 JS 文件中添加页面初始化事件 onInitState,代码如下
export default class IndexPage extends Page {
constructor(props, context) {
super(props, context);
}
//页面初始化事件
async onInitState() {
let pageState = await super.onInitState();
return {...pageState};
}
//页面组件的数据初始化事件
onPageInitState = async (event) => {
...
}
}
在门户自定义组件中,扩展页面初始化事件
在门户自定义组件的 portalConfig.config.js 文件中,添加组织详情页面的页面初始化事件的 before 事件
- 门户自定义组件 portalConfig.config.js 文件位于 model/UI2/comp/portalConfig/components/portalConfig 目录下
- 组织详情页面是:model/UI2/opm-pcx/dialog/orgDetail.w
- 页面初始化事件是:onInitState
- before 事件是:@before
- 获取页面对象使用:configContextProcessor.page
- onConfigContextInit 方法的最后,执行 this.inited = false; 使得每次打开页面时都会执行
代码如下
async onConfigContextInit(configContextProcessor) {
let portalConfig = {
"config": {
"/entry": {
"/opm-pcxapp": {
"/opm-pcx": {
"/dialog": {
"/orgDetail.w": {
"onInitState": {
"@before": () => {
configContextProcessor.page.comp("pageData").setValue("assignRole",0);
}
}
}
}
}
}
}
}
};
merge(configContextProcessor.page.configContext, portalConfig);
ConfigContextProcessor.enhancePageAdvice(configContextProcessor.page);
this.inited = false;//设置后,会多次执行
}