Vben
authored
|
1
2
3
4
5
|
<template>
<Card title="销售统计" :loading="loading">
<div ref="chartRef" :style="{ width, height }"></div>
</Card>
</template>
|
vben
authored
|
6
7
|
<script lang="ts" setup>
import { Ref, ref, watch } from 'vue';
|
Vben
authored
|
8
|
import { Card } from 'ant-design-vue';
|
Vben
authored
|
9
|
import { useECharts } from '/@/hooks/web/useECharts';
|
Vben
authored
|
10
|
|
vben
authored
|
11
12
13
14
15
16
17
18
19
|
const props = defineProps({
loading: Boolean,
width: {
type: String as PropType<string>,
default: '100%',
},
height: {
type: String as PropType<string>,
default: '400px',
|
Vben
authored
|
20
|
},
|
vben
authored
|
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
});
const chartRef = ref<HTMLDivElement | null>(null);
const { setOptions } = useECharts(chartRef as Ref<HTMLDivElement>);
watch(
() => props.loading,
() => {
if (props.loading) {
return;
}
setOptions({
legend: {
bottom: 0,
data: ['Visits', 'Sales'],
},
tooltip: {},
radar: {
radius: '60%',
splitNumber: 8,
indicator: [
{
|
|
42
|
name: '2017',
|
Vben
authored
|
43
|
},
|
vben
authored
|
44
|
{
|
|
45
|
name: '2017',
|
Vben
authored
|
46
|
},
|
vben
authored
|
47
|
{
|
|
48
|
name: '2018',
|
vben
authored
|
49
50
|
},
{
|
|
51
|
name: '2019',
|
vben
authored
|
52
53
|
},
{
|
|
54
|
name: '2020',
|
vben
authored
|
55
56
|
},
{
|
|
57
|
name: '2021',
|
vben
authored
|
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
},
],
},
series: [
{
type: 'radar',
symbolSize: 0,
areaStyle: {
shadowBlur: 0,
shadowColor: 'rgba(0,0,0,.2)',
shadowOffsetX: 0,
shadowOffsetY: 10,
opacity: 1,
},
data: [
|
Vben
authored
|
73
|
{
|
vben
authored
|
74
75
76
77
78
79
80
81
82
83
84
|
value: [90, 50, 86, 40, 50, 20],
name: 'Visits',
itemStyle: {
color: '#b6a2de',
},
},
{
value: [70, 75, 70, 76, 20, 85],
name: 'Sales',
itemStyle: {
color: '#67e0e3',
|
Vben
authored
|
85
86
87
|
},
},
],
|
vben
authored
|
88
89
90
|
},
],
});
|
Vben
authored
|
91
|
},
|
vben
authored
|
92
|
{ immediate: true },
|
vben
authored
|
93
|
);
|
Vben
authored
|
94
|
</script>
|