react-app-shell
Version:
react打包脚本和example, 这里的版本请忽略
101 lines (90 loc) • 3.5 kB
JavaScript
import React, {Component} from 'react';
import {observer, inject} from 'mobx-react';
// import queryString from 'query-string';
import {ACTIVE_STATUS, BARGAIN_STATUS} from '../../../../constants';
import CountDown from './countDown';
import CrewList from './crewlist';
import Progress from './progress';
import BargainBtn from './bargainBtn';
import styles from '../styles.less';
/**
* 活动详情展示
*/
(({bargainStore}) => {
return {
activeId: bargainStore.state.activeId,
recordId: bargainStore.state.recordId,
activeStatus: bargainStore.state.activeStatus,
status: bargainStore.state.status,
now: bargainStore.activeInfo.now,
endTime: bargainStore.activeInfo.endTime,
levels: bargainStore.activeInfo.levels || [], // 档位设置
attendCount: bargainStore.activeInfo.attendCount || 0,
bargainRecordDetailList: bargainStore.bargainData.bargainRecordDetailList || [],
bargainPrice: bargainStore.bargainData.bargainPrice || 0,
// 函数
loadData: bargainStore.loadData,
};
})
class bargainDetail extends Component {
constructor(props) {
super(props);
this.state = {
modalKey: ''
};
}
/**
* 倒计时结束 重新加载数据
*/
handleFinishCountDown = () => {
const {activeId, recordId, loadData} = this.props;
loadData(activeId, recordId);
};
/**
* 渲染倒计时组件
* @returns {*}
*/
renderCountDown = () => {
let {activeStatus, now, endTime, attendCount} = this.props;
switch (activeStatus) {
case ACTIVE_STATUS.ACTIVE: // 活动进行中。。
return (
<div className={styles['countdown']}>
<CountDown endTime={endTime} serverTime={now} finishCallback={this.handleFinishCountDown}/>
<p className={styles['join-people']}>
已有<span className={styles['join-num']}>{attendCount}</span>人参加了砍价活动
</p>
</div>
);
case ACTIVE_STATUS.END: // 活动已结束
return (
<div className={styles['countdown']}>
<div className={styles['count-title']}>
<div className={styles['count-hr']}/>
<span className={styles['count-end']}>活动已结束</span>
<div className={styles['count-hr']}/>
</div>
<p className={styles['join-people']}>
已有<span className={styles['join-num']}>{attendCount}</span>人参加了砍价活动
</p>
</div>
);
}
};
render() {
const {levels, bargainRecordDetailList, bargainPrice} = this.props;
const {bargainStatus} = this.props.status;
return (
<div className={styles['bargain-main']}>
<Progress levels={levels} bargained={bargainPrice}/>
<BargainBtn/>
{this.renderCountDown()}
{bargainStatus === BARGAIN_STATUS.UNSTART ? '' : (
<CrewList helpList={bargainRecordDetailList} title={'TA帮他砍价啦~'}/>
)}
</div>
);
}
}
export default bargainDetail;