{"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","initMemberInfo","params","userInfo","arr","JSON","stringify","len","length","push","setState","team","Object","assign","currentMember","uid","filter","computedClass","id","is_open","state","classnames","active","computedBg","val","backgroundImage","toCheckPrize","this","nextProps","oldData","newData","is_captain","status","treasure_code","toSplitTreasure","children","data-skip","style","head_img","data-layout","getParam","href","data-direction","prize_name","Component","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","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","name","phone","address","isLoading","handleToSubmit","act_type","msg","info","initialValues","validate","errors","test","validateOnBlur","validateOnChange","onSubmit","values","color","render","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.62baa8b8.chunk.js","sourcesContent":["import React from \"react\"\nimport \"./index.scss\"\n\nexport default (props) => {\n console.log(props)\n const {\n data: { team_num = 1, lack_member = 4, member = [] },\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 名队员即可获得宝箱哦~\n </p>\n <i className=\"team-success__icon\"></i>\n <ul className=\"team-success__member members\">\n {members.map((item, index) => {\n const _member = member[index]\n return (\n <li className=\"member-item\" key={index}>\n {_member && _member[\"is_captain\"] && (\n <sup className=\"member-item__captain\">队长</sup>\n )}\n <img\n className=\"member-item__avatar\"\n src={\n _member\n ? _member[\"head_img\"]\n : \"https://cdn.julyedu.com/newyear20/H5/not-joined-placeholder.png\"\n }\n alt=\"\"\n />\n </li>\n )\n })}\n </ul>\n <button\n type={\"button\"}\n className=\"team-success__button\"\n onClick={handleToInvite}\n >\n 邀请好友加入队伍\n </button>\n </div>\n )\n}\n","/* eslint-disable eqeqeq */\nimport React, { Component } from \"react\"\nimport classnames from \"classnames\"\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\n ? member.filter((item) => item.uid == userInfo.uid)[0]\n : {},\n })\n }\n\n computedClass = (id) => {\n const {\n data: { is_open },\n } = this.props\n const { currentMember } = this.state\n return classnames(\"team-member__item\", {\n active: id === currentMember.uid && is_open,\n })\n }\n\n computedBg = (val) => {\n return val\n ? {\n backgroundImage: `url(${val})`,\n }\n : {}\n }\n\n // 查看队友的奖品,条件:宝箱已拆\n toCheckPrize = (id) => {\n const {\n team: { is_open, member = [] },\n } = 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 { toSplitTreasure, userInfo, children } = this.props\n return (\n <div className=\"team-container\" data-skip=\"team\">\n {!is_captain && <i className=\"team-friend\">友</i>}\n\n {/* 组队状态 */}\n {status === 1 ? (\n <i className=\"team-status\">组队中..</i>\n ) : (\n <i className=\"team-decorate\"></i>\n )}\n\n {/* 队伍类型 */}\n {is_captain ? (\n <h2 className=\"team-title\">{team_num}号队伍</h2>\n ) : (\n <h2 className=\"team-title\">好友队伍</h2>\n )}\n\n {/* 队员情况 */}\n {status === 1 ? (\n <p className=\"team-desc\">还差{lack_member}名队员即可获得宝箱哦~</p>\n ) : (\n <p className=\"team-desc\">组队成功</p>\n )}\n <div className=\"team-member\">\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 {item.is_captain && (\n <span className=\"team-member__captain\">队长</span>\n )}\n </div>\n ))}\n </div>\n <div className=\"team-footer\" data-layout={is_open ? \"column\" : \"row\"}>\n {/* 队伍未满 */}\n {status === 1 && (\n <>\n {getParam(\"version\") ? (\n is_captain ? (\n <a\n className=\"team-button\"\n href={`https://m.julyedu.com/box/landing?treasure_code=${treasure_code}&origin=1&version=${getParam(\n \"version\"\n )}`}\n >\n 继续邀请队友\n </a>\n ) : (\n <a\n className=\"team-button\"\n href={`https://m.julyedu.com/box/landing?treasure_code=${treasure_code}&origin=2&version=${getParam(\n \"version\"\n )}`}\n >\n 帮好友完成组队\n </a>\n )\n ) : is_captain ? (\n <a\n className=\"team-button\"\n href={`https://m.julyedu.com/box/landing?treasure_code=${treasure_code}&origin=1`}\n >\n 继续邀请队友\n </a>\n ) : (\n <a\n className=\"team-button\"\n href={`https://m.julyedu.com/box/landing?treasure_code=${treasure_code}&origin=2`}\n >\n 帮好友完成组队\n </a>\n )}\n </>\n )}\n\n {/* 可拆状态 */}\n {status === 2 && !is_open && (\n <>\n <span className=\"team-icon\" data-direction=\"left\"></span>\n <span\n className=\"team-button--split\"\n onClick={toSplitTreasure}\n ></span>\n <span className=\"team-icon\" data-direction=\"right\"></span>\n </>\n )}\n\n {/* 已拆状态 */}\n {status === 2 && is_open && (\n <>\n {currentMember.prize_name ? (\n <p className=\"team-prize\">{currentMember.prize_name}</p>\n ) : (\n <p className=\"team-prize\">尚未开宝箱</p>\n )}\n {currentMember.uid == userInfo.uid ? children : null}\n </>\n )}\n </div>\n </div>\n )\n }\n}\n\nexport default TreasureTeam\n","/* eslint-disable jsx-a11y/anchor-is-valid */\nimport React from \"react\"\nimport \"./prize.scss\"\n\nexport default (props) => {\n const {\n data: { bind_phone, bind_address, prize_type },\n handleToBindPhone,\n handleToBindAddress,\n toComposeCoupon,\n toUseCoupon,\n toCourseList,\n toFecthMoney,\n } = props\n return (\n <>\n {/* 第一:是否需要绑定手机号 */}\n {bind_phone && (\n <a className=\"team-result\" onClick={handleToBindPhone}>\n <span>绑定手机号</span>\n </a>\n )}\n\n {/* 第二:是否需要填写地址 */}\n {!bind_phone && bind_address && (\n <a className=\"team-result\" onClick={handleToBindAddress}>\n <span>查看/修改收货信息</span>\n </a>\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 {!bind_phone && !bind_address && prize_type === 6 && (\n <a className=\"team-result\" onClick={toComposeCoupon}>\n 可合成代金券在购课时使用,\n <span>去合成</span>\n </a>\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 {!bind_phone && !bind_address && prize_type === 4 && (\n <a className=\"team-result\" onClick={toCourseList}>\n 已发放至您的账户,\n <span>去使用</span>\n </a>\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 {!bind_phone && !bind_address && prize_type === 2 && (\n <a className=\"team-result\">已发放至您的账户</a>\n )}\n\n {/* 第三:奖品,任意线上课程兑换券 */}\n {!bind_phone && !bind_address && prize_type === 5 && (\n <a className=\"team-result\">无法领取请添加微信:julyedukefu10</a>\n )}\n </>\n )\n}\n","import React, { Component } from \"react\"\nimport { http } from \"src/utils\"\nimport \"./index.scss\"\n\nclass SplitSuccess extends Component {\n computedBg = (val) => {\n return val\n ? {\n backgroundImage: `url(${val})`,\n }\n : {}\n }\n\n continueSplitTreasure = () => {\n const {\n ids,\n successSplitTreasure,\n handleToBindPhone,\n handleToBindAddress,\n } = 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: { member = [], prize_img, prize_name },\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 {member.map((item, index) => (\n <div className=\"member-item\" key={index}>\n <span\n className=\"member-item__avatar\"\n style={this.computedBg(item.avatar)}\n >\n {item.is_captain && (\n <i className=\"member-item__captain\">队长</i>\n )}\n </span>\n {item.prize ? (\n <span className=\"member-item__prize\">{item.prize}</span>\n ) : (\n <span className=\"member-item__prize\">尚未开宝箱</span>\n )}\n </div>\n ))}\n </div>\n {ids.length > 0 ? (\n <button\n className=\"split-success__jump\"\n onClick={this.continueSplitTreasure}\n >\n 继续开宝箱\n </button>\n ) : (\n <button className=\"split-success__jump\" onClick={handleToInvite}>\n 继续组队开宝箱\n </button>\n )}\n </div>\n )\n }\n}\n\nexport default SplitSuccess\n","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 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 <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 this.el\n )\n } else {\n return null\n }\n }\n}\n\nexport default Mask\n","/* eslint-disable eqeqeq */\nimport 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 =\n \"AI充电季,开宝箱免费学正价课,200本纸质书等包邮送!-七月在线\"\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(\n (item) => item.is_open && (item.bind_phone || item.bind_address)\n )\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\n .filter((item) => !item.is_open && item.status === 2)\n .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 if (getParam(\"version\")) {\n window.location.assign(\n `https://m.julyedu.com/box/landing?treasure_code=${treasure_code}&origin=1&version=${getParam(\n \"version\"\n )}`\n )\n } else {\n window.location.assign(\n `https://m.julyedu.com/box/landing?treasure_code=${treasure_code}&origin=1`\n )\n }\n }\n\n // 组队开宝箱\n toOrganizeTeam = () => {\n const {\n history,\n userInfo: { uid = \"\" },\n } = 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: { params = {}, bindInfo = {} },\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 && (\n <HeaderBar title=\"我的宝箱\" arrow={true} />\n )}\n {isEnd && (\n <div className=\"team-empty\">\n <p className=\"activity-end__desc\">\n 活动已结束\n <br />\n {seconds}s后将自动返回首页\n </p>\n </div>\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\n className=\"team-empty__button\"\n onClick={this.toOrganizeTeam}\n >\n 组队开宝箱\n </button>\n </div>\n )}\n {!isEnd && !isEmpty && userInfo.uid && (\n <div className=\"treasure-content\">\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={() =>\n this.toSplitTreasure({\n team_num: item.team_num,\n owner_uid: item.captain_uid,\n })\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 <Mask\n visible={isSplit}\n handleToHide={() => this.handleToHideWindow(\"isSplit\")}\n >\n <SplitSuccess\n ids={ids}\n data={splitInfo}\n handleToInvite={() =>\n this.handleToInvite(splitInfo.treasure_code)\n }\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\n visible={isPhone}\n className=\"popup-bind-phone\"\n handleToHide={() => this.handleToHideWindow(\"isPhone\")}\n >\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\">\n 恭喜您获得 {prizeName}\n </p>\n <p className=\"phone-treasure__notice\">\n 为了您的账户安全,请于{treasureTime}\n 前绑定手机号,过期将失效\n </p>\n </>\n }\n />\n </Mask>\n\n {/* 绑定手机号--弹窗,确认 */}\n <Mask\n visible={isConfirm}\n handleToHide={() => this.handleToHideWindow(\"isConfirm\")}\n >\n <ConfirmPhone\n data={params}\n bindInfo={bindInfo}\n handleToCancle={() => this.handleToHideWindow(\"isConfirm\")}\n successBindPhone={this.successBindPhone}\n />\n </Mask>\n\n {/* 绑定地址--弹窗 */}\n <Mask\n visible={isAddress}\n className=\"popup-bind-address\"\n handleToHide={() => this.handleToHideWindow(\"isAddress\")}\n >\n <AddressPopup\n skip=\"year\"\n tip={\n <>\n <p className=\"address-treasure__desc\">\n 恭喜您获得 {prizeName}\n </p>\n <p className=\"address-treasure__notice\">\n 请及时填写/确认收货信息,活动结束后统一邮寄\n </p>\n </>\n }\n successBindAddress={this.successBindAddress}\n />\n </Mask>\n\n {/* 组队成功 */}\n <Mask\n visible={isCreate}\n handleToHide={() => this.handleToHideWindow(\"isCreate\")}\n >\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 {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\n className=\"activity-rule__body\"\n dangerouslySetInnerHTML={{ __html: rule }}\n ></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 } = 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\n .post(`${API.home}/sys/update_address`, {\n act_type: \"treasure\",\n ...params,\n })\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 {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 {({ errors }) => (\n <Form className=\"address-form\" data-skip={skip}>\n <h2 className=\"address-form__title\">收货信息</h2>\n {prize ? (\n <p className=\"address__prize\">\n 您抽中了\n <span style={{ color: \"#FF4000\" }}>{prize}</span>\n </p>\n ) : null}\n {tip ? (\n <div className=\"address-form__subtitle\">{tip}</div>\n ) : (\n <p className=\"address-form__desc\">\n 请及时填写收货信息,获得实物奖品后将第一时间为您邮寄\n </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 {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 {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 {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 提交\n </button>\n </Form>\n )}\n </Formik>\n )}\n </>\n )\n }\n}\n\nexport default AddressPopup\n","/* eslint-disable jsx-a11y/anchor-is-valid */\nimport 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 {\n validate,\n seconds,\n validationData,\n isFirst,\n isTimer,\n country: { num = \"86\" },\n } = 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 http\n .post(`${API[\"passport-api\"]}/m/personal/bindPhoneSendCode`, {\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 {\n accountInfo: { tel, code },\n country: { num = \"86\" },\n } = 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\n .post(`${API.home}/sys/v2/user/bindMobile`, {\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 {({ values: { tel, code }, errors }) => (\n <Form className=\"popup-form\" data-skip={skip}>\n <h2 className=\"popup-form__title\">绑定手机号</h2>\n {desc && <div className=\"poup-form__desc\">{desc}</div>}\n <div className=\"popup-form__item\">\n <a\n className=\"popup-form__button--num\"\n onClick={this.toFetchCountryNum}\n >\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\n getInstance={this.getCaptchaInstance}\n onVerify={this.onVerify}\n mb={15}\n />\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 {isTimer ? `重新发送${seconds}s` : \"发送验证码\"}\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 </Formik>\n )\n }\n}\n\nexport default BindPhone\n","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\n .post(`${API.home}/sys/v2/user/bindMobile`, {\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 { bindInfo = {}, desc, skip = \"year\", handleToCancle } = this.props\n return (\n <div className=\"popup-bind\" data-skip={skip}>\n <h2 className=\"popup-bind__title\">绑定手机号</h2>\n {desc ? (\n <div className=\"popup-bind__desc\">{desc}</div>\n ) : (\n <p className=\"popup-bind__desc\">\n 该手机号已绑定到以下账号,继续绑定将解除以下绑定状态\n </p>\n )}\n <ul className=\"popup-bind__list\">\n {bindInfo[\"email\"] && (\n <li className=\"popup-bind__account\">\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 {bindInfo[\"wechat_nickname\"] && (\n <li className=\"popup-bind__account\">\n {/* wechat */}\n <i className=\"popup-bind__icon\" data-plat=\"wachat\"></i>\n <p className=\"popup-bind__account--name\">\n {bindInfo[\"wechat_nickname\"]}\n </p>\n </li>\n )}\n {bindInfo[\"qq_nickname\"] && (\n <li className=\"popup-bind__account\">\n {/* qq */}\n <i className=\"popup-bind__icon\" data-plat=\"qq\"></i>\n <p className=\"popup-bind__account--name\">\n {bindInfo[\"qq_nickname\"]}\n </p>\n </li>\n )}\n {bindInfo[\"sina_nickname\"] && (\n <li className=\"popup-bind__account\">\n {/* 微博 */}\n <i className=\"popup-bind__icon\" data-plat=\"sina\"></i>\n <p className=\"popup-bind__account--name\">\n {bindInfo[\"sina_nickname\"]}\n </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}\n >\n 取消\n </button>\n <button\n className=\"popup-bind__button popup-bind__button--confirm\"\n onClick={this.continueBindPhone}\n >\n 继续绑定\n </button>\n </div>\n </div>\n )\n }\n}\n\nexport default ConfirmPhone\n"],"sourceRoot":""}