UNPKG

react-app-shell

Version:

react打包脚本和example, 这里的版本请忽略

99 lines (91 loc) 3.49 kB
// 功能方法>>>引用: import { observable, action } from 'mobx'; import moment from 'moment'; // 公用方法 配置项 接口 枚举>>>引用: import { appConfig } from '../config'; import { rabbitPageService } from '../service'; import { RABBIT_BUY_STATUS } from '../constants'; // 公用方法>>>引用: import { message, myToast } from '../utils'; // 跳转页面常量赋值 const urlByAgain = `${appConfig.basename}/rabbit/again`; /** * 魔小兔购买活动页仓库 */ class RabbitStore { /** * 数据源 */ @observable state = { serviceError: false, // 获取信息时 接口是否发生异常或者超时 id: '', productId: '', processStatus: '', // 活动状态 startTimeMonth: '', // 按钮的开始时间(月) startTimeDay: '', // 按钮的开始时间(日) purchaseStartTimeMonth: '', // 活动未开始(月) -- 文案展示 purchaseStartTimeDay: '', // 活动未开始(日) -- 文案展示 purchaseEndTime: '', // 活动进行中 -- 倒计时结束时间 nowTime: '', // 倒计时现在时间 balancePeople: '', // 剩余人数 detailImgList: [], // 详情页一组图 campType: '' // 按钮文案 }; // 初始化页面数据方法 @action initData = async (id) => { try { // 展示loading message.showLoading('加载中'); const rabbitPageConfig = await rabbitPageService.getRabbitPageInfo(id); if (rabbitPageConfig) { this.state = { ...this.state, serviceError: false, id: rabbitPageConfig.id, productId: rabbitPageConfig.productId, processStatus: rabbitPageConfig.processStatus, startTimeMonth: moment(rabbitPageConfig.startTime).format('M'), startTimeDay: moment(rabbitPageConfig.startTime).format('DD'), nowTime: Date.parse(rabbitPageConfig.nowTime.replace(/-/g, '/')), purchaseEndTime: Date.parse(rabbitPageConfig.purchaseEndTime.replace(/-/g, '/')), purchaseStartTimeMonth: moment(rabbitPageConfig.purchaseStartTime).format('M'), purchaseStartTimeDay: moment(rabbitPageConfig.purchaseStartTime).format('DD'), balancePeople: rabbitPageConfig.balancePeople, detailImgList: rabbitPageConfig.detailImgList, campType: rabbitPageConfig.campType }; // 初始化时判断是否登陆,已登陆YES:检验是否付费 / 未登陆NO:不做处理 if (rabbitPageConfig.loginFlag === 'YES') { await rabbitPageService.getRabbitPageCheck(rabbitPageConfig.id); } } else { this.state = { serviceError: true }; } } catch (error) { switch (error.code) { case RABBIT_BUY_STATUS.BIZ_BUNNY_IS_JOINING_CAMP: // 付费用户跳转页面 window.location.href = urlByAgain; break; case RABBIT_BUY_STATUS.BIZ_BUNNY_CAMP_JOIN_FULL: myToast.warning('对不起,您来晚了,本期魔小兔营期已经爆满了哦~'); break; case RABBIT_BUY_STATUS.BIZ_BUNNY_IS_JOINING_OTHER_CAMP: break; case RABBIT_BUY_STATUS.BIZ_BUNNY_IS_JOINING_FORMAL_CAMP: myToast.warning('您已购买过正式课程,无法参与体验'); break; default: this.state = { serviceError: true }; } } finally { // 关闭loading message.closeLoading(); } }; } export default new RabbitStore();