/* * @Description: 这里输入文件功能 * @Author: zhoupeng * @Date: 2020-05-06 16:11:26 * @LastEditTime: 2020-07-07 09:38:15 */ import React, { Component } from 'react'; import { connect } from 'react-redux'; import { ActivityIndicator, Carousel, Toast } from 'antd-mobile'; import { getQueryVariable } from '../../utils/helper'; import 'antd-mobile/dist/antd-mobile.less'; import styles from './index.less'; import * as Service from './services/index'; const goImg = require('./asserts/go.png'); const diskImg = require('./asserts/disk.png'); const shareImg = require('./asserts/share.png'); const titleImg = require('./asserts/prizeTitle.png'); const smileImg = require('./asserts/smile.png'); const ruleTitleImg = require('./asserts/ruleTitle.png'); const ruleButtonImg = require('./asserts/rule.png'); const PRIZR_ARR = [ { id: 1, title: '谢谢参与', detail: smileImg, detailType: 1, //1表示图片 2表示金额 }, { id: 2, title: '代金券', detail: '1', detailType: 2, //1表示图片 2表示金额 }, { id: 3, title: '谢谢参与', detail: smileImg, detailType: 1, //1表示图片 2表示金额 }, { id: 4, title: '代金券', detail: '100', detailType: 2, //1表示图片 2表示金额 }, { id: 5, title: '代金券', detail: '10', detailType: 2, //1表示图片 2表示金额 }, { id: 6, title: '代金券', detail: '50', detailType: 2, //1表示图片 2表示金额 }, { id: 7, title: '谢谢参与', detail: smileImg, detailType: 1, //1表示图片 2表示金额 }, { id: 8, title: '代金券', detail: '10', detailType: 2, //1表示图片 2表示金额 }, { id: 9, title: '代金券', detail: '20', detailType: 2, //1表示图片 2表示金额 }, { id: 10, title: '代金券', detail: '5', detailType: 2, //1表示图片 2表示金额 }, ]; window.initData = function(obj) { alert(obj); console.log(obj); // let tokenObj = JSON.parse(obj); // if (window.callback != undefined) { // window.sessionStorage.setItem('token', tokenObj && tokenObj.token ? tokenObj.token : ''); // } }; window.setCallback = function(callback) { window.callback = callback; }; @connect(({ test }) => ({ test })) class Index extends Component { constructor(props) { super(props); this.state = { modalShow: false, totalNum: '-', usedNum: '-', list: [], drawFlag: false, drawStart: false, drawrResult: null, result: { prizeName: null, facePrice: null, prizeCode: null, }, }; } componentWillMount = () => { document.title = '抽奖'; window.setCallback(this); var token = getQueryVariable('token'); window.sessionStorage.setItem('token', token); var club = getQueryVariable('club'); window.sessionStorage.setItem('club', club); }; componentDidMount = () => { this.getLotteryNum(); this.getLotteryList(); }; //获取初始化数据 getLotteryNum = async () => { const { rc, data, msg } = await Service.getLotteryNum(); if (!rc) { this.setState({ totalNum: data.totalNum ? data.totalNum : 0, usedNum: data.usedNum ? data.usedNum : 0, }); } }; getLotteryList = async () => { const { rc, data, msg } = await Service.getLotteryList(); if (!rc) { this.setState({ list: data ? data : [], }); } }; //抽奖 lottery = async () => { console.log('================================================================='); const _this = this; const { drawFlag, result, usedNum, totalNum } = _this.state; if (usedNum === totalNum) { Toast.info('没有抽奖次数啦~~'); return; } if (drawFlag) { return; } _this.setState({ drawFlag: true, drawStart: true, drawrResult: null, }); const { rc, data, msg } = await Service.lottery(); if (!rc) { _this.setState({ result: data ? data : { prizeName: null, facePrice: null, prizeCode: null, }, }); _this.getLotteryNum(); } setTimeout(function() { _this.lotteryEnd(); }, 3000); }; lotteryEnd = () => { const _this = this; const { result } = _this.state; _this.setState({ drawStart: false, drawrResult: result.prizeCode ? result.prizeCode : null, }); setTimeout(function() { if (result.facePrice === 0) { Toast.info(result.prizeName); } else if (result.prizeName) { Toast.info('恭喜获得' + result.prizeName); } _this.setState({ drawFlag: false, }); }, 8000); _this.getLotteryList(); }; showModal = () => { // alert(1); this.setState({ modalShow: true, }); }; hideModal = () => { this.setState({ modalShow: false, }); }; //分享朋友圈 share = async () => { try { if (/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) { window.webkit.messageHandlers.shareToWXSceneTimeline.postMessage({}); } else { window.js.shareWxCircle(); } const { rc, data, msg } = await Service.share(); if (!rc) { this.getLotteryNum(); } else { Toast.info(msg, 2); } } catch (e) { alert(JSON.stringify(e)); } }; render() { const { modalShow, totalNum, usedNum, list, drawStart, drawrResult } = this.state; return (