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
| <script setup lang="ts">
| import type { EChartsOption } from 'echarts';
|
| // import * as echarts from 'echarts';
| import { onMounted, ref } from 'vue';
|
| import {
| EchartsUI,
| type EchartsUIType,
| useEcharts,
| } from '@vben/plugins/echarts';
|
| import { loginLine } from '../api';
|
| defineOptions({ name: 'LoginLine' });
|
| const loginLineRef = ref<EchartsUIType>();
| const { renderEcharts } = useEcharts(loginLineRef);
|
| onMounted(async () => {
| const data = await loginLine();
| console.log(data);
| const options: EChartsOption = {
| legend: {},
| series: [
| {
| data: data.success,
| itemStyle: {
| color: '#3399CC',
| },
| lineStyle: {
| color: '#3399CC',
| },
| name: '登录成功',
| type: 'line',
| },
| {
| data: data.fail,
| itemStyle: {
| color: '#CC6633',
| },
| lineStyle: {
| color: '#CC6633',
| },
| name: '登录失败',
| type: 'line',
| },
| ],
| title: {
| text: '近一月登录量统计',
| },
| toolbox: {
| feature: {
| dataView: { readOnly: true },
| dataZoom: {
| yAxisIndex: 'none',
| },
| magicType: { type: ['line', 'bar'] },
| saveAsImage: {},
| },
| show: true,
| },
| tooltip: {
| trigger: 'axis',
| },
| xAxis: {
| boundaryGap: false,
| data: data.date,
| type: 'category',
| },
| yAxis: {
| type: 'value',
| },
| };
| renderEcharts(options);
| });
| </script>
|
| <template>
| <EchartsUI ref="loginLineRef" height="720px" width="100%" />
| </template>
|
| <style scoped></style>
|
|