效果图
背景图片
下载ECharts
npm install echarts
--save
引入并注册全局ECharts
在 main.js 文件里引入并注册 ( 这里是 Vue3.0 的模板 )
import Vue
from 'vue'
import App
from './App.vue'
import router
from './router'
import store
from './store'
import echarts
from 'echarts'
Vue
.prototype
.$echarts
= echarts
Vue
.config
.productionTip
= false
new Vue({
router
,
store
,
render
: h
=> h(App
)
}).$mount('#app')
在组件中使用ECharts
<template
>
<div
class='wrapper'>
<div
class='chart' id
='chart'></div
>
</div
>
</template
>
<script
>
export default {
data () {
return {}
},
mounted () {
this.drawChart()
},
methods
: {
drawChart () {
let chart
= this.$echarts
.init(document
.getElementById('chart'))
window
.addEventListener('resize', function () { chart
.resize() })
chart
.setOption({
grid
: {
x
: 60,
y
: 80,
x2
: 60,
y2
: 40,
containLabel
: true
},
dataZoom
: [
{
type
: 'inside',
xAxisIndex
: [0],
start
: 0,
end
: 80
}
],
title
: {
text
: '短袖销售额',
top
: 10,
left
: 'center',
textStyle
: {
fontSize
: 24,
fontWeight
: 600,
color
: '#fff'
}
},
graphic
: [
{
type
: 'text',
left
: 35,
bottom
: 18,
style
: {
fill
: '#cdd3ee',
text
: '(月份)',
font
: 'normal 14px Microsoft'
}
}
],
tooltip
: {
trigger
: 'axis',
axisPointer
: {
type
: 'line'
},
formatter
: '{b}<br />{a0}: {c0}万<br />{a1}: {c1}%'
},
legend
: {
data
: [
{
name
: '已销售'
},
{
name
: '销售率'
}
],
itemWidth
: 15,
itemHeight
: 15,
icon
: 'roundRect',
top
: 13,
right
: 10,
textStyle
: {
fontSize
: 16,
color
: '#cdd3ee'
}
},
xAxis
: {
show
: true,
type
: 'category',
axisLine
: {
lineStyle
: {
type
: 'solid',
width
: 1,
color
: '#cdd3ee'
}
},
axisTick
: {
show
: false
},
splitLine
: {
show
: false
},
axisLabel
: {
fontSize
: 16,
color
: '#cdd3ee',
formatter
: function (value
) {
return value
.replace(/[\u4e00-\u9fa5]/g, '')
}
},
data
: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月']
},
yAxis
: [
{
type
: 'value',
name
: '单位/万',
nameLocation
: 'end',
nameTextStyle
: {
fontSize
: 16
},
nameGap
: 13,
axisTick
: {
show
: true
},
axisLine
: {
show
: true,
lineStyle
: {
color
: '#cdd3ee'
}
},
splitLine
: {
show
: false
},
axisLabel
: {
show
: true,
fontSize
: 16,
color
: '#cdd3ee',
formatter
: '{value}'
}
},
{
axisTick
: {
show
: true
},
axisLine
: {
show
: true,
lineStyle
: {
color
: '#cdd3ee'
}
},
splitLine
: {
show
: false
},
axisLabel
: {
show
: true,
fontSize
: 16,
color
: '#cdd3ee',
formatter
: '{value}%'
}
}
],
series
: [
{
type
: 'bar',
name
: '已销售',
barMaxWidth
: 15,
barGap
: 0,
label
: {
show
: false,
fontSize
: 16,
color
: '#fff'
},
itemStyle
: {
color
: {
type
: 'linear',
x
: 0,
y
: 0,
x2
: 0,
y2
: 1,
colorStops
: [{
offset
: 0,
color
: '#FAB363'
}, {
offset
: 1,
color
: '#FB7C2B'
}]
},
barBorderRadius
: [10, 10, 0, 0]
},
data
: [200, 330, 400, 600, 830, 650, 690, 430, 550, 420, 420, 320]
},
{
type
: 'line',
name
: '销售率',
symbol
: 'circle',
symbolSize
: 10,
yAxisIndex
: 1,
itemStyle
: {
color
: '#11abff'
},
lineStyle
: {
type
: 'solid',
color
: '#11abff'
},
label
: {
show
: false,
fontSize
: 16,
color
: '#fff'
},
data
: [20, 24, 33, 45, 63, 50, 42, 24, 23, 14, 20, 10]
}
]
})
}
}
}
</script
>
<style scoped
>
.wrapper
{
width
: 100%;
}
.wrapper
.chart
{
width
: 60%;
height
: 400px
;
margin
: 100px
50px
0;
border
: 1px solid #eeeeee
;
background
: url(../../public/static/bg
.png
) no
-repeat
;
background
-size
: 100% 100%;
}
</style
>
转载请注明原文地址: https://win8.8miu.com/read-1138.html