在html中
<template>
<div>
<!-- 准备一个局别宽和高的容器 -->
<div ref="box" style="height: 600px; background-color: #fff"></div>
</div>
</template>
在js中
<script>
const echarts = require("echarts");
export default {
props: {
title: {
type: String,
default: () => [],
},
value: {
type: String,
default: () => [],
},
},
methods: {
drawCharts() {
let myCharts = echarts.init(this.$refs.box);
let option = {
series: [
{
type: "gauge",
startAngle: 225,
endAngle: -45,
min: 0,
max: 100,
splitNumber: 10,
itemStyle: {
color: "#58D9F9",
},
progress: {
show: true,
roundCap: false,
width: 9,
},
pointer: {
color: "#58D9F9",
icon:"path://M2090.36389,615.30999 L2090.36389,615.30999 C2091.48372,615.30999 2092.40383,616.194028 2092.44859,617.312956 L2096.90698,728.755929 C2097.05155,732.369577 2094.2393,735.416212 2090.62566,735.56078 C2090.53845,735.564269 2090.45117,735.566014 2090.36389,735.566014 L2090.36389,735.566014 C2086.74736,735.566014 2083.81557,732.63423 2083.81557,729.017692 C2083.81557,728.930412 2083.81732,728.84314 2083.82081,728.755929 L2088.2792,617.312956 C2088.32396,616.194028 2089.24407,615.30999 2090.36389,615.30999 Z",
length: "60%",
width: 6,
offsetCenter: [0, "5%"],
},
axisLine: {
roundCap: false,
lineStyle: {
width: 18,
color: [
[0.8, "#7CFFB2"],
[1, "#FF6E76"],
],
},
},
axisTick: {
splitNumber: 2,
distance: -18,
lineStyle: {
width: 1,
color: "#fff",
},
},
splitLine: {
length: 8,
distance: -18,
lineStyle: {
width: 3,
color: "#fff",
},
},
axisLabel: {
distance: -5,
color: "#999",
fontSize: 12,
},
title: {
fontSize:16,
offsetCenter: [0, "100%"],
},
detail: {
width: "60%",
lineHeight: 10,
height: 10,
offsetCenter: [0, "60%"],
valueAnimation: true,
formatter: function (value) {
return "{value|" + value.toFixed(0) + "}{unit|分}";
},
rich: {
value: {
fontSize: 16,
color: "#777",
},
unit: {
fontSize: 16,
color: "#999",
},
},
},
data: [
{
value: this.value,
name: `- ${this.title} -`
},
],
},
],
};
myCharts.setOption(option);
},
},
mounted() {
setTimeout(() => {
this.drawCharts();
}, 1000);
},
watch: {
value() {
this.drawCharts();
},
},
};
</script>