【表单JS】JS修改新自适应表单控件属性

楼主
奋斗—努力做一个数据展示砖家

1.背景及说明

1.1 背景

随着新自适应的插件和FineReport11.0的深度使用,修改新自适应控件的样式的需求也来了,原本的修改的js也不在适用。

1.2 说明

本文针对新自适应控件属性修改,老自适应修改可以参考文档【表单JS实例】JS实现控件融入背景;文档内容来自官方文档&问答平台&自己百度、class获取及测试,真实有效!!!

2.实现思路

因为部分用户服务器对文件上传限制比较严格【我就是】,本文主要通过 JS 的方式进行实现

3.实现

3.1 修改控件的背景、边框、字体

修改前效果

修改后效果

JavaScript 代码如下【添加位置:body》初始化事件】:

setTimeout(function() {
$(".bi-card").css({'background-color':'#222629'});//修改控件的底层背景色	
$(".bi-border").css({'border':'1px solid #4c4c4c'}); //修改控件边框
$(".bi-text").css({'color':'#fdfdfd'}); //修改控件文本颜色
$(".bi-input").css({'color':'#fdfdfd'}); //修改文本控件文本颜色
}, 200)

3.2 修改控件下拉列表的背景和字体颜色

修改前效果

修改后效果

JavaScript 代码如下【添加位置:body》初始化事件】:

setTimeout(function() {
//修改下拉列表的背景及字体颜色
$(".bi-v.list-view-outer.list-view-shadow").css({"background-color":"#161a1d","color":"#fdfdfd"});
}, 200)

3.3 要求只修改部分控件属性

JavaScript 代码如下【添加位置:body》初始化事件】:

//在元素前添加ID--div[widgetname='COMPANY_NAME1']即可,其中元素和ID内的引号需不一致【单引号或者多引号,否则识别有误】,同时ID对应控件的名称,需要大写
$("div[widgetname='COMPANY_NAME1'].bi-v.list-view-outer.list-view-shadow").css({"background-color":"#161a1d","color":"#fdfdfd"})

 

3.4 更换下拉框的背景为图片

此处有两个方案:

①直接JS引用图片为边框背景即可

JavaScript 代码如下【添加位置:body》初始化事件】:

其中URL为路径,可以直接用网页图片URL也可以使用本地图片,用相对路径,放在webroot下即可

setTimeout(function() {
//修改控件的底层背景图片;no-repeat指图片不重复;cover指全适应展开
$("div[widgetname='COMPANY_NAME1'].bi-card").css({"background":"url('/webroot/help/picture/xlk.png') no-repeat",'background-size': 'cover'});
//隐藏边框
$(".bi-border").css({'border':'none'}); 
//更换下拉框箭头的背景,margin-top指距离顶部位置;background-size为图片尺寸;objectFit为自适应;backgroundRepeat为重复属性
$('.bi-basic-button.cursor-pointer.bi-icon-button.horizon-center.bi-trigger-icon-button.overflow-hidden.pull-down-font.trigger-icon-button').css({
'height': '10px',
'margin-top': '10px',
'background-image': "url('/webroot/help/picture/xial.png ')",
'background-size': '12px 12px',
'objectFit': "cover",
'backgroundRepeat':"no-repeat",
});
}, 200)

②直接去掉边框和背景色,在加个报表块重叠即可

隐藏和去掉背景色JS

setTimeout(function() {
$("div[widgetname='ORGANIZATION1'].bi-card").css({"background":'none'});
$("div[widgetname='ORGANIZATION1'.bi-border").css({'border':'none'}); 
}, 200)

3.5 备注说明

①如果js没有生效,可以将时延时间增长,再行测试

②如果还是没有生效,可将setTimeout改为setInterval,两者区别查看文档 setTimeout与setInterval的区别

③以上为部分属性,更多新自适应性控件属性修改查看文档  互助文档

 

最后,文档不完善或者有遗漏的地方欢迎各位大佬补充~~

 

分享扩散:

来自 2#
发表于 2023-7-21 17:43:09
另外,虽然不知道原理,写JS[如下],可以同步实现下拉框内容及下拉框的下拉列表的背景调整【包括日期控件和文本控件】
setInterval(function() {
$(".bi-card").css({'background-color':'#222629'});//修改控件的底层背景色       
$(".bi-border").css({'border':'1px solid #4c4c4c'}); //修改控件边框
$(".bi-text").css({'color':'#fdfdfd'}); //修改控件文本颜色
}, 200)
板凳
发表于 2024-3-26 10:50:51
可以的,不错不错。目前帆软出了控件外观修改插件。这个也能修改一些内容。结合一起使用食用更佳。
地板
发表于 2024-4-22 10:48:25
大佬,不可用的颜色要怎么改
5楼
发表于 2024-4-30 14:00:54
$(".bi-v.list-view-outer.list-view-shadow").css({"background-color":"#161a1d","color":"#fdfdfd"});为什么不生效,其他样式都生效finereport11
6楼
发表于 2024-6-26 16:36:51
这个方法适用于决策报表吗,fr11
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

8回帖数 4关注人数 6474浏览人数
最后回复于:2024-6-26 17:49

返回顶部 返回列表