#### 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>
~~~
實現效果
