#### echart-helper是什么? echart-helper是一款echarts辅助开发插件,其本身并无什么复杂之处,仅是一种开发思路,能够帮助开发者快速构建echart图表,及最大化相关配置复用。 后端开发中获取到的一条记录信息,或者一组list数组并不能直接为 echart 所用,但通过 echart-helper 就可以将后端简易查询到的结果直接转换成图表所需要的数据格式,极大的提高了开发效率。 同时,前端开发中也可以使用 echart-helper 实现echart相关代码的复用,及整体化配置。 #### 实现原理 * 将 echarts 各类通用配置预先放入插件中,减少后续相关配置信息的写入,同时,任意内容均可通过配置进行覆盖(可完全复制使用echarts原生格式)。 * 将后端数据自动格式化成 echarts 所需格式,减少数据再次整理的过程。 #### Git地址 Website: https://gitee.com/qw_xingzhe Repo: https://gitee.com/qw_xingzhe/ECharts-Helper Issues: https://gitee.com/qw_xingzhe/ECharts-Helper/issues #### 实现功能 * html标签绑定数据,渲染图表 * js调用生成图表 * 异步请求url渲染图表 * 配置使用主题 * 可自定义基础配置模版 #### echart-helper 及 echart 原生写法对比(以饼图为例) echart 原生代码实现 ~~~ <!DOCTYPE html> <html style="height: 100%"> <head> <meta charset="utf-8"> </head> <body style="height: 100%; margin: 0"> <div id="container" style="height: 100%"></div> <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/echarts.min.js"></script> <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts-gl/echarts-gl.min.js"></script> <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts-stat/ecStat.min.js"></script> <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/extension/dataTool.min.js"></script> <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/map/js/china.js"></script> <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/map/js/world.js"></script> <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=ZUONbpqGBsYGXNIYHicvbAbM"></script> <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/echarts/extension/bmap.min.js"></script> <script type="text/javascript" src="http://echarts.baidu.com/gallery/vendors/simplex.js"></script> <script type="text/javascript"> var dom = document.getElementById("container"); var myChart = echarts.init(dom); var app = {}; option = null; option = { title : { text: '分组得分占比图', //subtext: '纯属虚构', x:'center' }, tooltip : { trigger: 'item', formatter: "{a} <br/>{b} : {c} ({d}%)" }, legend: { orient: 'vertical', left: 'left', data: ['基础知识','加分知识','未分组'] }, series : [ { name: '访问来源', type: 'pie', radius : '55%', center: ['50%', '60%'], data:[ {value:11, name:'基础知识'}, {value:12, name:'加分知识'}, {value:8, name:'未分组'} ], itemStyle: { emphasis: { shadowBlur: 10, shadowOffsetX: 0, shadowColor: 'rgba(0, 0, 0, 0.5)' } } } ] }; ; if (option && typeof option === "object") { myChart.setOption(option, true); } </script> </body> </html> ~~~ echart-helper 代码实现 ~~~ <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>echarts-helper</title> <style> label{line-height: 40px;} .echart-canvas{width: 100%; height: 430px; margin: 0 auto;} </style> </head> <body> <label>饼状图</label> <div class="echart-canvas" echart-data='[{"title":"基础知识","get_score":11},{"title":"加分知识","get_score":12},{"title":"未分组","get_score":8}]' echart-config='{title:"分组得分占比图",type:"pie",name_key:"title",value_key:"get_score"}'></div> </body> <script src="jquery-1.9.1.min.js"></script> <script src="echarts.min.js"></script> <script src="../echarts.helper.js"></script> <script> $('body').EChartHelper(); </script> </html> ~~~ 实现效果 ![](https://box.kancloud.cn/1302b3142038d33831ceae356f0d1e81_570x418.png)