帆软层级树一键展开、合并

1. 概述

1.1 问题描述

我们制作的复杂折叠树或视图树报表,在以数据分析模式预览时,需要点击父节点,才会展开下一层子节点,当层数比较多的时候,操作比较麻烦。

如果用户想实现一键全部展开或收起,如何实现呢?

如图一(折叠树):

222

如图二(视图树):

222
 

1.2 实现思路

可以添加 2 个按钮,再通过给按钮添加点击事件来实现对应的功能。

 

2.示例

2.1 示例一

2.1.1 添加按钮

打开 %FR_HOME%\webapps\webroot\WEB-INF\reportlets\demo\basic\复杂折叠树.cpt 报表,并添加 2 个按钮。

如图:

image.png

 

2.1.2 设置点击事件

分别给“展开”、“收起”按钮添加点击事件,

A、展开 JS:
image.png

//展开的最大节点级值

var t = 3; 
for(var m = 1; m <= t; m++) {
//循环执行“+”号展开
    $('.x-treenode-unexpand').trigger('click');
}
for(var n = 1; n <= 2; n++) {
//执行点击2次(下标从0开始)第1个样式为“fr-widget-click”的元素,定位光标
    $('.fr-widget-click').eq(0).trigger('click');
}

B、收起 JS:

image.png

var t = 3;
for(var m = 1; m <= t; m++) {
//循环执行“-”号收起
    $('.x-treenode-expand').trigger('click');
}
for(var n = 1; n<= 2; n++){
//执行点击2次(下标从0开始)第1个样式为“fr-widget-click”的元素,定位光标
$('.fr-widget-click').eq(0).trigger('click');
}

2.2 示例二

2.2.1 添加按钮

打开 %FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\Primary\widgetReport\singletree.cpt 报表。将参数区地区控件视图树放置到 A1 单元格,并在参数区添加 2 个按钮(收起、展开),删掉原【查询】按钮,并设置不勾选【点击查询前不显示报表内容】。

如图:
image.png

 

2.2.2 设置点击事件

分别给“展开”、“收起”按钮添加点击事件,

A、展开 JS:

image.png

 

//展开的最大节点级值  
var t = 2;   
for(var m = 1; m <= t; m++) {  
    //循环执行“+”号展开  
    $('.fr-tree-elbow-plus').trigger('click');  
}  
$('.fr-tree-elbow-end-plus').trigger('click');

B、收起 JS:
image.png

 

//展开的最大节点级值  
var t = 2;   
for(var m = 1; m <= t; m++) {  
    //循环执行“+”号展开  
    $('.fr-tree-elbow-minus').trigger('click');  
}  
$('.fr-tree-elbow-end-minus').trigger('click');

 

2.3 预览效果

2.3.1 示例一

保存模板,点击数据分析预览,PC 端效果如下所示:

222

2.3.2 示例二

保存模板,点击数据分析预览,PC 端效果如下所示:

222

3. 模板下载

3.1 示例一

已完成的模板,可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\JS\数据分析JS实例\02-JS实现折叠树/视图树所有节点一键全部展开或收起.cpt

点击下载模板:JS实现折叠树/视图树所有节点一键全部展开或收起.cpt

  • 1
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
xmSelect 是一个基于 jQuery 的下拉选择插件,它支持多选、多层级等功能。要实现多层级的功能,你可以按照以下步骤进行操作: 1. 引入必要的文件:在页面中引入 jQuery 和 xmSelect 的 CSS 和 JS 文件。 ```html <link rel="stylesheet" href="path/to/jquery.css"> <link rel="stylesheet" href="path/to/xm-select.css"> <script src="path/to/jquery.js"></script> <script src="path/to/xm-select.js"></script> ``` 2. 创建一个下拉选择框:在 HTML 中创建一个 `<select>` 元素,并给它一个唯一的 ID。 ```html <select id="mySelect"></select> ``` 3. 初始化 xmSelect 插件:使用 JavaScript 初始化 xmSelect 插件,并配置相关参数。 ```javascript $(function() { $('#mySelect').xmSelect({ // 配置参数 }); }); ``` 4. 配置多层级数据:使用 JavaScript 定义多层级的数据,并传递给 xmSelect 插件。 ```javascript var data = [ { name: '节点1', value: '1', children: [ { name: '节点1-1', value: '1-1', children: [ { name: '节点1-1-1', value: '1-1-1' }, { name: '节点1-1-2', value: '1-1-2' } ]}, { name: '节点1-2', value: '1-2' } ]}, { name: '节点2', value: '2', children: [ { name: '节点2-1', value: '2-1' }, { name: '节点2-2', value: '2-2' } ]} ]; $(function() { $('#mySelect').xmSelect({ data: data, // 其他配置参数 }); }); ``` 通过以上步骤,你就可以实现一个多层级形的 xmSelect 下拉选择框。你可以根据自己的需求,通过配置参数来定制插件的行为和样式。更详细的配置和使用方法可以参考 xmSelect 的官方文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值