配置项如下
const createSvg = (shadowColor, shadowBlur) => `
<svg version="1.1" xmlns="http://www.w3.org/2000/svg"
x="0px" y="0px"
viewBox="0 0 32 128"
xml:space="preserve"
>
<style>
.st2 {
fill: rgba(138, 167, 216, 0.1);
stroke: ${shadowColor};
stroke-width: ${shadowBlur}px;
filter: url(#chart-inset-shadow);
}
</style>
<defs>
<filter id="chart-inset-shadow" width="200%" height="200%" x="-50%" y="-50%">
<feGaussianBlur in="SourceGraphic" result="gass" stdDeviation="${shadowBlur * 0.75}" />
<feMerge>
<feMergeNode in="gass" />
</feMerge>
</filter>
</defs>
<path class="st2" d="M0 0 L32 0 L32 128 L0 128 Z" />
</svg>
`;
const svgString = createSvg('rgba(138, 167, 216, 0.3)', 6);
const svg = new Blob([svgString], {type: "image/svg+xml;charset=utf-8"});
const DOMURL = window.URL || window.webkitURL || window;
const insetShadowUrl = DOMURL.createObjectURL(svg);
var data = [
{ name: '功能1', value: 20 },
{ name: '功能2', value: 82 },
{ name: '功能3', value: 91 },
{ name: '功能4', value: 34 },
{ name: '功能5', value: 90 },
{ name: '功能6', value: 30 },
{ name: '功能7', value: 10 }
]
option = {
backgroundColor: "#041730",
xAxis: {
data: data.map(item => item.name),
//坐标轴
axisLine: {
show: false
},
//坐标值标注
axisLabel: {
show: true,
color: '#B3D6FF',
},
axisTick: {
show: false
}
},
yAxis: {
//坐标轴
axisLine: {
show: false,
},
//坐标值标注
axisLabel: {
show: false
},
//分格线
splitLine: {
show: false
},
axisTick: {
show: false
}
},
series: [
{
name: 'a',
tooltip: {
show: false
},
type: 'bar',
barWidth: 10,
itemStyle: {
color: '#8AA7D8',
barBorderRadius: [5, 5, 0, 0]
},
data: data,
},
{
tooltip: {
show: false
},
type: "pictorialBar",
symbol: 'image://' + insetShadowUrl,
symbolRepeat: false,
symbolClip: true,
symbolSize: ['22', '100%'],
data: [100, 100, 100, 100, 100, 100, 100], //TODO 此处需要根据实际数据修改最大值
legendHoverLink: false,
markPoint: {
symbol: 'image://' + insetShadowUrl,
symbolSize: [22, 32],
symbolOffset: [0, -24],
data: [
{ value: 20, xAxis: 0, yAxis: 100 },
{ value: 82, xAxis: 1, yAxis: 100 },
{ value: 91, xAxis: 2, yAxis: 100 },
{ value: 34, xAxis: 3, yAxis: 100 },
{ value: 90, xAxis: 4, yAxis: 100 },
{ value: 30, xAxis: 5, yAxis: 100 },
{ value: 10, xAxis: 6, yAxis: 100 }
],
label: {
color: '#ffffff'
}
}
}
]
};