import * as echarts from 'echarts'
const iuCharts = {
drawBar:function(chart,params){
var color = ['#4379EE','#FEC53D','#65789B','#F6BD16'];
let series = params.yData.map((m,i)=>{
let obj = {
name: m.title,
type: 'bar',
barWidth: '16%',
barGap: '30%',
itemStyle: {
normal: {
color: color[i],
barBorderRadius: [50, 50, 0, 0]
}
},
data: m.data
};
return obj
})
var option = {
backgroundColor: '#fff',
tooltip: {
trigger: 'axis',
axisPointer: {
lineStyle: {
color: '#4379EE'
},
},
},
grid: {
top: '25px',
left: '40px',
right: '3%',
bottom: '40px',
// containLabel: true
},
legend: {
show: true,
orient: 'horizontal',
y:-2,
right:15,
itemWidth: 12,
itemHeight: 12,
itemGap: 24,
textStyle: {
color: 'rgba(43,48,52)',
fontSize:'14px'
}
},
xAxis: [{
type: 'category',
axisLine: {
show: false,
},
axisLabel: {
color: 'rgba(43,48,52, 0.4)',
margin: 20
},
axisTick: {
show: false
},
splitLine: {
show: false
},
boundaryGap: false,
data: params.xData
}],
yAxis: [{
minInterval:1,
type: 'value',
min: 0,
splitNumber: 4,
splitLine: {
show: true,
lineStyle: {
color: 'rgba(43,48,52, 0.1)',
}
},
axisLine: {
show: false,
},
axisLabel: {
color: 'rgba(43,48,52, 0.4)',
margin: 20,
},
axisTick: {
show: false,
},
}],
series: series
};
chart.setOption(option);
},
drawLine:function(chart,params){
let series = [];
params.yData.forEach(m=>{
series.push(
{
name:m.title,
type: 'line',
showAllSymbol: true,
symbol: 'circle',
symbolSize: 10,
lineStyle: {
normal: {
color: "#4379EE",
width:3
},
},
areaStyle: {
normal: {
color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
{
offset: 0,
color: 'rgba(67,121,238,0.3)'
},
{
offset: 1,
color: 'rgba(67,121,238,0)'
}
], false),
}
},
data: m.data
}
)
})
let option = {
backgroundColor:'#fff',
tooltip: {
trigger: 'axis',
axisPointer: {
lineStyle: {
color: '#4379EE'
},
},
},
grid: {
top: '25px',
left: '40px',
right: '3%',
bottom: '40px',
// containLabel: true
},
xAxis: [{
type: 'category',
axisLine: {
show: false,
},
axisLabel: {
color: 'rgba(43,48,52, 0.4)',
margin: 20
},
axisTick: {
show: false
},
splitLine: {
show: false
},
boundaryGap: false,
data: params.xData
}],
yAxis: [{
minInterval:1,
type: 'value',
min: 0,
splitNumber: 4,
splitLine: {
show: true,
lineStyle: {
color: 'rgba(43,48,52, 0.1)',
}
},
axisLine: {
show: false,
},
axisLabel: {
color: 'rgba(43,48,52, 0.4)',
margin: 20,
},
axisTick: {
show: false,
},
}],
series: series
};
chart.setOption(option);
},
drawPie:function(chart,params){
let option = {
color: params.color,
backgroundColor: '#fff',
tooltip: {
trigger: 'item',
formatter: '{a}
{b} : {c}'
},
title: {
text: params.percentage,
textStyle: {
color: '#4379EE',
fontSize: 14,
align: 'center',
fontWeight: 'normal'
},
x: 'center',
y: 'center',
},
grid: {
top:20,
bottom: 20,
left: 0,
right: 0
},
legend: {
show: false,
},
series: [
// 主要展示层的
{
radius: ['55%', '90%'],
center: ['50%', '50%'],
type: 'pie',
label: {
show:false
},
name: params.title,
data: params.data,
},
// 边框的设置
{
radius: ['55%', '65%'],
center: ['50%', '50%'],
type: 'pie',
label: {
normal: {
show: false
},
emphasis: {
show: false
}
},
labelLine: {
normal: {
show: false
},
emphasis: {
show: false
}
},
animation: false,
tooltip: {
show: false
},
data: [{
value: 1,
itemStyle: {
color: "rgba(250,250,250,0.3)",
},
}],
}
]
};
chart.setOption(option);
},
drawGauge:function(chart,params){
let option = {
tooltip: {
formatter: "{a}
{b} : {c}%"
},
toolbox: {
feature: {
restore: {},
saveAsImage: {}
}
},
series: [
{
type: 'gauge',
axisLine: {
lineStyle: {
width: 28,
color: [
[0.3, '#67e0e3'],
[0.7, '#37a2da'],
[1, '#fd666d']
]
}
},
pointer: {
itemStyle: {
color: 'auto'
}
},
axisTick: {
distance: -28,
length: 8,
lineStyle: {
color: '#fff',
width: 2
}
},
splitLine: {
distance: -28,
length: 28,
lineStyle: {
color: '#fff',
width: 4
}
},
axisLabel: {
color: 'inherit',
distance: 40,
fontSize: 14
},
detail: {
valueAnimation: true,
formatter: '{value} %',
color: 'inherit',
textStyle: {
fontSize: 30,
align: 'center',
},
},
data: [
{
value: 70
}
]
}
]
};
chart.setOption(option,true);
}
}
export {
iuCharts
}