echarts Demo

 

 

1. div

<el-row :gutter="12">
<el-col :span="12">
<el-card shadow="always" class="el-row-class-top3">
<span style="margin-left: 0px;">
<div id="main" style="width: 750px;height:300px;"></div>
</span>
</el-card>
</el-col>
<el-col :span="12">
<el-card shadow="always" class="el-row-class-top3">
<span style="margin-left: 0px;">
<div id="main2" style="width: 750px;height:300px;"></div>
</span>
</el-card>
</el-col>
</el-row>

 

2.data

getIndexdata() {
// 3.基于准备好的dom,初始化echarts实例
var myChart = this.$ecahrter.init(document.getElementById('main'))
var myChart2 =this.$ecahrter.init(document.getElementById('main2'))
var myChart3 =this.$ecahrter.init(document.getElementById('main3'))
var myChart4 =this.$ecahrter.init(document.getElementById('main4'))
// 绘制图表
myChart.setOption({
title: {
text: '近7天订单总金额排行榜'
},
tooltip: {},
xAxis: {
name: '近7天日期',
data: this.totalOrderAmout7days_date.reverse()
},
axisLabel: {
intreval:0,
formatter: function(params) {
var newParamsName = ''
var paramsNameNumber = params.length
var provideNumber = 4
var rowNumber = Math.ceil(paramsNameNumber / provideNumber)
for (let row = 0; row<rowNumber; row++) {
newParamsName +=
params.substring(
row * provideNumber,
(row + 1) * provideNumber
) + '\n'
}
return newParamsName
},

},
yAxis: {
type: 'value',
name: '订单金额(元)',
axisLabel:{
formatter:function(value)
{
return value;
}
}
},
series: [{
name: '订单金额',
type: 'bar',
data: this.totalOrderAmout7days_data.reverse()
}]
});
myChart2.setOption({
title:{
text: '近7天订单量走势图'
},
xAxis: {
name: '近7天日期',
type: 'category',
data: this.totalOrderCount7days_date.reverse(),
},
axisLabel: {
intreval:0,
formatter: function(params) {
var newParamsName = ''
var paramsNameNumber = params.length
var provideNumber = 4
var rowNumber = Math.ceil(paramsNameNumber / provideNumber)
for (let row = 0; row<rowNumber; row++) {
newParamsName +=
params.substring(
row * provideNumber,
(row + 1) * provideNumber
) + '\n'
}
return newParamsName
},
textStyle: {
color: '#7c8893',
fontSize: 5
}
},
yAxis: {
type: 'value',
name: '订单量(个)',
splitNumber:10,
axisLabel:{  //返回y轴的值
formatter:function(value)
{
return value;
}
}
},
series: [{

name: '订单量',
data: this.totalOrderCount7days_data.reverse(),
type: 'line'
}]
});
myChart3.setOption({
title: {
text: '商户构成比例图',
subtext: '实时统计',
left: '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:this.MchTypeData,
emphasis: {
itemStyle: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
}
}
]
});
myChart4.setOption({
title: {
text: '近7天开通商户走势图',
},
xAxis: {
name: '近7天日期',
type: 'category',
data: this.totalMchCount7days_date.reverse(),
},
axisLabel: {
intreval:0,
formatter: function(params) {
var newParamsName = ''
var paramsNameNumber = params.length
var provideNumber = 4
var rowNumber = Math.ceil(paramsNameNumber / provideNumber)
for (let row = 0; row<rowNumber; row++) {
newParamsName +=
params.substring(
row * provideNumber,
(row + 1) * provideNumber
) + '\n'
}
return newParamsName
},
},
yAxis: {
type: 'value',
name: '开通商户量(个)',
axisLabel:{
formatter:function(value)
{
return value;
}
}
},
series: [{
data: this.totalMchCount7days_data.reverse(),
type: 'line',
smooth: true
}]
});

}

 

 

----------------------------------------------

----------- 01 main.js---------------------

import axios from 'axios'

import md5 from 'js-md5';
import echarts from 'echarts'

import rooturl from '../static/config.js'

// 导入全局样式
import './assets/css/global.css'
// 导入字体图标
import './assets/fonts/iconfont.css'

 

axios.defaults.baseURL='http://localhost:50438/'
axios.defaults.baseURLIMG='http://localhost:805/'

axios.interceptors.request.use(config =>{
console.log(config)
config.headers.Authorization =window.sessionStorage.getItem("token")
return config
})
//全局配置
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'

 

Vue.prototype.$http = axios
Vue.prototype.$md5 =md5
Vue.prototype.$ecahrter =echarts

 

------------02 aa.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-row :gutter="12">
<el-col :span="12">
<el-card shadow="always" class="el-row-class-top3">
<span style="margin-left: 0px;">
<div id="main" style="width: 750px;height:300px;"></div>
</span>
</el-card>
</el-col>
<el-col :span="12">
<el-card shadow="always" class="el-row-class-top3">
<span style="margin-left: 0px;">
<div id="main2" style="width: 750px;height:300px;"></div>
</span>
</el-card>
</el-col>
</el-row>
<el-row :gutter="12">
<el-col :span="12">
<el-card shadow="always" class="el-row-class-top3">
<span style="margin-left: 0px;">
<div id="main3" style="width: 750px;height:300px;"></div>
</span>
</el-card>
</el-col>
<el-col :span="12">
<el-card shadow="always" class="el-row-class-top3">
<span style="margin-left: 0px;">
<div id="main4" style="width: 750px;height:300px;"></div>
</span>
</el-card>
</el-col>
</el-row>
</div>
</template>

