CardList.js 2.77 KB
Newer Older
1 2
import React, { PureComponent } from 'react';
import { connect } from 'dva';
ddcat1115's avatar
ddcat1115 committed
3
import { Card, Button, Icon, List } from 'antd';
4 5

import PageHeaderLayout from '../../layouts/PageHeaderLayout';
niko's avatar
niko committed
6
import Ellipsis from '../../components/Ellipsis';
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

import styles from './CardList.less';

@connect(state => ({
  list: state.list,
}))
export default class CardList extends PureComponent {
  componentDidMount() {
    this.props.dispatch({
      type: 'list/fetch',
      payload: {
        count: 8,
      },
    });
  }

  render() {
    const { list: { list, loading } } = this.props;

    const content = (
      <div className={styles.pageHeaderContent}>
afc163's avatar
afc163 committed
28
        <p>
afc163's avatar
afc163 committed
29
          段落示意蚂蚁金服务设计平台 ant.design用最小的工作量无缝接入蚂蚁金服生态
afc163's avatar
afc163 committed
30 31
          提供跨越设计与开发的体验解决方案
        </p>
32 33
        <div className={styles.contentLink}>
          <a>
afc163's avatar
afc163 committed
34
            <img alt="" src="https://gw.alipayobjects.com/zos/rmsportal/MjEImQtenlyueSmVEfUD.svg" /> 快速开始
35 36
          </a>
          <a>
afc163's avatar
afc163 committed
37
            <img alt="" src="https://gw.alipayobjects.com/zos/rmsportal/NbuDUAuBlIApFuDvWiND.svg" /> 产品简介
38 39
          </a>
          <a>
afc163's avatar
afc163 committed
40
            <img alt="" src="https://gw.alipayobjects.com/zos/rmsportal/ohOEPSYdDTNnyMbGuyLb.svg" /> 产品文档
41 42 43 44 45 46 47
          </a>
        </div>
      </div>
    );

    const extraContent = (
      <div className={styles.extraImg}>
nikogu's avatar
nikogu committed
48
        <img alt="这是一个标题" src="https://gw.alipayobjects.com/zos/rmsportal/RzwpdLnhmvDJToTdfDPe.png" />
49 50 51 52 53
      </div>
    );

    return (
      <PageHeaderLayout
niko's avatar
niko committed
54
        title="卡片列表"
55 56 57 58
        content={content}
        extraContent={extraContent}
      >
        <div className={styles.cardList}>
nikogu's avatar
nikogu committed
59
          <List
nikogu's avatar
nikogu committed
60
            rowKey="id"
nikogu's avatar
nikogu committed
61
            loading={loading}
nikogu's avatar
nikogu committed
62
            grid={{ gutter: 24, lg: 3, md: 2, sm: 1, xs: 1 }}
nikogu's avatar
nikogu committed
63 64 65
            dataSource={['', ...list]}
            renderItem={item => (item ? (
              <List.Item key={item.id}>
66 67 68 69 70
                <Card hoverable className={styles.card} actions={[<a>操作一</a>, <a>操作二</a>]}>
                  <Card.Meta
                    avatar={<img alt="" className={styles.cardAvatar} src={item.avatar} />}
                    title={<a href="#">{item.title}</a>}
                    description={(
niko's avatar
niko committed
71
                      <Ellipsis lines={3} cover suffixOffset={2}>{item.description}</Ellipsis>
72 73
                    )}
                  />
niko's avatar
niko committed
74
                </Card>
nikogu's avatar
nikogu committed
75 76 77 78 79 80
              </List.Item>
              ) : (
                <List.Item>
                  <Button type="dashed" className={styles.newButton}>
                    <Icon type="plus" /> 新增产品
                  </Button>
nikogu's avatar
nikogu committed
81
                </List.Item>
nikogu's avatar
nikogu committed
82 83 84
              )
            )}
          />
85 86 87 88 89
        </div>
      </PageHeaderLayout>
    );
  }
}