1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
| <script lang="ts" setup>
| import type { EchartsUIType } from '@vben/plugins/echarts';
|
| import { onMounted, ref } from 'vue';
|
| import { EchartsUI, useEcharts } from '@vben/plugins/echarts';
|
| defineOptions({ name: 'ExtendGraphDemoEchartsPie' });
|
| const chartRef = ref<EchartsUIType>();
| const { renderEcharts } = useEcharts(chartRef);
|
| const options: any = {
| tooltip: {
| trigger: 'item',
| formatter: '{a} <br/>{b}: {c} ({d}%)',
| },
| legend: {
| orient: 'vertical',
| x: 'left',
| top: '10%',
| data: ['直达', '营销广告', '搜索引擎', '邮件营销', '联盟广告', '视频广告', '百度', '谷歌', '必应', '其他'],
| },
| series: [
| {
| name: '访问来源',
| type: 'pie',
| selectedMode: 'single',
| radius: [0, '30%'],
| label: {
| position: 'inner',
| },
| labelLine: {
| show: false,
| },
| data: [
| { value: 335, name: '直达', selected: true },
| { value: 679, name: '营销广告' },
| { value: 1548, name: '搜索引擎' },
| ],
| },
| {
| name: '访问来源',
| type: 'pie',
| radius: ['40%', '55%'],
| label: {
| formatter: '{a|{a}}{abg|}\n{hr|}\n {b|{b}:}{c} {per|{d}%} ',
| backgroundColor: '#eee',
| borderColor: '#aaa',
| borderWidth: 1,
| borderRadius: 4,
| rich: {
| a: {
| color: '#999',
| lineHeight: 22,
| align: 'center',
| },
| hr: {
| borderColor: '#aaa',
| width: '100%',
| borderWidth: 0.5,
| height: 0,
| },
| b: {
| fontSize: 16,
| lineHeight: 33,
| },
| per: {
| color: '#eee',
| backgroundColor: '#334455',
| padding: [2, 4],
| borderRadius: 2,
| },
| },
| },
| data: [
| { value: 335, name: '直达' },
| { value: 310, name: '邮件营销' },
| { value: 234, name: '联盟广告' },
| { value: 135, name: '视频广告' },
| { value: 1048, name: '百度' },
| { value: 251, name: '谷歌' },
| { value: 147, name: '必应' },
| { value: 102, name: '其他' },
| ],
| },
| ],
| };
|
| onMounted(() => {
| renderEcharts(options);
| });
| </script>
| <template>
| <div class="jnpf-content-wrapper">
| <div class="jnpf-content-wrapper-center bg-white px-[10px] pt-[40px]">
| <EchartsUI ref="chartRef" height="500px" />
| </div>
| </div>
| </template>
|
|