<script>
// 1.导入echarts
// import echarts from 'echarts'
// import _ from 'lodash'

export default {
data() {
return {
totalOrderAmout7days_data: ['2020/07/17','2020-07-18','2020-07-19','2020-07-20','2020-07-21','2020-07-22','2020-07-23'],
totalOrderAmout7days_data2: ['100','200','300','400','500','600','700']
}
},
created() {

},
// 此时,页面上的元素,已经被渲染完毕了
mounted() {
this.getIndexdata();
this.getdata();
},
methods: {
async getIndexdata() {

var params = new URLSearchParams();
params.append('type', "1");
const {
data: result
} = await this.$http.post("Index/GetAll", params);

if (result.status == 200) {
var str = result.data;
//this.totalOrderAmout7days_data=str.split(",");
var a=str.split(",");
console.log("dd:"+d);
} else if (result.status !== 200) {
return this.$message('获取折线图数据失败!')
}
},
getdata() {
// 3.基于准备好的dom,初始化echarts实例
//var myChart = echarts.init(document.getElementById('main'))
var myChart = this.$ecahrter.init(document.getElementById('main'))
var myChart2 = this.$ecahrter.init(document.getElementById('main2'))
var myChart3 = this.$ecahrter.init(document.getElementById('main3'))
var myChart4 = this.$ecahrter.init(document.getElementById('main4'))
myChart.setOption({
title: {
text: '近7天订单总金额排行榜'
},
tooltip: {},
xAxis: {
name: '近7天日期',
data: this.totalOrderAmout7days_data
},
axisLabel: {
intreval: 0,
formatter: function(params) {
var newParamsName = ''
var paramsNameNumber = params.length
var provideNumber = 4
var rowNumber = Math.ceil(paramsNameNumber / provideNumber)
for (let row = 0; row < rowNumber; row++) {
newParamsName +=
params.substring(
row * provideNumber,
(row + 1) * provideNumber
) + '\n'
}
return newParamsName
},

},
yAxis: {
type: 'value',
name: '订单金额(元)',
axisLabel: {
formatter: function(value) {
return value;
}
}
},
series: [{
name: '订单金额',
type: 'bar',
data: this.totalOrderAmout7days_data2
}]
});
myChart2.setOption({
title: {
text: '近7天订单量走势图'
},
xAxis: {
name: '近7天日期',
type: 'category',
data: [100, 200, 100, 400, 900],
},
axisLabel: {
intreval: 0,
formatter: function(params) {
var newParamsName = ''
var paramsNameNumber = params.length
var provideNumber = 4
var rowNumber = Math.ceil(paramsNameNumber / provideNumber)
for (let row = 0; row < rowNumber; row++) {
newParamsName +=
params.substring(
row * provideNumber,
(row + 1) * provideNumber
) + '\n'
}
return newParamsName
},
textStyle: {
color: '#7c8893',
fontSize: 5
}
},
yAxis: {
type: 'value',
name: '订单量(个)',
splitNumber: 10,
axisLabel: { //返回y轴的值
formatter: function(value) {
return value;
}
}
},
series: [{

name: '订单量',
data: [100, 200, 100, 400, 900],//this.totalOrderCount7days_data.reverse(),
type: 'line'
}]
});
myChart3.setOption({
title: {
text: '商户构成比例图',
subtext: '实时统计',
left: '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: [10,50,90],//this.MchTypeData,
emphasis: {
itemStyle: {
shadowBlur: 10,
shadowOffsetX: 0,
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
}
}]
});
myChart4.setOption({
title: {
text: '近7天开通商户走势图',
},
xAxis: {
name: '近7天日期',
type: 'category',
data: [100, 200, 100, 400, 900]//this.totalMchCount7days_date.reverse(),
},
axisLabel: {
intreval: 0,
formatter: function(params) {
var newParamsName = ''
var paramsNameNumber = params.length
var provideNumber = 4
var rowNumber = Math.ceil(paramsNameNumber / provideNumber)
for (let row = 0; row < rowNumber; row++) {
newParamsName +=
params.substring(
row * provideNumber,
(row + 1) * provideNumber
) + '\n'
}
return newParamsName
},
},
yAxis: {
type: 'value',
name: '开通商户量(个)',
axisLabel: {
formatter: function(value) {
return value;
}
}
},
series: [{
data: [100, 200, 100, 400, 900],//this.totalMchCount7days_data.reverse(),
type: 'line',
smooth: true
}]
});
}
}
}
</script>

<style lang="less" scoped>

</style>

posted @ 2020-06-04 14:58  大树2  阅读(393)  评论(0编辑  收藏  举报