项目需求
- 筛选时间条件,实现echarts图表的联动渲染;
- 开发前端代码,实现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 + "请求数据失败!"); } }); }
代码分析:
- 将url依据不同的传递参数更换;
- 将data:{}参数也根据不同操作预置;
Done!