{"version":3,"sources":["components/blessingRank/index.js","components/blessingPreheat/addressPopup/index.js"],"names":["BlessingRank","connect","_ref","uid","user","data","props","_this","Object","_Users_zhanghaozhe_server_mr_julyedu_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_0__","this","_Users_zhanghaozhe_server_mr_julyedu_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_2__","_Users_zhanghaozhe_server_mr_julyedu_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_3__","call","popupInstance","fetchRankData","http","get","concat","API","home","then","res","_res$data","code","setState","rankList","handleToSwitch","bool","_this$props","history","push","Popup","title","content","react__WEBPACK_IMPORTED_MODULE_5___default","a","createElement","_blessingPreheat_addressPopup_index__WEBPACK_IMPORTED_MODULE_9__","handleToHide","close","formatString","str","len","length","substr","state","rules","_this2","_this$state","Fragment","className","onClick","map","item","index","key","data-num","style","backgroundImage","head_image","user_name","blessing_value","prize_name","Component","AddressPopup","_Users_zhanghaozhe_server_mr_julyedu_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_classCallCheck__WEBPACK_IMPORTED_MODULE_3__","_Users_zhanghaozhe_server_mr_julyedu_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_possibleConstructorReturn__WEBPACK_IMPORTED_MODULE_5__","_Users_zhanghaozhe_server_mr_julyedu_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_getPrototypeOf__WEBPACK_IMPORTED_MODULE_6__","fetchUserAddress","addressInfo","msg","assign","name","phone","address","isLoading","handleToSubmit","params","arguments","undefined","post","_res$data2","antd_mobile_lib_toast__WEBPACK_IMPORTED_MODULE_2___default","info","tip","prize","react__WEBPACK_IMPORTED_MODULE_8___default","formik__WEBPACK_IMPORTED_MODULE_11__","initialValues","_Users_zhanghaozhe_server_mr_julyedu_node_modules_babel_preset_react_app_node_modules_babel_runtime_helpers_esm_objectSpread__WEBPACK_IMPORTED_MODULE_0__","validate","errors","test","validateOnBlur","validateOnChange","onSubmit","values","render","_ref2","color","_ref3","field","type","placeholder","_ref4","_ref5","data-status"],"mappings":"mNAYMA,WALLC,YAAQ,SAAAC,GAAA,MACP,CACEC,IAFKD,EAAEE,KAEGC,KAAKF,KAAO,oBAKxB,SAAAH,EAAYM,GAAO,IAAAC,EAAA,OAAAC,OAAAC,EAAA,EAAAD,CAAAE,KAAAV,IACjBO,EAAAC,OAAAG,EAAA,EAAAH,CAAAE,KAAAF,OAAAI,EAAA,EAAAJ,CAAAR,GAAAa,KAAAH,KAAMJ,KAFRQ,cAAgB,KACGP,EAiBnBQ,cAAgB,WACdC,IAAKC,IAAL,GAAAC,OAAYC,IAAIC,KAAhB,0BAA6CC,KAAK,SAAAC,GAAO,IAAAC,EAClCD,EAAIjB,KAAlBmB,EADgDD,EAChDC,KAAMnB,EAD0CkB,EAC1ClB,KACA,MAATmB,GACFjB,EAAKkB,SAAS,CACZC,SAAUrB,OAtBCE,EA4BnBoB,eAAiB,SAACC,GAAS,IAAAC,EACFtB,EAAKD,MAArBwB,EADkBD,EAClBC,QAAS3B,EADS0B,EACT1B,IACZyB,IAASzB,EACX2B,EAAQC,KAAK,aAETH,IAASrB,EAAKO,cAChBP,EAAKO,cAAgBkB,YAAM,CACzBC,MAAO,2BACPC,QAASC,EAAAC,EAAAC,cAACC,EAAA,EAAD,CAAcC,aAAc,kBAAMhC,EAAKoB,gBAAe,SAGjEpB,EAAKO,cAAc0B,QACnBjC,EAAKO,cAAgB,OAxCRP,EA6CnBkC,aAAe,SAACC,EAAKC,GACnB,OAAOD,EAAIE,OAASD,EAAb,GAAAzB,OAAsBwB,EAAIG,OAAO,EAAGF,GAApC,OAAgDD,GA5CvDnC,EAAKuC,MAAQ,CACXpB,SAAU,GACVqB,MAAO,CACL,yYACA,0OACA,sKACA,gJARaxC,mFAcjBG,KAAKK,iDAmCE,IAAAiC,EAAAtC,KAAAuC,EACmBvC,KAAKoC,MAAxBpB,EADAuB,EACAvB,SAAUqB,EADVE,EACUF,MACjB,OACEZ,EAAAC,EAAAC,cAAAF,EAAAC,EAAAc,SAAA,KACEf,EAAAC,EAAAC,cAAA,OAAKc,UAAU,iBACfhB,EAAAC,EAAAC,cAAA,OAAKc,UAAU,cACbhB,EAAAC,EAAAC,cAAA,UAAQc,UAAU,gBAAgBC,QAAS,kBAAMJ,EAAKrB,gBAAe,KAArE,yCACAQ,EAAAC,EAAAC,cAAA,OAAKc,UAAU,eACbhB,EAAAC,EAAAC,cAAA,MAAIc,UAAU,sBACZhB,EAAAC,EAAAC,cAAA,MAAIc,UAAU,sBAAd,gBACAhB,EAAAC,EAAAC,cAAA,MAAIc,UAAU,sBAAd,gBACAhB,EAAAC,EAAAC,cAAA,MAAIc,UAAU,sBAAd,gBACAhB,EAAAC,EAAAC,cAAA,MAAIc,UAAU,sBAAd,iBAGAzB,EAAS2B,IAAI,SAACC,EAAMC,GAClB,OACEpB,EAAAC,EAAAC,cAAA,MAAIc,UAAU,mBAAmBK,IAAKD,GACpCpB,EAAAC,EAAAC,cAAA,MAAIc,UAAU,sBAEVI,EAAQ,EAEJpB,EAAAC,EAAAC,cAAA,KAAGc,UAAU,kBAAkBM,WAAUF,EAAQ,IAEjDA,EAAQ,GAGhBpB,EAAAC,EAAAC,cAAA,MAAIc,UAAU,sBACZhB,EAAAC,EAAAC,cAAA,OAAKc,UAAU,oBACbhB,EAAAC,EAAAC,cAAA,KAAGc,UAAU,uBAAuBO,MAAO,CAACC,gBAAe,OAAAzC,OAASoC,EAAKM,WAAd,QAC3DzB,EAAAC,EAAAC,cAAA,YAAOW,EAAKP,aAAaa,EAAKO,UAAW,MAG7C1B,EAAAC,EAAAC,cAAA,MAAIc,UAAU,sBAAsBG,EAAKQ,gBACzC3B,EAAAC,EAAAC,cAAA,MAAIc,UAAU,sBAAsBH,EAAKP,aAAaa,EAAKS,WAAY,QAOjF5B,EAAAC,EAAAC,cAAA,OAAKc,UAAU,cACbhB,EAAAC,EAAAC,cAAA,MAAIc,UAAU,oBAAd,4BAEEJ,EAAMM,IAAI,SAACC,EAAMC,GAAP,OACRpB,EAAAC,EAAAC,cAAA,KAAGc,UAAU,kBAAkBK,IAAKD,GAAQD,eAhGjCU,kBA0GZhE,6JC/GTiE,sBACJ,SAAAA,EAAY3D,GAAO,IAAAC,EAAA,OAAAC,OAAA0D,EAAA,EAAA1D,CAAAE,KAAAuD,IACjB1D,EAAAC,OAAA2D,EAAA,EAAA3D,CAAAE,KAAAF,OAAA4D,EAAA,EAAA5D,CAAAyD,GAAApD,KAAAH,KAAMJ,KAgBR+D,iBAAmB,WAAM,IACfC,EAAgB/D,EAAKuC,MAArBwB,YACRtD,IAAKC,IAAL,GAAAC,OAAYC,IAAIC,KAAhB,2BAA8CC,KAAK,SAAAC,GAAO,IAAAC,EAC9BD,EAAIjB,KAAvBmB,EADiDD,EACjDC,KAAMnB,EAD2CkB,EAC3ClB,KAD2CkB,EACrCgD,IACN,MAAT/C,GACFjB,EAAKkB,SAAS,CACZ6C,YAAa9D,OAAOgE,OAAO,GAAIF,EAAa,CAC1CG,KAAMpE,EAAKoE,KACXC,MAAOrE,EAAKqE,MACZC,QAAStE,EAAKsE,UAEhBC,WAAW,OA5BArE,EAkCnBsE,eAAiB,WAAiB,IAAhBC,EAAgBC,UAAAnC,OAAA,QAAAoC,IAAAD,UAAA,GAAAA,UAAA,GAAP,GACjBxC,EAAiBhC,EAAKD,MAAtBiC,aACRvB,IAAKiE,KAAL,GAAA/D,OAAaC,IAAIC,KAAjB,qBAA0C0D,GAAQzD,KAAK,SAAAC,GAAO,IAAA4D,EACxC5D,EAAIjB,KAAjBmB,EADqD0D,EACrD1D,KAAM+C,EAD+CW,EAC/CX,IACA,MAAT/C,EACFe,IAEA4C,EAAA/C,EAAMgD,KAAKb,EAAK,EAAG,MAAM,MAvC7BhE,EAAKuC,MAAQ,CACX8B,WAAW,EACXN,YAAa,CACXG,KAAM,GACNC,MAAO,GACPC,QAAS,KAPIpE,mFAajBG,KAAK2D,oDAiCE,IAAArB,EAAAtC,KAAAuC,EAC4BvC,KAAKoC,MAAhC8B,EADD3B,EACC2B,UAAWN,EADZrB,EACYqB,YADZzC,EAEcnB,KAAKJ,MAAnB+E,EAFAxD,EAEAwD,IAAKC,EAFLzD,EAEKyD,MACZ,OACEC,EAAAnD,EAAAC,cAAAkD,EAAAnD,EAAAc,SAAA,KAEI0B,GACAW,EAAAnD,EAAAC,cAACmD,EAAA,EAAD,CACEC,cAAajF,OAAAkF,EAAA,EAAAlF,CAAA,GACR8D,GAELqB,SAAU,SAAAzF,GAA4B,IAA1BuE,EAA0BvE,EAA1BuE,KAAMC,EAAoBxE,EAApBwE,MAAOC,EAAazE,EAAbyE,QACjBiB,EAAS,GAYf,OAVKnB,IACHmB,EAAOnB,KAAO,wCAEZ,gBAAgBoB,KAAKnB,KACvBkB,EAAOlB,MAAQ,sEAEZC,IACHiB,EAAOjB,QAAU,8CAGZiB,GAETE,gBAAgB,EAChBC,kBAAkB,EAClBC,SAAU,SAACC,GACTjD,EAAK6B,eAAeoB,IAEtBC,OAAQ,SAAAC,GAAA,IAAEP,EAAFO,EAAEP,OAAF,OACNL,EAAAnD,EAAAC,cAACmD,EAAA,EAAD,CAAMrC,UAAU,gBAEZmC,EACEC,EAAAnD,EAAAC,cAAA,KAAGc,UAAU,kBAAb,2BAAmCmC,EAAMC,EAAAnD,EAAAC,cAAA,QAAMqB,MAAO,CAAC0C,MAAS,YAAvB,6BACtC,KAGLf,EAAOE,EAAAnD,EAAAC,cAAA,KAAGc,UAAU,sBAAsBkC,GAAaE,EAAAnD,EAAAC,cAAA,KAAGc,UAAU,sBAAb,gKAEzDoC,EAAAnD,EAAAC,cAACmD,EAAA,EAAD,CACEf,KAAK,OACLyB,OAAQ,SAAAG,GAAA,IAAGC,EAAHD,EAAGC,MAAH,OACNf,EAAAnD,EAAAC,cAAA,OAAKc,UAAU,sBACboC,EAAAnD,EAAAC,cAAA,QAAA7B,OAAAgE,OAAA,GACM8B,EADN,CAEEnD,UAAU,oBACVoD,KAAK,OACLC,YAAY,wBAGZZ,EAAOnB,MACPc,EAAAnD,EAAAC,cAAA,KAAGc,UAAU,qBAAqByC,EAAOnB,UAKjDc,EAAAnD,EAAAC,cAACmD,EAAA,EAAD,CACEf,KAAK,QACLyB,OAAQ,SAAAO,GAAA,IAAGH,EAAHG,EAAGH,MAAH,OACNf,EAAAnD,EAAAC,cAAA,OAAKc,UAAU,sBACboC,EAAAnD,EAAAC,cAAA,QAAA7B,OAAAgE,OAAA,GACM8B,EADN,CAEEnD,UAAU,oBACVoD,KAAK,OACLC,YAAY,8BAGZZ,EAAOlB,OACPa,EAAAnD,EAAAC,cAAA,KAAGc,UAAU,qBAAqByC,EAAOlB,WAKjDa,EAAAnD,EAAAC,cAACmD,EAAA,EAAD,CACEf,KAAK,UACLyB,OAAQ,SAAAQ,GAAA,IAAGJ,EAAHI,EAAGJ,MAAH,OACNf,EAAAnD,EAAAC,cAAA,OAAKc,UAAU,sBACboC,EAAAnD,EAAAC,cAAA,QAAA7B,OAAAgE,OAAA,GACM8B,EADN,CAEEnD,UAAU,oBACVoD,KAAK,OACLC,YAAY,8BAGZZ,EAAOjB,SACPY,EAAAnD,EAAAC,cAAA,KAAGc,UAAU,qBAAqByC,EAAOjB,aAKjDY,EAAAnD,EAAAC,cAAA,UACEc,UAAU,uBACVwD,cAAY,KACZJ,KAAK,UAHP,4BA3IWvC,cAyJZC","file":"mrstatic/js/blessing-rank.03b39485.chunk.js","sourcesContent":["import React, { Component } from 'react'\nimport { connect } from 'react-redux'\nimport { http } from \"@/utils\"\nimport { Popup } from '@/common'\nimport AddressPopup from './../blessingPreheat/addressPopup/index'\nimport './index.scss'\n\n@connect(({user}) => (\n  {\n    uid: user.data.uid || ''\n  }\n))\nclass BlessingRank extends Component {\n  popupInstance = null\n  constructor(props) {\n    super(props)\n    this.state = {\n      rankList: [],\n      rules: [\n        '1、排行榜名次以2019年11月13日24点七月在线公布的排行榜为准,榜单确认后,得奖小伙伴请及时填写邮寄信息,7个自然日内不填写,视为主动放弃奖品;',\n        '2、福气值只在本活动期间享受抽奖、提高中奖概率、购课优化、增加AI水平测试等福利;',\n        '3、如有发现恶意刷榜,刷虚假数据等行为将取消其领奖资格;',\n        '4、本活动解释权归北京七月在线科技有限公司所有。',\n      ],\n    }\n  }\n\n  componentDidMount() {\n    this.fetchRankData()\n  }\n\n  fetchRankData = () => {\n    http.get(`${API.home}/sys/blessing/ranking`).then(res => {\n      const {code, data} = res.data\n      if (code === 200) {\n        this.setState({\n          rankList: data,\n        })\n      }\n    })\n  }\n\n  handleToSwitch = (bool) => {\n    const {history, uid} = this.props\n    if (bool && !uid) {\n      history.push('/passport')\n    } else {\n      if (bool && !this.popupInstance) {\n        this.popupInstance = Popup({\n          title: '收货信息',\n          content: <AddressPopup handleToHide={() => this.handleToSwitch(false)}/>\n        })\n      } else {\n        this.popupInstance.close()\n        this.popupInstance = null\n      }\n    }\n  }\n\n  formatString = (str, len) => {\n    return str.length > len ? `${str.substr(0, len)}...` : str\n  }\n\n  render() {\n    const {rankList, rules} = this.state\n    return (\n      <>\n        <div className=\"rank__banner\"></div>\n        <div className=\"rank__body\">\n          <button className=\"rank__address\" onClick={() => this.handleToSwitch(true)}>填写收货地址></button>\n          <div className=\"rank__table\">\n            <dl className=\"rank__table-header\">\n              <dd className=\"rank__table-column\">排名</dd>\n              <dd className=\"rank__table-column\">用户</dd>\n              <dd className=\"rank__table-column\">分数</dd>\n              <dd className=\"rank__table-column\">奖品</dd>\n            </dl>\n            {\n              rankList.map((item, index) => {\n                return (\n                  <dl className=\"rank__table-body\" key={index}>\n                    <dd className=\"rank__table-column\">\n                      {\n                        index < 3\n                          ? (\n                            <i className=\"rank__table-num\" data-num={index + 1}></i>\n                          )\n                          : index + 1\n                      }\n                    </dd>\n                    <dd className=\"rank__table-column\">\n                      <div className=\"rank__table-user\">\n                        <i className=\"rank__table-portrait\" style={{backgroundImage: `url(${item.head_image})`}}></i>\n                        <span>{this.formatString(item.user_name, 5)}</span>\n                      </div>\n                    </dd>\n                    <dd className=\"rank__table-column\">{item.blessing_value}</dd>\n                    <dd className=\"rank__table-column\">{this.formatString(item.prize_name, 7)}</dd>\n                  </dl>\n                )\n              })\n            }\n\n          </div>\n          <div className=\"rank__rule\">\n            <h2 className=\"rank__rule-title\">活动规则</h2>\n            {\n              rules.map((item, index) => (\n                <p className=\"rank__rule-desc\" key={index}>{item}</p>\n              ))\n            }\n          </div>\n        </div>\n      </>\n    )\n  }\n}\n\nexport default BlessingRank\n","import React, { Component } from 'react';\nimport { isEmpty } from 'lodash';\nimport { http } from '@/utils';\nimport { Formik, Form, Field } from 'formik';\nimport { Toast } from \"antd-mobile\";\nimport './index.scss';\n\nclass AddressPopup extends Component {\n  constructor(props) {\n    super(props)\n    this.state = {\n      isLoading: false,\n      addressInfo: {\n        name: '',\n        phone: '',\n        address: '',\n      },\n    }\n  }\n\n  componentDidMount() {\n    this.fetchUserAddress();\n  }\n\n  // 获取收货信息\n  fetchUserAddress = () => {\n    const { addressInfo } = this.state;\n    http.get(`${API.home}/sys/user_address_info`).then(res => {\n      const {code, data, msg} = res.data;\n      if (code === 200) {\n        this.setState({\n          addressInfo: Object.assign({}, addressInfo, {\n            name: data.name,\n            phone: data.phone,\n            address: data.address,\n          }),\n          isLoading: true,\n        });\n      }\n    });\n  }\n\n  handleToSubmit = (params = {}) => {\n    const { handleToHide } = this.props;\n    http.post(`${API.home}/sys/collect_info`, params).then(res => {\n      const {code, msg} = res.data;\n      if (code === 200) {\n        handleToHide();\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} = this.props;\n    return (\n      <>\n        {\n          isLoading &&\n          <Formik\n            initialValues={{ \n              ...addressInfo\n            }}\n            validate={({name, phone, address}) => {\n              const errors = {};\n\n              if (!name) {\n                errors.name = '请输入收件人';\n              }\n              if(!/^1[3-9]\\d{9}$/.test(phone)) {\n                errors.phone = '请填写正确格式的手机号';\n              }\n              if (!address) {\n                errors.address = '请输入收货地址';\n              }\n\n              return errors;\n            }}\n            validateOnBlur={false}\n            validateOnChange={false}\n            onSubmit={(values) => {\n              this.handleToSubmit(values);\n            }}\n            render={({errors}) => (\n              <Form className=\"address-form\">\n                {\n                  prize ? (\n                    <p className='address__prize'>您抽中了{prize}<span style={{'color': '#FF4000'}}>实物奖品</span></p>\n                  ) : (null)\n                }\n                {\n                  tip ? (<p className=\"address-form__desc\">{tip}</p>) : (<p className=\"address-form__desc\">请及时填写收货信息,获得实物奖品后将第一时间为您邮寄</p>) \n                }\n                <Field \n                  name=\"name\"\n                  render={({ field }) => (\n                    <div className=\"address-form__item\">\n                      <input\n                        {...field}\n                        className=\"address-form__ipt\"\n                        type=\"text\"\n                        placeholder=\"收件人\"\n                      />\n                      {\n                        errors.name &&\n                        <p className=\"address-form__tip\">{errors.name}</p>\n                      }\n                    </div>\n                  )}\n                />\n                <Field \n                  name=\"phone\"\n                  render={({ field }) => (\n                    <div className=\"address-form__item\">\n                      <input\n                        {...field}\n                        className=\"address-form__ipt\"\n                        type=\"text\"\n                        placeholder=\"联系方式\"\n                      />\n                      {\n                        errors.phone &&\n                        <p className=\"address-form__tip\">{errors.phone}</p>\n                      }\n                    </div>\n                  )}\n                />\n                <Field \n                  name=\"address\"\n                  render={({ field }) => (\n                    <div className=\"address-form__item\">\n                      <input\n                        {...field}\n                        className=\"address-form__ipt\"\n                        type=\"text\"\n                        placeholder=\"收货地址\"\n                      />\n                      {\n                        errors.address &&\n                        <p className=\"address-form__tip\">{errors.address}</p>\n                      }\n                    </div>\n                  )}\n                />\n                <button \n                  className=\"address-form__submit\" \n                  data-status=\"do\"\n                  type=\"submit\"\n                >提交</button>\n              </Form>\n            )}\n          />\n        }\n      </>\n    );\n  }\n}\n\nexport default AddressPopup;"],"sourceRoot":""}