56.3f9dff1e.chunk.js.map 146 KB
Newer Older
wangshuo committed
1
{"version":3,"sources":["components/activity/2020-717/images/title_1.png","components/activity/2020-717/images/title_2.png","components/activity/2020-717/images/title_3.png","components/activity/2020-717/images/title_4.png","components/activity/2020-717/images/title_5.png","components/activity/2020-717/images/rank1.png","components/activity/2020-717/images/rank2.png","components/activity/2020-717/images/rank3.png","components/activity/2020-717/activity/index.js","components/activity/2020-717/question/index.js","components/activity/2020-717/invitation/index.js","components/activity/2020-717/index.js"],"names":["module","exports","Anniversary2020","nav","store","storage","namespace","stages","1","2","3","4","stageParams","records","answerRule","drawTimer","countDownTimer","hasMore","state","navs","text","id","titleImages","require","rankIcons","navActive","sectionsPosition","auditions","auditionShowAll","group","groupShowAll","stageCourses","activityData","team","rankList","isShowAllRankList","qrcode","undefined","countDown","userAddress","name","phone","address","isShowUserAddress","isShowPrizesRecords","isWinPrize","isReLogin","isShowTeamMember","isShowFollow","prizeData","drawOrder","drawItemIds","drawingItemId","isDrawing","drawResult","prizeRecords","prizeRecordsPagination","bulletScreenList","prizeType","needMobile","istime","isshowLive","getActivityStage","http","get","API","home","then","res","data","code","msg","setupCountDown","count_down","setState","bindNavAction","info","getAuditionCourses","getGroupCourses","getStageCourses","key","groupBy","item","stage","index","findIndex","getPrizeData","prizes","splice","map","order","itemId","getRankList","getTeam","getPrizeRecords","isFetching","isEmpty","_records","Array","isArray","concat","setTimeout","handleRecordsScroll","debounce","e","target","scrollTop","scrollHeight","clientHeight","handleChange","value","submitUserAddress","post","getUserAddress","document","removeEventListener","setNavActive","el","querySelector","top","offsetTop","height","offsetHeight","hash","props","location","window","scrollTo","addEventListener","getFollowStaus","is_follow","getQRCode","user","uid","errno","qr_image","pageY","pageYOffset","i","length","section","nextSection","prevSection","showRule","content","popupInstance","Popup","className","title","showActiveNav","box","querySelectorAll","getBoundingClientRect","offsetWidth","scrollLeft","left","right","draw","isGotoLogin","odd_times","startDraw","requestDraw","oddTimes","prize_type","need_mobile","catch","fail","setInterval","clearInterval","sign","is_sign","history","hasError","push","getBulletScreenData","handleBulletScreenChange","from","to","totalSeconds","d","Math","floor","h","m","reLogin","logout","now","Date","getTime","future","this","addData","type","REDO","session","remove","prevProps","prevState","body","style","overflow","clearTimeout","_auditions","slice","_group","_rankList","src","alt","onClick","ref","href","background","backgroundSize","Button","is_assemble","v_course_id","course_id","nodeName","toLowerCase","image_name","course_title","simpledescription","price1","price0","bind","rule","dragging","swiping","dots","speed","autoplayInterval","easing","tweenFunctions","easeOutCubic","vertical","autoplay","infinite","beforeChange","classnames","active","available","unavailable","img_name","display","alignItems","justifyContent","more_rule","split","textAlign","marginBottom","people_num","ranking","team_info","head_img","avatar_file","preventDefault","set","practice_num","avatar","username","member_num","prize_url","prize","is_buy","words","is_dist","dist_amount","Object","keys","save","placeholder","onChange","disabled","prize_name","amount","create_time","prize_info","WinPrize","close","ReLogin","TeamMember","members","Component","_members","filter","statusText","statusClass","user_name","is_correct","connect","dispatch","Question","question","result","recommends","selectedOptionId","isShowConfirm","isResultConfirm","isTeamHead","match","params","isPractice","isActivityEnd","getQuestion","ADD_QUESTION","payload","teamCode","select","submit","option_id","cache","getRecommends","type_id","afterSubmitted","ADD_RESULT","resultFun","notNeedSign","getAttribute","console","log","typeId","ADD_RECOMMENDS","getOptionLabel","String","fromCharCode","redo","ques","dangerouslySetInnerHTML","__html","options","selected","correct","right_id","wrong","parseInt","des","analysis","Recommends","BottomButton","Confirm","cancel","ResultConfirm","data-sign","practiceNum","compose","WithFullSize","anniversary2020Question","Invitation","invitationInfo","inviteUid","getParam","isShowGuide","teamInfo","isMaster","instance","isShowCaptcha","getPrizesInfo","getInvitationInfo","invite_uid","getTeamInfo","team_code","is_captain","err","joinTeam","noTraceValidation","showCaptchaModal","isNeedValidation","browser","isWeixin","encodeURIComponent","is_check","_data","token","sig","status","reset","setupWechatShare","wxShare","desc","link","pathname","imgUrl","drawQuestions","getInstance","onVerify","arrow","goBack","invite_num","draw_chance","onCopy","isAnswered","is_answer","Anniversary2020Entry","path","render","routeProps"],"mappings":"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","file":"mrstaticjs/56.3f9dff1e.chunk.js","sourcesContent":["module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAABACAMAAACX4rrSAAAC+lBMVEUAAAD//v///////////////v///v///////f///////////v85vf///////f///f89pfVBk/Mxx/8xx/8xx/9BwPoxx/80M+Q1xv9Hwvs+fO89ce05WutAp/lIw/s7YOu0sPI+qP0xx/8/qPsyHuFCqPk+p/1Ah/E2OOUxx/9CpfY9e/Axx/9AuvwxIOExyP9CofY/qPxFufpAp/oxHeFAovgwD95CmvVBkfM8Zus3Ree/u/MuCt5Ap/pCv/wxE90xx/8yHeE/ovk6r/8/m/swHt9Grv/LyfY+qP1HwPs+qP0vCN49fPAxx/8/qfwwC94xx/9Ft/pCwvwxx/9EoPX5+P5GvfpErvgxHeEuBN3o6fzr6fsxx/9Hwfsxx//09Pw9qP4wx/9Fu/s+qP6cketHvfswF+Axx/9Fsfg0LuMwx/8+qP1HwvowyP9Bl/Q5WusyIeI+qfwxyP8xx//k4fpCnfVDofY+p/wxyP9Gv/pBm/YyJOI4T+k/iPI8b+0yI+ExFt8+p/yVi+0+p/w/p/89aO2vr+9GuflFtvk+gPD29P1FsfizrPD29P4xx/9AjPE0LOPz8/2jmexHwfs0MOTz8/3o5PtAhPFkXeevr/Lp5vlAqP89o////v8xx/8+qP1EqPdEq/dErvhFsfhFtPlDpfZFtvlDofZGuflCnvVBl/RCm/VGu/o9eO89dO48cO7V0fY+fPA8bO07ZOw7aOwwEt9GvfpBk/NAkPM/hPE+gPA6X+tAjPI/iPI0MOQvB940LOMzKOJHv/o1M+Q5V+o2P+Y6W+s2O+UzJeKmne41N+Wmn+84S+g3R+c3Q+cyIuExFd8yHuEwDt5HwfvW0/g4T+kxG+A5U+kxGOD19P2/uvMuBN2AjfDW1vmps/Th3/qnpvF/g+7r6vyZkOxbSONHNOKXlu99eetbTuSYofJeXultYufX2vqorvNxhe+Lget8budJPuRGLuC1vfbAvvWMhet8culKR+Zhe+6Ni+1gcuxvbepLTOdLSeZQ1icZAAAAnXRSTlMAu0R3Ee7MIogzZt0QVZmqDr/1mpAf5UIHgICAgE5AQP706t/fjoGAgH9wQDMvIBfv68/Ar6ufgICAgHFgX09APDAuJx8QA/7779PLv7iZgGRgX1JA+e/v7+rd2NHPysq1r6+uop+Ph4CAdnFwbmBgYFlD/O7fz8vAv7+/t6eXcHBmWVI9MCDv7+/s393Z18+/ppaPj4B5cGtmUDgZmjt/2QAACfhJREFUeNrk1r9LG2Ecx/EvTag23HAODhfNdZAgXAhcr0jiYIbgEgiFSEigkCUQcAjtpKBgt9KWDh06dApU+8OqbUUtbdV26ZB/wL17Ibi4dKwhdzyf58xz107V7722vP2S4cMjhP6jcbNgGG3TpL9hmm3DKJjjFEULrdKJp2EEb5B93jjxlJoLGkWKZpR+yFZM9awN322pFaX31a59vmhl+AJZZ8htzaCI0Jrvh6oV6KIKHCAnGv+LmvNOpUJ+LeXtoyzxpzlv1fxrLQbcPo7A22q+DpIlVAi8dYi7yqtATwlo9eDjReJNq28EwwHSGyGY/4Kw1kPUYdj1MHeItamXYebEsKG3t4iz4huJnU5VrdtymyGP7w9TVjWVtuWWIsasTbSsU9+cFG1y6ZsSaxCXpZgmxma2gK27NbeFim6tSjXnTbiEdZUYW90BOa/qNuaqW+/tIJ2G5SVibBsVxYPD7G2YwzhGnvltRIx9QSLnMee9JzQG8qrvYOwrgrEw5//pOxj7hkSexjxNgTJ4+4wY+45gLMwhY63h7RoxdohgLMzBY2UO0Qti7AiJnMScJDU9+eQIzRNjewjGwqwa62G5XN6TlYmzDwjGwqwaKwM3rgxx9hGJPIF5QjWWdwCXrO0iGAuzcqxdnwfE2z6CsTCrxrq5L+O+FX1CIs9inlWNhUf9M+4OEIyFWTnWgew+MXeMRJ7EPEnCSOKaGOv4969T+fCKi11PxEmt2/fTFYuNDm4Td3u93mnXhRuMdjqdmDdW9+z801lXGLytOIEb8RGSnH++tP5Ua16vUgNRHD5pW1z3rthfxC4KFsTyYO+KYkERbFhQFBWxgoKC3QdRUVGxjf4LvvhqQcVesRfsHSsWbOD5TSbJbMy4Kwrq93BnZzLJ3vPtmTPJ3ZsSwssQ41rFuAQOAxGRksMOXt48rNBleXwgHcg6fI97Lw9rrFRnRzi2iOHQv0paMHkCohiSXAH6cIGYPF59vqLQZFXicctW1H3EvXs3A57evHJl0X8tK4PoyCzrEtCHbWJkgJcCIlluTg+65ShRxAueO/M/luV6Mn6zrFOAe7fQehAbyjoV0EFTr+FUEjFZPHeRkkUSzOItAfC1PduH/lEctbCAyjFgheGcBpDFzVNuK0WyTgeEsvJCJ+PFZWFyb/9NbUmUR1l+WUF/jdpdplVvNqRn6cRK/0zWGQBZ3PTlD58iWWcCAllZD4rslMoRLMmcbRe4eXpXgsm14suQJBX8MhvtlWYqD0NYNehPUrl61V2SsXNKJFaGozTLOgIg68iRZ5isyToS0EFzZaHIywS01QrHFvLuiD45Lith+ZtoVU2FtaAb/TG61dwVUr3Pz7ZCzyXK5RzXIOsogKyjR+8gCzVZRwOaRid5PMFFRnFTSPlukVrP9MkOHEl+VVa3BlFYU6hcqiyfvnQHGWkO/yHVyEDKzwFHOkuWdQJA1omv16KqIkv33RMKJWvVWiE61mLG8cFtLi6eDyrZuxMBShZJDLJ+Kyywc/b0zkEB6tOk/m6m/wrTGkReaQxJzqsC9HCL9eIYdsNDALIORYmlFtLjQwrIAt+uPZL9O7fvPPsiq3vBJWZ430+HQpQsSxK+sR1lLBlpFQtrqCmTBvWDnvG9pKvxu336LadEpuwqpkFlwy1WSI4MsvYByPrIibWBdFl39immkpr7cV8AzAIPu+cmjISTE2uWTZUsK1NCVvVYWDVrJ7vqr/S07sG9JrsD6vdKnI1sLWIGJaDfBmVNstYfYLh3EeV9NCksTKh3QFGLfA4EPL4oPwAPP1M2NTqgYZCFQevnsiojrDJWTLtQT8M+VBtrUDGIEhi2K84CSsCO7d+Iz/HJhb9024MMZB1Esmwmn9WCuX1Q0Z18FvrdJ9cFGOem2SkUPz6owWZd0nCNskqHNZAS6Lk7ojPV0XoNKYFmu+I0oCQyjmPnPZQW863D4mMMZB07dluI4asIbBWSN8ckI0jRHr3HrAqcbNQ9zKHbj3iqoqVtFZMzyCpRXEBNSmC6pmciLd2tUWptK8hEBVaKa5bV/SwDWWfPPsbSm1yr6+KF74Xk0VlJW1LMOvu+3j0hufgcB2Z1XaYeD69df/RGTm7EQmKUK6varjhzKYFBmp351Fnr1S9PVtWfPUd7WTLLokbnz59H9Nxc5KDPg3rIFiGun5fMIh8HZyk3F0OuhYO36z0/f35yebJ+I6wmmp421LOol8CMXXHWUTKVAldp2yRryeXLl7m3h5v73L66zNzjPoQ9RGeEvkUCPlrMHtXiGi0p6/jg7dBmTLJKhzWGEtCrVBOiNlFvNiXQYhcoef+mwnPyjuVBk9y6fFLRL917xNWrCPTq1atPUIq4fY72lewwgykgJ5jrHz6IGFef+3XsydWrcsm6dnRDCqSsTElZzXfFqU4J1G4Y2unXk6hHuB2Op0TGxq/ajRLIIjiFkqVDik7nzkHWOUa11xH4uWu82h6eO9dIdz/vPo88ORmDT3l4v6+4zm1LtQ2nsnFZFrpmWWBMPKzmlESdflFiMStaq2JfhRKZU84WW2wnY5RFbfdC0l7Gbx+g/uzdexKptXdvd/2v570b7TXy8OHevUsI2NJOsAzTUpYrTLLM9w4TKJnZKpkak6Ryk/mtG06sU+bG0aAGJWKFaZVx0mZZvQdA0oMLF46jvXABiXX/wgU4Ew86URHd++5J5PoF0J5CWVAElDYb1TMrj7hUblityECvxv1b92/Xgsqj9gT9os3JWLJSBSefJWCqWbAFSawIHL/wGrvd2wu+tNEUY5xIZE/kSj1Ia7IYPJ/m3IrsL4RVszn9KaZVDddgDTKQzlKEaTcEiJYdwdKDt/egbD/z4JpcvsVYBlk8fzBpslz5wGAxkOWmYK2CL+fSz+jTLAqrFf05WjUbO5f1V5tD5ZDNl5K1X7p6tf+6TKz9YA2GKsVkQWUMefqArkVzClqBJ9tDxxGMly8V1piqCKsb/WFqV65NZeDmK3IiV0KWNZijfr1/PyIX99kUok8pWzFZLSeP3K8BzfP02uYJpiKUla6QfaJK8kCGSlG5Cv0FICrDEYNSsog6tR95475cUzduDBjcUlZq3ZZ+JuaGaBcG2aLn93xKhIrcgn+9f5C0Y+UEMMlyi2SBLZg5fFnX4pv2ipgsW7K9Y8dJkyZt7NjRjslCIuVCWW4K3by259C/iCsiUiIBJy4r80MmyfO8bKkCr8ty5caX8oedSrhpcNzgGBd5x8nSP4gy5BUqpakcWX6EFT98l5an0rJi3yjhWkZc+gdxEIX6HEvLUras2DbqceTly1J68Z6OZ3BVoH+RdEWUE571I04wTwSVxM2lXIrZwkisZsWILcOC6rmOb/a/+V+HMncCRqlxKU7xiGAoBio4aVTY2v2d42QsnYKTpj/Hd0PpnYjGLzHtAAAAAElFTkSuQmCC\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","module.exports = \"data:image/png;base64,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\"","/* eslint-disable jsx-a11y/anchor-is-valid, no-script-url, jsx-a11y/heading-has-content, eqeqeq, default-case */\nimport React, { Component } from \"react\"\nimport { debounce, groupBy, isEmpty } from \"lodash\"\nimport { http } from \"src/utils\"\nimport { Toast, Carousel } from \"antd-mobile\"\nimport { Link } from \"react-router-dom\"\nimport { logout } from \"src/store/userAction\"\nimport { connect } from \"react-redux\"\nimport \"./index.scss\"\nimport { Popup } from \"src/common/index\"\nimport classnames from \"classnames\"\nimport tweenFunctions from \"tween-functions\"\nimport storage from \"store2\"\nimport {\n  REDO,\n  addData,\n} from \"src/components/activity/2020-717/question/store/reducer\"\n\nclass Anniversary2020 extends Component {\n  nav = null\n  store = storage.namespace(\"anniversary2020\")\n  stages = {\n    1: \"基础\",\n    2: \"进阶\",\n    3: \"高阶\",\n    4: \"拓展\",\n  }\n  stageParams = [\"one\", \"two\", \"three\", \"four\"]\n  records = null\n  answerRule = `\n  1.邀请好友加入队伍,好友答对题你和好友均可增加抽奖机会\n  2.每增加3个队员答对题,你可以增加N次抽奖机会,N=1 ,2, 3 (有3个队员答对题,你可+1次抽奖机会;6个队员答对题,你再+2次抽奖机会,超过6个队员答对题时,每+3人答对题都可+3次抽奖机会)\n  3.被邀请好友答对题TA可+1次抽奖机会\n  4.每人只能当1次队员哦\n  `\n  drawTimer = null\n  countDownTimer = null\n  hasMore = true\n\n  state = {\n    //静态数据\n    navs: [\n      {\n        text: \"一分拼团\",\n        id: \"#group\",\n      },\n      {\n        text: \"抽华为P40Pro+\",\n        id: \"#lottery\",\n      },\n      {\n        text: \"组队答题\",\n        id: \"#group-answer\",\n      },\n      {\n        text: \"免费试听\",\n        id: \"#audition\",\n      },\n      {\n        text: \"冰点秒杀\",\n        id: \"#stage-course\",\n      },\n    ],\n    titleImages: [\n      require(\"../images/title_1.png\"),\n      require(\"../images/title_2.png\"),\n      require(\"../images/title_3.png\"),\n      require(\"../images/title_4.png\"),\n      require(\"../images/title_5.png\"),\n    ],\n    rankIcons: [\n      require(\"../images/rank1.png\"),\n      require(\"../images/rank2.png\"),\n      require(\"../images/rank3.png\"),\n    ],\n    navActive: 0,\n    sectionsPosition: [],\n    //课程\n    auditions: [],\n    auditionShowAll: false,\n    group: [],\n    groupShowAll: false,\n    stageCourses: [],\n    activityData: {},\n    team: {},\n    rankList: [],\n    isShowAllRankList: false,\n    qrcode: undefined,\n    countDown: \"\",\n    //弹框\n    userAddress: {\n      name: \"\",\n      phone: \"\",\n      address: \"\",\n    },\n    isShowUserAddress: false,\n    isShowPrizesRecords: false,\n    isWinPrize: false, //抽中奖品弹框\n    isReLogin: false,\n    isShowTeamMember: false,\n    isShowFollow: false,\n    //抽奖\n    prizeData: {},\n    drawOrder: [0, 1, 2, 5, 8, 7, 6, 3],\n    drawItemIds: [],\n    drawingItemId: undefined,\n    isDrawing: false,\n    drawResult: {},\n    prizeRecords: [],\n    prizeRecordsPagination: 0,\n    bulletScreenList: [],\n    prizeType: \"\",\n    needMobile: false, // 是否需要绑定手机号\n    istime: true,\n    isshowLive: true,\n  }\n\n  componentDidMount() {\n    let now = new Date().getTime()\n    let future = new Date(\"2020-7-17 20:30:00\").getTime()\n    this.setState({\n      istime: future > now ? true : false,\n    })\n\n    this.getActivityStage()\n    this.getTeam()\n    this.getUserAddress()\n    this.getPrizeData()\n    this.getAuditionCourses()\n    this.getGroupCourses()\n    this.getBulletScreenData()\n    this.getRankList()\n    this.getStageCourses(\"zero\")\n    this.props.addData({ type: REDO })\n    if (this.store.session.get(\"toInvitation\") && !this.props.user.hasError) {\n      this.getFollowStaus()\n      this.store.session.remove(\"toInvitation\")\n    }\n  }\n\n  componentDidUpdate(prevProps, prevState) {\n    if (prevState.navActive !== this.state.navActive) {\n      this.showActiveNav()\n    }\n  }\n\n  componentWillUnmount() {\n    document.removeEventListener(\"scroll\", this.setNavActive)\n    document.body.style.overflow = \"auto\"\n    clearInterval(this.drawTimer)\n    clearTimeout(this.countDownTimer)\n  }\n\n  getActivityStage = () => {\n    http.get(`${API.home}/activity/anniversary/activityStage`).then((res) => {\n      const { code, msg, data } = res.data\n      if (code === 200) {\n        this.setupCountDown(data.count_down)\n        this.setState(\n          {\n            activityData: data,\n          },\n          this.bindNavAction()\n        )\n      } else {\n        Toast.info(msg)\n      }\n    })\n  }\n\n  getAuditionCourses = () => {\n    http.get(`${API.home}/activity/anniversary/big_course`).then((res) => {\n      const { code, msg, data } = res.data\n      if (code === 200) {\n        this.setState(\n          {\n            auditions: data,\n          },\n          this.bindNavAction\n        )\n      } else {\n        Toast.info(msg)\n      }\n      return 1\n    })\n  }\n\n  getGroupCourses = () => {\n    http.get(`${API.home}/activity/anniversary/point_course`).then((res) => {\n      const { code, msg, data } = res.data\n      if (code === 200) {\n        this.setState({\n          group: data,\n        })\n      } else {\n        Toast.info(msg)\n      }\n    })\n  }\n\n  getStageCourses = (key) => {\n    http\n      .get(`${API.home}/activity/anniversary/four_stage/${key}`)\n      .then((res) => {\n        const { code, msg, data } = res.data\n\n        if (code === 200) {\n          this.setState((state) => {\n            if (key === \"zero\") {\n              return {\n                stageCourses: groupBy(data, (item) => {\n                  return item.stage\n                }),\n              }\n            } else {\n              const index =\n                this.stageParams.findIndex((item) => item === key) + 1\n              state.stageCourses[index] = data\n              return {\n                stageCourses: state.stageCourses,\n              }\n            }\n          }, this.bindNavAction)\n        } else {\n          Toast.info(msg)\n        }\n      })\n  }\n\n  getPrizeData = () => {\n    http.get(`${API.home}/activity/anniversary/prize_data`).then((res) => {\n      const { code, msg, data } = res.data\n      data.prizes.splice(4, 0, {})\n      if (code === 200) {\n        this.setState({\n          prizeData: data,\n          drawItemIds: this.state.drawOrder.map((order) => ({\n            itemId: data.prizes[order].id,\n          })),\n        })\n      } else {\n        Toast.info(msg)\n      }\n    })\n  }\n\n  getRankList = () => {\n    http.get(`${API.home}/activity/anniversary/team_ranks`).then((res) => {\n      const { code, msg, data } = res.data\n      if (code === 200) {\n        this.setState({\n          rankList: data,\n        })\n      } else {\n        Toast.info(msg)\n      }\n    })\n  }\n\n  getTeam = () => {\n    http.get(`${API.home}/activity/anniversary/teamInfo`).then((res) => {\n      const { code, msg, data } = res.data\n      if (code === 200) {\n        this.setState(\n          {\n            team: data,\n          },\n          this.bindNavAction\n        )\n      } else {\n        Toast.info(msg)\n      }\n    })\n  }\n\n  getPrizeRecords = (() => {\n    let isFetching = false\n    return () => {\n      if (isFetching || !this.hasMore) {\n        return\n      }\n      isFetching = true\n      http\n        .get(\n          `${API.home}/activity/anniversary/user_prizes/${this.state.prizeRecordsPagination}`\n        )\n        .then((res) => {\n          const { code, msg, data } = res.data\n          if (code === 200) {\n            if (isEmpty(data)) {\n              this.hasMore = false\n            }\n            const _records = Array.isArray(data) ? data : []\n            this.setState(\n              (state) => {\n                return {\n                  prizeRecords: state.prizeRecords.concat(_records),\n                  prizeRecordsPagination: state.prizeRecordsPagination + 1,\n                }\n              },\n              () => {\n                setTimeout(() => {\n                  isFetching = false\n                }, 100)\n              }\n            )\n          } else {\n            Toast.info(msg)\n          }\n        })\n    }\n  })()\n\n  handleRecordsScroll = debounce((e) => {\n    let scrollTop = e.target.scrollTop,\n      scrollHeight = e.target.scrollHeight,\n      height = e.target.clientHeight\n    if (scrollTop > scrollHeight - height - 120) {\n      this.getPrizeRecords()\n    }\n  }, 16)\n\n  handleChange = (e) => {\n    let name = e.target.name,\n      value = e.target.value\n    this.setState((state) => {\n      return {\n        userAddress: { ...state.userAddress, ...{ [name]: value } },\n      }\n    })\n  }\n\n  submitUserAddress = () => {\n    http\n      .post(`${API.home}/sys/update_address`, this.state.userAddress)\n      .then((res) => {\n        const { code, msg } = res.data\n        if (code === 200) {\n          Toast.info(\"提交成功\")\n          this.setState({\n            isShowUserAddress: false,\n          })\n        } else {\n          Toast.info(msg)\n        }\n      })\n  }\n\n  getUserAddress = () => {\n    http.get(`${API.home}/sys/user_address_info`).then((res) => {\n      const { code, data } = res.data\n      if (code === 200) {\n        this.setState({\n          userAddress: data,\n        })\n      }\n    })\n  }\n\n  bindNavAction = () => {\n    document.removeEventListener(\"scroll\", this.setNavActive)\n    this.setNavActive()\n    this.setState(\n      {\n        sectionsPosition: this.state.navs.map((item) => {\n          const el = document.querySelector(item.id)\n          return {\n            top: el.offsetTop - 50,\n            height: el.offsetHeight,\n          }\n        }),\n      },\n      () => {\n        const { hash } = this.props.location\n        if (hash) {\n          const index = this.state.navs.findIndex((item) => item.id === hash)\n          window.scrollTo(0, this.state.sectionsPosition[index].top)\n        }\n        document.removeEventListener(\"scroll\", this.setNavActive)\n        document.addEventListener(\"scroll\", this.setNavActive)\n      }\n    )\n  }\n\n  getFollowStaus = () => {\n    http.get(`${API.home}/sys/user/isFollowWeChat`).then((res) => {\n      const { code, data } = res.data\n      if (code === 200) {\n        if (!data.is_follow) {\n          this.getQRCode()\n        }\n        this.setState({\n          isShowFollow: !data.is_follow,\n        })\n      }\n    })\n  }\n\n  getQRCode = () => {\n    http\n      .get(\n        `${API[\"base-api\"]}/wx/user_temporary_qrcode/${this.props.user.data.uid}`\n      )\n      .then((res) => {\n        const { errno, data } = res.data\n        if (errno === 0) {\n          this.setState({\n            qrcode: data.qr_image,\n          })\n        }\n      })\n  }\n\n  setNavActive = debounce(() => {\n    const { navActive, sectionsPosition } = this.state\n    const pageY = window.pageYOffset\n    for (let i = navActive; i < sectionsPosition.length; i++) {\n      const section = sectionsPosition[i]\n      const nextSection = sectionsPosition[i + 1]\n      const prevSection = i > 0 && sectionsPosition[i - 1]\n\n      if (pageY > section.top + section.height && nextSection) {\n        if (\n          pageY < nextSection.top ||\n          pageY < nextSection.top + nextSection.height\n        ) {\n          this.setState({\n            navActive: i + 1,\n          })\n          break\n        }\n      } else {\n        if (\n          pageY < section.top + section.height &&\n          prevSection &&\n          pageY < prevSection.top + prevSection.height\n        ) {\n          this.setState({\n            navActive: i - 1 ? i - 1 : 0,\n          })\n          break\n        }\n      }\n    }\n  }, 1000 / 60)\n\n  showRule = (content) => {\n    this.popupInstance = Popup({\n      className: \"rule-popup\",\n      title: \"活动规则\",\n      content,\n    })\n  }\n\n  showActiveNav = () => {\n    const listItems = this.nav.querySelectorAll(\"li\")\n    const activeItem = listItems[this.state.navActive]\n    const box = activeItem.getBoundingClientRect()\n    let offsetWidth = this.nav.offsetWidth,\n      scrollLeft = this.nav.scrollLeft\n    if (box.left < 0) {\n      this.nav.scrollLeft = box.left\n    } else if (box.right > offsetWidth + scrollLeft) {\n      this.nav.scrollLeft = box.right\n    }\n  }\n\n  draw = debounce((i) => {\n    if (this.state.activityData.stage === 1 || this.isGotoLogin()) {\n      return\n    }\n    const { activityData, prizeData, isDrawing } = this.state\n    if (\n      i !== 4 ||\n      isDrawing ||\n      prizeData.odd_times === 0 ||\n      activityData.stage === 4\n    ) {\n      return\n    }\n    this.startDraw()\n    this.requestDraw()\n  }, 100)\n\n  requestDraw = () => {\n    http\n      .get(`${API.home}/activity/anniversary/draw_lottery`)\n      .then((res) => {\n        const { code, msg, data } = res.data\n        if (code === 200) {\n          this.setState((state, props) => {\n            let oddTimes = state.prizeData.odd_times\n            return {\n              prizeData: {\n                ...state.prizeData,\n                ...{ odd_times: oddTimes - 1 < 0 ? 0 : oddTimes - 1 },\n              },\n            }\n          })\n          setTimeout(() => {\n            this.setState({\n              drawResult: data,\n              prizeType: data.prize_type,\n              needMobile: data.need_mobile,\n            })\n          }, 3000)\n        } else {\n          Toast.info(msg)\n        }\n      })\n      .catch((e) => {\n        Toast.fail(\"操作频繁,请稍后再试\")\n      })\n  }\n\n  startDraw = () => {\n    let index = 0\n    this.setState({\n      isDrawing: true,\n    })\n    this.drawTimer = setInterval(() => {\n      const { drawItemIds, drawResult } = this.state\n      if (\n        drawResult.id &&\n        drawItemIds[index % drawItemIds.length].itemId === drawResult.id\n      ) {\n        clearInterval(this.drawTimer)\n        this.setState({\n          isWinPrize: true,\n          isDrawing: false,\n        })\n      }\n      this.setState({\n        drawingItemId: drawItemIds[index++ % drawItemIds.length].itemId,\n      })\n    }, 100)\n  }\n\n  sign = () => {\n    if (this.isGotoLogin()) {\n      return\n    }\n    http.get(`${API.home}/activity/anniversary/sign`).then((res) => {\n      const { code, msg } = res.data\n      if (code === 200) {\n        Toast.info(\"签到成功 抽奖次数+1\")\n        this.setState((state, props) => {\n          return {\n            prizeData: {\n              ...state.prizeData,\n              ...{ odd_times: state.prizeData.odd_times + 1 },\n            },\n            activityData: { ...state.activityData, ...{ is_sign: true } },\n          }\n        })\n      } else {\n        Toast.info(msg)\n      }\n    })\n  }\n\n  isGotoLogin = () => {\n    const { user, history } = this.props\n    if (user.hasError) {\n      history.push(\"/passport\")\n      return true\n    }\n    return false\n  }\n\n  getBulletScreenData = () => {\n    http.get(`${API.home}/activity/anniversary/barrages`).then((res) => {\n      const { code, msg, data } = res.data\n      if (code === 200) {\n        this.setState((state, props) => {\n          return {\n            bulletScreenList: state.bulletScreenList.concat(\n              Array.isArray(data) ? data : []\n            ),\n          }\n        })\n      } else {\n        Toast.info(msg)\n      }\n    })\n  }\n\n  handleBulletScreenChange = (from, to) => {\n    if (to >= this.state.bulletScreenList.length - 5) {\n      this.getBulletScreenData()\n    }\n  }\n\n  setupCountDown = (totalSeconds) => {\n    totalSeconds -= 60\n    const d = Math.floor(totalSeconds / 60 / 60 / 24)\n    const h = Math.floor(totalSeconds / 60 / 60) % 24\n    const m = Math.floor(totalSeconds / 60) % 60\n    this.setState(\n      {\n        countDown: `${d}天${h}时${m}分`,\n      },\n      () => {\n        if (totalSeconds > 0) {\n          this.countDownTimer = setTimeout(() => {\n            this.setupCountDown(totalSeconds)\n          }, 1000 * 60)\n        } else {\n          this.getActivityStage()\n        }\n      }\n    )\n  }\n\n  reLogin = () => {\n    this.props.logout()\n    this.props.history.push(\"/passport\")\n  }\n\n  render() {\n    const {\n      navs,\n      navActive,\n      titleImages,\n      rankIcons,\n      auditions,\n      auditionShowAll,\n      group,\n      groupShowAll,\n      stageCourses,\n      activityData,\n      team,\n      userAddress,\n      isShowUserAddress,\n      prizeData,\n      isShowPrizesRecords,\n      prizeRecords,\n      isWinPrize,\n      isReLogin,\n      drawingItemId,\n      drawResult,\n      prizeType,\n      needMobile,\n      isShowTeamMember,\n      bulletScreenList,\n      rankList,\n      isShowAllRankList,\n      isShowFollow,\n      qrcode,\n      countDown,\n      isshowLive,\n      istime,\n    } = this.state\n    const { history, user } = this.props\n\n    const _auditions =\n      auditionShowAll && auditions.length ? auditions : auditions.slice(0, 4)\n    const _group = groupShowAll && group.length ? group : group.slice(0, 4)\n    const _rankList = Array.isArray(rankList)\n      ? isShowAllRankList\n        ? rankList\n        : rankList.slice(0, 10)\n      : []\n\n    return (\n      <div className={\"anniversary-2020\"}>\n        <Link className=\"to-index-tip\" to={\"/\"}>\n          前往七月在线官网 学更多精品课程 &gt;&gt;{\" \"}\n        </Link>\n\n        <div className=\"banner\">\n          <img\n            src=\"https://julyedu-cdn.oss-cn-beijing.aliyuncs.com/active20_717/m/banner.png\"\n            alt=\"\"\n          />\n          {countDown && (\n            <div className=\"count-down\">\n              {countDown}{\" \"}\n              {activityData.stage === 1\n                ? \"后开始\"\n                : activityData.stage === 2\n                ? \"后结束\"\n                : null}\n            </div>\n          )}\n        </div>\n        {!activityData.is_sign && (\n          <div className=\"sign\" onClick={this.sign}></div>\n        )}\n\n        {istime && isshowLive && (\n          <div className=\"live-icon-box\">\n            <div className=\"live-icon\">\n              <img\n                className=\"live-icon-img\"\n                src=\"https://julyedu-cdn.oss-cn-beijing.aliyuncs.com/active20_717/m/live-icon-m.png\"\n                alt=\"\"\n              />\n              <img\n                className=\"live-icon-close\"\n                src=\"https://julyedu-cdn.oss-cn-beijing.aliyuncs.com/active20_717/close_icon.png\"\n                alt=\"\"\n                onClick={() => {\n                  this.setState({\n                    isshowLive: false,\n                  })\n                }}\n              />\n            </div>\n          </div>\n        )}\n\n        <nav ref={(el) => (this.nav = el)}>\n          <ul>\n            {navs.map((item, index) => {\n              return (\n                <li key={index} className={index === navActive ? \"active\" : \"\"}>\n                  <a\n                    href=\"javascript:void(0);\"\n                    onClick={() => {\n                      this.setState({\n                        navActive: index,\n                      })\n                      window.scrollTo(0, this.state.sectionsPosition[index].top)\n                    }}\n                  >\n                    {item.text}\n                  </a>\n                </li>\n              )\n            })}\n          </ul>\n        </nav>\n        <section id={\"group\"} className=\"group block\">\n          <h2\n            className=\"block-title\"\n            style={{\n              background: `url(${titleImages[0]}) no-repeat`,\n              backgroundSize: \"contain\",\n            }}\n          ></h2>\n          <ul className={\"course-container\"}>\n            {!!_group.length &&\n              _group.map((item, index) => {\n                let Button\n                if (item.is_assemble === 2) {\n                  Button = (\n                    <button className={\"study-btn\"}>\n                      <Link to={`/play?id=${item.v_course_id}`}>开始学习</Link>\n                    </button>\n                  )\n                } else if (activityData.stage === 1) {\n                  Button = (\n                    <button className={\"unavailable\"}>7月15日开始</button>\n                  )\n                } else if (activityData.stage === 2) {\n                  switch (item.is_assemble) {\n                    case 0:\n                      Button = (\n                        <button className=\"main\">\n                          <Link to={`/detail?id=${item.course_id}`}>\n                            立即拼团\n                          </Link>\n                        </button>\n                      )\n                      break\n                    case 1:\n                      Button = (\n                        <button className=\"main\">\n                          <Link to={`/detail?id=${item.course_id}`}>\n                            继续拼团\n                          </Link>\n                        </button>\n                      )\n                      break\n                    default:\n                      Button = (\n                        <button className={\"study-btn\"}>\n                          <Link to={`/play?id=${item.v_course_id}`}>\n                            开始学习\n                          </Link>\n                        </button>\n                      )\n                  }\n                } else {\n                  Button = <button className={\"unavailable\"}>活动已结束</button>\n                }\n                return (\n                  <li\n                    className={\"course\"}\n                    key={index}\n                    onClick={(e) => {\n                      let nodeName = e.target.nodeName.toLowerCase()\n                      if (nodeName !== \"a\") {\n                        history.push(`/detail?id=${item.course_id}`)\n                      }\n                    }}\n                  >\n                    <div className=\"cover\">\n                      <img src={item.image_name} alt=\"\" />\n                    </div>\n                    <div className=\"info\">\n                      <div className=\"title\">{item.course_title}</div>\n                      <div className=\"des\">{item.simpledescription}</div>\n                      {item.is_assemble === 2 ? (\n                        <div className=\"purchased\">已购买</div>\n                      ) : (\n                        <div className=\"prices\">\n                          <span>¥{item.price1}</span>\n                          <span>¥{item.price0}</span>\n                        </div>\n                      )}\n                      <div className=\"btn\">{Button}</div>\n                    </div>\n                  </li>\n                )\n              })}\n            {_group.length === 4 && (\n              <li>\n                <button\n                  className={\"show-more\"}\n                  onClick={() => {\n                    this.setState({\n                      groupShowAll: true,\n                    })\n                  }}\n                >\n                  查看更多\n                </button>\n              </li>\n            )}\n          </ul>\n        </section>\n        <section id={\"lottery\"} className={\"lottery block\"}>\n          <div\n            className=\"block-title\"\n            style={{\n              background: `url(${titleImages[1]}) no-repeat`,\n              backgroundSize: \"contain\",\n            }}\n          ></div>\n          <div className=\"rule\">\n            <a\n              href=\"javascript:void(0);\"\n              onClick={this.showRule.bind(this, prizeData.rule)}\n            >\n              规则\n            </a>\n          </div>\n          <div className=\"prize-container\">\n            {!!bulletScreenList.length && activityData.stage === 2 && (\n              <Carousel\n                dragging={false}\n                swiping={false}\n                dots={false}\n                speed={200}\n                autoplayInterval={3000}\n                easing={tweenFunctions.easeOutCubic}\n                vertical\n                autoplay\n                infinite\n                beforeChange={this.handleBulletScreenChange}\n              >\n                {bulletScreenList.map((item, index) => {\n                  return (\n                    <div key={index} className={\"bullet\"}>\n                      {item}\n                    </div>\n                  )\n                })}\n              </Carousel>\n            )}\n            <div className=\"prize-wrapper\">\n              {/*<ul className={'h--bar bar'}>\n                {\n                  Array(11).fill('a').map((item, index) => {\n                    return <li key={index}></li>\n                  })\n                }\n              </ul>\n              <ul className={'h--bar bar'}>\n                {\n                  Array(11).fill('a').map((item, index) => {\n                    return <li key={index}></li>\n                  })\n                }\n              </ul>\n              <ul className={'bar v--bar'}>\n                {\n                  Array(8).fill('a').map((item, index) => {\n                    return <li key={index}></li>\n                  })\n                }\n              </ul>\n              <ul className={'bar v--bar'}>\n                {\n                  Array(8).fill('a').map((item, index) => {\n                    return <li key={index}></li>\n                  })\n                }\n              </ul>*/}\n              <div className={\"h-bar\"}></div>\n              <div className={\"h-bar\"}></div>\n              <div className={\"v-bar\"}></div>\n              <div className={\"v-bar\"}></div>\n              <ul className=\"prizes\">\n                {prizeData.prizes &&\n                  !!prizeData.prizes.length &&\n                  prizeData.prizes.map((item, index) => {\n                    return (\n                      <li\n                        key={index}\n                        className={classnames([\n                          {\n                            active: drawingItemId === item.id,\n                            available:\n                              index === 4 &&\n                              (user.hasError || prizeData.odd_times),\n                            unavailable:\n                              index === 4 &&\n                              !user.hasError &&\n                              (activityData.stage === 1 ||\n                                !prizeData.odd_times),\n                          },\n                        ])}\n                        onClick={this.draw.bind(this, index)}\n                      >\n                        {index !== 4 ? (\n                          <div className={\"prize\"}>\n                            <img src={item.img_name} alt=\"\" />\n                          </div>\n                        ) : activityData.stage === 1 ? (\n                          <div className={\"draw pre\"}>\n                            <div>7月15日开始</div>\n                            {prizeData.odd_times !== undefined && (\n                              <div>剩余{prizeData.odd_times || 0}次机会</div>\n                            )}\n                          </div>\n                        ) : user.hasError ? (\n                          <div\n                            className=\"draw\"\n                            style={{\n                              height: \"100%\",\n                              display: \"flex\",\n                              alignItems: \"center\",\n                              justifyContent: \"center\",\n                            }}\n                          >\n                            <div>抽奖</div>\n                          </div>\n                        ) : (\n                          <div className={\"draw\"}>\n                            <div>抽奖</div>\n                            <div>剩余{prizeData.odd_times || 0}次机会</div>\n                          </div>\n                        )}\n                      </li>\n                    )\n                  })}\n              </ul>\n            </div>\n          </div>\n          <div className=\"content\">\n            <div className={\"operations\"}>\n              <a\n                href=\"javascript:void(0);\"\n                onClick={() => {\n                  if (user.hasError) {\n                    return history.push(\"/passport\")\n                  }\n                  this.setState({\n                    isShowUserAddress: true,\n                  })\n                }}\n              >\n                收货信息\n              </a>\n              <a\n                href=\"javascript:void(0);\"\n                onClick={() => {\n                  if (this.isGotoLogin()) {\n                    return\n                  }\n                  document.body.style.overflow = \"hidden\"\n                  this.getPrizeRecords()\n                  this.setState(\n                    {\n                      isShowPrizesRecords: true,\n                    },\n                    () => {\n                      this.records &&\n                        this.records.addEventListener(\n                          \"scroll\",\n                          this.handleRecordsScroll\n                        )\n                    }\n                  )\n                }}\n              >\n                中奖纪录\n              </a>\n            </div>\n            <div className=\"lottery-info\">\n              <div className={\"title\"}>\n                <i></i>如何获取更多抽奖机会?\n              </div>\n              <ul className={\"rules\"}>\n                {prizeData.more_rule &&\n                  prizeData.more_rule.split(\"\\n\").map((item, index) => {\n                    return (\n                      <li key={index}>\n                        <span className={\"index\"}>{index + 1}</span>\n                        {item}\n                      </li>\n                    )\n                  })}\n              </ul>\n            </div>\n          </div>\n        </section>\n        <section id={\"group-answer\"} className={\"group-answer block\"}>\n          <div\n            className=\"block-title\"\n            style={{\n              background: `url(${titleImages[2]})`,\n              backgroundSize: \"contain\",\n            }}\n          ></div>\n          <div style={{ textAlign: \"center\", marginBottom: \"10px\" }}>\n            <a\n              className=\"rule-btn\"\n              href=\"javascript:void(0);\"\n              onClick={this.showRule.bind(this, this.answerRule)}\n            >\n              规则\n            </a>\n          </div>\n          <div className=\"content\">\n            <div className=\"team\">\n              <div className=\"func\">\n                <i className={\"my-team-icon\"}></i>\n                <div className=\"summary\">\n                  <span>\n                    共<span className={\"count\"}>{team.people_num}</span>人\n                  </span>\n                  <span>\n                    排名<span className={\"count\"}>{team.ranking}</span>\n                  </span>\n                </div>\n                <ul>\n                  {!!team.team_info &&\n                    team.team_info.length &&\n                    team.team_info.slice(0, 5).map((item, index) => {\n                      return (\n                        <li key={index}>\n                          {item.head_img ? (\n                            <img src={item.head_img} alt=\"\" />\n                          ) : (\n                            <img src={item.avatar_file} alt=\"\" />\n                          )}\n                        </li>\n                      )\n                    })}\n                  {activityData.stage !== 1 &&\n                    !!team.team_info &&\n                    team.team_info.length > 1 && (\n                      <li\n                        className={\"more\"}\n                        onClick={() => {\n                          this.getTeam()\n                          this.setState({\n                            isShowTeamMember: true,\n                          })\n                        }}\n                      >\n                        更多\n                      </li>\n                    )}\n                </ul>\n                <div className=\"invite\">\n                  {activityData.stage === 1 ? (\n                    <button className={\"invite unavailable\"}>\n                      7月15日开始\n                    </button>\n                  ) : (\n                    <Link\n                      to={\"/anniversary_2020/invitation\"}\n                      onClick={(e) => {\n                        if (user.hasError) {\n                          e.preventDefault()\n                          history.push(\"/passport\")\n                        } else {\n                          this.store.session.set(\"toInvitation\", \"1\")\n                        }\n                      }}\n                    >\n                      <button className={\"invite\"}>邀请好友加入队伍</button>\n                    </Link>\n                  )}\n                </div>\n              </div>\n              <div className=\"des\">\n                <div className=\"title\">组队答题抽奖</div>\n                <ol>\n                  <li>\n                    1. 邀请好友加入队伍,好友答对题你和好友均可增加抽奖机会;\n                  </li>\n                  <li>\n                    2.\n                    有3个队员答对题,你可+1次抽奖机会;6个队员答对题,你再+2次抽奖机会,超过6个队员答对题时,每+3人答对题都可+3次抽奖机会。\n                  </li>\n                </ol>\n              </div>\n            </div>\n            <div className=\"exercise\">\n              <div className=\"func\">\n                {activityData.stage === 1 ? (\n                  <div className=\"btn no-chance\">\n                    <button>7月15日开始</button>\n                  </div>\n                ) : (\n                  <>\n                    {activityData.practice_num ? (\n                      <Link\n                        to={\"/anniversary_2020/question/1\"}\n                        onClick={(e) => {\n                          if (user.hasError) {\n                            e.preventDefault()\n                            history.push(\"/passport\")\n                          }\n                        }}\n                      >\n                        <div className=\"btn\">\n                          <button>\n                            <i></i>开始练习\n                          </button>\n                        </div>\n                      </Link>\n                    ) : (\n                      <div className=\"btn no-chance\">\n                        <button>\n                          <i></i>开始练习\n                        </button>\n                      </div>\n                    )}\n                    {!user.hasError && (\n                      <div className=\"chance\">\n                        今日剩余<span>{activityData.practice_num}</span>次\n                      </div>\n                    )}\n                  </>\n                )}\n              </div>\n              <div className=\"des\">\n                <div className=\"title\">练一练</div>\n                <ol>\n                  <li>1. 每日可练习 2 次 。每次 1 道题;</li>\n                  <li>2. 每答对1题可+1次抽奖机会。</li>\n                </ol>\n              </div>\n            </div>\n            <div className=\"rank-list\">\n              <div className=\"title\">测试排行榜</div>\n              <div className=\"description\">\n                仅展示前50名,队员越多、用时越短排名越靠前\n              </div>\n              <div className=\"prize-display\">\n                <ul>\n                  <li className={\"top-three\"}>\n                    <img\n                      src=\"https://julyedu-cdn.oss-cn-beijing.aliyuncs.com/active20_717/m/top1.png\"\n                      alt=\"\"\n                    />\n                  </li>\n                  <li className={\"top-three\"}>\n                    <img\n                      src=\"https://julyedu-cdn.oss-cn-beijing.aliyuncs.com/active20_717/m/top2.png\"\n                      alt=\"\"\n                    />\n                  </li>\n                  <li className={\"top-three\"}>\n                    <img\n                      src=\"https://julyedu-cdn.oss-cn-beijing.aliyuncs.com/active20_717/m/top3.png\"\n                      alt=\"\"\n                    />\n                  </li>\n                  <li>\n                    <img\n                      src=\"https://julyedu-cdn.oss-cn-beijing.aliyuncs.com/active20_717/m/top4%EF%BD%9E7.png\"\n                      alt=\"\"\n                    />\n                  </li>\n                  <li>\n                    <img\n                      src=\"https://julyedu-cdn.oss-cn-beijing.aliyuncs.com/active20_717/m/top8%EF%BD%9E15.png\"\n                      alt=\"\"\n                    />\n                  </li>\n                  <li>\n                    <img\n                      src=\"https://julyedu-cdn.oss-cn-beijing.aliyuncs.com/active20_717/m/top16%EF%BD%9E30.png\"\n                      alt=\"\"\n                    />\n                  </li>\n                  <li>\n                    <img\n                      src=\"https://julyedu-cdn.oss-cn-beijing.aliyuncs.com/active20_717/m/top31%EF%BD%9E50.png\"\n                      alt=\"\"\n                    />\n                  </li>\n                </ul>\n              </div>\n              {!!_rankList.length && prizeData.stage !== 1 && (\n                <table>\n                  <thead>\n                    <tr>\n                      <th>名次</th>\n                      <th>队长</th>\n                      <th>队员</th>\n                      <th>奖品</th>\n                    </tr>\n                  </thead>\n                  <tbody>\n                    {_rankList.map((item, index) => {\n                      return (\n                        <tr key={index}>\n                          <td>\n                            {index < 3 ? (\n                              <img src={rankIcons[index]} alt=\"\" />\n                            ) : (\n                              index + 1\n                            )}\n                          </td>\n                          <td>\n                            <img\n                              src={item.avatar}\n                              alt=\"\"\n                              className={\"avatar\"}\n                            />\n                            {item.username}\n                          </td>\n                          <td>{item.member_num}</td>\n                          {item.prize_url ? (\n                            <td>\n                              <a href={item.prize_url}>{item.prize}</a>\n                            </td>\n                          ) : (\n                            <td>{item.prize}</td>\n                          )}\n                        </tr>\n                      )\n                    })}\n                  </tbody>\n                </table>\n              )}\n              {!!_rankList.length &&\n                _rankList.length === 10 &&\n                !isShowAllRankList && (\n                  <div className=\"btn\">\n                    <button\n                      onClick={() => {\n                        this.setState({\n                          isShowAllRankList: true,\n                        })\n                      }}\n                    >\n                      查看更多\n                    </button>\n                  </div>\n                )}\n            </div>\n          </div>\n        </section>\n        <section id={\"audition\"} className={\"audition\"}>\n          <div\n            className=\"block-title\"\n            style={{\n              background: `url(${titleImages[3]}) no-repeat`,\n              backgroundSize: \"contain\",\n            }}\n          ></div>\n          <h4>\n            <span>报名集训营/就业班有豪礼相送,不止AirPods,送完即止</span>\n          </h4>\n          <ul className=\"course-container\">\n            {!!_auditions.length &&\n              _auditions.map((item, index) => {\n                return (\n                  <li\n                    className={\"course\"}\n                    key={index}\n                    onClick={(e) => {\n                      if (e.target.nodeName.toLowerCase() !== \"a\") {\n                        history.push(`/detail?id=${item.course_id}`)\n                      }\n                    }}\n                  >\n                    <div className=\"cover\">\n                      <img src={item.image_name} alt=\"\" />\n                    </div>\n                    <div className=\"info\">\n                      <div className=\"title\">{item.course_title}</div>\n                      <div className=\"des\">{item.simpledescription}</div>\n                      {item.is_buy ? (\n                        <div className=\"purchased\">已购买</div>\n                      ) : (\n                        <div className=\"prices\">\n                          <span>¥{item.price1}</span>\n                          <span>¥{item.price0}</span>\n                        </div>\n                      )}\n                      <div className=\"btn\">\n                        {item.is_buy ? (\n                          <button className={\"study-btn\"}>\n                            <Link to={`/detail?id=${item.course_id}`}>\n                              开始学习\n                            </Link>\n                          </button>\n                        ) : (\n                          <button className=\"audition-btn\">\n                            <a href=\"https://q.url.cn/AB8aue?_type=wpa&qidian=true\">\n                              {item.words}\n                            </a>\n                          </button>\n                        )}\n                        {!!item.is_dist && (\n                          <button>\n                            <Link to={`/detail?id=${item.course_id}`}>\n                              赚{item.dist_amount}元\n                            </Link>\n                          </button>\n                        )}\n                      </div>\n                    </div>\n                  </li>\n                )\n              })}\n            {_auditions.length === 4 && auditions.length > 4 && (\n              <li>\n                <button\n                  className={\"show-more\"}\n                  onClick={() => {\n                    this.setState({\n                      auditionShowAll: true,\n                    })\n                  }}\n                >\n                  查看更多\n                </button>\n              </li>\n            )}\n          </ul>\n        </section>\n        <section id={\"stage-course\"} className={\"stage-course\"}>\n          <div\n            className=\"block-title\"\n            style={{\n              background: `url(${titleImages[4]}) no-repeat`,\n              backgroundSize: \"contain\",\n            }}\n          ></div>\n          <div className=\"course-container\">\n            {!isEmpty(stageCourses) &&\n              Object.keys(stageCourses).map((key) => {\n                return (\n                  <ul key={key}>\n                    <li>\n                      <span className={\"stage\"}>{this.stages[key]}</span>\n                    </li>\n                    {!!stageCourses[key].length &&\n                      stageCourses[key].map((item, index) => {\n                        let Button = null\n                        if (item.type === 1) {\n                          Button = (\n                            <button className={\"study-btn\"}>\n                              <Link to={`/play?id=${item.v_course_id}`}>\n                                开始学习\n                              </Link>\n                            </button>\n                          )\n                        } else {\n                          if (activityData.stage === 1) {\n                            Button = (\n                              <button className={\"unavailable\"}>\n                                7月15日开始\n                              </button>\n                            )\n                          } else if (activityData.stage === 2) {\n                            switch (item.type) {\n                              case 0:\n                                Button = (\n                                  <button>\n                                    <Link to={`/detail?id=${item.course_id}`}>\n                                      立即抢购\n                                    </Link>\n                                  </button>\n                                )\n                                break\n                              case 1:\n                                Button = (\n                                  <button className={\"study-btn\"}>\n                                    <Link to={`/play?id=${item.v_course_id}`}>\n                                      开始学习\n                                    </Link>\n                                  </button>\n                                )\n                                break\n                              case 2:\n                                Button = (\n                                  <button>\n                                    <Link to={`/detail?id=${item.course_id}`}>\n                                      立即拼团\n                                    </Link>\n                                  </button>\n                                )\n                                break\n                              case 3:\n                                Button = (\n                                  <button>\n                                    <Link to={`/detail?id=${item.course_id}`}>\n                                      继续参团\n                                    </Link>\n                                  </button>\n                                )\n                                break\n                              case 4:\n                                Button = (\n                                  <button>\n                                    <Link to={`/detail?id=${item.course_id}`}>\n                                      继续砍价\n                                    </Link>\n                                  </button>\n                                )\n                                break\n                              case 5:\n                                Button = (\n                                  <button>\n                                    <Link to={`/detail?id=${item.course_id}`}>\n                                      我要砍价\n                                    </Link>\n                                  </button>\n                                )\n                                break\n                            }\n                          } else {\n                            Button = (\n                              <button className={\"unavailable\"}>\n                                活动已结束\n                              </button>\n                            )\n                          }\n                        }\n                        return (\n                          <li\n                            className={\"course\"}\n                            key={index}\n                            onClick={(e) => {\n                              const nodeName = e.target.nodeName.toLowerCase()\n                              if (nodeName !== \"a\") {\n                                history.push(`/detail?id=${item.course_id}`)\n                              }\n                            }}\n                          >\n                            <div className=\"cover\">\n                              {!!item.save && <span>立省{item.save}元</span>}\n                              <img src={item.image_name} alt=\"\" />\n                            </div>\n                            <div className=\"info\">\n                              <div className=\"title\">{item.course_title}</div>\n                              <div className=\"des\">\n                                {item.simpledescription}\n                              </div>\n                              {item.type === 1 ? (\n                                <div className=\"purchased\">已购买</div>\n                              ) : (\n                                <div className=\"prices\">\n                                  <span>¥{item.price1}</span>\n                                  <span>¥{item.price0}</span>\n                                </div>\n                              )}\n                              <div className=\"btn\">\n                                {Button}\n                                {!!item.is_dist && (\n                                  <button>赚{item.dist_amount}元</button>\n                                )}\n                              </div>\n                            </div>\n                          </li>\n                        )\n                      })}\n                    {stageCourses[key].length === 4 && (\n                      <li className={\"show-more-box\"}>\n                        <button\n                          className={\"show-more\"}\n                          onClick={() =>\n                            this.getStageCourses(this.stageParams[key - 1])\n                          }\n                        >\n                          查看更多\n                        </button>\n                      </li>\n                    )}\n                  </ul>\n                )\n              })}\n          </div>\n        </section>\n        {isShowUserAddress && (\n          <div className=\"modal-cover\">\n            <div className=\"modal recipient\">\n              <h4 className=\"title\">收货信息</h4>\n              <div className=\"tip\">\n                获奖用户(以最终榜单为准)请及时填写收货信息\n              </div>\n              <input\n                type=\"text\"\n                name={\"name\"}\n                value={userAddress.name}\n                placeholder={\"收件人\"}\n                onChange={this.handleChange}\n              />\n              <input\n                type=\"text\"\n                name={\"phone\"}\n                value={userAddress.phone}\n                placeholder={\"联系方式\"}\n                onChange={this.handleChange}\n              />\n              <input\n                type=\"text\"\n                name={\"address\"}\n                value={userAddress.address}\n                placeholder={\"收货地址\"}\n                onChange={this.handleChange}\n              />\n              <button\n                disabled={\n                  !userAddress.name ||\n                  !userAddress.phone ||\n                  !userAddress.address\n                }\n                onClick={this.submitUserAddress}\n              >\n                提交\n              </button>\n              <i\n                className={\"iconfont iconiconfront-2 close\"}\n                onClick={() => {\n                  this.setState({\n                    isShowUserAddress: false,\n                  })\n                }}\n              ></i>\n            </div>\n          </div>\n        )}\n        {isShowPrizesRecords && (\n          <div className={\"modal-cover prize-records\"}>\n            <div className=\"modal\">\n              <h4 className=\"title\">中奖纪录</h4>\n              <div className=\"content\" ref={(el) => (this.records = el)}>\n                <div className=\"rule\">\n                  1. 现金红包自动发放到账户中,可前往 我的- 赚奖学金 中提现;\n                  <br />\n                  2. 代金券碎片自动发放到账户中,可前往优惠券 - 碎片合成\n                  中兑换代金券;\n                  <br />\n                  3. 实物奖品请尽快填写收货信息,活动结束后统一邮寄。\n                </div>\n                <ul className={\"records\"}>\n                  {!!prizeRecords.length &&\n                    prizeRecords.map((item, index) => {\n                      return (\n                        <li key={index}>\n                          <div className=\"record\">\n                            <div className=\"name\">\n                              {item.prize_name}{\" \"}\n                              {(item.prize_type === 1 ||\n                                item.prize_type === 2) &&\n                                `${item.amount}元`}\n                            </div>\n                            <div className=\"time\">{item.create_time}</div>\n                          </div>\n                          {item.prize_type === 4 && (\n                            <div className=\"contact\">{item.prize_info}</div>\n                          )}\n                        </li>\n                      )\n                    })}\n                </ul>\n                <i\n                  className={\"iconfont iconiconfront-2 close\"}\n                  onClick={() => {\n                    this.records.removeEventListener(\n                      \"scroll\",\n                      this.handleRecordsScroll\n                    )\n                    document.body.style.overflow = \"auto\"\n                    this.hasMore = true\n                    this.setState({\n                      isShowPrizesRecords: false,\n                      prizeRecordsPagination: 0,\n                      prizeRecords: [],\n                    })\n                  }}\n                ></i>\n              </div>\n            </div>\n          </div>\n        )}\n        {isWinPrize && (\n          <WinPrize\n            name={drawResult.prize_name}\n            info={drawResult.prize_info}\n            close={() => {\n              this.setState({\n                isWinPrize: false,\n                drawResult: {},\n                isReLogin:\n                  (prizeType == 1 || prizeType == 3) && needMobile\n                    ? true\n                    : false,\n              })\n            }}\n          ></WinPrize>\n        )}\n        {isReLogin && (\n          <ReLogin\n            reLogin={this.reLogin}\n            close={() => {\n              this.setState({\n                isReLogin: false,\n              })\n            }}\n          ></ReLogin>\n        )}\n\n        {isShowTeamMember && (\n          <TeamMember\n            members={team.team_info}\n            uid={user.data.uid}\n            close={() => {\n              this.setState({\n                isShowTeamMember: false,\n              })\n            }}\n          ></TeamMember>\n        )}\n        {isShowFollow && (!istime || !isshowLive) && (\n          <div className={\"modal-cover follow\"}>\n            <div className=\"modal\">\n              <div className=\"title\">进度提醒</div>\n              <div className=\"tip\">关注服务号,好友加入队伍后第一时间提醒</div>\n              <div className=\"qrcode\">\n                <img src={qrcode} alt=\"\" />\n                <div>微信扫描,关注“七月在线”</div>\n              </div>\n              <i\n                className={\"iconfont iconiconfront-2 close\"}\n                onClick={() => {\n                  this.setState({\n                    isShowFollow: false,\n                  })\n                }}\n              ></i>\n            </div>\n          </div>\n        )}\n      </div>\n    )\n  }\n}\n\nfunction WinPrize({ name, close, info }) {\n  return (\n    <div className={\"modal-cover\"}>\n      <div className=\"modal win-prize\">\n        <div className=\"title\">恭喜您</div>\n        <div className=\"des\">\n          抽中了 <span className={\"name\"}>{name}</span>\n        </div>\n        <div className=\"contact\">{info}</div>\n        <button onClick={close}>我知道了</button>\n      </div>\n    </div>\n  )\n}\n\nfunction ReLogin({ close, reLogin }) {\n  return (\n    <div className={\"modal-cover\"}>\n      <div className=\"modal re-login\">\n        <div className=\"title\">温馨提示</div>\n        <div className=\"des\">\n          为了您的账号安全,请尽快绑定手机号,以免影响奖品发放。\n        </div>\n        <div className=\"contact\">\n          点击下方\"重新登录”,\n          <br />\n          选择\"微信授权登录\",按提示绑定即可。\n        </div>\n        <button onClick={reLogin}>重新登录</button>\n\n        <i className={\"iconfont iconiconfront-2 close\"} onClick={close}></i>\n      </div>\n    </div>\n  )\n}\n\nfunction TeamMember({ members, close, uid }) {\n  const _members =\n    Array.isArray(members) && members.filter((item) => item.uid != uid)\n  const statusText = [\"回答错误\", \"回答正确\", \"未作答\"]\n  const statusClass = [\"wrong\", \"correct\", \"unanswered\"]\n\n  return (\n    <div className={\"modal-cover members\"}>\n      <div className=\"modal\">\n        <div className=\"title\">我的队伍</div>\n        <ul>\n          {_members &&\n            !!_members.length &&\n            _members.map((item, index) => {\n              return (\n                <li key={item.uid}>\n                  <div>\n                    <img className={\"avatar\"} src={item.head_img} alt=\"\" />\n                    <span className={\"username\"}>{item.user_name}</span>\n                  </div>\n                  <span className={`status ${statusClass[item.is_correct]}`}>\n                    {statusText[item.is_correct]}\n                  </span>\n                </li>\n              )\n            })}\n        </ul>\n        <i className={\"iconfont iconiconfront-2 close\"} onClick={close}></i>\n      </div>\n    </div>\n  )\n}\n\nexport default connect(\n  ({ user }) => ({ user }),\n  (dispatch) => ({\n    addData: (data) => dispatch(addData(data)),\n    logout: (data) => dispatch(logout(data)),\n  })\n)(Anniversary2020)\n","/* eslint-disable eqeqeq */\nimport React, { Component } from \"react\"\nimport \"./index.scss\"\nimport { Toast } from \"antd-mobile\"\nimport classnames from \"classnames\"\nimport { http } from \"src/utils\"\nimport { WithFullSize } from \"src/HOCs\"\nimport { Link } from \"react-router-dom\"\nimport { compose } from \"redux\"\nimport { connect } from \"react-redux\"\nimport {\n  addData,\n  ADD_RECOMMENDS,\n  ADD_QUESTION,\n  ADD_RESULT,\n  REDO,\n} from \"./store/reducer\"\nimport storage from \"store2\"\n\nclass Question extends Component {\n  store = storage.namespace(\"anniversary2020\")\n  state = {\n    question: {},\n    result: {},\n    recommends: [],\n    selectedOptionId: 0,\n    isShowConfirm: false,\n    isResultConfirm: false,\n    isTeamHead: this.props.match.params.isPractice == 1,\n    isActivityEnd: false,\n    is_correct: \"\",\n    is_sign: \"\",\n  }\n\n  componentDidMount() {\n    if (this.props.cache.recommends.length === 0) {\n      this.getQuestion()\n    }\n  }\n\n  getQuestion = () => {\n    const isPractice = this.props.match.params.isPractice\n    http\n      .get(\n        `${API.home}/activity/anniversary/get_question/${\n          isPractice == 1 ? 1 : 2\n        }`\n      )\n      .then((res) => {\n        const { code, msg, data } = res.data\n        if (code === 200) {\n          this.props.addData({\n            type: ADD_QUESTION,\n            payload: data,\n          })\n        } else if (code === 25004) {\n          const { history } = this.props\n          let teamCode = this.store.session.get(\"team_code\")\n          if (teamCode) {\n            history.push(`/anniversary_2020/invitation?team_code=${teamCode}`)\n          } else {\n            history.push(`/anniversary_2020`)\n          }\n        } else {\n          Toast.info(msg)\n        }\n      })\n  }\n\n  select = (id) => {\n    this.setState({\n      selectedOptionId: id,\n    })\n  }\n\n  submit = () => {\n    const isPractice = this.props.match.params.isPractice\n    const { selectedOptionId } = this.state\n    http\n      .post(`${API.home}/activity/anniversary/submit`, {\n        type: isPractice == 1 ? 1 : 2,\n        option_id: selectedOptionId,\n        id: this.props.cache.question.id,\n      })\n      .then((res) => {\n        const { code, msg, data } = res.data\n        if (code === 200) {\n          this.getRecommends(data.type_id)\n          this.afterSubmitted(data)\n          this.setState({\n            isShowConfirm: false,\n            isResultConfirm: isPractice != 1,\n            selectedOptionId: undefined,\n            is_correct: data.is_correct,\n            is_sign: data.is_sign,\n          })\n          this.props.addData({\n            payload: data,\n            type: ADD_RESULT,\n          })\n        } else {\n          Toast.info(msg)\n        }\n      })\n  }\n\n  resultFun = (e) => {\n    const { history } = this.props\n    let notNeedSign = e.target.getAttribute(\"data-sign\") == 0\n    console.log(notNeedSign)\n    if (this.state.is_sign || notNeedSign) {\n      history.push(\"/anniversary_2020#lottery\")\n    } else {\n      http.get(`${API.home}/activity/anniversary/sign`).then((res) => {\n        const { code, msg } = res.data\n        if (code === 200) {\n          Toast.info(\"签到成功 抽奖次数+1\")\n          history.push(\"/anniversary_2020\")\n        } else {\n          Toast.info(msg)\n        }\n      })\n    }\n  }\n\n  afterSubmitted = (result) => {\n    const { isTeamHead } = this.state\n\n    if (isTeamHead) {\n      if (result.stage === 4) {\n        this.setState({\n          isActivityEnd: true,\n        })\n      } else {\n        result.is_correct\n          ? Toast.info(\"回答正确 抽奖次数+1\")\n          : Toast.info(\"很遗憾 回答错误\")\n      }\n    }\n  }\n\n  getRecommends = (typeId) => {\n    http\n      .post(`${API.home}/sys/get_commend_course`, {\n        type_id: typeId,\n      })\n      .then((res) => {\n        const { code, data } = res.data\n        if (code === 200) {\n          this.props.addData({\n            payload: data,\n            type: ADD_RECOMMENDS,\n          })\n        }\n      })\n  }\n\n  getOptionLabel = (index) => {\n    return index >= 0 ? String.fromCharCode(65 + index) : \"空\"\n  }\n\n  redo = () => {\n    this.props.addData({\n      type: REDO,\n    })\n    this.getQuestion()\n  }\n\n  render() {\n    const {\n      selectedOptionId,\n      isShowConfirm,\n      isActivityEnd,\n      isResultConfirm,\n      isTeamHead,\n    } = this.state\n\n    const {\n      cache: { question, result, recommends },\n    } = this.props\n\n    return (\n      <div id={\"question\"}>\n        <div className=\"banner\"></div>\n        <div className={\"question\"}>\n          {question.ques && (\n            <div\n              className=\"topic\"\n              dangerouslySetInnerHTML={{ __html: question.ques }}\n            ></div>\n          )}\n          <ul>\n            {question.options &&\n              !!question.options.length &&\n              question.options.map((item, index) => {\n                return (\n                  <li\n                    key={item.id}\n                    className={classnames({\n                      selected: selectedOptionId === item.id,\n                      correct: result.right_id === item.id,\n                      wrong:\n                        !result.is_correct &&\n                        parseInt(result.option_id) === item.id,\n                    })}\n                    onClick={this.select.bind(this, item.id)}\n                  >\n                    <span>{this.getOptionLabel(index)}</span>\n                    {item.des}\n                  </li>\n                )\n              })}\n          </ul>\n        </div>\n        {result.analysis && (\n          <div className=\"answered\">\n            <div className=\"analysis\">\n              <div className=\"estimate\">\n                您选择的是\n                {this.getOptionLabel(\n                  question.options.findIndex(\n                    (item) => item.id == result.option_id\n                  )\n                )}\n                ,正确答案是\n                {this.getOptionLabel(\n                  question.options.findIndex(\n                    (item) => item.id === result.right_id\n                  )\n                )}{\" \"}\n                回答{result.right_id == result.option_id ? \"正确\" : \"错误 \"}\n              </div>\n              <div className=\"analysis-content\">\n                <div className=\"title\">\n                  <i className={\"icon\"}></i>\n                  解析\n                </div>\n                <div\n                  className=\"content\"\n                  dangerouslySetInnerHTML={{ __html: result.analysis }}\n                ></div>\n              </div>\n            </div>\n            {!!recommends.length && (\n              <Recommends recommends={recommends}></Recommends>\n            )}\n          </div>\n        )}\n        <div className=\"submit-bar\">\n          <BottomButton\n            result={result}\n            resultFun={this.resultFun}\n            isTeamHead={isTeamHead}\n            isActivityEnd={isActivityEnd}\n            submit={() => {\n              this.setState({\n                isShowConfirm: true,\n              })\n            }}\n            redo={this.redo}\n          />\n        </div>\n        {isShowConfirm && (\n          <Confirm\n            submit={this.submit}\n            cancel={() => {\n              this.setState({\n                isShowConfirm: false,\n              })\n            }}\n          ></Confirm>\n        )}\n        {isResultConfirm && (\n          <ResultConfirm\n            resultFun={this.resultFun}\n            is_correct={this.state.is_correct}\n            is_sign={this.state.is_sign}\n            close={() => {\n              this.setState({ isResultConfirm: false })\n            }}\n          ></ResultConfirm>\n        )}\n      </div>\n    )\n  }\n}\n\nfunction ResultConfirm({ resultFun, is_correct, is_sign, close }) {\n  return (\n    <div className=\"modal-cover\">\n      <div className=\"modal\">\n        {is_correct === 1 && <div className=\"title\">回答正确,抽奖次数+1</div>}\n        {is_correct === 0 && (\n          <div className=\"rusult-title\">\n            很遗憾,回答错误 <p>快去抽奖提提神吧</p>\n          </div>\n        )}\n\n        <div className={\"btm-button\"}>\n          <button onClick={resultFun} data-sign={(is_correct || is_sign) && 0}>\n            {is_correct ? \"去抽奖\" : is_sign ? \"去抽奖\" : \"签到领取抽奖机会\"}\n          </button>\n        </div>\n        <i className=\"close iconiconfront-2 iconfont\" onClick={close}></i>\n      </div>\n    </div>\n  )\n}\n\nfunction Confirm({ submit, cancel }) {\n  return (\n    <div className=\"modal-cover\">\n      <div className=\"modal\">\n        <div className=\"title\">提交确认</div>\n        <div className=\"btns\">\n          <button onClick={cancel}>取消</button>\n          <button onClick={submit}>确认提交</button>\n        </div>\n      </div>\n    </div>\n  )\n}\n\nfunction BottomButton({\n  resultFun,\n  result,\n  submit,\n  isTeamHead,\n  redo,\n  isActivityEnd,\n}) {\n  if (result.stage === 4 || isActivityEnd) {\n    return <button className={\"activity-end\"}>活动已结束</button>\n  }\n  if (isTeamHead) {\n    if (result.analysis) {\n      return result.practiceNum === 0 ? (\n        <button className={\"lottery-related\"}>\n          <Link to={`/anniversary_2020/invitation`}>组队答题抽奖</Link>\n        </button>\n      ) : (\n        <button className={\"submit\"} onClick={redo}>\n          继续答题\n        </button>\n      )\n    } else {\n      return (\n        <button className={\"submit\"} onClick={submit}>\n          提交\n        </button>\n      )\n    }\n  } else {\n    if (result.analysis) {\n      return !result.is_sign ? (\n        <button className={\"lottery-related\"} onClick={resultFun}>\n          签到领取抽奖机会\n        </button>\n      ) : (\n        <button className={\"submit\"} onClick={resultFun} data-sign={\"0\"}>\n          去抽奖\n        </button>\n      )\n    }\n    return (\n      <button className={\"submit\"} onClick={submit}>\n        提交\n      </button>\n    )\n  }\n}\n\nfunction Recommends({ recommends }) {\n  return (\n    <div className=\"recommends\">\n      <div className=\"title\">相关课程</div>\n      <ul>\n        {recommends &&\n          !!recommends.length &&\n          recommends.map((item) => {\n            return (\n              <li key={item.course_id}>\n                <Link to={`/detail?id=${item.course_id}`}>\n                  <img src={item.image_name} alt=\"\" />\n                </Link>\n              </li>\n            )\n          })}\n      </ul>\n    </div>\n  )\n}\n\nexport default compose(\n  WithFullSize,\n  connect(\n    ({ anniversary2020Question, user }) => ({\n      cache: anniversary2020Question,\n      user,\n    }),\n    (dispatch) => ({\n      addData: (data) => dispatch(addData(data)),\n    })\n  )\n)(Question)\n","import React, { Component } from \"react\"\nimport \"./index.scss\"\nimport { connect } from \"react-redux\"\nimport { compose } from \"redux\"\nimport { HeaderBar } from \"src/common/index\"\nimport { getParam, http, browser, wxShare } from \"src/utils\"\nimport { Toast } from \"antd-mobile\"\nimport { CopyToClipboard } from \"react-copy-to-clipboard\"\nimport { Link } from \"react-router-dom\"\nimport storage from \"store2\"\nimport { CaptchaAli } from \"src/common/index\"\nimport { showCaptchaModal } from \"src/store/no-trace-validation/reducer\"\n\nclass Invitation extends Component {\n  store = storage.namespace(\"anniversary2020\")\n  state = {\n    prizes: [],\n    invitationInfo: {},\n    inviteUid: getParam(\"invite_uid\"),\n    isShowGuide: false,\n    teamInfo: {},\n    isTeamHead: true,\n    isMaster: !getParam(\"team_code\"),\n    isActivityEnd: false,\n    instance: null,\n    isShowCaptcha: false,\n  }\n\n  componentDidMount() {\n    this.getPrizesInfo()\n    if (getParam(\"team_code\")) {\n      this.getTeamInfo()\n      this.store.session.set(\"team_code\", getParam(\"team_code\"))\n    } else {\n      this.getInvitationInfo()\n    }\n  }\n\n  getPrizesInfo = () => {\n    http.get(`${API.home}/activity/anniversary/prizeInfo`).then((res) => {\n      const { code, msg, data } = res.data\n      data.splice(4, 0, {})\n      if (code === 200) {\n        this.setState({\n          prizes: data,\n        })\n      } else {\n        Toast.info(msg)\n      }\n    })\n  }\n\n  getInvitationInfo = () => {\n    http\n      .get(`${API.home}/activity/anniversary/invite`, {\n        params: {\n          invite_uid: this.state.inviteUid || 0,\n        },\n      })\n      .then((res) => {\n        const { code, msg, data } = res.data\n        if (code === 200) {\n          this.setState({\n            invitationInfo: data,\n          })\n        } else {\n          Toast.info(msg)\n        }\n      })\n  }\n\n  getTeamInfo = () => {\n    http\n      .get(`${API.home}/activity/anniversary/assist`, {\n        params: {\n          team_code: getParam(\"team_code\"),\n        },\n      })\n      .then((res) => {\n        const { code, msg, data } = res.data\n        if (code === 200) {\n          this.setState({\n            teamInfo: data,\n            isMaster: data.is_captain || !getParam(\"team_code\"),\n          })\n          if (data.is_captain) {\n            this.getInvitationInfo()\n          }\n        } else {\n          Toast.info(msg)\n        }\n      })\n      .catch((err) => {\n        Toast.fail(\"请求过于频繁,请稍后再试\")\n      })\n  }\n\n  joinTeam = (data) => {\n    const { user, history, noTraceValidation, showCaptchaModal } = this.props\n    if (noTraceValidation.isNeedValidation) {\n      !noTraceValidation.isShowCaptcha && showCaptchaModal()\n      return\n    }\n\n    if (user.isFetching) {\n      return\n    }\n\n    if (user.hasError) {\n      if (browser.isWeixin) {\n        window.location.href =\n          \"https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx23dac6775ac82877&redirect_uri=\" +\n          encodeURIComponent(window.location.href + \"&aa=bb\").toLowerCase() +\n          \"&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect\"\n      } else {\n        history.push(\"/passport\")\n      }\n      return\n    }\n\n    if (this.state.teamInfo.is_check && !this.state.isShowCaptcha) {\n      this.setState({\n        isShowCaptcha: true,\n      })\n      return\n    }\n\n    let _data = { team_code: getParam(\"team_code\") }\n    if (data.token && data.sig) {\n      _data = { ..._data, ...data }\n    }\n    http\n      .post(`${API.home}/activity/anniversary/joinTeam`, _data)\n      .then((res) => {\n        const { code, msg } = res.data\n        if (code === 200) {\n          Toast.info(\"加入成功\", 2, null, false)\n          this.setState((state, props) => {\n            return {\n              teamInfo: {\n                ...state.teamInfo,\n                ...{ status: 2, is_check: false },\n              },\n              isShowCaptcha: false,\n            }\n          })\n        } else if (code === 5002) {\n          this.state.instance && this.state.instance.reset()\n        } else if (code === 25015) {\n          this.setState({\n            isActivityEnd: true,\n          })\n        } else {\n          Toast.info(msg)\n        }\n      })\n  }\n\n  setupWechatShare = () => {\n    wxShare({\n      title: \"答题抽华为P40 Pro+\",\n      desc:\n        \"这道题你会吗?答题抽奖,100%有奖的,能不能拿华为P40 Pro+,看你自己了--七月在线\",\n      link: `${API.m}${window.location.pathname}?team_code=${\n        this.state.invitationInfo.team_code || getParam(\"team_code\")\n      }`,\n      imgUrl:\n        \"https://julyedu-cdn.oss-cn-beijing.aliyuncs.com/active20_717/m/share-icon.png\",\n    })\n    this.setState({\n      isShowGuide: true,\n    })\n  }\n\n  // 答题抽奖\n  drawQuestions = () => {\n    const { history } = this.props\n    history.push(`/anniversary_2020/question/${0}`)\n  }\n\n  render() {\n    const {\n      prizes,\n      invitationInfo,\n      isShowGuide,\n      teamInfo,\n      isMaster,\n      isActivityEnd,\n      isShowCaptcha,\n    } = this.state\n    const { location } = this.props\n\n    return isShowCaptcha ? (\n      <div className={\"captcha-container\"}>\n        <div className={\"tip\"}>亲,系统正忙,滑动一下马上回来</div>\n        <CaptchaAli\n          getInstance={(instance) => {\n            this.setState({\n              instance,\n            })\n          }}\n          onVerify={(data) => this.joinTeam(data)}\n        />\n      </div>\n    ) : (\n      <div id={\"invitation\"}>\n        <HeaderBar\n          title={\"答题抽奖\"}\n          arrow={true}\n          goBack={() => {\n            this.props.history.push(\"/anniversary_2020\")\n          }}\n        />\n        {isMaster ? (\n          <div className=\"banner\"></div>\n        ) : (\n          <div className=\"team-head\">\n            <img src={teamInfo.avatar_file} alt=\"\" />\n            <div className=\"username\">{teamInfo.user_name}</div>\n            <div>加入我的队伍,一起答题抽大奖</div>\n          </div>\n        )}\n\n        <div className=\"prize-container\">\n          <div className={\"h-bar\"}></div>\n          <div className={\"h-bar\"}></div>\n          <div className={\"v-bar\"}></div>\n          <div className={\"v-bar\"}></div>\n          <ul className=\"prizes\">\n            {!!prizes.length &&\n              prizes.map((item, index) => {\n                return (\n                  <li key={index} className={index === 4 ? \"empty\" : \"\"}>\n                    {index === 4 ? (\n                      <div>答题抽奖</div>\n                    ) : (\n                      <div className={\"prize\"}>\n                        <img src={item.img_name} alt=\"\" />\n                      </div>\n                    )}\n                  </li>\n                )\n              })}\n          </ul>\n        </div>\n        {isShowGuide && (\n          <div\n            className=\"guide\"\n            onClick={() => {\n              this.setState({\n                isShowGuide: false,\n              })\n            }}\n          >\n            <i className={\"indicator\"}></i>\n            <div className=\"tip\">点击右上角,分享给好友</div>\n          </div>\n        )}\n        <div className=\"op\">\n          {isMaster ? (\n            <>\n              <div className=\"tip\">\n                再有{invitationInfo.invite_num}位队员答对即可获得\n                {invitationInfo.draw_chance}次抽奖机会\n              </div>\n              {browser.isWeixin ? (\n                <button className={\"btn\"} onClick={this.setupWechatShare}>\n                  立即邀请\n                </button>\n              ) : (\n                <CopyToClipboard\n                  text={`${API.m}${location.pathname}?team_code=${\n                    invitationInfo.team_code || getParam(\"team_code\")\n                  }`}\n                  onCopy={() => {\n                    Toast.info(\"链接已复制,快去粘贴发给好友吧\")\n                  }}\n                >\n                  <button className={\"btn\"}>立即邀请</button>\n                </CopyToClipboard>\n              )}\n            </>\n          ) : (\n            <>\n              {teamInfo.status !== 1 && (\n                <div className={\"tip\"}>\n                  {teamInfo.status === 2\n                    ? \"已加入当前队伍\"\n                    : teamInfo.status === 3\n                    ? \"已加入其他队伍\"\n                    : null}\n                </div>\n              )}\n              <BottomButton\n                isActivityEnd={isActivityEnd}\n                joinTeam={this.joinTeam}\n                status={teamInfo.status}\n                drawQuestions={this.drawQuestions}\n                isAnswered={teamInfo.is_answer}\n              />\n            </>\n          )}\n        </div>\n      </div>\n    )\n  }\n}\n\nfunction BottomButton({\n  status,\n  isActivityEnd,\n  isAnswered,\n  joinTeam,\n  drawQuestions,\n}) {\n  if (isActivityEnd) {\n    return <button className={\"activity-end\"}>活动结束</button>\n  }\n  if (isAnswered) {\n    return (\n      <Link to={`/anniversary_2020#lottery`}>\n        <button className={\"btn\"}>去抽奖</button>\n      </Link>\n    )\n  }\n  return status === 1 ? (\n    <button className={\"btn\"} onClick={joinTeam}>\n      加入队伍\n    </button>\n  ) : (\n    <button className={\"btn\"} onClick={drawQuestions}>\n      答题抽奖\n    </button>\n  )\n}\n\nexport default compose(\n  connect(({ user, noTraceValidation }) => ({ user, noTraceValidation }), {\n    showCaptchaModal,\n  })\n)(Invitation)\n","import React, { Component } from \"react\"\nimport { Switch, Route } from \"react-router-dom\"\nimport Anniversary2020 from \"src/components/activity/2020-717/activity\"\nimport Question from \"src/components/activity/2020-717/question\"\nimport Invitation from \"src/components/activity/2020-717/invitation\"\n\nclass Anniversary2020Entry extends Component {\n  componentDidMount() {\n    document.title =\n      \"7.17 五周年庆,AI好课1分起购,答题、购课100%有奖!华为P40 Pro+,课程免单等你来!--七月在线\"\n  }\n\n  render() {\n    const match = this.props.match\n    return (\n      <Switch>\n        <Route\n          path={`${match.path}/question/:isPractice?`}\n          render={(routeProps) => <Question {...routeProps}></Question>}\n        ></Route>\n        <Route\n          path={`${match.path}/invitation`}\n          render={(routeProps) => <Invitation {...routeProps} />}\n        ></Route>\n        <Route\n          path={\"/anniversary_2020\"}\n          render={(routeProps) => (\n            <Anniversary2020 {...routeProps}></Anniversary2020>\n          )}\n        ></Route>\n      </Switch>\n    )\n  }\n}\n\nexport default Anniversary2020Entry\n"],"sourceRoot":""}