vue3+echarts饼图记录

<script setup>
	import reportApi from '@/api/operationReport/index'
	import * as echarts from 'echarts'
	import { onMounted } from 'vue'

	var Echarts
	onMounted(() => {
		Echarts = echarts.init(document.getElementById('CustomizedPie'))
		Customer.Get()
	})

	onMounted(() => {})
	let props = defineProps({
		orgId: {
			type: String,
			default: () => ''
		},
		bizDate: {
			type: String,
			default: () => ''
		}
	})

	// 顾客分析
	const Customer = reactive({
		list: [],
		tips: '',
		Get: () => {
			reportApi
				.getGuestAnalysisInfo({
					orgId: props.orgId,
					bizDate: props.bizDate
				})
				.then((res) => {
					Customer.tips = res.analysisTips
					Customer.list = res.guestAnalyses || []
					let dataEcharts = []
					if (Customer.list.length) {
						// 绘制图表

						dataEcharts = Customer.list.map((e) => {
							return {
								name: e.guestLevelDesc,
								value: e.employeeNum
							}
						})
					}

					const option = {
						tooltip: {
							trigger: 'item'
						},
						legend: {
							top: '5%',
							left: 'center'
						},
						series: [
							{
								name: '顾客分析',
								type: 'pie',
								radius: ['40%', '70%'],
								avoidLabelOverlap: false,
								itemStyle: {
									borderRadius: 10,
									borderColor: '#fff',
									borderWidth: 2
								},
								label: {
									show: false,
									position: 'center'
								},
								emphasis: {
									label: {
										show: true,
										fontSize: 40,
										fontWeight: 'bold'
									}
								},
								labelLine: {
									show: false
								},
								data: dataEcharts || []
							}
						]
					}

					Echarts.setOption(option, true)
				})
		}
	})

	// 自适应大小
	window.onresize = () => {
		Echarts.resize()
	}
</script>
<template>
<div id="CustomizedPie"></div>
</template>
<style scoped lang="less">
	#CustomizedPie {
		width: 250px;
		height: 420px;
	}
</style>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是使用 Vue3 和 Echarts 实现饼图的示例代码: 1. 安装 Echarts:`npm install echarts` 2. 引入 Echarts: ```javascript import echarts from "echarts"; import "echarts/lib/chart/pie"; import "echarts/lib/component/title"; import "echarts/lib/component/tooltip"; import "echarts/lib/component/legend"; ``` 3. 在 Vue3 组件中使用 Echarts: ```vue <template> <div ref="chart" style="height: 400px;"></div> </template> <script> import echarts from "echarts"; import "echarts/lib/chart/pie"; import "echarts/lib/component/title"; import "echarts/lib/component/tooltip"; import "echarts/lib/component/legend"; export default { mounted() { // 基于准备好的dom,初始化echarts实例 var myChart = echarts.init(this.$refs.chart); // 指定图表的配置项和数据 var option = { title: { text: "饼图示例", left: "center", }, tooltip: { trigger: "item", formatter: "{a} <br/>{b}: {c} ({d}%)", }, legend: { orient: "vertical", left: "left", data: ["直接访问", "邮件营销", "联盟广告", "视频广告", "搜索引擎"], }, series: [ { name: "访问来源", type: "pie", radius: ["50%", "70%"], avoidLabelOverlap: false, label: { show: false, position: "center", }, emphasis: { label: { show: true, fontSize: "30", fontWeight: "bold", }, }, labelLine: { show: false, }, data: [ { value: 335, name: "直接访问" }, { value: 310, name: "邮件营销" }, { value: 234, name: "联盟广告" }, { value: 135, name: "视频广告" }, { value: 1548, name: "搜索引擎" }, ], }, ], }; // 使用刚指定的配置项和数据显示图表。 myChart.setOption(option); }, }; </script> ``` 在上面的示例代码中,我们在 `mounted` 钩子函数中初始化了一个 Echarts 实例,并使用 `setOption` 方法将图表的配置项和数据传递给 Echarts 实例,从而显示出饼图。 其中,`ref` 属性指定了图表所在的 DOM 元素,`title` 属性设置了图表标题,`legend` 属性设置了图例,`series` 属性设置了饼图的数据和样式。 如果需要修改饼图的样式或数据,只需要更改 `option` 对象的属性即可。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值