import React, { Component } from 'react'; import './index.less'; import { Icon } from 'antd-mobile'; import Assets from '@src/components/Assets'; import { getMap } from '@src/services/Tools'; import { CrowdList } from '../../../Constant'; import Tag from '../Tag'; import Money from '../Money'; import Button from '../Button'; const CrowdMap = getMap(CrowdList, 'value', 'label'); export class Block extends Component { render() { const { className = '', children } = this.props; return <div className={`g-block ${className}`}>{children}</div>; } } export class TopBlock extends Component { render() { const { className = '', theme = 'default', children } = this.props; return <div className={`g-top-block ${className} ${theme}`}>{children}</div>; } } export class TagBlock extends Component { render() { const { className = '', theme = 'default', tag, children } = this.props; return ( <div className={`g-tag-block ${className} ${theme}`}> <div className="g-tag-block-tag">{tag}</div> {children} </div> ); } } export class LinkBlock extends Component { render() { const { className = '', theme = 'default', title, sub, onClick } = this.props; return ( <div className={`g-link-block ${className} ${theme}`} onClick={() => onClick && onClick()}> <div className="g-link-block-title">{title}</div> <div className="g-link-block-sub">{sub}</div> <div className="g-link-block-icon"> <Icon type="right" size="xxs" color="#fff" /> </div> </div> ); } } export class CourseBlock extends Component { render() { const { data } = this.props; return ( <Block className="course-block" onClick={() => { linkTo(`/product/course/detail/${data.id}`); }}> <div className="title">{data.title}</div> <div className="block-body"> <Assets name="c_b" src={data.cover} /> <div className="info"> <div className="teacher"> 授课老师<span>{data.teacher}</span> </div> <div className="desc"> {data.comment} </div> <div className="division" /> <div className="data"> {CrowdMap[data.crowd] && <Tag size="small">适合{CrowdMap[data.crowd]}</Tag>} <div className="result"> 优质回答<span>{data.askNumber}</span> </div> </div> </div> </div> </Block> ); } } export class CourseCoBlock extends Component { render() { const { theme, data } = this.props; return ( <TagBlock className="course-co-block" theme={theme} tag={''} onClick={() => { linkTo(`/product/course/detail/${data.id}`); }}> <div className="title">{data.title}</div> <div className="info"> <div className="teacher"> 授课老师<span>{data.teacher}</span> </div> {CrowdMap[data.crowd] && <Tag size="small">适合{CrowdMap[data.crowd]}</Tag>} </div> <div className="desc"> {data.comment} </div> </TagBlock> ); } } export class DataBlock extends Component { render() { const { data } = this.props; return ( <Block className="data-block" onClick={() => { linkTo(`/product/data/detail/${data.id}`); }}> <Assets name="d_b" src={data.cover} /> <div className="info"> <div className="title">{data.title}</div> <div className="desc">{data.comment}</div> <div className="division" /> <div className="data"> <div className="people">{data.saleNumber}人已购</div> <Money value={data.price} /> </div> </div> </Block> ); } } export class BuyBlock extends Component { render() { const { theme } = this.props; return ( <TopBlock className="buy-block" theme={theme}> <div className="block-left"> <div className="title"> <Tag theme="border" radius size="small"> 已到期 </Tag> VIP会员 </div> <div className="date">有效期:2019-11-20</div> <div className="desc">请访问千行 GMAT 官网开通使用</div> </div> <div className="block-right"> <div className="btn"> <Button radius>开通</Button> </div> <div className="tip">¥888/ 3个月</div> </div> </TopBlock> ); } }