dva

时间:2022-05-23 20:22:10
import React, { PureComponent } from "react";
import {
Chart,
Geom,
Axis,
Tooltip,
Coord,
Label,
Legend,
View,
Guide,
Shape
} from "bizcharts";
import moment from 'moment'; export default class PieChart extends PureComponent {
state = {
chartHight: 200
}
componentWillMount = () => {
this.loadDataLength(this.props.data);
}
sortTime = (date) => {
date.sort((a, b) => {
return new Date(a.x).getTime() - new Date(b.x).getTime();
});
return date;
}
loadDataLength = data => {
this.setState({
chartHight: data.length * 25
});
}
render() {
const { data } = this.props;
const { chartHight } = this.state;
const _data = data && data.map(d => ({ ...d, y: Number(d.y) })); // 过滤y轴的字符串变成数字
if (data) this.sortTime(_data); // 给时间排序
const scale = {
x: {
// alias: "时间",
type: "cat",
formatter: value => moment(value).format('YYYY-MM-DD HH:mm:ss'),
// 初始化x轴的值
// mask: "YYYY/MM/DD HH:mm:ss",
// tickCount: 18
},
y: {
alias: '分布',
// 设置y轴
},
box: { alias: '分箱' }
};
return (
<div>
<Chart
forceFit
height={chartHight}
data={_data}
scale={scale}
padding='auto'
>
<Axis name="x" />
<Axis name="y" />
<Legend position="bottom" />
<Tooltip crosshairs={{ type: "y" }} />
<Geom type="line" position="x*y" color="box" />
<Legend name="isSuccess" visible={false} />
<Geom
type='point' // 用来设置图标中的点 如 点图 折线图等等
position="x*y" // 用来设置显示的位置 横轴和纵轴
shape='circle' // 显示的样式
size={['isSuccess', (isSuccess) => {
// 设置圆点的大小半径
if (isSuccess === 'false' || isSuccess === false) {
return 5;
}
return 0;
}]}
color='#f5222d'
/>
</Chart>
</div>
);
}
}