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
| <template>
| <div ref="chartRef" :style="{ height, width }"></div>
| </template>
| <script lang="ts">
| import { basicProps } from './props';
| </script>
| <script lang="ts" setup>
| import { onMounted, ref, Ref } from 'vue';
| import { useECharts } from '/@/hooks/web/useECharts';
|
| defineProps({
| ...basicProps,
| });
| const chartRef = ref<HTMLDivElement | null>(null);
| const { setOptions } = useECharts(chartRef as Ref<HTMLDivElement>);
|
| onMounted(() => {
| setOptions({
| tooltip: {
| trigger: 'axis',
| axisPointer: {
| lineStyle: {
| width: 1,
| color: '#019680',
| },
| },
| },
| xAxis: {
| type: 'category',
| boundaryGap: false,
| data: [...new Array(18)].map((_item, index) => `${index + 6}:00`),
| splitLine: {
| show: true,
| lineStyle: {
| width: 1,
| type: 'solid',
| color: 'rgba(226,226,226,0.5)',
| },
| },
| axisTick: {
| show: false,
| },
| },
| yAxis: [
| {
| type: 'value',
| max: 80000,
| splitNumber: 4,
| axisTick: {
| show: false,
| },
| splitArea: {
| show: true,
| areaStyle: {
| color: ['rgba(255,255,255,0.2)', 'rgba(226,226,226,0.2)'],
| },
| },
| },
| ],
| grid: { left: '1%', right: '1%', top: '2 %', bottom: 0, containLabel: true },
| series: [
| {
| smooth: true,
| data: [
| 111, 222, 4000, 18000, 33333, 55555, 66666, 33333, 14000, 36000, 66666, 44444, 22222,
| 11111, 4000, 2000, 500, 333, 222, 111,
| ],
| type: 'line',
| areaStyle: {},
| itemStyle: {
| color: '#5ab1ef',
| },
| },
| {
| smooth: true,
| data: [
| 33, 66, 88, 333, 3333, 5000, 18000, 3000, 1200, 13000, 22000, 11000, 2221, 1201, 390,
| 198, 60, 30, 22, 11,
| ],
| type: 'line',
| areaStyle: {},
| itemStyle: {
| color: '#019680',
| },
| },
| ],
| });
| });
| </script>
|
|