功能分析
效果图

接口定义
代码reports/Report.vue
<template>
<div>
<el-breadcrumb separator-class="el-icon-arrow-right">
<el-breadcrumb-item :to="{ path: '/home' }">首页</el-breadcrumb-item>
<el-breadcrumb-item>数据统计</el-breadcrumb-item>
<el-breadcrumb-item>数据报表</el-breadcrumb-item>
</el-breadcrumb>
<el-card>
<div id="main" style=" 750px;height:400px;"></div>
</el-card>
</div>
</template>
<script>
import echarts from "echarts";
import _ from "lodash";
export default {
data() {
return {
option: {
title: {
text: "用户来源"
},
tooltip: {
trigger:'axis',
axisPointer:{
type:'cross',
label:{
backgroundColor:'#E9EEF3'
}
}
},
grid: {
left:'3%',
right:'4%',
bottom:'3%',
containLabel:true
},
xAxis: [
{
boundaryGap:false
}
],
yAxis: [
{
type:'value'
}
]
}
};
},
async mounted() {
// 基于准备好的dom,初始化echarts实例
const myChart = echarts.init(document.getElementById("main"));
const { data } = await this.$http.get("reports/type/1");
if (data.meta.status !== 200) {
return this.$message.error(data.meta.msg);
}
// 指定图表的配置项和数据
// 使用刚指定的配置项和数据显示图表。
const result = _.merge(data.data, this.option);
myChart.setOption(result);
}
};
</script>
<style lang="less" scoped></style>