Echarts之环形图 && 自定义title居中

7 篇文章 0 订阅

先上效果图 蓝色发光的环形圈 是背景图片

在这里插入图片描述
重要代码:【富文本设定title样式】

title: {
	zlevel: 0,
	text: [`{value|${data.value}}`, `{name|${data.type}}`].join("\n"),
	top: "center",
	left: "46%",
	textAlign: "center",
	textStyle: {
		rich: {
			value: {
				color: "#87f8c7",
				fontSize: 18,
				fontWeight: "350",
				lineHeight: 24,
			},
			name: {
				color: "#C8DBF4",
				fontSize: 10,
			},
		},
	},
},

因为我这里是多个环形图 所以 使用了动态绑定html

<template>
	<div class="pie-top-hitters-container" id="pie-top-hitters-container">
		<div v-html="htmldiv" style="height: 100%"></div>
		<!--以下内容 在使用id时 找不到此dom-->
		<!-- <template v-for="(item, dataIndex) in data">
			<div :id="'pietophitters' + index + dataIndex" class="chart"></div>
		</template> -->
	</div>
</template>
watch: {
	data: {
		handler(newVal) {
		/*
		newVal = [
					{
						value: 20,
						type: "SMT1",
						data: [
							{ name: 1, value: 20 },
							{ name: 2, value: 60 },
							{ name: 3, value: 20 },
							{ name: 4, value: 80 },
						],
					}
				],
        */
		this.htmldiv = "";
		this.data.forEach((item, dataIndex) => {
			this.htmldiv += "<div id=" + "piesmttophitters" + dataIndex + " class=chart></div>";
			this.$nextTick(() => {
				this.pieChart("piesmttophitters" + dataIndex, item);
			});
		});
		},
		deep: true,
		immediate: true,
	},
},

完整环形图代码

pieChart(id, data) {
	let count = echarts.init(document.getElementById(id));
	let option = {
		color: ["#fac858", "#93beff", "#507afc", "#87f8c7", "#FCD682", "#8FB7F5", "#6287FA", "#9DFDD3"],
		title: {
			zlevel: 0,
			text: [`{value|${data.value}}`, `{name|${data.type}}`].join("\n"),
			top: "center",
			left: "46%",
			textAlign: "center",
			textStyle: {
				rich: {
					value: {
						color: "#87f8c7",
						fontSize: 18,
						fontWeight: "350",
						lineHeight: 24,
					},
					name: {
						color: "#C8DBF4",
						fontSize: 10,
					},
				},
			},
		},
		tooltip: {
			trigger: "item",
		},
		grid: {
			top: 0,
			left: 0,
			bottom: "2%",
			containLabel: true,
		},
		series: [
			{
				name: "",
				type: "pie",
				radius: ["50%", "70%"],
				animationDuration: 2000,
				avoidLabelOverlap: false,
				label: {
					show: false,
					position: "center",
				},
				emphasis: {
					label: {
						show: false,
					},
				},
				labelLine: {
					show: false,
				},
				data: data.data,
			},
		],
	};
	count.setOption(option);
	window.addEventListener("resize", () => {
		if (count) {
			count.resize(); // 不报错
		}
	});
},
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值