59.c7ff4233.chunk.js.map 15.8 KB
Newer Older
zhanghaozhe committed
1
{"version":3,"sources":["components/activity/give-courses/share-content/poster/poster.js","components/activity/give-courses/share-content/prizes/prizes.js","components/activity/give-courses/share-content/index.js"],"names":["Poster","state","redirectUrl","backgroundUrl","avatar","username","poster","_this","props","generatePoster","_callee","canvas","ctx","posterWidth","canvasWidth","_this$state","bg","r","avatarImage","qrcode","regenerator_default","a","wrap","_context","prev","next","document","createElement","getContext","getImage","sent","style","width","height","drawImage","save","beginPath","arc","Math","PI","clip","restore","font","fillStyle","fillText","getQRCodeCanvas","setState","toDataURL","savePoster","stop","url","Promise","resolve","img","Image","setAttribute","onload","this","src","text","codeSize","window","innerWidth","concat","QRCode","toCanvas","_this2","http","get","API","getParam","then","res","_res$data","data","errno","msg","head_img","user_name","m_redirect_code","background_img_url","toast_default","info","react_default","id","className","alt","Component","Prizes","list","isShowRule","rankList","getRankingList","saveRankingList","rankingList","console","log","length","map","item","index","key","onClick","padding","cellSpacing","cellPadding","border","name","num","fontSize","color","display","ShareContent","activeIndex","tabs","share_content_poster_poster","prizes_prizes","WithFullSize"],"mappings":"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","file":"mrstatic/js/59.c7ff4233.chunk.js","sourcesContent":["import React, { Component } from 'react'\nimport QRCode from \"qrcode\"\nimport './poster.scss'\nimport { getParam, http } from \"@/utils\"\nimport { Toast } from \"antd-mobile\"\n\nfunction showToast(text) {\n  Toast.info(text, 2, null, false)\n}\n\nclass Poster extends Component {\n\n  state = {\n    redirectUrl: '',\n    backgroundUrl: '',\n    avatar: '',\n    username: '',\n    poster: this.props.poster,\n  }\n\n  componentDidMount() {\n    const {poster} = this.props\n    if (!poster) {\n      http.get(`${API[\"base-api\"]}/assistance/active_haibao_info/${getParam('assis_word')}`)\n        .then(res => {\n          const {data, errno, msg} = res.data\n          if (errno === 200) {\n\n            this.setState({\n              avatar: data.head_img,\n              username: data.user_name,\n              redirectUrl: data.m_redirect_code,\n              backgroundUrl: data.background_img_url\n            }, () => {\n              this.generatePoster()\n            })\n\n          } else {\n            showToast(msg)\n          }\n        })\n    }\n\n  }\n\n\n  generatePoster = async () => {\n    let canvas = document.createElement('canvas'),\n      ctx = canvas.getContext('2d'),\n      posterWidth = 270,\n      canvasWidth = 540\n\n    const {backgroundUrl, avatar, username, redirectUrl} = this.state\n\n\n    const bg = await this.getImage(backgroundUrl)\n    canvas.style.width = posterWidth + 'px'\n    canvas.style.height = posterWidth * bg.height / bg.width + 'px'\n    canvas.width = canvasWidth\n    canvas.height = canvasWidth * bg.height / bg.width\n\n    ctx.drawImage(bg, 0, 0, canvas.width, canvas.height)\n\n    let r = 33\n    const avatarImage = await this.getImage(avatar)\n    const ax = 40\n    const ay = 16\n    ctx.save()\n    ctx.beginPath()\n    ctx.arc(ax + r, ay + r, r, 0, Math.PI * 2)\n    ctx.clip()\n    ctx.drawImage(avatarImage, ax, ay, 66, 66)\n    ctx.restore()\n\n\n    ctx.font = `24px serif`\n    ctx.fillStyle = '#fff'\n    ctx.fillText(username, 2 * r + ax + 10, ay + r - 5)\n\n    let qrcode = await this.getQRCodeCanvas(redirectUrl, posterWidth)\n    ctx.drawImage(qrcode, 380, 796, 140, 140)\n\n\n    this.setState({\n      poster: canvas.toDataURL()\n    }, () => {\n      const {savePoster} = this.props\n      savePoster && savePoster(this.state.poster)\n    })\n  }\n\n\n  getImage = url => {\n    return new Promise(resolve => {\n      const img = new Image()\n      img.setAttribute('crossOrigin', 'anonymous')\n      img.onload = function () {\n        resolve(this)\n      }\n      img.src = url\n    })\n  }\n\n  getQRCodeCanvas = (text, posterWidth) => {\n    const canvas = document.createElement('canvas')\n    let codeWidth = 100, codeHeight = 100,\n      codeSize = posterWidth * (100 / (window.innerWidth * 0.72))\n\n\n    canvas.style.width = `${codeSize}px`\n    canvas.style.height = `${codeSize}px`\n    canvas.width = codeWidth\n    canvas.height = codeHeight\n\n    return QRCode.toCanvas(canvas, text)\n  }\n\n  render() {\n    const {poster} = this.state\n    return (\n      <div id='poster'>\n        <div className=\"placard-desc\">\n          长按下方海报,分享给好友~\n        </div>\n        <div className=\"total-container\">\n          <div className=\"placard-img-container\" id='imgWrapper'>\n            <img src={poster} alt='分享海报'/>\n          </div>\n        </div>\n      </div>\n    )\n  }\n}\n\nexport default Poster\n","import React, { Component } from 'react'\nimport './prizes.scss'\nimport { http } from \"@/utils\"\nimport { Toast } from \"antd-mobile\"\n\n\nfunction showToast(text) {\n  Toast.info(text, 2, null, false)\n}\n\nclass Prizes extends Component {\n\n  state = {\n    list: [\n      'https://julyedu-cdn.oss-cn-beijing.aliyuncs.com/newyear20/H5/prize-1.png',\n      'https://julyedu-cdn.oss-cn-beijing.aliyuncs.com/newyear20/H5/prize-2.png',\n      'https://julyedu-cdn.oss-cn-beijing.aliyuncs.com/newyear20/H5/prize-3.png',\n      'https://julyedu-cdn.oss-cn-beijing.aliyuncs.com/newyear20/H5/prize-4.png',\n      'https://julyedu-cdn.oss-cn-beijing.aliyuncs.com/newyear20/H5/prize-5.png',\n      'https://julyedu-cdn.oss-cn-beijing.aliyuncs.com/newyear20/H5/prize-6.png',\n    ],\n    isShowRule: false,\n    rankList: []\n  }\n\n  componentDidMount() {\n    const {rankingList} = this.props\n    console.log(rankingList)\n    if (!rankingList || !rankingList.length) {\n      this.getRankingList()\n    } else {\n      this.setState({\n        rankingList\n      })\n    }\n  }\n\n\n  getRankingList = () => {\n    const {saveRankingList} = this.props\n    http.get(`${API[\"base-api\"]}/assistance/ranking_list/50`)\n      .then(res => {\n        const {data, msg, errno} = res.data\n        if (errno === 200) {\n\n          this.setState({\n            rankList: data.list\n          })\n\n          saveRankingList && saveRankingList(data.list)\n\n        } else {\n          showToast(msg)\n        }\n      })\n  }\n\n  render() {\n    const {\n      list,\n      rankList,\n      isShowRule\n    } = this.state\n    return (\n      <div id={'prizes'}>\n        <div className=\"content\">\n          <i className=\"part-title__decorate\"/>\n          <div className=\"part-title__txt\">活动奖品</div>\n          <i className=\"part-title__decorate\"/>\n\n          <div className=\"prize-img\">\n            {\n              list.map((item, index) => {\n                return (\n                  <div className='img-box' key={index}>\n                    <img src={item} alt=\"\"/>\n                  </div>\n                )\n              })\n            }\n          </div>\n\n          <span className=\"rule\" onClick={() => {\n            this.setState({isShowRule: true})\n          }}>活动规则</span>\n        </div>\n\n        <div className=\"content\" style={{padding: `20px 0 30px 0`}}>\n          <i className=\"part-title__decorate\"/>\n          <div className=\"part-title__txt\">排行榜</div>\n          <i className=\"part-title__decorate\"/>\n\n          <div className=\"tip\">\n            数据实时更新 只显示Top50\n          </div>\n\n          <table className=\"ranking\" cellSpacing=\"0\" cellPadding=\"0\" border=\"0\">\n            <thead>\n            <tr>\n              <td>排名</td>\n              <td>用户名称</td>\n              <td>邀请人数</td>\n            </tr>\n            </thead>\n            <tbody>\n            {\n              rankList.map((item, index) => {\n                return (\n                  <tr key={index}>\n                    <td>{index + 1}</td>\n                    <td>{item.name}</td>\n                    <td>{item.num}</td>\n                  </tr>\n                )\n              })\n            }\n            </tbody>\n          </table>\n        </div>\n\n        {\n          isShowRule ?\n            <div className=\"mbc-box\">\n              <div className=\"rele-content\">\n                <div className=\"title\">活动规则</div>\n                <p>1、进入七月在线服务号<a\n                  style={{fontSize: `16px`, color: `rgba(47, 248, 255, 1)`, display: `inline-block`}}>回复77</a>获取活动海报,将上方课程赠送给好友,每有1名好友领取后,您和好友均可免费学习1课时该课;\n                </p>\n                <p>2、每多1名好友领取,您获得的课时数+1,直到获得全部课时,届时仍可赠送给好友;</p>\n                <p>3、活动结束后,邀请好友数超过50人且排行榜前20名用户会得到<a\n                  style={{fontSize: `16px`, color: `rgba(47, 248, 255, 1)`, display: `inline-block`}}>19VIP年会员、樱桃键盘</a>等大奖。\n                </p>\n              </div>\n              <img className=\"close\"\n                   onClick={() => {this.setState({isShowRule: false})}}\n                   src=\"https://julyedu-cdn.oss-cn-beijing.aliyuncs.com/newyear20/H5/close-btn.png\" alt=\"\"/>\n            </div>\n            : null\n        }\n\n\n      </div>\n    )\n  }\n}\n\nexport default Prizes\n","import React, { Component } from 'react'\nimport './share-content.scss'\nimport Poster from \"./poster/poster\"\nimport Prizes from './prizes/prizes'\nimport {WithFullSize} from '@/HOCs'\n\n\nclass ShareContent extends Component {\n\n  state = {\n    activeIndex: 0,\n    tabs: ['分享海报', '活动奖品'],\n    poster: '',\n    rankingList: []\n  }\n\n  render() {\n    const {\n      tabs,\n      activeIndex,\n      poster,\n      rankingList\n    } = this.state\n    return (\n      <div id={'share-content'}>\n        <ul className=\"tab\">\n          {\n            tabs.map((item, index) => {\n              return (\n                <li key={index} className={activeIndex === index ? 'active' : ''} onClick={() => {\n                  this.setState({activeIndex: index})\n                }}>{item}</li>\n              )\n            })\n          }\n        </ul>\n        {\n          activeIndex === 0\n            ? <Poster\n              poster={poster}\n              savePoster={poster => {\n                this.setState({poster})\n              }}/>\n            : <Prizes rankingList={rankingList} saveRankingList={rankingList => {this.setState({rankingList})}}/>\n        }\n      </div>\n    )\n  }\n}\n\n\nexport default WithFullSize(ShareContent)\n"],"sourceRoot":""}