关于百度EChart 与dataTables 之间交互问题的解决方案(利用js全局变量)

在后台数据统计,同时利用ECharts生成统计图,以及dataTables统计数据列表。有时便会需要进行图表之间的交互,从而带给用户更加直观的数据体验。如下图需求:

这里写图片描述

先由ECharts生成本月每天销售数据统计图,然后达到单击统计图每日柱形时,呼出左下角当天各店铺销售统计的dataTables表。

点击另外一天直接切换到另一天的数据表。但是,由于dataTables在同一dom创建dataTables实例时,必须销毁之前已经建立的dataTables。因此,需要利用js的全局变量记忆每次生成的dataTables实例。

模板代码:

<div>
     <div id="lineChart" style="height:390px"></div>
</div>

<table class="stores-table" width="100%">
      <thead>
            <tr>
                <th>排序</th>
                <th>店铺</th>
                <th>下单用户</th>
                <th>订单数量</th>
                <th>订单总额</th>
                <th>操作</th>
            </tr>
        </thead>
        <tbody class="stores-list">
            ......
        </tbody>
</table>

将绘图表独立封装到方法之中:

//创建统计图
function createChart(data){
var chart = echarts.init(document.getElementById('lineChart'));
    。。。。。。      //具体配置参见本人之前博文(下方有链接)
return chart;
}
//创建店铺列表
function createStoresTable(date){         //定义全局变量 window.变量名
     if (typeof(window.dt1) != "undefined") {
         window.dt1.destroy();    //如果存在dataTables实例,销毁
     }
     var datat = $(".stores-table").DataTable({
    //具体配置见之前博文,下有链接
    });
    window.dt1 = datat;       //用全局变量记录dataTables
}

交互:

var chart = createChart(res.data);
chart.on('click',function(params){
     var today = $.trim(params.name.substr(0,2));     //params.name即为横坐标值
     var newdate = date +"-"+ today;
     createStoresTable(newdate);
 });
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值