{"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":""}