import React from 'react';
import { Col, Progress, Row, Tabs } from 'antd';
import { get } from 'lodash';
import { Chart, Interval } from 'bizcharts';
import styles from '../../index.less';
export const renderTopProgress = ({ data }) => {
return (
<Row style={{ height: '100%' }}>
{data.map((d) => {
const percentage = get(d, 'y', 0);
const percentageColor =
percentage > 80 ? globalCSS.warnDarkColor : globalCSS.primaryColor;
return (
<Col span={24} key={d.type}>
<div>{d.type}</div>
<Progress
strokeColor={percentageColor}
percent={percentage}
style={{ marginBottom: 4 }}
showInfo={percentage !== 100}
/>
</Col>
);
})}
</Row>
);
};
export const renderTopColumnExtra = ({ modifyKeys, filterChartData }) => {
return (
<Tabs
className={styles.tabs}
defaultActiveKey={modifyKeys[0]}
onChange={(key) => filterChartData((i) => i.type === key)}
>
{modifyKeys.map((k) => (
<Tabs.TabPane tab={k} key={k} />
))}
</Tabs>
);
};
export const renderTopColumnChart = ({ data, modifyKeys }) => {
return (
<Chart
autoFit
data={
data.length <= 5 ? data : data.filter((d) => d.type === modifyKeys[0])
}
height={198}
scale={{
y: {
nice: true,
},
}}
>
<Interval position="x*y" size={20} />
</Chart>
);
};