反馈已提交

网络繁忙

FVS图表提示轮播联动其他组件

  • 文档创建者:Alicehyy
  • 历史版本:5
  • 最近更新:TW 于 2024-10-23
  • 1. 概述

    适用场景:安装了「FineVis数据可视化」插件的用户,可参考本文了解 FVS 模板的相关功能。

    1.1 版本

    报表服务器版本
    插件版本
    11.0.16V1.15.1

    1.2 预期效果

    FVS基础图表实现数据点提示轮播 时,希望轮播的同时可以联动其他组件。效果如下图所示:

    注:不支持 扩展图表 。

    3ACF3765-36B3-42F7-B513-5AF1B48C2202.GIF

    2. 示例

    2.1 新建模板

    点击设计器左上角「文件>新建可视化看板」,创建一张空白看板,可自定义模板名称和尺寸。如下图所示:

    1.png

    2.2 准备数据

    在左下方新建两个数据库查询,查询语句分别为:

    ds1:SELECT * FROM 地图

    42.png

    ds2:SELECT * FROM 地图 where 1=1 ${if(len(area)=0,""," and pid='"+area+"'")}

    ds2 中的参数 area 是联动的关键,数据点提示轮播时需通过 area 参数传递地区,使图表数据集中 SQL 获取到该地区的数据,可自定义初始值。

    43.png

    2.3 设计模板

    2.3.1 添加组件

    在组件区找到标题、表格、饼图、区域地图组件,添加到画布中,调整到合适的布局。如下图所示:

    44.png

    2.3.2 绑定图表数据

    1)选中区域地图组件,绑定地图数据如下图所示:

    45.png

    2)选中饼图组件,绑定饼图数据如下图所示:

    46.png

    2.3.3 设置标题组件

    标题内容输入公式 $area ,则标题会根据参数 area 变化。如下图所示:

    47.png

    2.3.4 设置表格组件

    选中表格组件,点击右侧面板「内容>编辑组件」进入编辑界面,将 ds2 数据集中的字段拖入单元格,自定义标题行即可。

    点击表格编辑界面左上角「返回可视化看板」按钮返回画布。如下图所示:

    Snag_49ab3824.png

    2.4 添加页面加载结束事件

    点击设计器顶部「模板>页面加载结束事件」,输入 JavaScript 代码:

    setTimeout(function(){
     var vanchart = duchamp.getWidgetByName("区域地图1_页面1").getInstance();//获取vancharts对象
     var oldChartShowTooltip = vanchart.showTooltip;//记录原来的showtooltip
     vanchart.showTooltip = function(point) { //重写showtooltip
         oldChartShowTooltip.apply(vanchart, Array.prototype.slice.call(arguments));
         var areaName = point.name;
         duchamp.getWidgetByName("表格1_页面1").refresh({area: areaName});
         duchamp.getWidgetByName("标题1_页面1").refresh({area: areaName});
         duchamp.getWidgetByName("饼图1_页面1").refresh({area: areaName});
         //tooltip变化后传参给对应组件并刷新
       }
      setTimeout(function(){
        duchamp.getWidgetByName("区域地图1_页面1").openAutoTooltip("3000")//tooltip自动轮播
      },1000);
    },500);

    如下图所示:

    48.png

    注:FVS V2.2.1 版本新增参数全局联动接口 linkageGlobal ,可将上述代码中获取多个组件传参刷新的部分用这个接口替换,参考如下。

    setTimeout(function(){
     var vanchart = duchamp.getWidgetByName("区域地图1_页面1").getInstance();//获取vancharts对象
     var oldChartShowTooltip = vanchart.showTooltip;//记录原来的showtooltip
     vanchart.showTooltip = function(point) { //重写showtooltip
         oldChartShowTooltip.apply(vanchart, Array.prototype.slice.call(arguments));
         var areaName = point.name;
         duchamp.linkageGlobal({area: areaName});
         //tooltip变化后传参全局联动
       }
      setTimeout(function(){
        duchamp.getWidgetByName("区域地图1_页面1").openAutoTooltip("3000")//tooltip自动轮播
      },1000);
    },500);

    2.5 效果预览

    点击右上角「保存」,再点击「预览」。效果如 1.2 节所示。

    注:不支持移动端。

    3. 模板下载

    附件列表


    主题: FineVis数据可视化
    已经是第一篇
    已经是最后一篇
    • 有帮助
    • 没帮助
    • 只是浏览
    中文(简体)

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭



    AI

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持