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

import styles from './index.less';

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

  return (
    <Card
      bodyStyle={{ padding: '20px 24px 8px 24px' }}
      {...rest}
    >
      {
        loading ? (
          <Spin size="large">{content}</Spin>
        ) : content
      }
    </Card>
  );
};
45 46

export default ChartCard;