treasure-box-mybox.62baa8b8.chunk.js.map 69.9 KB
Newer Older
1
{"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":""}