index.js 1.08 KB
Newer Older
1
import React from 'react';
2
import { Card, Spin } from 'antd';
3 4 5

import styles from './index.less';

6 7 8
const ChartCard = ({
  loading = false, contentHeight, title, action, total, footer, children, ...rest
}) => {
9
  const content = (
10 11 12 13 14 15 16
    <div className={styles.chartCard}>
      <div className={styles.meta}>
        <span className={styles.title}>{title}</span>
        <span className={styles.action}>{action}</span>
      </div>
      {
        // eslint-disable-next-line
afc163's avatar
afc163 committed
17
        total && <div className={styles.total} dangerouslySetInnerHTML={{ __html: total }} />
18 19 20 21 22 23 24
      }
      <div className={styles.content} style={{ height: contentHeight || 'auto' }}>
        <div className={contentHeight && styles.contentFixed}>
          {children}
        </div>
      </div>
      {
afc163's avatar
afc163 committed
25 26 27 28 29
        footer && (
          <div className={styles.footer}>
            {footer}
          </div>
        )
30 31
      }
    </div>
32 33 34 35 36 37 38
  );

  return (
    <Card
      bodyStyle={{ padding: '20px 24px 8px 24px' }}
      {...rest}
    >
39
      {<Spin spinning={loading}>{content}</Spin>}
40 41 42
    </Card>
  );
};
43 44

export default ChartCard;