JS实现统一Tab块标题宽度

1. 概述

1.1 问题描述

使用决策报表 Tab 块时,默认的 Tab 标题会根据字数自动扩展。若想实现统一宽度,除了「补空格使标题字数一致」的方法外,是否有其他方法实现 Tab 标题手动设置统一宽度呢?如下图所示:

Snag_244c56be.png

1.2 解决思路

给 Tab 块添加初始化后事件,使用 JavaScript 代码修改 HTML 属性。

注1:和大多数 HTML 修改样式一样,页面放大缩小后会失效,请酌情使用。

注2:该方案仅支持「旧版决策报表」。

2. 示例

2.1 设计报表

1)新建决策报表,将 body 的布局方式修改为「绝对布局」,如下图所示:

Snag_2452ad1e.png

2)向 body 中拖入一个 Tab 块,新增几个标题页,并设置长度不一的标题名称。如下图所示:

1615171025547589.png

3)示例为了便于区分,设置 Tab 块填充颜色为灰色。选中整个 Tab 块(tablayout0),点击「属性>高级>样式」编辑按钮,设置「填充」为「颜色」,选择颜色后在左边预览界面可看到样式效果。如下图所示:

1615171601124691.png

2.2 添加事件

选中整个 Tab 块(tablayout0),点击「事件>添加事件」,添加一个「初始化后事件」。如下图所示:

事件中添加一个 tabname 参数(字符型),值为:TABPANE0 ;添加一个 change 参数(整型),值为 100。

注:change 参数的值为标题宽度,实际应用中修改标题宽度可在此修改。

2021-07-15_15-55-40.png

JavaScript 代码如下:

setTimeout (function ({
   var nums=$("div[widgetname='"+tabname+"']").find(".fr-widget-click").length; 
//获取修改个数
   var left=[];                //存放修改前的 left 属性
   var width=[];               //存放修改前的 width 属性
   var new_left=[];            //存放新的 left 属性
   var more_width=[];          //存放多出的 width
   var temp=1;                 //记录 left 累加值
for(var i=0;i<nums;i++){
      left[i]=($("div[widgetname='"+tabname+"']").find(".fr-widget-click").eq(i*1+1*1).parent().css('left')).replace(/[^0-9]+/ig,""); 
//给修改前 left 赋值因为第一个不需要动,所以从第二个开始
  width[i]=$("div[widgetname='"+tabname+"']").find(".fr-widget-click").eq(i*1).width();    //给修改前 width 赋值                   
  more_width[i] = change*1 - width[i]*1;  //计算每次增加的 width
  temp=(temp*1)+(more_width[i]*1);        //累加每次增加的width
      new_left[i]=(temp*1.0)+(left[i]*1.0) ;  //计算新的left
      $("div[widgetname='"+tabname+"']").find(".fr-widget-click").eq(i*1+1*1).parent().css("left",""+new_left[i]+"px");  //更改 left

},100);
setTimeout (function ({
   $("div[widgetname='"+tabname+"']").find(".fr-widget-click").css("width",""+change+"px");                 
   // 更改 fr-widget-click 的 width     
   $("div[widgetname='"+tabname+"']").find(".ui-state-enabled.fr-form-imgboard").css("width",""+change+"px"); 
   // 更改 ui-state-enabled fr-form-imgboard 的 width
},150);
显示代码

2.3 效果预览

保存报表,点击「PC 端预览」,效果如下图所示:

Snag_2482d9a3.png

注:不支持移动端。

3. 模板下载

已完成模板可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\JS\表单JS实例\JS实现Tab标题统一宽度.frm

点击下载模板:JS实现Tab标题统一宽度.frm

附件列表


主題: 原隐藏目录内容
已經是第一篇
已經是最後一篇
  • 有幫助
  • 沒幫助
  • 只是瀏覽
中文(繁體)

滑鼠選中內容,快速回饋問題

滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

不再提示

4s后關閉

獲取幫助
線上支援
獲取專業技術支援,快速幫助您解決問題
工作日9:00-12:00,13:30-17:30在线
頁面反饋
針對當前網頁的建議、問題反饋
售前咨詢
業務咨詢
電話:0933-790886或 0989-092892
郵箱:taiwan@fanruan.com
頁面反饋
*問題分類
不能為空
問題描述
0/1000
不能為空

反馈已提交

网络繁忙

反饋已提交

網絡繁忙