mirror of
https://github.com/xiangshu233/vue3-vant4-mobile.git
synced 2025-04-06 03:57:47 +08:00
67 lines
1.4 KiB
Vue
67 lines
1.4 KiB
Vue
<template>
|
|
<div class="my-card m-40px rounded-2xl p-30px shadow-xl">
|
|
<div ref="chartRef" :style="{ height: '350px' }" />
|
|
</div>
|
|
</template>
|
|
|
|
<script setup lang="ts">
|
|
import type { Ref } from 'vue'
|
|
import { onMounted, ref } from 'vue'
|
|
import type { EChartsOption } from 'echarts'
|
|
import { useECharts } from '@/hooks/web/useECharts'
|
|
|
|
const chartRef = ref<HTMLDivElement | null>(null)
|
|
const { setOptions } = useECharts(chartRef as Ref<HTMLDivElement>)
|
|
|
|
const chartOptions: EChartsOption = {
|
|
tooltip: {
|
|
trigger: 'item',
|
|
},
|
|
legend: {
|
|
top: '5%',
|
|
left: 'center',
|
|
},
|
|
series: [
|
|
{
|
|
name: 'Access From',
|
|
type: 'pie',
|
|
radius: ['40%', '70%'],
|
|
center: ['50%', '60%'],
|
|
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: [
|
|
{ value: 1048, name: 'Search Engine' },
|
|
{ value: 735, name: 'Direct' },
|
|
{ value: 580, name: 'Email' },
|
|
{ value: 484, name: 'Union Ads' },
|
|
{ value: 300, name: 'Video Ads' },
|
|
],
|
|
},
|
|
],
|
|
}
|
|
|
|
onMounted(() => {
|
|
setOptions(chartOptions)
|
|
})
|
|
</script>
|
|
|
|
<style scoped></style>
|