{"version":3,"sources":["components/activity/treasure-box/common/createSuccess/index.js","components/activity/treasure-box/myTreasure/team.js","components/activity/treasure-box/myTreasure/prize.js","components/activity/treasure-box/common/splitSuccess/index.js","components/activity/treasure-box/myTreasure/mask.js","components/activity/treasure-box/myTreasure/index.js","common/addressPopup/index.js","common/bindPhone/index.js","common/confirmPhone/index.js"],"names":["common_createSuccess","props","console","log","_props$data","data","_props$data$team_num","team_num","_props$data$lack_memb","lack_member","_props$data$member","member","handleToInvite","members","Array","fill","react_default","a","createElement","className","map","item","index","_member","key","src","alt","type","onClick","TreasureTeam","_this","Object","classCallCheck","this","possibleConstructorReturn","getPrototypeOf","call","initMemberInfo","params","arguments","length","undefined","_this$props","userInfo","arr","JSON","stringify","len","push","setState","team","assign","currentMember","uid","filter","computedClass","id","is_open","state","classnames","active","computedBg","val","backgroundImage","concat","toCheckPrize","_this$state$team","_this$state$team$memb","nextProps","oldData","newData","_this2","_this$state","_this$state$team2","is_captain","status","treasure_code","_this$state$team2$mem","_this$props2","toSplitTreasure","children","data-skip","style","head_img","data-layout","Fragment","getParam","href","data-direction","prize_name","Component","myTreasure_prize","bind_phone","bind_address","prize_type","handleToBindPhone","handleToBindAddress","toComposeCoupon","toUseCoupon","toCourseList","toFecthMoney","SplitSuccess","continueSplitTreasure","ids","successSplitTreasure","http","post","API","home","then","res","_res$data","code","setTimeout","_this$props2$data","_this$props2$data$mem","prize_img","avatar","prize","Root","document","querySelector","Mask","el","appendChild","removeChild","visible","handleToHide","ReactDOM","createPortal","MyTreasure","connect","_ref","country","user","popupInstance","initPrizeName","fetchCurrentTeamId","prizeName","judgeIsHaveId","owner_uid","isShowBindPhone","from","isPhone","handleToConfirmPhone","bindInfo","handleToHideWindow","confirmInfo","isConfirm","successBindPhone","teams","splitInfo","teamId","showSuccessSplit","prize_data","initNoSplitInfo","isSplit","isAddress","successBindAddress","_this$state2","fetchMyTreasure","get","_res$data2","rule","isArray","isEmpty","captain_uid","fetchActivityStatus","_res$data3","Number","treasure_stage","history","startCountDown","isEnd","treasureTime","treasure_stop_date","seconds","timer","clearInterval","setInterval","window","location","toOrganizeTeam","_this$props$userInfo$","_res$data4","isCreate","createInfo","SendMessageToApp","param","title","nextProp","_this$state3","_this$state3$splitInf","_this$state3$confirmI","_this$state3$confirmI2","_this$state3$confirmI3","browser","isAndroidApp","isIOSApp","common","arrow","myTreasure_team","splitInstance","myTreasure_mask","common_splitSuccess","bindPhone","hideBindPhone","desc","confirmPhone","handleToCancle","addressPopup","skip","tip","dangerouslySetInnerHTML","__html","AddressPopup","_Users_zhanghaozhe_server_mr_julyedu_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_3__","_Users_zhanghaozhe_server_mr_julyedu_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_5__","_Users_zhanghaozhe_server_mr_julyedu_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_6__","fetchUserAddress","addressInfo","msg","name","phone","address","isLoading","handleToSubmit","_Users_zhanghaozhe_server_mr_julyedu_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_objectSpread__WEBPACK_IMPORTED_MODULE_2__","act_type","antd_mobile_lib_toast__WEBPACK_IMPORTED_MODULE_1___default","info","_this$props$skip","react__WEBPACK_IMPORTED_MODULE_8___default","formik__WEBPACK_IMPORTED_MODULE_10__","initialValues","validate","errors","test","validateOnBlur","validateOnChange","onSubmit","values","render","_ref2","color","_ref3","field","placeholder","_ref4","_ref5","data-status","BindPhone","captchaInstance","initCountryInfo","toFetchCountryNum","getCaptchaInstance","instance","onVerify","validationData","handleToSend","tel","isFirst","isTimer","_this$state$country$n","num","antd_mobile_lib_toast__WEBPACK_IMPORTED_MODULE_2___default","reset","_Users_zhanghaozhe_server_mr_julyedu_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_objectSpread__WEBPACK_IMPORTED_MODULE_0__","area_code","phone_num","errno","toBindPhone","_this$state2$accountI","accountInfo","_this$state2$country$","mobile","is_valid","tip_info","_this$props3","_this$props3$skip","formik__WEBPACK_IMPORTED_MODULE_9__","setStatus","setSubmitting","_ref4$values","data-type","_common_Captcha_ali__WEBPACK_IMPORTED_MODULE_11__","getInstance","mb","_ref6","ConfirmPhone","continueBindPhone","_this$props2$bindInfo","_this$props2$skip","data-plat"],"mappings":"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","file":"mrstatic/js/treasure-box-mybox.64c003ad.chunk.js","sourcesContent":["import React from 'react';\nimport './index.scss';\n\nexport default (props) => {\n console.log(props);\n const { \n data: {\n team_num = 1,\n lack_member = 4,\n member = [],\n },\n handleToInvite\n } = props;\n const members = new Array(5).fill({});\n return (\n <div className=\"team-success\">\n <h2 className=\"team-success__title\">创建成功</h2>\n <p className=\"team-success__tip\">\n {<span>{team_num}</span>}号队伍 还差{<span>{lack_member}</span>}名队员即可获得宝箱哦~\n </p>\n <i className=\"team-success__icon\"></i>\n <ul className='team-success__member members'>\n {\n members.map((item, index) => {\n const _member = member[index]\n return (\n <li className=\"member-item\" key={index}>\n {\n _member && _member['is_captain'] && <sup className=\"member-item__captain\">队长</sup>\n }\n <img\n className=\"member-item__avatar\"\n src={\n _member\n ? _member['head_img']\n : \"https://julyedu-cdn.oss-cn-beijing.aliyuncs.com/newyear20/H5/not-joined-placeholder.png\"\n }\n alt=\"\"/>\n </li>\n );\n })\n }\n </ul>\n <button type={'button'} className=\"team-success__button\" onClick={handleToInvite}>邀请好友加入队伍</button>\n </div>\n )\n}","import React, { Component } from 'react';\nimport classnames from 'classnames';\nimport { Link } from 'react-router-dom';\nimport './team.scss';\nimport { getParam } from \"@/utils\"\n\nclass TreasureTeam extends Component {\n constructor(props) {\n super(props);\n this.state = {\n team: {},\n currentMember: {}\n };\n }\n\n componentDidMount() {\n this.initMemberInfo();\n }\n\n componentWillReceiveProps(nextProps) {\n const { data: oldData } = this.props;\n const { data: newData } = nextProps;\n if(newData.is_open != oldData.is_open) {\n this.initMemberInfo(newData);\n }\n }\n\n initMemberInfo = (params = {}) => {\n const { data, userInfo } = this.props;\n const arr = JSON.stringify(params) !== '{}'? params: data;\n let member = arr.member;\n let len = member.length - 5;\n for(; len < 0; len++) {\n member.push({});\n }\n this.setState({\n team: Object.assign({}, arr, {\n member\n }),\n currentMember: userInfo.uid? member.filter(item => item.uid == userInfo.uid)[0] : {}\n });\n }\n\n computedClass = (id) => {\n const { data: { is_open } } = this.props;\n const { currentMember } = this.state;\n return classnames(\n 'team-member__item',\n {\n 'active': id === currentMember.uid && is_open,\n }\n );\n }\n\n computedBg = (val) => {\n return val? {\n backgroundImage: `url(${val})`\n } : {};\n }\n\n // 查看队友的奖品,条件:宝箱已拆\n toCheckPrize = (id) => {\n const { team: { is_open, member = []} } = this.state;\n if(is_open) {\n const data = member.filter(item => item.uid === id);\n this.setState({\n currentMember: data[0]\n });\n }\n }\n\n render() {\n const {\n team: {\n is_captain,\n status,\n team_num,\n lack_member,\n is_open,\n treasure_code,\n member = [],\n },\n currentMember\n } = this.state;\n const {\n toSplitTreasure,\n userInfo,\n children\n } = this.props;\n return (\n <div className=\"team-container\" data-skip=\"team\">\n {\n !is_captain &&\n <i className=\"team-friend\">友</i>\n }\n\n {/* 组队状态 */}\n {\n status === 1\n ? <i className=\"team-status\">组队中..</i>\n : <i className=\"team-decorate\"></i>\n }\n\n {/* 队伍类型 */}\n {\n is_captain\n ? <h2 className=\"team-title\">{team_num}号队伍</h2>\n : <h2 className=\"team-title\">好友队伍</h2>\n }\n\n\n {/* 队员情况 */}\n {\n status === 1\n ? <p className=\"team-desc\">还差{lack_member}名队员即可获得宝箱哦~</p>\n : <p className=\"team-desc\">组队成功</p>\n }\n <div className=\"team-member\">\n {\n member.map((item, index) => (\n <div\n className={this.computedClass(item.uid)}\n onClick={() => this.toCheckPrize(item.uid)}\n key={index}\n style={this.computedBg(item.head_img)}\n >\n {\n item.is_captain &&\n <span className=\"team-member__captain\">队长</span>\n }\n </div>\n ))\n }\n </div>\n <div className=\"team-footer\" data-layout={is_open? 'column': 'row'}>\n {/* 队伍未满 */}\n {\n status === 1 &&\n <>\n {\n getParam('version')\n ? is_captain\n ? <a className=\"team-button\" href={`https://h5.julyedu.com/box/landing?treasure_code=${treasure_code}&origin=1&version=${getParam('version')}`}>继续邀请队友</a>\n : <a className=\"team-button\" href={`https://h5.julyedu.com/box/landing?treasure_code=${treasure_code}&origin=2&version=${getParam('version')}`}>帮好友完成组队</a>\n : is_captain\n ? <a className=\"team-button\" href={`https://h5.julyedu.com/box/landing?treasure_code=${treasure_code}&origin=1`}>继续邀请队友</a>\n : <a className=\"team-button\" href={`https://h5.julyedu.com/box/landing?treasure_code=${treasure_code}&origin=2`}>帮好友完成组队</a>\n }\n </>\n }\n\n {/* 可拆状态 */}\n {\n (status === 2 && !is_open) &&\n <>\n <span className=\"team-icon\" data-direction=\"left\"></span>\n <span className=\"team-button--split\" onClick={toSplitTreasure}></span>\n <span className=\"team-icon\" data-direction=\"right\"></span>\n </>\n }\n\n {/* 已拆状态 */}\n {\n (status === 2 && is_open) &&\n <>\n {\n currentMember.prize_name\n ? <p className=\"team-prize\">{currentMember.prize_name}</p>\n : <p className=\"team-prize\">尚未开宝箱</p>\n }\n {\n currentMember.uid == userInfo.uid\n ? children\n : null\n }\n </>\n }\n </div>\n </div>\n )\n }\n}\n\nexport default TreasureTeam;\n","import React from 'react';\nimport './prize.scss';\n\nexport default (props) => {\n const { \n data: {\n bind_phone, \n bind_address, \n prize_type,\n },\n handleToBindPhone,\n handleToBindAddress,\n toComposeCoupon,\n toUseCoupon,\n toCourseList,\n toFecthMoney,\n } = props;\n return (\n <>\n {/* 第一:是否需要绑定手机号 */}\n {\n bind_phone &&\n <a className=\"team-result\" onClick={handleToBindPhone}>\n <span>绑定手机号</span>\n </a>\n }\n\n {/* 第二:是否需要填写地址 */}\n {\n (!bind_phone && bind_address) &&\n <a className=\"team-result\" onClick={handleToBindAddress}>\n <span>查看/修改收货信息</span>\n </a>\n }\n\n {/* 第三:奖品,实物 */}\n {\n (!bind_phone && !bind_address && prize_type === 1) &&\n <a className=\"team-result\" onClick={handleToBindAddress}>\n <span>查看/修改收货信息</span>\n </a>\n }\n\n {/* 第三:奖品,代金券碎片 */}\n {\n (!bind_phone && !bind_address && prize_type === 6) &&\n <a className=\"team-result\" onClick={toComposeCoupon}>\n 可合成代金券在购课时使用,\n <span>去合成</span>\n </a>\n }\n\n {/* 第三:奖品,指定课程代金券 */}\n {\n (!bind_phone && !bind_address && prize_type === 3) &&\n <a className=\"team-result\" onClick={toUseCoupon}>\n 已发放至您的账户,\n <span>去使用</span>\n </a>\n }\n\n {/* 第三:奖品,通用课程代金券 */}\n {\n (!bind_phone && !bind_address && prize_type === 4) &&\n <a className=\"team-result\" onClick={toCourseList}>\n 已发放至您的账户,\n <span>去使用</span>\n </a>\n }\n\n {/* 第三:奖品,现金红包 */}\n {\n (!bind_phone && !bind_address && prize_type === 7) &&\n <a className=\"team-result\" onClick={toFecthMoney}>\n 已存入您的账户,\n <span>去提现</span>\n </a>\n }\n\n {/* 第三:奖品,线上课程 */}\n {\n (!bind_phone && !bind_address && prize_type === 2) &&\n <a className=\"team-result\">已发放至您的账户</a>\n }\n\n {/* 第三:奖品,任意线上课程兑换券 */}\n {\n (!bind_phone && !bind_address && prize_type === 5) &&\n <a className=\"team-result\">无法领取请添加微信:julyedukefu10\n </a>\n }\n </>\n )\n}","import React, { Component } from 'react';\nimport { http } from '@/utils';\nimport './index.scss';\n\nclass SplitSuccess extends Component {\n\n computedBg = (val) => {\n return val? {\n backgroundImage: `url(${val})`\n } : {};\n }\n\n continueSplitTreasure = () => {\n const { ids, successSplitTreasure, handleToBindPhone, handleToBindAddress } = this.props;\n const params = ids[0];\n http.post(`${API.home}/sys/split_treasure`, params).then(res => {\n const { code, data } = res.data;\n if(code === 200) {\n successSplitTreasure(data);\n if(data.bind_phone) {\n setTimeout(() => {\n handleToBindPhone(data.id);\n }, 500);\n }else if(data.bind_address) {\n setTimeout(() => {\n handleToBindAddress(data.id, data.prize_name);\n }, 500);\n }\n }else if(code === 12000) {\n // 请先绑定手机号再拆宝箱\n handleToBindPhone();\n }else if(code === 12001) {\n // 请先填写收货地址再拆宝箱\n handleToBindAddress();\n }\n });\n }\n\n render() {\n const { \n ids,\n data: {\n member = [],\n prize_img,\n prize_name,\n },\n handleToInvite,\n children,\n } = this.props;\n return (\n <div data-skip=\"split\">\n <h2 className=\"split-success__title\">恭喜你获得</h2>\n <div className=\"split-success__image\">\n <img src={prize_img} alt=\"\"/>\n </div>\n <p className=\"split-success__prize\">{prize_name}</p>\n\n {children}\n\n <div className=\"split-success__member\">\n {\n member.map((item, index) => (\n <div className=\"member-item\" key={index}>\n <span className=\"member-item__avatar\" style={this.computedBg(item.avatar)}>\n {\n item.is_captain && <i className=\"member-item__captain\">队长</i>\n }\n </span>\n {\n item.prize\n ? <span className=\"member-item__prize\">{item.prize}</span>\n : <span className=\"member-item__prize\">尚未开宝箱</span>\n }\n </div>\n ))\n }\n </div>\n {\n ids.length > 0\n ? <button className=\"split-success__jump\" onClick={this.continueSplitTreasure}>继续开宝箱</button>\n : <button className=\"split-success__jump\" onClick={handleToInvite}>继续组队开宝箱</button>\n }\n </div>\n );\n }\n}\n\nexport default SplitSuccess;","import React, { Component } from 'react';\nimport ReactDOM from 'react-dom';\nimport classnames from 'classnames';\nimport './mask.scss';\n\nconst Root = document.querySelector('body');\n\nclass Mask extends Component {\n\n constructor(props) {\n super(props);\n if(!this.el) {\n this.el = document.createElement('div');\n }\n }\n\n componentDidMount() {\n Root.appendChild(this.el);\n }\n\n componentWillUnmount() {\n Root.removeChild(this.el);\n }\n\n render() {\n const { visible, handleToHide, className } = this.props;\n if(visible) {\n return ReactDOM.createPortal(\n (\n <div className=\"mask\">\n <div className={classnames(\"mask-content\", className)}>\n {this.props.children}\n </div>\n <div className=\"mask-footer\">\n <i className=\"mask-button__close\" onClick={handleToHide}></i>\n </div>\n </div>\n ),\n this.el\n );\n }else {\n return null;\n }\n }\n}\n\nexport default Mask;","import React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport { HeaderBar } from '@common'\nimport AddressPopup from '@common/addressPopup/index'\nimport BindPhone from '@common/bindPhone/index'\nimport ConfirmPhone from '@common/confirmPhone/index'\nimport CreateSuccess from './../common/createSuccess/index'\nimport TreasureTeam from './team'\nimport PrizeStatus from './prize'\nimport SplitSuccess from './../common/splitSuccess/index'\nimport { http, getParam, SendMessageToApp, browser } from '@/utils'\nimport Mask from './mask'\nimport './index.scss'\n\n@connect(({country, user}) => ({\n country,\n userInfo: user.data\n}))\nclass MyTreasure extends Component {\n popupInstance = null\n\n constructor(props) {\n super(props)\n this.state = {\n isEnd: false,\n isEmpty: false,\n seconds: 3,\n teams: [],\n ids: [], // 未拆宝箱统计\n bindInfo: {}, // 绑定手机号冲突信息\n isPhone: false,\n isAddress: false,\n isConfirm: false,\n confirmInfo: {},\n isSplit: false,\n isCreate: false,\n createInfo: {},\n prizeName: '', // 当前商品的名字\n treasureTime: '', // 宝箱活动结束时间\n }\n }\n\n componentDidMount() {\n this.fetchMyTreasure()\n this.fetchActivityStatus()\n document.title = '粽子节,开宝箱免费学AI课程,现金红包,京东购物卡送不停!-七月在线';\n }\n\n componentWillReceiveProps(nextProp) {\n const {history} = this.props\n const {userInfo} = nextProp\n if (!userInfo.uid) {\n history.push('/passport')\n }else {\n this.fetchMyTreasure();\n }\n }\n\n // 页面加载时,初始化当前需要绑定手机号的奖品名字\n initPrizeName = (params) => {\n const key = this.fetchCurrentTeamId(params)\n const data = params.filter(item => item.id == key)\n if (data.length > 0) {\n this.setState({\n prizeName: data[0]['prize_name']\n })\n }\n }\n\n // 页面加载时,是否需要拆宝箱\n judgeIsHaveId = (data) => {\n const id = getParam('id')\n if (id) {\n const newData = data.filter(item => item.id == id)\n if (newData.length > 0) {\n const params = {\n team_num: newData[0]['team_num'],\n owner_uid: newData[0]['captain_uid']\n }\n this.toSplitTreasure(params)\n }\n }\n }\n\n // 获取当前需要绑定手机的队伍id,当拆到需要绑定手机号/地址的宝箱时,如果不进行绑定则无法拆下一个\n fetchCurrentTeamId = (data = []) => {\n const arr = data.filter(item => item.is_open && (item.bind_phone || item.bind_address))\n if (arr.length > 0) {\n return arr[0]['id']\n } else {\n return ''\n }\n }\n\n // 页面加载时,是否是从选择区号页面过来的\n // TODO,当同时展示拆宝箱成功弹窗和绑定手机号弹窗时,选择区号返回时未展示拆宝箱成功弹窗(和产品确认,后续优化)\n isShowBindPhone = (data) => {\n const {country} = this.props\n if (country.from) {\n const id = this.fetchCurrentTeamId(data)\n this.handleToBindPhone(id)\n }\n }\n\n // 绑定手机号--展示\n handleToBindPhone = (id) => {\n this.setState({\n isPhone: true,\n })\n }\n\n // 绑定手机号--确认\n handleToConfirmPhone = (params, bindInfo) => {\n this.handleToHideWindow('isPhone')\n this.setState({\n confirmInfo: {\n params,\n bindInfo,\n },\n isConfirm: true,\n })\n }\n\n // 绑定手机号--成功\n successBindPhone = () => {\n this.setState({\n isPhone: false,\n isConfirm: false,\n })\n const {teams, splitInfo} = this.state\n const teamId = this.fetchCurrentTeamId(teams)\n const data = teams.map(item => {\n if (item.id == teamId) {\n if (item.bind_address) {\n this.handleToBindAddress()\n }\n return Object.assign({}, item, {\n bind_phone: false,\n })\n }\n return item\n })\n this.setState({\n teams: data,\n splitInfo: Object.assign({}, splitInfo, {\n bind_phone: false\n })\n })\n }\n\n // 拆宝箱--拆\n toSplitTreasure = (params) => {\n http.post(`${API.home}/sys/split_treasure`, params).then(res => {\n const {code, data} = res.data\n if (code === 200) {\n // 拆宝箱弹窗--成功\n this.showSuccessSplit(data)\n\n // 更新队伍状态\n this.successSplitTreasure(data)\n if (data.bind_phone) {\n setTimeout(() => {\n this.handleToBindPhone(data.id)\n }, 500)\n } else if (data.bind_address) {\n setTimeout(() => {\n this.handleToBindAddress(data.id, data.prize_name)\n }, 500)\n }\n } else if (code === 12000) {\n // 绑定手机号\n this.handleToBindPhone()\n } else if (code === 12001) {\n // 绑定地址\n this.handleToBindAddress()\n }\n })\n }\n\n // 拆宝箱--成功,更新数据\n successSplitTreasure = (params) => {\n const {userInfo} = this.props\n const {teams} = this.state\n const data = teams.map(item => {\n if (item.id == params.id) {\n return Object.assign({}, item, {\n bind_phone: params.bind_phone,\n bind_address: params.bind_address,\n is_open: true,\n prize_type: params.prize_type,\n prize_data: params.prize_data,\n member: item.member.map(val => {\n if (val.uid == userInfo.uid) {\n return Object.assign({}, val, {\n is_open: true,\n prize_name: params.prize_name\n })\n }\n return val\n })\n })\n } else {\n return item\n }\n })\n this.initNoSplitInfo(data)\n this.setState({\n teams: data,\n splitInfo: params,\n prizeName: params.prize_name\n })\n }\n\n // 拆宝箱--成功,展示弹窗\n showSuccessSplit = (data) => {\n this.setState({\n isSplit: true,\n splitInfo: data\n })\n }\n\n // 绑定地址--展示\n handleToBindAddress = (id, prizeName = '') => {\n if (id) {\n if(prizeName) {\n this.setState({\n prizeName\n })\n }else {\n const {teams} = this.state\n const data = teams.filter(item => item.id == id)\n if (data.length > 0) {\n this.setState({\n prizeName: data[0]['prize_name']\n })\n }\n }\n }\n this.setState({\n isAddress: true\n })\n }\n\n // 绑定地址--成功\n successBindAddress = () => {\n this.setState({\n isAddress: false,\n })\n const {teams, splitInfo} = this.state\n const teamId = this.fetchCurrentTeamId(teams)\n const data = teams.map(item => {\n if (item.id == teamId) {\n return Object.assign({}, item, {\n bind_address: false,\n })\n }\n return item\n })\n this.setState({\n teams: data,\n splitInfo: Object.assign({}, splitInfo, {\n bind_address: false\n })\n })\n }\n\n // 获取我的宝箱信息\n fetchMyTreasure = () => {\n http.get(`${API.home}/sys/treasure/my`).then(res => {\n const {code, data} = res.data\n if (code === 200) {\n this.setState({\n rule: data.rule\n })\n if (Array.isArray(data.team) && data.team.length > 0) {\n this.initNoSplitInfo(data.team)\n this.judgeIsHaveId(data.team)\n this.isShowBindPhone(data.team)\n this.initPrizeName(data.team)\n this.setState({\n isEmpty: false,\n teams: data.team,\n })\n } else {\n this.setState({\n isEmpty: true,\n })\n }\n }\n })\n }\n\n // 统计未拆的宝箱信息\n initNoSplitInfo = (data = []) => {\n if (data.length > 0) {\n this.setState({\n ids: data.filter(item => !item.is_open && item.status === 2).map(val => {\n return {\n team_num: val.team_num,\n owner_uid: val.captain_uid\n }\n })\n })\n }\n }\n\n // 获取宝箱活动状态\n fetchActivityStatus = () => {\n http.get(`${API.home}/activity/stage`).then(res => {\n const {code, data} = res.data\n if (code === 200) {\n if(Number(data.treasure_stage) === 0) {\n this.props.history.push('/');\n return;\n }\n // treasure_stage,宝箱阶段,0-不在活动时间,1-活动时间内\n if (data.treasure_stage === 0) {\n this.startCountDown()\n }\n this.setState({\n isEnd: data.treasure_stage === 0,\n treasureTime: data.treasure_stop_date\n })\n }\n })\n }\n\n // 活动结束--倒计时\n startCountDown = () => {\n const {history} = this.props\n let {seconds} = this.state\n if (this.timer) {\n clearInterval(this.timer)\n }\n this.setState({\n seconds: seconds--\n })\n this.timer = setInterval(() => {\n this.setState({\n seconds: seconds--\n })\n if (seconds === 0) {\n this.setState({\n seconds: 0\n })\n clearInterval(this.timer)\n if (getParam('version')) {\n history.push(`/year/yearIndex?version=${getParam('version')}`)\n } else {\n history.push('/year/yearIndex')\n }\n }\n }, 1000)\n }\n\n // 邀请好友\n handleToInvite = (treasure_code) => {\n const {history} = this.props\n if (getParam('version')) {\n window.location.assign(`https://h5.julyedu.com/box/landing?treasure_code=${treasure_code}&origin=1&version=${getParam('version')}`)\n } else {\n window.location.assign(`https://h5.julyedu.com/box/landing?treasure_code=${treasure_code}&origin=1`)\n }\n }\n\n // 组队开宝箱\n toOrganizeTeam = () => {\n const {history, userInfo: {uid = ''}} = this.props\n if (uid === '') {\n history.push('/passport')\n } else {\n http.get(`${API.home}/sys/treasure/createMyTeam`).then(res => {\n const {code, data} = res.data\n if (code === 200) {\n const teams = []\n teams[0] = data\n this.setState({\n isEmpty: false,\n teams,\n isCreate: true,\n createInfo: data\n })\n }\n })\n }\n }\n\n // 奖品,代金券碎片--合成\n toComposeCoupon = () => {\n const {history} = this.props\n if (getParam('version')) {\n SendMessageToApp(\"toCoupon\")\n } else {\n history.push('/coupons/my-patch')\n }\n }\n\n // 奖品,指定课程代金券--使用\n toUseCoupon = (id) => {\n const {history} = this.props\n if (getParam('version')) {\n SendMessageToApp(\"toCourse\", id)\n } else {\n history.push(`/detail?id=${id}`)\n }\n }\n\n // 第三:奖品,通用课程代金券--使用\n toCourseList = () => {\n const {history} = this.props\n if (getParam('version')) {\n SendMessageToApp('toQualityCourse')\n } else {\n history.push('/classify')\n }\n }\n\n // 第三:奖品,现金红包--提现\n toFecthMoney = () => {\n const {history} = this.props\n if (getParam('version')) {\n SendMessageToApp('toAccount')\n } else {\n history.push('/scholarship')\n }\n }\n\n // 弹窗--隐藏\n handleToHideWindow = (key) => {\n const param = {}\n param[key] = false\n this.setState(param)\n }\n\n render() {\n const {history, userInfo, country} = this.props\n const {\n isEnd,\n isEmpty,\n seconds,\n teams,\n ids,\n isPhone,\n isAddress,\n isConfirm,\n isSplit,\n splitInfo = {},\n confirmInfo: {\n params = {},\n bindInfo = {}\n },\n isCreate,\n createInfo,\n prizeName,\n rule,\n treasureTime,\n } = this.state\n return (\n <div data-skip=\"treasure\">\n {(!browser.isAndroidApp && !browser.isIOSApp) && <HeaderBar title=\"我的宝箱\" arrow={true}/>}\n {\n isEnd &&\n <div className=\"team-empty\">\n <p className=\"activity-end__desc\">\n 活动已结束<br/>\n {seconds}s后将自动返回首页\n </p>\n </div>\n }\n {\n (!isEnd && isEmpty) &&\n <div className=\"team-empty\">\n <i className=\"team-empty__icon\"></i>\n <p className=\"team-empty__desc\">您当前还没有宝箱哦~</p>\n <p className=\"team-empty__desc\">快去组队邀请好友一起开宝箱吧!</p>\n <button className=\"team-empty__button\" onClick={this.toOrganizeTeam}>组队开宝箱</button>\n </div>\n }\n {\n (!isEnd && !isEmpty && userInfo.uid) &&\n <div className=\"treasure-content\">\n {\n teams.map((item, index) => (\n <TreasureTeam\n data={item}\n key={index}\n userInfo={userInfo}\n history={history}\n splitInstance={this.splitInstance}\n toSplitTreasure={() => this.toSplitTreasure({\n team_num: item.team_num,\n owner_uid: item.captain_uid\n })}\n >\n <PrizeStatus\n data={{\n bind_phone: item.bind_phone,\n bind_address: item.bind_address,\n prize_type: item.prize_type,\n }}\n handleToBindPhone={this.handleToBindPhone}\n handleToBindAddress={() => this.handleToBindAddress(item.id)}\n toComposeCoupon={this.toComposeCoupon}\n toUseCoupon={() => this.toUseCoupon(item.prize_data)}\n toCourseList={this.toCourseList}\n toFecthMoney={this.toFecthMoney}\n />\n </TreasureTeam>\n ))\n }\n\n {/* 拆宝箱--弹窗,成功 */}\n <Mask visible={isSplit} handleToHide={() => this.handleToHideWindow('isSplit')}>\n <SplitSuccess\n ids={ids}\n data={splitInfo}\n handleToInvite={() => this.handleToInvite(splitInfo.treasure_code)}\n handleToBindPhone={this.handleToBindPhone}\n handleToBindAddress={this.handleToBindAddress}\n successSplitTreasure={this.successSplitTreasure}\n >\n <PrizeStatus\n data={splitInfo}\n handleToBindPhone={this.handleToBindPhone}\n handleToBindAddress={this.handleToBindAddress}\n toComposeCoupon={this.toComposeCoupon}\n toUseCoupon={() => this.toUseCoupon(splitInfo.prize_data)}\n toCourseList={this.toCourseList}\n toFecthMoney={this.toFecthMoney}\n />\n </SplitSuccess>\n </Mask>\n\n {/*绑定手机号--弹窗 */}\n <Mask visible={isPhone} className=\"popup-bind-phone\" handleToHide={() => this.handleToHideWindow('isPhone')}>\n <BindPhone\n history={history}\n country={country}\n hideBindPhone={() => this.handleToHideWindow('isPhone')}\n handleToConfirmPhone={this.handleToConfirmPhone}\n successBindPhone={this.successBindPhone}\n desc={\n <>\n <p className=\"phone-treasure__desc\">恭喜您获得 {prizeName}</p>\n <p className=\"phone-treasure__notice\">为了您的账户安全,请于{treasureTime}前绑定手机号,过期将失效</p>\n </>\n }\n />\n </Mask>\n\n {/* 绑定手机号--弹窗,确认 */}\n <Mask visible={isConfirm} handleToHide={() => this.handleToHideWindow('isConfirm')}>\n <ConfirmPhone\n data={params}\n bindInfo={bindInfo}\n handleToCancle={() => this.handleToHideWindow('isConfirm')}\n successBindPhone={this.successBindPhone}\n />\n </Mask>\n\n {/* 绑定地址--弹窗 */}\n <Mask visible={isAddress} className=\"popup-bind-address\" handleToHide={() => this.handleToHideWindow('isAddress')}>\n <AddressPopup\n skip=\"year\"\n tip={\n <>\n <p className=\"address-treasure__desc\">恭喜您获得 {prizeName}</p>\n <p className=\"address-treasure__notice\">请及时填写/确认收货信息,活动结束后统一邮寄</p>\n </>\n }\n successBindAddress={this.successBindAddress}\n />\n </Mask>\n\n {/* 组队成功 */}\n <Mask visible={isCreate} handleToHide={() => this.handleToHideWindow('isCreate')}>\n <CreateSuccess\n data={createInfo}\n handleToInvite={() => {\n this.handleToInvite(createInfo.treasure_code)\n this.handleToHideWindow('isCreate')\n }}\n />\n </Mask>\n </div>\n }\n {\n rule &&\n <>\n <div className=\"activity-rule__header\">\n <i className=\"activity-rule__decorate\"></i>\n <h2 className=\"activity-rule__title\">活动规则</h2>\n <i className=\"activity-rule__decorate\"></i>\n </div>\n <div className=\"activity-rule__body\" dangerouslySetInnerHTML={{__html: rule}}></div>\n </>\n }\n </div>\n )\n }\n}\n\nexport default MyTreasure\n","import React, { Component } from 'react';\nimport { http } from '@/utils';\nimport { Formik, Form, Field } from 'formik';\nimport { Toast } from \"antd-mobile\";\nimport './index.scss';\n\nclass AddressPopup extends Component {\n constructor(props) {\n super(props)\n this.state = {\n isLoading: false,\n addressInfo: {\n name: '',\n phone: '',\n address: '',\n },\n }\n }\n\n componentDidMount() {\n this.fetchUserAddress();\n }\n\n // 获取收货信息\n fetchUserAddress = () => {\n const { addressInfo } = this.state;\n http.get(`${API.home}/sys/user_address_info`).then(res => {\n const {code, data, msg} = res.data;\n if (code === 200) {\n this.setState({\n addressInfo: Object.assign({}, addressInfo, {\n name: data.name,\n phone: data.phone,\n address: data.address,\n }),\n isLoading: true,\n });\n }\n });\n }\n\n handleToSubmit = (params = {}) => {\n const { successBindAddress } = this.props;\n http.post(`${API.home}/sys/update_address`, {\n act_type: 'treasure',\n ...params\n }).then(res => {\n const {code, msg} = res.data;\n if (code === 200) {\n successBindAddress();\n } else {\n Toast.info(msg, 2, null, false);\n }\n });\n }\n\n render() {\n const { isLoading, addressInfo } = this.state;\n const {tip, prize, skip = 'default'} = this.props;\n return (\n <>\n {\n isLoading &&\n <Formik\n initialValues={{ \n ...addressInfo\n }}\n validate={({name, phone, address}) => {\n const errors = {};\n\n if (!name) {\n errors.name = '请输入收件人';\n }\n if(!/^1[3-9]\\d{9}$/.test(phone)) {\n errors.phone = '请填写正确格式的手机号';\n }\n if (!address) {\n errors.address = '请输入收货地址';\n }\n\n return errors;\n }}\n validateOnBlur={false}\n validateOnChange={false}\n onSubmit={(values) => {\n this.handleToSubmit(values);\n }}\n render={({errors}) => (\n <Form className=\"address-form\" data-skip={skip}>\n <h2 className=\"address-form__title\">收货信息</h2>\n {\n prize ? (\n <p className='address__prize'>\n 您抽中了\n <span style={{'color': '#FF4000'}}>{prize}</span>\n </p>\n ) : (null)\n }\n {\n tip ? (<div className=\"address-form__subtitle\">{tip}</div>) : (<p className=\"address-form__desc\">请及时填写收货信息,获得实物奖品后将第一时间为您邮寄</p>) \n }\n <Field \n name=\"name\"\n render={({ field }) => (\n <div className=\"address-form__item\">\n <input\n {...field}\n className=\"address-form__ipt\"\n type=\"text\"\n placeholder=\"收件人\"\n />\n {\n errors.name &&\n <p className=\"address-form__tip\">{errors.name}</p>\n }\n </div>\n )}\n />\n <Field \n name=\"phone\"\n render={({ field }) => (\n <div className=\"address-form__item\">\n <input\n {...field}\n className=\"address-form__ipt\"\n type=\"text\"\n placeholder=\"联系方式\"\n />\n {\n errors.phone &&\n <p className=\"address-form__tip\">{errors.phone}</p>\n }\n </div>\n )}\n />\n <Field \n name=\"address\"\n render={({ field }) => (\n <div className=\"address-form__item\">\n <input\n {...field}\n className=\"address-form__ipt\"\n type=\"text\"\n placeholder=\"收货地址\"\n />\n {\n errors.address &&\n <p className=\"address-form__tip\">{errors.address}</p>\n }\n </div>\n )}\n />\n <button \n className=\"address-form__submit\" \n data-status=\"do\"\n type=\"submit\"\n >提交</button>\n </Form>\n )}\n />\n }\n </>\n );\n }\n}\n\nexport default AddressPopup;","import React, { Component } from 'react';\nimport { Formik, Form, Field } from 'formik';\nimport { Toast } from 'antd-mobile';\nimport { isEmpty } from 'lodash';\nimport CaptchaAli from \"@common/Captcha-ali\"\nimport { http } from '@/utils';\nimport './index.scss';\n\nclass BindPhone extends Component {\n captchaInstance = null;\n\n constructor(props) {\n super(props),\n this.state = {\n validate: '',\n seconds: 60,\n isFirst: true,\n timer: null,\n isTimer: false, // 是否开始倒计时\n accountInfo: {},\n bindInfo: {},\n country: {\n num: '86'\n },\n validationData: null\n }\n }\n\n componentDidMount() {\n this.initCountryInfo();\n }\n\n initCountryInfo = () => {\n const {country} = this.props;\n this.setState({\n country\n });\n }\n\n toFetchCountryNum = () => {\n const {history, hideBindPhone} = this.props;\n hideBindPhone();\n history.push('/country?from=bind');\n }\n\n getCaptchaInstance = instance => {\n this.captchaInstance = instance;\n }\n\n onVerify = (data) => {\n this.setState({\n validate: true,\n validationData: data\n })\n }\n\n // 获取手机号验证码\n handleToSend = ({tel, code}) => {\n let {validate, seconds, validationData, isFirst, isTimer, country: {num = '86'}} = this.state;\n if (validate) {\n if (!isFirst) {\n Toast.info('请重新进行滑块验证', 2, null, false);\n this.captchaInstance.reset();\n this.setState({\n isFirst: true\n });\n return\n }\n if (!isTimer) {\n if (!tel) {\n Toast.info('手机号码不能为空', 2, null, false);\n } else if (!/^\\d+$/.test(tel)) {\n Toast.info('请输入正确格式的手机号码', 2, null, false);\n } else {\n\n // 获取验证码\n http.post(\n `${API['passport-api']}/m/personal/bindPhoneSendCode`,\n {\n area_code: `00${num}`,\n phone_num: tel,\n ...validationData\n }\n ).then(res => {\n const {errno, msg} = res.data;\n if (errno === 200) {\n Toast.info('验证码发送成功', 2, null, false);\n\n // 倒计时\n this.timer = window.setInterval(() => {\n if (seconds <= 0) {\n window.clearInterval(this.timer);\n this.setState({\n isTimer: false,\n seconds: 60\n });\n } else {\n this.setState({\n isTimer: true,\n seconds: --seconds\n });\n }\n }, 1000);\n\n // 滑块\n this.setState({\n isFirst: false\n })\n } else {\n Toast.info(msg, 2, null, false);\n }\n })\n }\n }\n }\n return false;\n }\n\n // 绑定手机\n toBindPhone = () => {\n const {accountInfo: {tel, code}, country: {num = '86'}} = this.state;\n const {handleToConfirmPhone, successBindPhone} = this.props;\n const params = {\n area_code: `00${num}`,\n mobile: tel,\n code: code,\n act_type: 'treasure', // 宝箱\n };\n http.post(\n `${API.home}/sys/v2/user/bindMobile`,\n {\n ...params,\n type: 1, // 1:绑定,2:修改绑定\n is_valid: 1, // is_valid\t是否验证 1:验证(默认),0不验证\n }\n ).then(res => {\n const {code, data, msg} = res.data;\n if (code === 200) {\n if (data.tip_info) {\n handleToConfirmPhone(params, data.tip_info);\n } else {\n successBindPhone();\n }\n } else {\n Toast.info(msg, 2, null, false);\n }\n });\n }\n\n render() {\n const {desc, skip = 'year'} = this.props;\n const {country, validate, isTimer, seconds} = this.state;\n return (\n <Formik\n initialValues={{\n tel: '',\n code: ''\n }}\n validate={({tel, code}) => {\n const errors = {};\n\n // if (!validateTel(tel)) {\n if (!/^\\d+$/.test(tel)) {\n errors.tel = '请填写正确格式的手机号';\n }\n if (!/[0-9]{6}/.test(code)) {\n errors.code = '请输入验证码';\n }\n\n return errors;\n }}\n onSubmit={(values, {setStatus, setSubmitting}) => {\n this.setState({\n accountInfo: {\n ...values\n }\n });\n this.toBindPhone();\n }}\n render={({values: {tel, code}, errors}) => (\n <Form className=\"popup-form\" data-skip={skip}>\n <h2 className=\"popup-form__title\">绑定手机号</h2>\n {\n desc &&\n <div className=\"poup-form__desc\">{desc}</div>\n }\n <div className=\"popup-form__item\">\n <a className=\"popup-form__button--num\" onClick={this.toFetchCountryNum}>\n +{country.num}\n <i className=\"iconfont iconiconfront-69\"/>\n </a>\n <Field\n name=\"tel\"\n render={({field}) => {\n return (\n <input\n {...field}\n className=\"popup-form__ipt\"\n data-type=\"tel\"\n type=\"text\"\n placeholder=\"请填写手机号\"\n />\n );\n }}\n />\n </div>\n <CaptchaAli getInstance={this.getCaptchaInstance} onVerify={this.onVerify} mb={15}/>\n <div className=\"popup-form__item\">\n <Field\n name=\"code\"\n render={({field}) => {\n return (\n <input\n {...field}\n className=\"popup-form__ipt popup-form__ipt--left\"\n type=\"text\"\n placeholder=\"输入验证码\"\n />\n );\n }}\n />\n <button\n className=\"popup-form__button--code\"\n data-status={(validate && !isTimer) ? 'do' : ''}\n type=\"button\"\n onClick={() => this.handleToSend({tel, code})}\n >\n {\n isTimer ? `重新发送${seconds}s` : '发送验证码'\n }\n </button>\n </div>\n <button\n className=\"popup-form__button--bundle\"\n data-status={(tel && code && isEmpty(errors)) ? 'do' : 'done'}\n type=\"submit\"\n >\n 完成绑定\n </button>\n </Form>\n )}\n />\n )\n }\n}\n\nexport default BindPhone;","import React, { Component } from 'react';\nimport { Toast } from 'antd-mobile';\nimport { http } from '@/utils';\nimport './index.scss';\n\nclass ConfirmPhone extends Component {\n continueBindPhone = () => {\n const { data, successBindPhone } = this.props;\n http.post(\n `${API.home}/sys/v2/user/bindMobile`,\n { \n ...data,\n type: 1, // 1:绑定,2:修改绑定\n is_valid: 0, // is_valid\t是否验证 1:验证(默认),0不验证\n }\n ).then(res => {\n const { code, msg } = res.data;\n if(code === 200 ) {\n successBindPhone();\n }else {\n Toast.info(msg, 2, null, false);\n }\n });\n }\n\n render() {\n const { \n bindInfo = { }, \n desc, \n skip = 'year', \n handleToCancle \n } = this.props;\n return (\n <div className=\"popup-bind\" data-skip={skip}>\n <h2 className=\"popup-bind__title\">绑定手机号</h2>\n {\n desc\n ? <div className=\"popup-bind__desc\">{desc}</div>\n : <p className=\"popup-bind__desc\">该手机号已绑定到以下账号,继续绑定将解除以下绑定状态</p>\n }\n <ul className=\"popup-bind__list\">\n {\n bindInfo['email'] &&\n <li className=\"popup-bind__account\">\n\n {/* 邮箱 */}\n <i className=\"popup-bind__icon\" data-plat=\"mail\"></i>\n <p className=\"popup-bind__account--name\">{bindInfo['email']}</p>\n </li>\n }\n {\n bindInfo['wechat_nickname'] &&\n <li className=\"popup-bind__account\">\n\n {/* wechat */}\n <i className=\"popup-bind__icon\" data-plat=\"wachat\"></i>\n <p className=\"popup-bind__account--name\">{bindInfo['wechat_nickname']}</p>\n </li>\n }\n {\n bindInfo['qq_nickname'] &&\n <li className=\"popup-bind__account\">\n\n {/* qq */}\n <i className=\"popup-bind__icon\" data-plat=\"qq\"></i>\n <p className=\"popup-bind__account--name\">{bindInfo['qq_nickname']}</p>\n </li>\n }\n {\n bindInfo['sina_nickname'] &&\n <li className=\"popup-bind__account\">\n\n {/* 微博 */}\n <i className=\"popup-bind__icon\" data-plat=\"sina\"></i>\n <p className=\"popup-bind__account--name\">{bindInfo['sina_nickname']}</p>\n </li>\n }\n </ul>\n <div className=\"popup-bind__footer\">\n <button\n className=\"popup-bind__button popup-bind__button--cancle\"\n onClick={handleToCancle}>取消</button>\n <button\n className=\"popup-bind__button popup-bind__button--confirm\"\n onClick={this.continueBindPhone}>继续绑定</button>\n </div>\n </div>\n )\n }\n}\n\nexport default ConfirmPhone;"],"sourceRoot":""}