漏刻有时API接口实战开发系列(8):ajax获取本地json实现echarts不同数据图表渲染的解决方案

项目需求

  1. 筛选时间条件,实现echarts图表的联动渲染;
  2. 开发前端代码,实现ajax传参即可;

项目分析

如果时间筛选和后端相配合,传递时间参数给后台,后台SQL根据筛选条件输入对应的json数据,前端异步获取,自动渲染。这是正常的项目步骤。
现在仅开发前端,实际上没有传递时间参数,为此,只能根据条件更换url,从而实现联动的效果。

项目代码

封装函数

/*条件筛选函数
 1. type,条件类型,0年,1月,2季度,3时间范围
 2. fromTime,起始时间;
 3. toTime,结束时间;
 *getRoseData(type, fromTime, toTime);
  */

函数代码

function getRoseData(type, fromTime, toTime) {
    //判断操作事件来源;
    var url = "", data = "";//json地址
    if (type == "0") {//年数据;
        url = './json/years.json';
    } else if (type == "1") {//月读取数据;
        url = './json/months.json';
    } else if (type == "2") {//季度读取数据;
        url = './json/quarters.json';
    } else if (type == "3") {//筛选时间读取数据;
        url = './json/timedata.json';
        data = {
            fromTime: fromTime,
            toTime: toTime
        }
    } else {//默认读取数据;
        url = './json/normal.json';
    }

    //异步获取数据;
    $.ajax({
        type: 'get',
        async: true,
        url: url,
        data: data,
        dataType: "json",
        success: function (res) {
            //console.log(res.data);
            var dataName = [];
            if (res.data) {
                for (var i = 0; i < res.data.length; i++) {
                    dataName.push({name: res.data[i].name, value: res.data[i].value});
                }
            }
            //渲染图表;
            getRose(dataName, ".pie .chart");
        },
        error: function (err) {
            console.log(err + "请求数据失败!");
        }
    });
}

代码分析:

  1. 将url依据不同的传递参数更换;
  2. 将data:{}参数也根据不同操作预置;

Done!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

漏刻有时

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值