【表单JS实例】JS实现决策报表中鼠标移动时单元格样式改变

楼主
我是社区第485122位番薯,欢迎点我头像关注我哦~
1. 概述
1.1 预期效果

决策报表中报表块,像普通报表一样, 当 鼠标悬浮/点击/离开单元格时改变单元格字体颜色 或底色等样式,如下图所示:

1.2 实现方法

通过给决策报表报表块单元格添加「初始化后」 JS 事件实现。

2. 示例
2.1 新建模板

1)新建决策报表,添加数据库查询,SQL 语句为:SELECT * FROM 区域销售

2)在决策报表中添加报表块 report0 并设置其样式,如下图所示:

2.2 添加 JS 事件

选中 report0 ,点击「组件设置>事件」,添加「初始化后」事件,如下图所示:

JavaScript 代码如下:

  1. setTimeout(function() {
  2. //鼠标经过时
  3. $(".x-table.REPORT0table td span.linkspan").mousemove(function() {
  4. //所在单元格字体颜色为红色
  5. $(this).css("color", "red");
  6. //所在单元格背景为蓝色
  7. $(this).css("background-color", "blue");
  8. //所在单元格字体加粗
  9. $(this).css("font-weight", "bold");
  10. //所在单元格添加下划线
  11. $(this).css("text-decoration", "underline");
  12. //所在行单元格字体:11px  
  13. $(this).find("td").css("font-size", "11px");
  14. });
  15. //鼠标点击时
  16. $(".x-table.REPORT0table td span.linkspan").mousedown(function() {
  17. //所在单元格字体颜色为黄色
  18. $(this).css("color", "yellow");
  19. //所在单元格背景为黑色
  20. $(this).css("background-color", "black");
  21. //所在单元格字体加粗
  22. $(this).css("font-weight", "bold");
  23. //所在单元格添加上划线
  24. $(this).css("text-decoration", "overline");
  25. //所在行单元格字体:13px  
  26. $(this).find("td").css("font-size", "13px");
  27. });
  28. //鼠标离开
  29. $(".x-table.REPORT0table td span.linkspan").mouseout(function() {
  30. //所在单元格字体颜色为黑色
  31. $(this).css("color", "black");
  32. //所在单元格背景为白色
  33. $(this).css("background-color", "white");
  34. //所在单元格字体正常
  35. $(this).css("font-weight", "normal");
  36. //所在单元格无下划线
  37. $(this).css("text-decoration", "none");
  38. //所在行单元格字体:9px  
  39. $(this).find("td").css("font-size", "9px");
  40. });
  41. }, 100);
复制代码

注:如果预览时效果不生效, 调大 setTimeout 的延时时间即可,比如调大到 500。

2.3 效果预览

保存模板,选择「表单预览」,效果如下图所示:

注:不支持移动端。

3. 模板下载

已完成的模板,可参见:%FR_HOME%\webapps\webroot\WEB-INF\reportlets\doc\JS\表单JS实例\JS实现决策报表鼠标移动时单元格样式改变.frm

模板下载见负附件



编辑于 2021-1-2 13:03  
分享扩散:

沙发
发表于 2021-1-27 15:04:43
如果单元格设置了除底色以外的其他样式,上述特效不会生效,求解
板凳
发表于 2023-5-8 12:16:32
没鸡儿用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

2回帖数 2关注人数 10062浏览人数
最后回复于:2023-5-8 12:16

返回顶部 返回列表