{"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":["props","console","log","data","team_num","lack_member","member","handleToInvite","members","Array","fill","className","map","item","index","_member","key","src","alt","type","onClick","TreasureTeam","Component","constructor","super","initMemberInfo","params","this","userInfo","arr","JSON","stringify","len","length","push","setState","team","Object","assign","currentMember","uid","filter","computedClass","id","is_open","state","classnames","computedBg","val","backgroundImage","toCheckPrize","componentDidMount","componentWillReceiveProps","nextProps","oldData","newData","render","is_captain","status","treasure_code","toSplitTreasure","children","data-skip","style","head_img","data-layout","getParam","href","data-direction","prize_name","bind_phone","bind_address","prize_type","handleToBindPhone","handleToBindAddress","toComposeCoupon","toUseCoupon","toCourseList","toFecthMoney","SplitSuccess","continueSplitTreasure","ids","successSplitTreasure","http","post","API","home","then","res","code","setTimeout","prize_img","avatar","prize","Root","document","querySelector","Mask","el","createElement","appendChild","componentWillUnmount","removeChild","visible","handleToHide","ReactDOM","createPortal","MyTreasure","connect","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","fetchMyTreasure","get","rule","isArray","isEmpty","captain_uid","fetchActivityStatus","Number","treasure_stage","history","startCountDown","isEnd","treasureTime","treasure_stop_date","seconds","timer","clearInterval","setInterval","window","location","toOrganizeTeam","isCreate","createInfo","SendMessageToApp","param","title","nextProp","browser","isAndroidApp","isIOSApp","arrow","splitInstance","hideBindPhone","desc","handleToCancle","skip","tip","dangerouslySetInnerHTML","__html","AddressPopup","fetchUserAddress","addressInfo","msg","name","phone","address","isLoading","handleToSubmit","act_type","info","initialValues","validate","errors","test","validateOnBlur","validateOnChange","onSubmit","values","field","placeholder","data-status","BindPhone","captchaInstance","initCountryInfo","toFetchCountryNum","getCaptchaInstance","instance","onVerify","validationData","handleToSend","tel","isFirst","isTimer","num","reset","area_code","phone_num","errno","toBindPhone","accountInfo","mobile","is_valid","tip_info","setStatus","setSubmitting","data-type","getInstance","mb","ConfirmPhone","continueBindPhone","data-plat"],"mappings":"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","file":"mrstaticjs/treasure-box-mybox.94a3e6db.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 \"src/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 'src/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 'src/common'\nimport AddressPopup from 'src/common/addressPopup/index'\nimport BindPhone from 'src/common/bindPhone/index'\nimport ConfirmPhone from 'src/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 'src/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 'src/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 >\n {\n ({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>) : (\n <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 >提交\n </button>\n </Form>\n )\n }\n </Formik>\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 \"src/common/Captcha-ali\"\nimport { http } from 'src/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 >\n {\n ({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 </Formik>\n )\n }\n}\n\nexport default BindPhone;","import React, { Component } from 'react';\nimport { Toast } from 'antd-mobile';\nimport { http } from 'src/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":""}