# 图表
管理后台图表也是常见得需求。本项目目前用到的图表是 ECharts,功能齐全,社区 demo 也丰富 gallery (opens new window)。
ECharts 支持 webpack 引入,图省事可以将 ECharts 整个引入 var echarts = require('echarts')
不过 ECharts 还是不小的,如果只使用它小部分功能或者图表类型的话建议按需引入。
// 按需引入 引入 ECharts 主模块
var echarts = require('echarts/lib/echarts')
// 引入柱状图
require('echarts/lib/chart/bar')
// 引入提示框和标题组件
require('echarts/lib/component/tooltip')
require('echarts/lib/component/title')
//全部引入
var echarts = require('echarts')
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
webpack 中使用 ECharts 文档 (opens new window)
ECharts 按需引入模块文档 (opens new window)
接下来我们就要在 vue 中声明初始化 ECharts 了。因为 ECharts 初始化必须绑定 dom,所以我们只能在 vue 的 mounted 生命周期里进行初始化。
import echarts from 'echarts';
data() {
return {
chart: null
};
},
mounted() {
this.initCharts();
},
methods: {
initCharts() {
this.chart = echarts.init(document.getElementById('chartdemo'));
this.setOptions();
},
setOptions() {
this.chart.setOption({
title: {
text: 'ECharts 入门示例'
},
tooltip: {},
xAxis: {
data: ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"]
},
yAxis: {},
series: [{
name: '销量',
type: 'bar',
data: [5, 20, 36, 10, 10, 20]
}]
})
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
就这样简单,ECharts 就配置完成了,这时候你想说我的 data 是远程获取的,或者说我动态改变 ECharts 的配置该怎么办呢?我们可以通过 watch 来触发 setOptions 方法
//第一种 watch options变化 利用vue的深度 watcher,options 一有变化就重新setOption
watch: {
options: {
handler(options) {
this.chart.setOption(this.options)
},
deep: true
},
}
//第二种 只watch 数据的变化 只有数据变化时触发ECharts
watch: {
seriesData(val) {
this.setOptions({series:val})
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
其他操作和参数请参考 ECharts 官方文档 (opens new window)。
TIP
具体实例可参照 @/views/Chartstatistic/Echarts/ (opens new window) 下 vue 文件
# 其它
当然还有其他比较优秀的图表插件 highcharts (opens new window) , d3 (opens new window) , Chart.js (opens new window) , chartist-js (opens new window) 等封装方法都是大同小异差不多的,这里就不再展开了。