react-app-shell
Version:
react打包脚本和example, 这里的版本请忽略
124 lines (109 loc) • 3.87 kB
JavaScript
// 功能方法>>>引用:
import React, { Component } from 'react';
import { inject, observer } from 'mobx-react';
// 公用方法 配置项 接口 枚举>>>引用:
import { monitor } from '../../utils';
import { checkUserAuth, WechatConfig, DocumentTitle } from '../../components'; // 魔小兔授权, 签名分享, title组件
import { shareConfig } from '../../config';
import { AccountsType } from '../../constants'; // 魔小兔授权枚举
import { BONNY } from '../../constants/accounts-type';
// 组件 公用组件>>>引用:
import SignUp from './component/sign-up'; // 距离报名结束 组件
import CountDown from './component/count-down'; // 倒计时 组件
import PushBtn from './component/push-btn'; // 按钮 组件
import RabbitServiceError from './component/rabbit-service-error';
// 样式>>>引用:
import styles from './rabbit.less';
// 分享默认参数
const defaultShareOptions = shareConfig.rabbit;
/**
* 魔小兔-购买活动页
*/
(({ rabbitStore }) => {
return {
// 数据
serviceError: rabbitStore.state.serviceError, // 页面暂无数据 或 没有该活动
id: rabbitStore.state.id, // 页面id
processStatus: rabbitStore.state.processStatus, // 活动状态
startTimeMonth: rabbitStore.state.startTimeMonth, // 按钮的开始时间(月)
startTimeDay: rabbitStore.state.startTimeDay, // 按钮的开始时间(日)
purchaseEndTime: rabbitStore.state.purchaseEndTime, // 倒计时结束时间
nowTime: rabbitStore.state.nowTime, // 倒计时现在时间
detailImgList: rabbitStore.state.detailImgList, // 详情页一组图
// 函数
initData: rabbitStore.initData // 初始化方法
};
})
({ account: AccountsType.BONNY }) // 活动相关的微信授权公众号--魔小兔公众号(待定)
export default class Rabbit extends Component {
constructor(props) {
super(props);
this.state = {
shareOptions: {
...defaultShareOptions
},
urlId: this.props.match.params.id // 获取url上的值
};
// 初始化数据
this.props.initData(this.state.urlId);
}
componentDidMount() {
monitor.log('', 'rabbit >> 浏览魔小兔购买活动页面');
}
/**
* 页面详情图render
*/
renderBannerContent = () => {
const { detailImgList } = this.props;
return (
<div className={styles.imgContent}>
{detailImgList.map((item, index) => {
return <img key={index} className={styles.img} src={item} />;
})}
<div className={styles.compatibleSafeArea}></div>
</div>
);
};
/**
* 页面底部导航render
*/
renderFooterContent = () => {
const { purchaseEndTime, nowTime, processStatus, initData } = this.props;
return (
<div className={styles.footer}>
<div className={styles.footerLeft}>
<SignUp processStatus={processStatus} />
<CountDown
id={this.state.urlId}
countDownTime={purchaseEndTime}
nowTime={nowTime}
processStatus={processStatus}
onFinish={initData}
/>
</div>
<div className={styles.footerRight}>
<PushBtn processStatus={processStatus} />
</div>
</div>
);
};
render() {
const { serviceError } = this.props;
// 获取信息时发生异常, 阻塞掉代码不往下走了
if (serviceError) {
return <RabbitServiceError />;
}
// 分享参数
const { shareOptions } = this.state;
return (
<div className={styles.rabbit}>
{this.renderBannerContent()}
{this.renderFooterContent()}
<div className={styles.compatibleFooter}></div>
<DocumentTitle title="魔小兔英语" />
<WechatConfig showShare={true} shareOptions={shareOptions} account={BONNY} />
</div>
);
}
}