chart.tsx
1.6 KB
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
import { Card } from "antd";
import * as echarts from "echarts/core";
import { GridComponent, GridComponentOption } from "echarts/components";
import { BarChart, BarSeriesOption } from "echarts/charts";
import { CanvasRenderer } from "echarts/renderers";
import { useRef, useState } from "react";
const tabList = [
{
key: "bar",
label: "柱状图",
},
{
key: "pie",
label: "饼图",
},
{
key: "line",
label: "折线图",
},
];
echarts.use([GridComponent, BarChart, CanvasRenderer]);
type EChartsOption = echarts.ComposeOption<
GridComponentOption | BarSeriesOption
>;
var option: EChartsOption;
option = {
xAxis: {
type: "category",
data: ["Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun"],
},
yAxis: {
type: "value",
},
series: [
{
data: [120, 200, 150, 80, 70, 110, 130],
type: "bar",
},
],
};
export function ChartComponent() {
const [activeTabKey, setActiveTabKey] = useState<string>("bar");
const line = useRef<HTMLCanvasElement>(null);
const bar = useRef<HTMLCanvasElement>(null);
const pie = useRef<HTMLCanvasElement>(null);
const contentListNoTitle: Record<string, React.ReactNode> = {
bar: <canvas ref={bar}></canvas>,
pie: <canvas ref={pie}></canvas>,
line: <canvas ref={line}></canvas>,
};
// var myChart = echarts.init(bar);
return (
<>
<Card
style={{ width: "100%" }}
tabList={tabList}
activeTabKey={activeTabKey}
onTabChange={setActiveTabKey}
tabProps={{ size: "middle" }}
>
{contentListNoTitle[activeTabKey]}
</Card>
</>
);
}