门户设置默认打开某个资源节点的方法

1. 需求场景

访问门户默认打开的是导航树上挂的第一个资源节点,如果想默认打开某个自己指定的资源节点,如何实现?

2. 实现方法

在树组件的属性面板—>事件—>加载完成中写脚本,格式如下:

function(xtree, _,iseditstatus){

xtree.getRootItem().getChildItem(n).getChildItem(n).selectSelf(true, true);

}

 

其中xtree.getRootItem()必须写,表示定位到门户的树的最高级总结点。

getChildItem(n)n=0/1/2/3/4...,表示指定到第一层的第n+1个节点,可连续写,比如说getChildItem(n).getChildItem(n)表示指定到第一层的第n+1个节点的第n+1个子节点,以此类推。

selectSelf(true, true)的功能是定位到此节点并展开显示。若改成doClick()则效果为只会显示页面,不会定位树节点。

3. 需求进阶

基于以上需求场景,想进一步实现不同的用户登录访问到这个门户,默认打开不同的资源节点,比如:用户001登录默认打开树节点A,002登录默认打开树节点B,其他用户登录默认打开树节点C,是否可以做到呢?

答案当然是yes~ 以导航树风格门户为例,操作方法如下:

Step1:

在门户上添加一个文本组件,用来获取登陆者的ID

文本内容:<#=login.id#>

组件标识:loginid


 门户设置默认打开某个资源节点的方法


Step2:

在树组件的加载完成属性中添加脚本

function(xtree,iseditstatus){

if (!iseditstatus) {

xtree.getRootItem().getChildItem(3).getChildItem($p.$("loginid").getText() === "001" ? 0 : ($p.$("loginid").getText() === "002" ? 1 : 2)).selectSelf(true, true);

}

}


 


脚本解析:

  1. loginid即定义的文本组件标识;

  2. $p.$("loginid").getText() === "XXX" ? a : b)  结构相当于BI中的if判断,当登录ID是XXX时,访问第a+1个节点,否则访问第b+1个节点。 

4. 补充说明

树组件默认不勾选“禁止定位第一个节点”属性,所以如果需要默认不打开导航树上的第一个资源、只打开脚本指定的资源节点,该属性需要勾选上。

附件列表

0

文档内容仅供参考
如果您需要解决具体问题,还可以登陆亿信社区
在提问求助板块提问,30分钟内帮您解决问题

如果您认为本词条还有待完善,请编辑

上一篇门户指引

下一篇导航树风格门户页头收放按钮

请先登录

创建词条

词条信息

admin
admin

超级管理员|词条创建者

1415

浏览次数:694 次

编辑次数:2次 历史版本

更新时间:2019-12-24