1. 概述
1.1 问题描述
不勾选决策报表组件「属性」下的「可见」时,可在前端展示时隐藏决策报表组件,但是无法自由切换隐藏或显示。
那么如何才能在前端预览时自由切换组件隐藏或显示呢?预期效果如下图所示:
1.2 实现思路
决策报表中添加 2 个按钮,分别添加点击事件,实现隐藏和显示组件功能。
2. 示例
2.1 准备模板
点击下载模板 门店分析.frm 并在设计器中打开。
2.2 添加按钮
拖入两个按钮控件,将按钮名称分别修改为「隐藏」、「显示」,如下图所示:
2.3 添加隐藏事件
选中「隐藏」按钮,添加「点击」事件,点击即可隐藏 report0 组件,JavaScript 代码如下:
_g().getWidgetByName('report0').setVisible(false); //隐藏报表块
如下图所示:
注:report0 是报表块名,如果是需要隐藏图表块,换成图表块名称即可。
2.4 添加显示事件
选中「显示」按钮,添加「点击」事件,点击即可显示 report0 组件,JavaScript 代码如下:
_g().getWidgetByName('report0').setVisible(true); //显示报表块
如下图所示:
注:若按钮控件在参数面板中,事件写法与上述写法一致,无需改动。
2.5 效果预览
2.5.1 PC 端
保存模板,点击「PC端预览」,效果如 1.1 节预期效果所示。
2.5.2 移动端
同时支持 App 端和 H5 端预览,效果如下图所示:
3. 模板下载
已完成模板可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\JS\表单JS实例\JS隐藏决策报表内报表块或图表块.frm
点击下载模板:JS隐藏决策报表内报表块或图表块.frm
4. 注意事项
1)只支持隐藏报表块、图表块。
2)自适应布局下,组件隐藏后触发自适应效果,被隐藏组件的位置会被旁边的组件占用。如果是绝对布局,被隐藏组件的位置会空出来,如下图所示: