6 changed files with 222 additions and 242 deletions
@ -1,78 +1,86 @@ |
|||||
import React from 'react'; |
import React, { PureComponent } from 'react'; |
||||
import { List, Card, Icon, Dropdown, Menu, Avatar, Tooltip } from 'antd'; |
import { List, Card, Icon, Dropdown, Menu, Avatar, Tooltip } from 'antd'; |
||||
import numeral from 'numeral'; |
import numeral from 'numeral'; |
||||
|
import { connect } from 'dva'; |
||||
import { formatWan } from '../../../utils/utils'; |
import { formatWan } from '../../../utils/utils'; |
||||
import stylesApplications from '../../List/Search/Applications.less'; |
import stylesApplications from '../../List/Applications.less'; |
||||
|
|
||||
export default props => { |
@connect(({ list }) => ({ |
||||
const { list } = props; |
list, |
||||
const itemMenu = ( |
})) |
||||
<Menu> |
export default class Center extends PureComponent { |
||||
<Menu.Item> |
render() { |
||||
<a target="_blank" rel="noopener noreferrer" href="http://www.alipay.com/"> |
const { |
||||
1st menu item |
list: { list }, |
||||
</a> |
} = this.props; |
||||
</Menu.Item> |
const itemMenu = ( |
||||
<Menu.Item> |
<Menu> |
||||
<a target="_blank" rel="noopener noreferrer" href="http://www.taobao.com/"> |
<Menu.Item> |
||||
2nd menu item |
<a target="_blank" rel="noopener noreferrer" href="http://www.alipay.com/"> |
||||
</a> |
1st menu item |
||||
</Menu.Item> |
</a> |
||||
<Menu.Item> |
</Menu.Item> |
||||
<a target="_blank" rel="noopener noreferrer" href="http://www.tmall.com/"> |
<Menu.Item> |
||||
3d menu item |
<a target="_blank" rel="noopener noreferrer" href="http://www.taobao.com/"> |
||||
</a> |
2nd menu item |
||||
</Menu.Item> |
</a> |
||||
</Menu> |
</Menu.Item> |
||||
); |
<Menu.Item> |
||||
const CardInfo = ({ activeUser, newUser }) => ( |
<a target="_blank" rel="noopener noreferrer" href="http://www.tmall.com/"> |
||||
<div className={stylesApplications.cardInfo}> |
3d menu item |
||||
<div> |
</a> |
||||
<p>活跃用户</p> |
</Menu.Item> |
||||
<p>{activeUser}</p> |
</Menu> |
||||
|
); |
||||
|
const CardInfo = ({ activeUser, newUser }) => ( |
||||
|
<div className={stylesApplications.cardInfo}> |
||||
|
<div> |
||||
|
<p>活跃用户</p> |
||||
|
<p>{activeUser}</p> |
||||
|
</div> |
||||
|
<div> |
||||
|
<p>新增用户</p> |
||||
|
<p>{newUser}</p> |
||||
|
</div> |
||||
</div> |
</div> |
||||
<div> |
); |
||||
<p>新增用户</p> |
return ( |
||||
<p>{newUser}</p> |
<List |
||||
</div> |
rowKey="id" |
||||
</div> |
className={stylesApplications.filterCardList} |
||||
); |
grid={{ gutter: 24, xxl: 3, xl: 2, lg: 2, md: 2, sm: 2, xs: 1 }} |
||||
return ( |
dataSource={list} |
||||
<List |
renderItem={item => ( |
||||
rowKey="id" |
<List.Item key={item.id}> |
||||
className={stylesApplications.filterCardList} |
<Card |
||||
grid={{ gutter: 24, xxl: 3, xl: 2, lg: 2, md: 2, sm: 2, xs: 1 }} |
hoverable |
||||
dataSource={list} |
bodyStyle={{ paddingBottom: 20 }} |
||||
renderItem={item => ( |
actions={[ |
||||
<List.Item key={item.id}> |
<Tooltip title="下载"> |
||||
<Card |
<Icon type="download" /> |
||||
hoverable |
</Tooltip>, |
||||
bodyStyle={{ paddingBottom: 20 }} |
<Tooltip title="编辑"> |
||||
actions={[ |
<Icon type="edit" /> |
||||
<Tooltip title="下载"> |
</Tooltip>, |
||||
<Icon type="download" /> |
<Tooltip title="分享"> |
||||
</Tooltip>, |
<Icon type="share-alt" /> |
||||
<Tooltip title="编辑"> |
</Tooltip>, |
||||
<Icon type="edit" /> |
<Dropdown overlay={itemMenu}> |
||||
</Tooltip>, |
<Icon type="ellipsis" /> |
||||
<Tooltip title="分享"> |
</Dropdown>, |
||||
<Icon type="share-alt" /> |
]} |
||||
</Tooltip>, |
> |
||||
<Dropdown overlay={itemMenu}> |
<Card.Meta avatar={<Avatar size="small" src={item.avatar} />} title={item.title} /> |
||||
<Icon type="ellipsis" /> |
<div className={stylesApplications.cardItemContent}> |
||||
</Dropdown>, |
<CardInfo |
||||
]} |
activeUser={formatWan(item.activeUser)} |
||||
> |
newUser={numeral(item.newUser).format('0,0')} |
||||
<Card.Meta avatar={<Avatar size="small" src={item.avatar} />} title={item.title} /> |
/> |
||||
<div className={stylesApplications.cardItemContent}> |
</div> |
||||
<CardInfo |
</Card> |
||||
activeUser={formatWan(item.activeUser)} |
</List.Item> |
||||
newUser={numeral(item.newUser).format('0,0')} |
)} |
||||
/> |
/> |
||||
</div> |
); |
||||
</Card> |
} |
||||
</List.Item> |
} |
||||
)} |
|
||||
/> |
|
||||
); |
|
||||
}; |
|
||||
|
|||||
@ -1,60 +1,68 @@ |
|||||
import React from 'react'; |
import React, { PureComponent } from 'react'; |
||||
import { List, Icon, Avatar, Tag } from 'antd'; |
import { List, Icon, Avatar, Tag } from 'antd'; |
||||
import moment from 'moment'; |
import moment from 'moment'; |
||||
import stylesArticles from '../../List/Search/Articles.less'; |
import { connect } from 'dva'; |
||||
|
import stylesArticles from '../../List/Articles.less'; |
||||
import styles from './Articles.less'; |
import styles from './Articles.less'; |
||||
|
|
||||
export default props => { |
@connect(({ list }) => ({ |
||||
const { list } = props; |
list, |
||||
const IconText = ({ type, text }) => ( |
})) |
||||
<span> |
export default class Center extends PureComponent { |
||||
<Icon type={type} style={{ marginRight: 8 }} /> |
render() { |
||||
{text} |
const { |
||||
</span> |
list: { list }, |
||||
); |
} = this.props; |
||||
const ListContent = ({ data: { content, updatedAt, avatar, owner, href } }) => ( |
const IconText = ({ type, text }) => ( |
||||
<div className={stylesArticles.listContent}> |
<span> |
||||
<div className={stylesArticles.description}>{content}</div> |
<Icon type={type} style={{ marginRight: 8 }} /> |
||||
<div className={stylesArticles.extra}> |
{text} |
||||
<Avatar src={avatar} size="small" /> |
</span> |
||||
<a href={href}>{owner}</a> 发布在 <a href={href}>{href}</a> |
); |
||||
<em>{moment(updatedAt).format('YYYY-MM-DD HH:mm')}</em> |
const ListContent = ({ data: { content, updatedAt, avatar, owner, href } }) => ( |
||||
|
<div className={stylesArticles.listContent}> |
||||
|
<div className={stylesArticles.description}>{content}</div> |
||||
|
<div className={stylesArticles.extra}> |
||||
|
<Avatar src={avatar} size="small" /> |
||||
|
<a href={href}>{owner}</a> 发布在 <a href={href}>{href}</a> |
||||
|
<em>{moment(updatedAt).format('YYYY-MM-DD HH:mm')}</em> |
||||
|
</div> |
||||
</div> |
</div> |
||||
</div> |
); |
||||
); |
return ( |
||||
return ( |
<List |
||||
<List |
size="large" |
||||
size="large" |
className={styles.articleList} |
||||
className={styles.articleList} |
rowKey="id" |
||||
rowKey="id" |
itemLayout="vertical" |
||||
itemLayout="vertical" |
dataSource={list} |
||||
dataSource={list} |
renderItem={item => ( |
||||
renderItem={item => ( |
<List.Item |
||||
<List.Item |
key={item.id} |
||||
key={item.id} |
actions={[ |
||||
actions={[ |
<IconText type="star-o" text={item.star} />, |
||||
<IconText type="star-o" text={item.star} />, |
<IconText type="like-o" text={item.like} />, |
||||
<IconText type="like-o" text={item.like} />, |
<IconText type="message" text={item.message} />, |
||||
<IconText type="message" text={item.message} />, |
]} |
||||
]} |
> |
||||
> |
<List.Item.Meta |
||||
<List.Item.Meta |
title={ |
||||
title={ |
<a className={stylesArticles.listItemMetaTitle} href={item.href}> |
||||
<a className={stylesArticles.listItemMetaTitle} href={item.href}> |
{item.title} |
||||
{item.title} |
</a> |
||||
</a> |
} |
||||
} |
description={ |
||||
description={ |
<span> |
||||
<span> |
<Tag>Ant Design</Tag> |
||||
<Tag>Ant Design</Tag> |
<Tag>设计语言</Tag> |
||||
<Tag>设计语言</Tag> |
<Tag>蚂蚁金服</Tag> |
||||
<Tag>蚂蚁金服</Tag> |
</span> |
||||
</span> |
} |
||||
} |
/> |
||||
/> |
<ListContent data={item} /> |
||||
<ListContent data={item} /> |
</List.Item> |
||||
</List.Item> |
)} |
||||
)} |
/> |
||||
/> |
); |
||||
); |
} |
||||
}; |
} |
||||
|
|||||
@ -1,42 +1,50 @@ |
|||||
import React from 'react'; |
import React, { PureComponent } from 'react'; |
||||
import { List, Card } from 'antd'; |
import { List, Card } from 'antd'; |
||||
import moment from 'moment'; |
import moment from 'moment'; |
||||
|
import { connect } from 'dva'; |
||||
import AvatarList from '../../../components/AvatarList'; |
import AvatarList from '../../../components/AvatarList'; |
||||
import stylesProjects from '../../List/Search/Projects.less'; |
import stylesProjects from '../../List/Projects.less'; |
||||
|
|
||||
export default props => { |
@connect(({ list }) => ({ |
||||
const { list } = props; |
list, |
||||
return ( |
})) |
||||
<List |
export default class Center extends PureComponent { |
||||
className={stylesProjects.coverCardList} |
render() { |
||||
rowKey="id" |
const { |
||||
grid={{ gutter: 24, xxl: 3, xl: 2, lg: 2, md: 2, sm: 2, xs: 1 }} |
list: { list }, |
||||
dataSource={list} |
} = this.props; |
||||
renderItem={item => ( |
return ( |
||||
<List.Item> |
<List |
||||
<Card |
className={stylesProjects.coverCardList} |
||||
className={stylesProjects.card} |
rowKey="id" |
||||
hoverable |
grid={{ gutter: 24, xxl: 3, xl: 2, lg: 2, md: 2, sm: 2, xs: 1 }} |
||||
cover={<img alt={item.title} src={item.cover} />} |
dataSource={list} |
||||
> |
renderItem={item => ( |
||||
<Card.Meta title={<a href="#">{item.title}</a>} description={item.subDescription} /> |
<List.Item> |
||||
<div className={stylesProjects.cardItemContent}> |
<Card |
||||
<span>{moment(item.updatedAt).fromNow()}</span> |
className={stylesProjects.card} |
||||
<div className={stylesProjects.avatarList}> |
hoverable |
||||
<AvatarList size="mini"> |
cover={<img alt={item.title} src={item.cover} />} |
||||
{item.members.map(member => ( |
> |
||||
<AvatarList.Item |
<Card.Meta title={<a href="#">{item.title}</a>} description={item.subDescription} /> |
||||
key={`${item.id}-avatar-${member.id}`} |
<div className={stylesProjects.cardItemContent}> |
||||
src={member.avatar} |
<span>{moment(item.updatedAt).fromNow()}</span> |
||||
tips={member.name} |
<div className={stylesProjects.avatarList}> |
||||
/> |
<AvatarList size="mini"> |
||||
))} |
{item.members.map(member => ( |
||||
</AvatarList> |
<AvatarList.Item |
||||
|
key={`${item.id}-avatar-${member.id}`} |
||||
|
src={member.avatar} |
||||
|
tips={member.name} |
||||
|
/> |
||||
|
))} |
||||
|
</AvatarList> |
||||
|
</div> |
||||
</div> |
</div> |
||||
</div> |
</Card> |
||||
</Card> |
</List.Item> |
||||
</List.Item> |
)} |
||||
)} |
/> |
||||
/> |
); |
||||
); |
} |
||||
}; |
} |
||||
|
|||||
Loading…
Reference in new issue