#### 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)