|
|
@@ -0,0 +1,177 @@ |
|
|
|
import * as echarts from 'echarts'; |
|
|
|
import elementResizeDetectorMaker from 'element-resize-detector'; |
|
|
|
export default { |
|
|
|
props: { |
|
|
|
id: { |
|
|
|
type: String, |
|
|
|
default: 'BAR332233' |
|
|
|
}, |
|
|
|
data: { |
|
|
|
type: Array, |
|
|
|
default: function () { |
|
|
|
return [ |
|
|
|
{ |
|
|
|
name: '资不抵债', |
|
|
|
value: 2 |
|
|
|
}, |
|
|
|
{ |
|
|
|
name: '高债务率', |
|
|
|
value: 2 |
|
|
|
}, |
|
|
|
{ |
|
|
|
name: '中债务率', |
|
|
|
value: 2 |
|
|
|
}, |
|
|
|
{ |
|
|
|
name: '低债务率', |
|
|
|
value: 2 |
|
|
|
} |
|
|
|
]; |
|
|
|
} |
|
|
|
}, |
|
|
|
title: { |
|
|
|
type: String, |
|
|
|
default: '溢价率' |
|
|
|
}, |
|
|
|
color: { |
|
|
|
type: [Array], |
|
|
|
default: function () { |
|
|
|
return ['#3181F6', '#0FFCFC'] |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
data () { |
|
|
|
return { |
|
|
|
chart: null |
|
|
|
}; |
|
|
|
}, |
|
|
|
mounted () { |
|
|
|
this.initChart(); |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
// 设置监听器 页面尺寸变化重新绘制图表 |
|
|
|
initResizeCallBack () { |
|
|
|
const erd = elementResizeDetectorMaker(); |
|
|
|
erd.listenTo(document.getElementById(this.id), () => { |
|
|
|
this.$nextTick(() => { |
|
|
|
this.chart.resize(); |
|
|
|
}); |
|
|
|
}); |
|
|
|
}, |
|
|
|
initChart () { |
|
|
|
this.chart = echarts.init(document.getElementById(this.id)); |
|
|
|
this.chartSetOption(); |
|
|
|
}, |
|
|
|
chartSetOption () { |
|
|
|
const xAxis = []; |
|
|
|
this.data.forEach(item => { |
|
|
|
xAxis.push(item.name) |
|
|
|
}); |
|
|
|
const option = { |
|
|
|
title: "", |
|
|
|
grid: { |
|
|
|
top: 40, |
|
|
|
left: "7%", |
|
|
|
right: "7%", |
|
|
|
bottom: 10, |
|
|
|
containLabel: true, |
|
|
|
}, |
|
|
|
tooltip: { |
|
|
|
trigger: "axis", |
|
|
|
axisPointer: { |
|
|
|
type: "none", |
|
|
|
} |
|
|
|
}, |
|
|
|
xAxis: [ |
|
|
|
{ |
|
|
|
type: "category", |
|
|
|
show: true, |
|
|
|
data: xAxis, |
|
|
|
axisLabel: { |
|
|
|
fontSize: 12, |
|
|
|
color: 'rgba(166, 200, 221, 1)' |
|
|
|
} |
|
|
|
} |
|
|
|
], |
|
|
|
yAxis: [ |
|
|
|
{ |
|
|
|
name: '单位:个数', |
|
|
|
nameTextStyle: { |
|
|
|
fontSize: 12, |
|
|
|
color: 'rgba(166, 200, 221, 1)', |
|
|
|
padding: [0, 0, 0, -12] |
|
|
|
}, |
|
|
|
splitNumber: 2, |
|
|
|
type: 'value', |
|
|
|
splitLine: { |
|
|
|
lineStyle: { |
|
|
|
color: 'rgba(65,97,128,0.15)' |
|
|
|
} |
|
|
|
}, |
|
|
|
axisLine: { |
|
|
|
show: false |
|
|
|
}, |
|
|
|
axisTick: { |
|
|
|
show: false |
|
|
|
}, |
|
|
|
axisLabel: { |
|
|
|
fontSize: 12, |
|
|
|
color: 'rgba(166, 200, 221, 1)' |
|
|
|
} |
|
|
|
} |
|
|
|
], |
|
|
|
color: ["#e54035"], |
|
|
|
series: [ |
|
|
|
{ |
|
|
|
name: "", |
|
|
|
type: "pictorialBar", |
|
|
|
xAxisIndex: 0, |
|
|
|
barMaxWidth: 70, |
|
|
|
symbol: "path://M0,10 L10,10 C5.5,10 5.5,5 5,0 C4.5,5 4.5,10 0,10 z", |
|
|
|
label: { |
|
|
|
show: true, |
|
|
|
fontSize: 18, |
|
|
|
position: "top", |
|
|
|
color: "#fff" |
|
|
|
}, |
|
|
|
itemStyle: { |
|
|
|
normal: { |
|
|
|
color: function (params) { |
|
|
|
const { dataIndex } = params |
|
|
|
let colorList = [ |
|
|
|
['rgba(252, 91, 110, 1)', 'rgba(252, 91, 110, 0.8)', 'rgba(252, 91, 110, 0)'], |
|
|
|
['rgba(252, 133, 91, 1)', 'rgba(252, 133, 91, 0.8)', 'rgba(252, 133, 91, 0)'], |
|
|
|
['rgba(252, 231, 91, 1)', 'rgba(252, 231, 91, 0.8)', 'rgba(252, 231, 91, 0)'], |
|
|
|
['rgba(91, 252, 114, 1)', 'rgba(91, 252, 114, 0.8)', 'rgba(91, 252, 114, 0)'] |
|
|
|
]; |
|
|
|
|
|
|
|
return new echarts.graphic.LinearGradient(0, 1, 0, 0, [ |
|
|
|
{ |
|
|
|
offset: 1, |
|
|
|
color: colorList[dataIndex][0], |
|
|
|
}, |
|
|
|
{ |
|
|
|
offset: 0.5, |
|
|
|
color: colorList[dataIndex][1], |
|
|
|
}, |
|
|
|
{ |
|
|
|
offset: 0, |
|
|
|
color: colorList[dataIndex][2], |
|
|
|
}, |
|
|
|
]) |
|
|
|
}, |
|
|
|
}, |
|
|
|
emphasis: { |
|
|
|
opacity: 1, |
|
|
|
}, |
|
|
|
}, |
|
|
|
data: this.data, |
|
|
|
}, |
|
|
|
], |
|
|
|
};; |
|
|
|
this.chart.setOption(option); |
|
|
|
this.initResizeCallBack(); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
}; |