{"version":3,"sources":["components/detail/group/togroup.js"],"names":["ToGroup","connect","state","user","props","invitedFriends","pdd_price","number","data","browser","isWeixin","share","setState","wxShare","title","course_title","desc","link","location","href","imgUrl","image_name","info","toCourseDetail","id","history","push","handleToGroup","isBuy","hasError","redirectURI","window","includes","index","lastIndexOf","substr","assign","encodeURIComponent","from","modal","course_id","group","pdd_order_id","pddOrderId","groupon_member","person_num","is_success","http","get","API","getParam","then","res","errno","course_info","course_list","countdown","is_buy","date","end_time","day","hours","minutes","seconds","setInterval","parseInt","padStart","msg","this","simpledescription","price0","price1","Info","className","onClick","cart","toHref","transparent","visible","footer","text","onPress","img","toDetail","GorupContent","userInfo","to","length","course","slice","map","item","weekInfo","key","Component","tip","btn","dec","groupTip","ary","num","justify","Math","random","src","avatar","alt","user_type","flag","uid"],"mappings":"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","file":"mrstaticjs/togroup.aa33cae9.chunk.js","sourcesContent":["import React, {Component} from 'react'\nimport './togroup.scss'\nimport {HeaderBar, VList} from '../../../common'\nimport {getParam, http, browser, wxShare} from \"src/utils\"\nimport {connect} from \"react-redux\"\nimport {Link} from \"react-router-dom\"\nimport {WingBlank, WhiteSpace, Flex, Toast, Modal} from 'antd-mobile'\n\n\n@connect(state => ({user: state.user}))\nclass ToGroup extends Component {\n constructor(props) {\n super(props)\n this.state = {\n data: {},\n share: false,\n pdd_price: 0,\n groupon_member: [],\n person_num: 0, // 共多少人成团\n is_success: false, // 是否拼团成功\n number: 0, // 差几人成团\n isBuy: false,\n modal: false,\n pddOrderId: ''\n }\n }\n\n invitedFriends = () => {\n const {pdd_price, number, data} = this.state\n if (browser.isWeixin) {\n let share = this.state.share\n this.setState({\n share: !share,\n })\n wxShare({\n title: `【仅剩${number}个名额】我${pdd_price}元拼了《${data.course_title}》`,\n desc: data.course_title,\n link: location.href + '&is_originator=1',\n imgUrl: data.image_name,\n })\n\n } else {\n Toast.info('请在微信中使用分享功能!', 2)\n }\n }\n\n componentDidMount() {\n http.get(`${API['base-api']}/pdd/info/${getParam('id')}`).then(res => {\n if (res.data.errno !== 0) {\n Toast.info(res.data.msg, 2)\n return\n }\n this.setState({\n data: res.data.data.course_info,\n pdd_price: res.data.data.pdd_price,\n groupon_member: res.data.data.groupon_member,\n is_success: res.data.data.is_success,\n person_num: res.data.data.person_num,\n course_list: res.data.data.course_list,\n number: res.data.data.number,\n pddOrderId: res.data.data.pdd_order_id,\n countdown: '',\n isBuy: res.data.data.is_buy\n })\n\n if (res.data.data.is_success === 0) {\n let date = res.data.data.end_time * 1000,\n day = 0,\n hours = 0,\n minutes = 0,\n seconds = 0\n setInterval(() => {\n date -= 1000\n if (res.data.data.end_time > 86400) {\n day = `${parseInt(date / (3600000 * 24))}`.padStart(2, 0)\n hours = `${parseInt((date - day * 3600000 * 24) / 3600000)}`.padStart(2, 0)\n minutes = `${parseInt((date - day * 3600000 * 24 - hours * 3600000) / 60000)}`.padStart(2, 0)\n this.setState({\n countdown: `${day}天${hours}时${minutes}分`\n })\n } else {\n hours = `${parseInt(date / (60 * 60 * 1000))}`.padStart(2, 0)\n minutes = `${parseInt((date - hours * 3600000) / 60000)}`.padStart(2, 0)\n seconds = `${parseInt((date - hours * 3600000 - minutes * 60000) / 1000)}`.padStart(2, 0)\n this.setState({\n countdown: `${hours}:${minutes}:${seconds}`\n })\n }\n }, 1000)\n }\n })\n }\n\n toCourseDetail = (id) => {\n const {history} = this.props\n history.push(`/detail?id=${id}`, {href: '/classify'})\n return false\n }\n\n handleToGroup = () => {\n const {isBuy = false, data = {}} = this.state\n const {user, history, location} = this.props\n if (user.hasError) {\n if (browser.isWeixin) {\n let redirectURI = window.location.href\n if (redirectURI.includes('code=') && redirectURI.includes('state=STATE')) {\n let index = redirectURI.lastIndexOf('code=')\n redirectURI = redirectURI.substr(0, index - 1)\n }\n window.location.assign(`https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx23dac6775ac82877&redirect_uri=${encodeURIComponent(redirectURI)}&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect`)\n } else {\n history.push('/passport', {from: location})\n }\n return\n }\n\n\n if (!isBuy) {\n history.push(\n `/order?id=${data.course_id}`,\n {\n group: 1,\n pdd_order_id: this.state.pddOrderId\n }\n )\n } else {\n this.setState({\n modal: true\n })\n }\n }\n\n render() {\n const {data: {course_id, course_title, simpledescription, price0, price1}, pdd_price, is_success, person_num, groupon_member, course_list} = this.state\n const Info = (\n <div className=\"info\">\n <p className='title' onClick={() => this.toCourseDetail(course_id)}>\n {/* <Link to={`/detail?id=${course_id}`}> */}\n {course_title}\n {/* </Link> */}\n </p>\n <p className='contact text-overflow-2'>{simpledescription}</p>\n <div className='des'>\n <p className=\"course-price\">\n <span className=\"new\">¥{price1}</span>\n <span className=\"old\">¥{price0}</span>\n </p>\n </div>\n </div>\n )\n return (\n <div className='to-group-box'>\n <HeaderBar title='拼团' cart={false} toHref={'/'}></HeaderBar>\n <Modal\n transparent\n visible={this.state.modal}\n title=\"提示\"\n footer={[\n {\n text: '确定',\n onPress: () => {\n this.setState({\n modal: false\n })\n this.props.history.push('/')\n }\n }\n ]}\n >\n <p>您已经购买过该课程~</p>\n </Modal>\n {\n !is_success &&\n <VList\n img={this.state.data.image_name}\n id={this.state.data.course_id}\n info={Info}\n toDetail={this.toCourseDetail}\n />\n }\n\n <GorupContent\n data={this.state}\n invitedFriends={this.invitedFriends}\n handleToGroup={this.handleToGroup}\n userInfo={this.props.user}\n />\n\n <WhiteSpace></WhiteSpace>\n <div className=\"group-course\">\n <div className=\"top-title\">\n <span>本周特惠</span>\n <Link to={`/preferential`} className='more'>更多<i\n className='iconfont iconiconfront-70'></i></Link>\n </div>\n {\n (course_list && course_list.length > 0) && (course_list[0].course && course_list[0].course.length > 0) && course_list[0].course.slice(0, 4).map(item => {\n\n let weekInfo = <div className=\"info\">\n <p className='title' onClick={() => this.toCourseDetail(item.course_id)}>\n {/* <Link to={`/detail?id=${item.course_id}`}> */}\n {item.course_title}\n {/* </Link> */}\n </p>\n <p className='contact text-overflow-2'>{item.simpledescription}</p>\n <div className='des'>\n <p className=\"course-price\">\n <span className=\"new\">¥{item.price1}</span>\n <span className=\"old\">¥{item.price0}</span>\n </p>\n </div>\n </div>\n return (\n <VList\n img={item.image_name}\n key={item.course_id}\n id={item.course_id}\n info={weekInfo}\n toDetail={this.toCourseDetail}\n />\n )\n })\n }\n\n </div>\n </div>\n )\n }\n}\n\nfunction GorupContent(props) {\n let tip, btn, dec, groupTip, shareTip, groupSuccessMbc\n const {pdd_price, data, groupon_member, is_success, person_num, share, number, countdown} = props.data\n const {userInfo} = props\n let ary = [], num = number\n\n while (num != 0) {\n ary.push(num)\n num--\n }\n groupTip = (<div className='group-user-list'>\n <Flex justify='center' className='imgList'>\n {\n groupon_member.map(item => {\n return (\n <div className='imgContainer' key={Math.random()}>\n <img className='imgname' src={item.avatar} alt=''/>\n {\n item.user_type === 1 ? (\n <div className='leaderFlag'>\n <span>团长</span>\n </div>\n ) : null\n }\n </div>)\n })\n }\n {\n ary.map(item => {\n return (<div className='imgContainer' key={Math.random()}>\n <div className='imgname'>\n <i className='iconfont iconwode-xianxing no-body'></i>\n </div>\n </div>)\n })\n }\n </Flex>\n </div>)\n\n if (groupon_member && groupon_member.length > 0) {\n let flag = false\n !userInfo.hasError && groupon_member.map(item => {\n if (item.uid == userInfo.data.uid) {\n flag = true\n return\n }\n })\n if (flag) {\n tip = <p className='tip'>{`拼团省¥${data.price1 - pdd_price}元`}</p>\n btn = <span className='group-btn' onClick={props.invitedFriends}>邀请好友参团 {countdown} 后结束</span>\n dec = <p className='dec'>分享到3个群后,成团率高达98%</p>\n } else {\n if (getParam('is_originator') == 1) {\n tip = <p className='tip'>{`拼团省¥${data.price1 - pdd_price}元`}</p>\n btn = <a href=\"javascript:;\" className='group-btn' onClick={props.handleToGroup}>一键参团</a>\n } else {\n tip = <p className='tip'>{`拼团省¥${data.price1 - pdd_price}元`}</p>\n btn = <span className='group-btn' onClick={props.invitedFriends}>邀请好友参团 {countdown} 后结束</span>\n dec = <p className='dec'>分享到3个群后,成团率高达98%</p>\n }\n }\n }\n\n if (is_success === 1) {\n tip = <p className='success'>拼团成功</p>\n btn = <Link to={`/detail?id=${data.course_id}`} className='tostudy'>去学习</Link>\n }\n return (\n <div className='gorup-content'>\n {\n share ? (\n <div className='groupSuccessMbc' onClick={props.invitedFriends}>\n <div className='tipContent'>\n\n {`还差${number}人,分享到3个群,成团率高达98%`}\n </div>\n <div className='tipArrow'>\n <i className='iconfont iconyindao'></i>\n </div>\n </div>\n ) : null\n }\n\n {tip}\n <WingBlank>\n {groupTip}\n </WingBlank>\n <WingBlank>\n {btn}\n </WingBlank>\n {dec}\n {\n !is_success &&\n <div className=\"group-dec\">\n <span>\n <i className='iconfont iconiconfront-1'></i>\n ·好友参团 ·人满成交 ·人不满退款\n </span>\n <span className='allNum'>{`累计${person_num}人成团`}</span>\n </div>\n }\n </div>\n )\n}\n\nexport default ToGroup\n"],"sourceRoot":""}