JS实现隐藏tab块标题

编辑
  • 文档创建者:cherishdqy
  • 浏览次数:8225次
  • 编辑次数:16次
  • 最近更新:Carly 于 2019-10-12
  • 1. 概述

    1.1 问题描述

    用户希望可以自定义设置 Tab 的展现与隐藏,比如不同用户可以查看不同的 Tab 块,或者隐藏一些无关 Tab 页的内容,该如何实现呢?

    1.2 解决思路

    通过 JS 隐藏 Tab 标题。

    注:通过 JS 的方法,可能导致 Tab 内部组件不能根据正确的宽高进行自适应,因此建议通过设计器自带属性——设置 tabpane 高度为 的方法,来实现隐藏。

           详情请参考:Tab 布局 第 3.6 章。

    注:此功能不支持移动端和 HTML5 方式预览。

    2. 示例一:隐藏整个 Tab 标题

    2.1 打开模板

    打开模板 %FR_HOME%\webapps\webroot\WEB-INF\reportlets\demo\analytics\financial2\生产库存分析.frm

    点击下载模板:生产库存分析.frm

    2.2 添加初始化事件

    在决策报表右上角控件设置中,选择 tabpane0 控件,添加初始化事件,如下图所示:

    222

    JAR 包在 2018-1-24 之前,隐藏 Tab 标题的 JS 代码如下:

    $('div:lt(1)',this.element.parent()).hide();//隐藏 Tab 标题

    JAR 包在 2018-1-24 及之后,隐藏 Tab 标题的 JS 代码如下:

    this.element.parent().hide();

    注:是添加到 tabpane 块组件的初始化事件,不是 Tab 块里面的每个 Tab 页签的初始化事件。

    2.3 效果预览

    保存模板,预览效果如下图所示:

    222

    3. 示例二:隐藏部分 Tab 标题

    3.1 打开模板

    打开模板 %FR_HOME%\webapps\webroot\WEB-INF\reportlets\demo\analytics\financial2\生产库存分析.frm

    点击下载模板:生产库存分析.frm

    3.2 添加初始化事件

    在决策报表右上角控件设置中,选择 tabpane0 控件,添加初始化后事件,如下所示:

    222
    JS 代码如下:

    this.options.form.getWidgetByName("tabpane0").setTabVisible("tab1", false);

    注1:要尽量避免重名的情况。若存在重名的 Tab,页面初始化的时候,后加载的 Tab 会覆盖先加载的 Tab,所以 JS 里获取到的,可能并不是预期要处理的 Tab。

            例如:模板里有两个 tabpane0 和 tabpane1,tabpane1 是后加载的,那么通过 this.options.form.getWidgetByName("tabpane0").setTabVisible("tab2", false);                         获取到的 Tab2,其实最后会是 tabpane1 里的 Tab2,前面即使写获取的控件名为 tabpane0 也是无效的。

    注2:用传统的写法是不支持 Tab 隐藏的。

            例如:this.options.form.getWidgetByName("Tab0").setVisible();,这种传统写法只适合用于控制组件,比如 report0 这种报表块组件的隐藏与否。

    注3:当模板导出时,被隐藏的 Tab 不会被导出。

    3.3 效果预览

    保存模板,预览效果如下图所示:

    222

    4. 预览效果

    4.1 PC 端

    4.1.1 示例一

    222

    4.1.2 示例二

    222

    4.2 移动端

    注:不支持移动端。

    5. 已完成模板

    5.1 示例一

    已完成的模板,可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\JS\表单JS实例\12-JS实现隐藏tab块标题-示例一.frm

    点击下载模板:12-JS实现隐藏tab块标题-示例一.frm

    5.2 示例二

    已完成的模板,可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\JS\表单JS实例\12-JS实现隐藏tab块标题-示例二.frm

    点击下载模板:12-JS实现隐藏tab块标题-示例二.frm

    附件列表


    主题: 二次开发
    标签: 暂无标签
    如果您认为本文档还有待完善,请编辑

    文档内容仅供参考,如果你需要获取更多帮助,付费/准付费客户请咨询帆软技术支持
    关于技术问题,您还可以前往帆软社区,点击顶部搜索框旁边的提问按钮
    若您还有其他非技术类问题,可以联系帆软传说哥(qq:1745114201

    此页面有帮助吗?只是浏览 [ 去社区提问 ]