{"version":3,"sources":["components/blessingPreheat/courseItem/index.js","components/activity/newyear-2019/common/commonContainer/index.js","components/activity/newyear-2019/common/prizes/index.js","components/activity/newyear-2019/common/user-bullet-screen/index.js","components/activity/newyear-2019/common/commonPopup/index.js","components/activity/newyear-2019/preheat/YearCourse/index.js"],"names":["CourseItem","props","startCountDown","time","date","hours","minutes","seconds","setInterval","parseInt","padStart","setState","countdown","state","this","nextProps","newTime","image","toCourse","id","className","src","alt","onClick","children","Component","CommonContainer","title","React","Children","map","child","SystemBulletScreen","Loadable","Prizes","closeIcon","prizes","notices","rule","unfoldList","getPrizes","http","get","API","home","then","res","data","code","msg","info","showRules","Popup","content","dangerouslySetInnerHTML","__html","showMore","prev","bg","style","innerBox","prizeBox","headHeight","parseFloat","getComputedStyle","getPropertyValue","footerHeight","h","prizeList","scrollHeight","scrollListHeight","height","showSystemNotices","length","bullets","ref","el","href","item","index","key","img_name","backgroundImage","is_captain","mode","stage_no","grant_max","width","surplus","UserBulletScreen","bulletScreenData","initializeBulletScreen","_this","indexArray","Array","slidesPerRequest","keys","removed","swiper","Swiper","direction","allowTouchMove","autoplay","on","transitionEnd","slides","removeSlide","start","activeIndex","stop","getBulletScreenData","appendSlide","getSlides","setTimeout","list","avatar_file","user_name","initializeSwiper","destroy","computedStyle","top","closePopup","mark","e","stopPropagation","YearCourse","connect","user","getLength","sum","fetchBigCourse","bigcourse","Object","assign","isMore","course","courseList","fetchFreeCourse","freecourse","errno","course_info","filter","fetchGroupCourse","groupcourse","fetchAICourse","addshowMore","getList","basic","advanced","higher","expand","toQQque","getParam","SendMessageToApp","window","location","courseId","history","push","handleToMore","toLogin","freeStudy","tofreeStudy","closePopupWish","isshowFollow","toJoinList","wish","getQRcodeUrl","uid","qrUrl","url","QRCode","toDataURL","err","followBarcode","addWishList","isLogin","hasError","isFollow","is_follow","post","course_id","success","saveImage","version","replace","slice","QRCodeUrl","saveImage2","getTeamInfo","removable_data","removable","currentId","toBoxList","search","toYearWish","toInviteFriends","oid","params","number","price","course_title","desc","link","m","imgUrl","image_name","isCountDown","condition","val","formatTitleAndKey","formatCourseData","toCart","toContinueBargain","bargainToOrder","bargain","nextState","nextContext","isAppUpdate","stage","Number","is_vip","is_buy","is_audition","data-stage","is_assemble","add_time","data-status","data-color","price1","progress","order_id","Fragment","type","end_time","already_bargain","original_price","pdd_price","low_prize","data-layout","bargain_code","actual_payment","is_join","price2","browser","isAndroidApp","withRouter"],"mappings":"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","file":"mrstaticjs/2.2f8131f4.chunk.js","sourcesContent":["/* eslint-disable eqeqeq */\nimport React, { Component } from \"react\"\nimport \"./index.scss\"\n\nclass CourseItem extends Component {\n constructor(props) {\n super(props)\n this.state = {\n countdown: \"\",\n }\n }\n\n componentDidMount() {\n const { time } = this.props\n this.startCountDown(time)\n }\n\n componentWillReceiveProps(nextProps) {\n const { time: newTime } = nextProps\n const { time: oldTime } = this.props\n if (oldTime != newTime) {\n this.startCountDown(newTime)\n }\n }\n\n startCountDown = (time) => {\n if (time) {\n let date = time * 1000,\n hours = 0,\n minutes = 0,\n seconds = 0\n setInterval(() => {\n date -= 1000\n hours = `${parseInt(date / (60 * 60 * 1000))}`.padStart(2, 0)\n minutes = `${parseInt((date - hours * 3600000) / 60000)}`.padStart(2, 0)\n seconds = `${parseInt(\n (date - hours * 3600000 - minutes * 60000) / 1000\n )}`.padStart(2, 0)\n this.setState({\n countdown: `${hours}时${minutes}分${seconds}秒后结束`,\n })\n }, 1000)\n }\n }\n\n render() {\n const { image, toCourse, id } = this.props\n const { countdown } = this.state\n return (\n <div className=\"course-container\">\n <div className=\"course__cover\">\n {countdown && <p className=\"course__time\">{countdown}</p>}\n <img src={image} alt=\"cover\" onClick={() => toCourse(id)} />\n </div>\n {this.props.children}\n </div>\n )\n }\n}\n\nexport default CourseItem\n","import React, { Component } from \"react\"\nimport \"./index.scss\"\n\nexport default class CommonContainer extends Component {\n render() {\n const { id } = this.props\n return (\n <div className=\"common_container\" id={id}>\n <div className=\"container_top\"></div>\n <div className=\"container_content\">\n {this.props.title && (\n <div className=\"title_container\">\n <i></i>\n <p>{this.props.title}</p>\n <i></i>\n </div>\n )}\n {React.Children.map(this.props.children, function (child) {\n return <>{child}</>\n })}\n </div>\n <div className=\"container_bottom\"></div>\n </div>\n )\n }\n}\n","/* eslint-disable eqeqeq, jsx-a11y/anchor-is-valid, no-script-url */\nimport React, { Component } from \"react\"\nimport { http } from \"src/utils\"\nimport \"./prizes.scss\"\nimport { Popup } from \"src/common/index\"\nimport { Toast } from \"antd-mobile\"\n\nimport Loadable from \"@loadable/component\"\n\nconst SystemBulletScreen = Loadable(() =>\n import(\n /* webpackChunkName: 'system-notices' */ \"src/components/activity/newyear-2019/common/system-bullet-screen\"\n )\n)\n\nclass Prizes extends Component {\n prizeBox\n prizeList\n bg\n innerBox\n closeIcon =\n \"https://julyedu-cdn.oss-cn-beijing.aliyuncs.com/newyear20/H5/close-btn.png\"\n\n state = {\n prizes: [],\n notices: [],\n rule: [],\n unfoldList: false,\n }\n\n componentDidMount() {\n this.getPrizes()\n }\n\n getPrizes = () => {\n http.get(`${API.home}/sys/prize_data`).then((res) => {\n const { code, data, msg } = res.data\n if (code == 200) {\n this.setState({\n prizes: data[\"prize_data\"],\n notices: data[\"notices\"],\n rule: data[\"rule\"],\n })\n } else {\n Toast.info(msg, 2, null, false)\n }\n })\n }\n\n showRules = () => {\n Popup({\n title: \"组队开宝箱活动规则\",\n className: \"landing-treasure-rules\",\n content: <div dangerouslySetInnerHTML={{ __html: this.state.rule }} />,\n closeIcon: this.closeIcon,\n })\n }\n\n showMore = () => {\n this.setState((prev) => {\n if (this.state.unfoldList) {\n this.bg.style = this.innerBox.style = this.prizeBox.style = \"\"\n } else {\n let headHeight = parseFloat(\n getComputedStyle(this.prizeBox, \":before\").getPropertyValue(\n \"height\"\n )\n ),\n footerHeight = parseFloat(\n getComputedStyle(this.prizeBox, \":after\").getPropertyValue(\"height\")\n ),\n innerOffsetTop = 0.12458,\n footerOffsetTop = 0.595,\n h = this.prizeList.scrollHeight,\n scrollListHeight =\n headHeight +\n h -\n innerOffsetTop * headHeight -\n footerOffsetTop * footerHeight +\n footerHeight,\n bottomOffset = 27\n\n this.prizeBox.style.height = `${scrollListHeight + bottomOffset}px`\n this.innerBox.style.height = `${h}px`\n this.bg.style.height = `${\n h - footerHeight + innerOffsetTop * headHeight + bottomOffset\n }px`\n }\n return { unfoldList: !prev.unfoldList }\n })\n }\n\n render() {\n const { showSystemNotices } = this.props\n const { notices } = this.state\n return (\n <>\n {showSystemNotices && notices && notices.length ? (\n <SystemBulletScreen bullets={notices} />\n ) : null}\n <div className={\"prizes-box\"} ref={(el) => (this.prizeBox = el)}>\n <a href=\"javascript:;\" className=\"rule-btn\" onClick={this.showRules}>\n 活动规则 >{\" \"}\n </a>\n <div className={`bg`} ref={(el) => (this.bg = el)} />\n <div className={`inner-box`} ref={(el) => (this.innerBox = el)}>\n <ul className=\"prize-list\" ref={(el) => (this.prizeList = el)}>\n {this.state.prizes.map((item, index) => {\n return (\n <li key={index}>\n {item.img_name ? (\n <i\n className=\"prize-list__image\"\n style={{\n backgroundImage: `url(${item.img_name})`,\n }}\n />\n ) : (\n <i className=\"prize-list__image\" />\n )}\n {/* <img src={item.img_name} alt=\"\"/> */}\n {item.is_captain != 0 && (\n <span className=\"captain top-tag\">队长专属</span>\n )}\n {item.mode === 2 && (\n <span className=\"stage top-tag\">\n 第{item.stage_no}个必中\n </span>\n )}\n {item.grant_max ? (\n <div className=\"bottom-bar\">\n <div className=\"progress-bar\">\n <span\n className={\"progress\"}\n style={{\n width: `${\n (item.surplus / item.grant_max) * 100\n }%`,\n }}\n />\n </div>\n <span>限量{item.grant_max}份</span>\n </div>\n ) : (\n <span className=\"no-limit\">不限量</span>\n )}\n </li>\n )\n })}\n <li>\n <img\n src=\"https://julyedu-cdn.oss-cn-beijing.aliyuncs.com/newyear20/prize-placeholder.png\"\n alt=\"\"\n />\n </li>\n </ul>\n </div>\n <div className=\"show-more\" onClick={this.showMore}>\n {this.state.unfoldList ? (\n <div>\n 收起\n <img\n src=\"https://julyedu-cdn.oss-cn-beijing.aliyuncs.com/newyear20/H5/fold-icon.png\"\n alt=\"\"\n />\n </div>\n ) : (\n <div>\n 查看全部奖品\n <img\n src=\"https://julyedu-cdn.oss-cn-beijing.aliyuncs.com/newyear20/H5/unfold-icon.png\"\n alt=\"\"\n />\n </div>\n )}\n </div>\n </div>\n </>\n )\n }\n}\n\nexport default Prizes\n","import React, { Component } from \"react\"\nimport { http } from \"src/utils\"\nimport Swiper from \"swiper\"\nimport \"swiper/dist/css/swiper.min.css\"\nimport \"./bullet-screen.scss\"\n\nclass UserBulletScreen extends Component {\n swiper\n\n state = {\n bulletScreenData: [],\n }\n\n componentDidMount() {\n this.getBulletScreenData(true)\n }\n\n componentWillUnmount() {\n this.swiper && this.swiper.destroy()\n }\n\n initializeBulletScreen = () => {\n const _this = this\n const slidesPerRequest = 20\n const indexArray = [...Array(slidesPerRequest - 1).keys()]\n let removed = false\n this.swiper = new Swiper(\".swiper-container\", {\n direction: \"vertical\",\n allowTouchMove: false,\n autoplay: true,\n on: {\n transitionEnd() {\n if (this.slides.length > slidesPerRequest) {\n this.removeSlide(0)\n this.autoplay.start()\n }\n if (this.activeIndex === this.slides.length - 1 && !removed) {\n this.autoplay.stop()\n _this.getBulletScreenData().then((res) => {\n removed = true\n this.removeSlide(indexArray)\n this.appendSlide(_this.getSlides(res))\n setTimeout(() => {\n this.autoplay.start()\n removed = false\n })\n })\n }\n },\n },\n })\n }\n\n getSlides = (list) =>\n list.map((item) => {\n return `\n <li class=\"swiper-slide\">\n <img class=\"avatar\" src=\"${item.avatar_file}\" alt=\"\">\n <span>${item.user_name} ${item.msg}</span>\n </li>\n `\n })\n\n getBulletScreenData = (initializeSwiper = false) => {\n return http.get(`${API.home}/sys/barrage_data`).then((res) => {\n const { data, code } = res.data\n if (code === 200) {\n if (initializeSwiper) {\n this.setState(\n {\n bulletScreenData: data,\n },\n () => {\n this.initializeBulletScreen()\n }\n )\n } else {\n return data\n }\n }\n })\n }\n\n render() {\n const { bulletScreenData } = this.state\n return (\n <div id=\"user-bullet-screen\" className=\"swiper-container\">\n <ul className=\"swiper-wrapper\">\n {bulletScreenData.length &&\n bulletScreenData.map((item, index) => {\n return (\n <li className=\"swiper-slide\" key={index}>\n <img src={item[\"avatar_file\"]} alt=\"\" className=\"avatar\" />\n <span>\n {item.user_name} {item.msg}\n </span>\n </li>\n )\n })}\n </ul>\n </div>\n )\n }\n}\n\nexport default UserBulletScreen\n","import React, { Component } from \"react\"\nimport \"./index.scss\"\n\nexport default class index extends Component {\n computedStyle = () => {\n return {\n top: `${this.props.top}px`,\n width: `${this.props.width}px`,\n }\n }\n\n // 控制点击空白处是否关闭弹窗 需要传递一个boolean属性 mark\n closePopup = () => {\n if (this.props.mark) {\n this.props.closePopup()\n }\n }\n\n render() {\n return (\n <div className=\"popup__container\" onClick={this.closePopup}>\n <div\n className=\"content__container\"\n style={this.computedStyle()}\n onClick={(e) => {\n e.stopPropagation()\n }}\n >\n <img\n className=\"close__btn\"\n onClick={this.props.closePopup}\n src=\"https://julyedu-cdn.oss-cn-beijing.aliyuncs.com/newyear20/H5/close-btn.png\"\n alt=\"\"\n />\n {React.Children.map(this.props.children, function (child) {\n return <>{child}</>\n })}\n </div>\n </div>\n )\n }\n}\n","/* eslint-disable jsx-a11y/anchor-is-valid, eqeqeq */\nimport React, { Component } from \"react\"\nimport \"./index.scss\"\nimport { http, SendMessageToApp, getParam, browser } from \"src/utils\"\nimport CommonContainer from \"./../../common/commonContainer/index\"\nimport CourseItem from \"../../../../blessingPreheat/courseItem/index\"\nimport { withRouter } from \"react-router-dom\"\nimport CommonPopup from \"./../../common/commonPopup/index\"\nimport { Toast } from \"antd-mobile\"\nimport QRCode from \"qrcode\"\nimport { connect } from \"react-redux\"\n\n@connect((state) => ({\n user: state.user,\n}))\nclass YearCourse extends Component {\n constructor(props) {\n super(props)\n this.state = {\n tofreeStudy: false,\n basic: {\n course: [],\n courseList: [],\n isMore: false,\n addshowMore: false,\n },\n advanced: {\n course: [],\n courseList: [],\n isMore: false,\n addshowMore: false,\n },\n higher: {\n course: [],\n courseList: [],\n isMore: false,\n addshowMore: false,\n },\n expand: {\n course: [],\n courseList: [],\n isMore: false,\n addshowMore: false,\n },\n bigcourse: {\n course: [],\n courseList: [],\n isMore: false,\n },\n freecourse: {\n course: [],\n courseList: [],\n isMore: false,\n },\n groupcourse: {\n course: [],\n courseList: [],\n isMore: false,\n },\n isshowFollow: false, // 是否提示关注公众号\n wish: {\n id: \"\",\n key: \"\",\n },\n followBarcode: \"\",\n qrUrl: \"\",\n sum: \"\",\n removable: \"\",\n currentId: \"\",\n }\n }\n\n componentDidMount() {\n this.getTeamInfo()\n this.getLength()\n this.fetchBigCourse()\n // this.fetchFreeCourse()\n this.fetchGroupCourse()\n // AI之路-基础\n this.fetchAICourse(\"one\", false)\n // AI之路-进阶\n this.fetchAICourse(\"two\", false)\n // AI之路-高阶\n this.fetchAICourse(\"three\", false)\n // AI之路-拓展\n this.fetchAICourse(\"four\", false)\n }\n\n shouldComponentUpdate(nextProps, nextState, nextContext) {\n if (this.props.isAppUpdate !== nextProps.isAppUpdate) {\n this.getTeamInfo()\n this.getLength()\n this.fetchBigCourse()\n // this.fetchFreeCourse()\n this.fetchGroupCourse()\n // AI之路-基础\n this.fetchAICourse(\"one\")\n // AI之路-进阶\n this.fetchAICourse(\"two\")\n // AI之路-高阶\n this.fetchAICourse(\"three\")\n // AI之路-拓展\n this.fetchAICourse(\"four\")\n return false\n }\n return true\n }\n\n getLength = () => {\n let _this = this\n http.get(`${API.home}/activity/wish_sum`).then((res) => {\n const { code, data } = res.data\n if (code === 200) {\n _this.setState({\n sum: data.sum,\n })\n }\n })\n }\n\n fetchBigCourse = () => {\n const { bigcourse } = this.state\n http.get(`${API.home}/activity/preheat_data`).then((res) => {\n const { code, data } = res.data\n if (code === 200) {\n this.setState({\n bigcourse: Object.assign({}, bigcourse, {\n isMore: false,\n course: data,\n courseList: data,\n }),\n })\n }\n })\n }\n fetchFreeCourse = () => {\n const { freecourse } = this.state\n http.get(`${API[\"base-api\"]}/assistance/detail`).then((res) => {\n const { errno, data } = res.data\n if (errno === 200) {\n this.setState({\n freecourse: Object.assign({}, freecourse, {\n isMore: data.course_info.length > 4 ? true : false,\n course:\n data.course_info.length > 4\n ? data.course_info.filter((item, index) => index < 4)\n : data.course_info,\n courseList: data.course_info,\n }),\n })\n }\n })\n }\n\n fetchGroupCourse = () => {\n const { groupcourse } = this.state\n http.get(`${API.home}/activity/excellent_course`).then((res) => {\n const { code, data } = res.data\n if (code === 200) {\n this.setState({\n groupcourse: Object.assign({}, groupcourse, {\n isMore: data.length > 4 ? true : false,\n course:\n data.length > 4 ? data.filter((item, index) => index < 4) : data,\n courseList: data,\n }),\n })\n }\n })\n }\n\n fetchAICourse = (key, addshowMore) => {\n http.get(`${API.home}/activity/four_stage/${key}`).then((res) => {\n const { code, data } = res.data\n if (code === 200) {\n this.getList(key, data, addshowMore)\n }\n })\n }\n\n getList = (key, data, addshowMore) => {\n const { basic, advanced, higher, expand } = this.state\n if (key === \"one\") {\n this.setState({\n basic: Object.assign({}, basic, {\n isMore: data.length > 4 && !addshowMore ? true : false,\n course:\n data.length > 4 && !addshowMore\n ? data.filter((item, index) => index < 4)\n : data,\n courseList: data,\n addshowMore: addshowMore,\n }),\n })\n }\n if (key === \"two\") {\n this.setState({\n advanced: Object.assign({}, advanced, {\n isMore: data.length > 4 && !addshowMore ? true : false,\n course:\n data.length > 4 && !addshowMore\n ? data.filter((item, index) => index < 4)\n : data,\n courseList: data,\n addshowMore: addshowMore,\n }),\n })\n }\n if (key === \"three\") {\n this.setState({\n higher: Object.assign({}, higher, {\n isMore: data.length > 4 && !addshowMore ? true : false,\n course:\n data.length > 4 && !addshowMore\n ? data.filter((item, index) => index < 4)\n : data,\n courseList: data,\n addshowMore: addshowMore,\n }),\n })\n }\n if (key === \"four\") {\n this.setState({\n expand: Object.assign({}, expand, {\n isMore: data.length > 4 && !addshowMore ? true : false,\n course:\n data.length > 4 && !addshowMore\n ? data.filter((item, index) => index < 4)\n : data,\n courseList: data,\n addshowMore: addshowMore,\n }),\n })\n }\n }\n\n toQQque = () => {\n if (!getParam(\"version\")) {\n window.location.href = \"http://q.url.cn/s/Vbkup6m?_type=wpa\"\n } else {\n SendMessageToApp(\"toQQ\", \"https://q.url.cn/AB8aue?_type=wpa&qidian=true\")\n }\n }\n\n // 去课程详情页\n toCourse = (courseId) => {\n const { history } = this.props\n if (!getParam(\"version\")) {\n history.push(`/detail?id=${courseId}`)\n } else {\n SendMessageToApp(\"toCourse\", courseId)\n }\n }\n\n handleToMore = (key) => {\n let data = {}\n if (this.state[key][\"isMore\"]) {\n data[key] = {\n isMore: !this.state[key][\"isMore\"],\n course: this.state[key][\"courseList\"],\n courseList: this.state[key][\"courseList\"],\n addshowMore: !this.state[key][\"addshowMore\"],\n }\n this.setState({\n ...data,\n })\n } else {\n data[key] = {\n isMore: !this.state[key][\"isMore\"],\n course: this.state[key][\"courseList\"].filter(\n (item, index) => index < 4\n ),\n courseList: this.state[key][\"courseList\"],\n addshowMore: !this.state[key][\"addshowMore\"],\n }\n\n this.setState({\n ...data,\n })\n }\n }\n\n // 去登录\n toLogin = () => {\n if (!getParam(\"version\")) {\n this.props.history.push(\"/passport/login\")\n } else {\n SendMessageToApp(\"toLogin\")\n }\n }\n\n // 免费学习\n freeStudy = () => {\n this.setState({\n tofreeStudy: true,\n })\n }\n\n // 关闭弹框\n closePopup = () => {\n this.setState({\n tofreeStudy: false,\n })\n }\n\n closePopupWish = () => {\n const _this = this\n _this.setState({\n isshowFollow: false,\n })\n\n setTimeout(function () {\n _this.toJoinList(_this.state.wish.id, _this.state.wish.key)\n }, 200)\n }\n\n getQRcodeUrl = () => {\n let _this = this\n http\n .get(\n `${API[\"base-api\"]}/wx/user_temporary_qrcode/${_this.props.user.data.uid}`\n )\n .then((res) => {\n const { errno, data, msg } = res.data\n if (errno === 0) {\n this.setState({\n qrUrl: data.url,\n })\n QRCode.toDataURL(data.url, (err, url) => {\n this.setState({\n followBarcode: url,\n })\n })\n } else {\n Toast.info(msg, 2)\n }\n })\n }\n\n // 点击加入心愿单登录验证,在判断是否关注公众号,已关注的话直接加入,未关注弹出二维码弹窗,点击关闭按钮加入心愿单\n addWishList = (id, key) => {\n const _this = this\n const isLogin = !this.props.user.hasError\n _this.setState({\n wish: {\n id: id,\n key: key,\n },\n })\n\n if (isLogin) {\n _this.isFollow(id, key)\n } else {\n _this.toLogin()\n }\n }\n\n isFollow = (id, key) => {\n const _this = this\n http.get(`${API.home}/sys/user/isFollowWeChat`).then((res) => {\n const { code, data, msg } = res.data\n if (code === 200) {\n _this.setState({\n isshowFollow: !data.is_follow,\n })\n\n if (!_this.state.isshowFollow) {\n _this.toJoinList(id, key)\n } else {\n _this.getQRcodeUrl()\n }\n } else {\n Toast.info(msg, 2)\n }\n })\n }\n\n toJoinList = (id, key) => {\n const _this = this\n http\n .post(`${API.home}/activity/join_list`, { course_id: id })\n .then((res) => {\n const { code, msg } = res.data\n if (code === 200) {\n Toast.success(\"已成功加入心愿单\", 3)\n _this.getLength()\n if (key === \"1\") {\n _this.fetchAICourse(\"one\", _this.state.basic.addshowMore)\n }\n if (key === \"2\") {\n _this.fetchAICourse(\"two\", _this.state.advanced.addshowMore)\n }\n if (key === \"3\") {\n _this.fetchAICourse(\"three\", _this.state.higher.addshowMore)\n }\n if (key === \"4\") {\n _this.fetchAICourse(\"four\", _this.state.expand.addshowMore)\n }\n if (key === \"group\") {\n _this.fetchGroupCourse()\n }\n } else {\n Toast.info(msg, 2)\n }\n })\n }\n\n // 安卓手机保存二维码\n saveImage = () => {\n let version = getParam(\"version\")\n version =\n typeof version === \"string\"\n ? version.replace(\".\", \"\").replace(\".\", \"\").slice(0, 3)\n : \"\"\n const QRCodeUrl = this.state.qrUrl\n if (version && parseInt(version) < 451) {\n Toast.info(\n \"当前不支持此功能,升级到最新版本app可以点击保存二维码!\",\n 3,\n null,\n false\n )\n } else {\n SendMessageToApp(\"generateQRCode\", QRCodeUrl)\n }\n }\n\n saveImage2 = () => {\n let version = getParam(\"version\")\n version =\n typeof version === \"string\"\n ? version.replace(\".\", \"\").replace(\".\", \"\").slice(0, 3)\n : \"\"\n const QRCodeUrl =\n \"https://julyedu-cdn.oss-cn-beijing.aliyuncs.com/2018christyear/h5/qrcode.jpg\"\n if (version && parseInt(version) < 451) {\n Toast.info(\n \"当前不支持此功能,升级到最新版本app可以点击保存二维码!\",\n 3,\n null,\n false\n )\n } else {\n SendMessageToApp(\"saveImage\", QRCodeUrl)\n }\n }\n\n // 获取队伍信息\n getTeamInfo = () => {\n http.get(`${API.home}/sys/treasure/teamInfo`).then((res) => {\n const { code, data, msg } = res.data\n if (code === 200) {\n const { info, removable_data } = data\n this.setState({\n removable: info.removable,\n currentId: info.removable > 0 ? removable_data[0].id : null,\n })\n } else {\n Toast.info(msg)\n }\n })\n }\n\n // 跳转到我的宝箱列表页\n toBoxList = () => {\n const isLogin = !this.props.user.hasError\n const { currentId } = this.state\n let search = \"\"\n if (currentId) {\n search = `?id=${currentId}`\n }\n if (isLogin) {\n if (!getParam(\"version\")) {\n this.props.history.push(`/year/yearTreasure${search}`)\n } else {\n this.props.history.push(\n `/year/yearTreasure${search}?version=${getParam(\"version\")}`\n )\n }\n } else {\n this.toLogin()\n }\n }\n\n toYearWish = () => {\n const isLogin = !this.props.user.hasError\n if (isLogin) {\n if (!getParam(\"version\")) {\n this.props.history.push(\"/year/yearWish\")\n } else {\n this.props.history.push(`/year/yearWish?version=${getParam(\"version\")}`)\n }\n } else {\n this.toLogin()\n }\n }\n\n toInviteFriends = (oid, params = {}) => {\n const { history } = this.props\n if (getParam(\"version\")) {\n let data = {\n title: `【仅剩${params.number}个名额】我${params.price}元拼了《${params.course_title}》`,\n desc: params.course_title,\n link: `${API.m}/togroup?id=${oid}&is_originator=1`,\n imgUrl: params.image_name,\n }\n SendMessageToApp(\"toShare\", data)\n } else {\n history.push(`/togroup?id=${oid}`)\n }\n }\n\n isCountDown = (condition, val) => {\n if (condition) {\n return val\n }\n return \"\"\n }\n\n formatTitleAndKey = (key) => {\n let data = null\n switch (key) {\n case 1:\n data = {\n title: \"基础\",\n key: \"basic\",\n }\n break\n case 2:\n data = {\n title: \"进阶\",\n key: \"advanced\",\n }\n break\n case 3:\n data = {\n title: \"高阶\",\n key: \"higher\",\n }\n break\n case 4:\n data = {\n title: \"扩展\",\n key: \"expand\",\n }\n break\n default:\n data = null\n break\n }\n return data\n }\n\n formatCourseData = (key) => {\n const { basic, advanced, higher, expand } = this.state\n let data = null\n switch (key) {\n case 1:\n data = basic\n break\n case 2:\n data = advanced\n break\n case 3:\n data = higher\n break\n case 4:\n data = expand\n break\n default:\n data = null\n break\n }\n return data\n }\n\n toCart = (id) => {\n const { history } = this.props\n http\n .post(`${API.home}/m/cart/add`, {\n course_id: id,\n })\n .then((res) => {\n const { code, msg } = res.data\n // code 15001 已加入购物车\n if (code === 200 || code === 15001) {\n if (getParam(\"version\")) {\n SendMessageToApp(\"toShoppingCart\")\n } else {\n history.push(\"/shopcart\")\n }\n } else if (code === 4030 || code === 4040) {\n this.toLogin()\n } else {\n Toast.info(msg, 2)\n }\n })\n }\n\n toContinueBargain = (id, price, code, image) => {\n const { history } = this.props\n if (getParam(\"version\")) {\n let data = {\n title: \"我发现一门好课,快来帮我砍价吧!\",\n desc: `我已经砍了${price}元,看看你能砍多少`,\n link: `${API.m}/bargain-middle-page?id=${id}&bargaincode=${code}&is_originator=1`,\n imgUrl: image,\n }\n SendMessageToApp(\"toShare\", data)\n } else {\n history.push(\n `/bargain-middle-page?id=${id}&bargaincode=${code}&is_originator=1`\n )\n }\n }\n\n // 砍完价去支付\n bargainToOrder = (id) => {\n const { history, user } = this.props\n if (user.hasError) {\n this.toLogin()\n } else {\n if (getParam(\"version\")) {\n SendMessageToApp(\"toPay\", id)\n } else {\n http\n .get(`${API[\"base-api\"]}/m/cart/addtopreorder/[${id}]`)\n .then((res) => {\n const { errno, msg } = res.data\n if (errno === 0) {\n history.push(`/order?id=[${id}]`, { bargain: 1 })\n } else {\n Toast.info(msg, 2)\n }\n })\n }\n }\n }\n\n render() {\n const {\n bigcourse,\n groupcourse,\n basic,\n advanced,\n higher,\n expand,\n removable,\n } = this.state\n const { stage } = this.props\n return (\n <div className={\"year-index-course\"}>\n <div className=\"nav-right-wish nav-right\">\n <span onClick={this.toBoxList} className=\"nav-right__link\">\n 未开宝箱\n {removable > 0 && <i className=\"nav-right__number\">{removable}</i>}\n </span>\n </div>\n\n <CommonContainer title=\"驰援武汉 注册即送\" id=\"year-wuhan\">\n <div className=\"course-box course-conter\">\n <div className=\"course-item\">\n <span>注册即送</span>\n <a href=\"/detail?id=224\">\n <img\n src=\"http://julyedu-img-public.oss-cn-beijing.aliyuncs.com/Public/Image/75d1c3cef5.png\"\n alt=\"\"\n />\n </a>\n </div>\n <div className=\"course-item\">\n <span>注册即送</span>\n <a href=\"/detail?id=206\">\n <img\n src=\"https://julyedu-img-public.oss-cn-beijing.aliyuncs.com/Public/Image/b001fac23f.png\"\n alt=\"\"\n />\n </a>\n </div>\n <div className=\"course-item\">\n <span>注册即送</span>\n <a href=\"/detail?id=230\">\n <img\n src=\"https://julyedu-img-public.oss-cn-beijing.aliyuncs.com/Public/Image/d0fb0a479b.png\"\n alt=\"\"\n />\n </a>\n </div>\n </div>\n </CommonContainer>\n\n {/* 重磅好课 */}\n <CommonContainer title=\"重磅好课限时免费试听\" id=\"year-course\">\n {bigcourse.course && bigcourse.course.length > 0 && (\n <>\n <div className=\"bigcourse course-box\">\n {bigcourse.course.map((item) => (\n <CourseItem\n image={item.image_name}\n key={item.course_id}\n id={item.course_id}\n toCourse={this.toCourse}\n >\n <div className=\"coupon-course__footer\">\n {Number(item.is_vip) === 1 && (\n <a\n className=\"btn big-course\"\n onClick={() => this.toQQque()}\n >\n 首购¥99起\n </a>\n )}\n\n {item.is_vip == 0 && (\n <>\n {item.is_buy == 1 && (\n <a\n onClick={() => this.toCourse(item.course_id)}\n className=\"btn to-study\"\n >\n 开始学习\n </a>\n )}\n {item.is_buy == 0 && (\n <a\n onClick={() => this.toQQque()}\n className=\"btn big-course\"\n >\n {item.is_audition == 1\n ? \"免费试听\"\n : \"抢团报名额\"}\n </a>\n )}\n </>\n )}\n </div>\n </CourseItem>\n ))}\n </div>\n {/* {\n (bigcourse.courseList && bigcourse.courseList.length > 4) &&\n <button\n className=\"more-button\"\n onClick={() => this.handleToMore('bigcourse')}\n >{bigcourse.isMore ? '查看更多' : '收起'}</button>\n } */}\n </>\n )}\n </CommonContainer>\n\n {/* 人气好课免费学 */}\n {/*{*/}\n {/*Number(stage) !== 3 &&*/}\n {/*<CommonContainer title='人气好课免费学' id='year-free'>*/}\n {/*<a className='boss__add' href=\"/active/givecourse?activename=shuangdan\">更有42本技术书籍免费送</a>*/}\n {/*{*/}\n {/*(freecourse.course && freecourse.course.length > 0) &&*/}\n {/*<>*/}\n {/*<div className='freecourse course-box'>*/}\n {/*{*/}\n {/*freecourse.course.map(item => (*/}\n {/*<CourseItem*/}\n {/*image={item.image_name}*/}\n {/*key={item.course_id}*/}\n {/*id={item.course_id}*/}\n {/*toCourse={this.toCourse}*/}\n {/*>*/}\n {/*<div className=\"coupon-course__footer\">*/}\n {/*{*/}\n {/*item.is_buy == 1 &&*/}\n {/*<a*/}\n {/*onClick={() => this.toCourse(item.course_id)}*/}\n {/*className=\"btn to-study\"*/}\n {/*>开始学习</a>*/}\n {/*}*/}\n {/*{*/}\n {/*item.is_buy == 0 &&*/}\n {/*<a*/}\n {/*onClick={() => this.freeStudy()}*/}\n {/*className=\"btn free-study\"*/}\n {/*>点击免费学</a>*/}\n {/*}*/}\n {/*<p className=\"free-course-num\">*/}\n {/*已送出<span>{item.act_num}</span>个课程*/}\n {/*</p>*/}\n {/*</div>*/}\n {/*</CourseItem>*/}\n {/*))*/}\n {/*}*/}\n {/*</div>*/}\n {/*{*/}\n {/*(freecourse.courseList && freecourse.courseList.length > 4) &&*/}\n {/*<button*/}\n {/*className=\"more-button\"*/}\n {/*onClick={() => this.handleToMore('freecourse')}*/}\n {/*>{freecourse.isMore ? '查看更多' : '收起'}</button>*/}\n {/*}*/}\n {/*</>*/}\n {/*}*/}\n {/*</CommonContainer>*/}\n {/*}*/}\n\n {/* stage,活动阶段 0-不在活动时间 1-预热 2-正式 3-返场 */}\n {Number(stage) !== 1 && (\n <>\n {/* 精品好课1分开抢 */}\n <CommonContainer title=\"精品好课1分秒\" id=\"year-group\">\n {groupcourse.course && groupcourse.course.length > 0 && (\n <>\n <div className=\"groupcourse course-box\" data-stage=\"2\">\n {groupcourse.course.map((item) => (\n <CourseItem\n image={item.image_name}\n key={item.course_id}\n id={item.course_id}\n time={this.isCountDown(\n item.is_assemble === 1,\n item.add_time\n )}\n toCourse={this.toCourse}\n >\n <div className=\"coupon-course__footer\">\n {/* is_assemble 0 未拼团 1 正在拼团 2 已购买 */}\n {item.is_assemble == 2 && (\n <>\n <p className={\"course-title text-overflow-1\"}>\n {item.course_title}\n </p>\n <div className=\"status\">\n <a\n onClick={() => this.toCourse(item.course_id)}\n className=\"btn to-group\"\n data-status=\"study\"\n >\n 开始学习\n </a>\n </div>\n </>\n )}\n {item.is_assemble != 2 && (\n <>\n <div className=\"type\">\n <span className=\"tag\" data-color=\"green\">\n 拼团价\n </span>\n </div>\n <div className=\"price price-group\">\n <span className=\"price-label\">¥</span>\n <span className=\"new-price\">0.01</span>\n <span className=\"old-price\">\n <s>¥{item.price1}</s>\n </span>\n </div>\n {item.is_assemble == 0 && (\n <div className=\"progree-and-sale\">\n <div className=\"progress\">\n <i\n className=\"progress_bar\"\n style={{\n width: `${item.progress}%`,\n }}\n ></i>\n </div>\n <p className=\"sale-sum\">\n {Number(item.sum <= 285)\n ? `已抢${item.sum}个`\n : \"即将售罄\"}\n </p>\n </div>\n )}\n <div className=\"status\">\n {item.is_assemble == 0 && (\n <a\n onClick={() =>\n this.toCourse(item.course_id)\n }\n className=\"status-btn to-group\"\n >\n 马上抢>>\n </a>\n )}\n {item.is_assemble == 1 && (\n <a\n onClick={() =>\n this.toInviteFriends(item.order_id, {\n number: item.number,\n course_title: item.course_title,\n image_name: item.image_name,\n price: 0.01,\n })\n }\n className=\"status-btn to-group\"\n data-status=\"done\"\n >\n 已参团,邀请好友参团\n </a>\n )}\n </div>\n </>\n )}\n </div>\n </CourseItem>\n ))}\n </div>\n {groupcourse.courseList && groupcourse.courseList.length > 4 && (\n <button\n className=\"more-button\"\n onClick={() => this.handleToMore(\"groupcourse\")}\n >\n {groupcourse.isMore ? \"查看更多\" : \"收起\"}\n </button>\n )}\n </>\n )}\n </CommonContainer>\n\n {/* 好课价到,等你抄底 */}\n <CommonContainer title=\"“薪”年价到,等你抄底!\" id=\"year-discount\">\n {[1, 2, 3, 4].map((item) => {\n const keys = this.formatTitleAndKey(item)\n const data = this.formatCourseData(item)\n return (\n <React.Fragment key={item}>\n <h4 className=\"ai-course__subtitle\">{keys.title}</h4>\n {data.course && data.course.length > 0 && (\n <>\n <div className=\"groupcourse course-box\">\n {data.course.map((val) => {\n return (\n <CourseItem\n image={val.image_name}\n key={val.course_id}\n id={val.course_id}\n time={this.isCountDown(\n val.type === 2,\n val.end_time\n )}\n toCourse={this.toCourse}\n >\n <div className=\"coupon-course__footer\">\n {/* type 1 立即参团 2 已参团 3 我要砍价 4 已参加砍价 可以继续砍价 5 马上抢 6 开始学习 7 已参加一分钱拼团 8 砍价待支付 */}\n\n {(val.type === 4 || val.type === 8) && (\n <div className=\"bargain-price\">\n 已砍{val.already_bargain}元\n </div>\n )}\n\n {val.type === 0 && (\n <>\n <div className=\"type\">\n <span\n className=\"tag\"\n data-color=\"green\"\n >\n 活动价\n </span>\n </div>\n <div className=\"price price-group\">\n <span className=\"price-label\">¥</span>\n <span className=\"new-price\">\n {val.original_price}\n </span>\n <span className=\"old-price\">\n <s>¥{val.price1}</s>\n </span>\n </div>\n </>\n )}\n {(val.type === 1 || val.type === 2) && (\n <>\n <div className=\"type\">\n <span\n className=\"tag\"\n data-color=\"green\"\n >\n 拼团价\n </span>\n </div>\n <div className=\"price price-group\">\n <span className=\"price-label\">¥</span>\n <span className=\"new-price\">\n {val.pdd_price}\n </span>\n <span className=\"old-price\">\n <s>¥{val.original_price}</s>\n </span>\n </div>\n </>\n )}\n {(val.type === 3 ||\n val.type === 4 ||\n val.type === 8) && (\n <>\n <div className=\"type\">\n <span\n className=\"tag\"\n data-color=\"green\"\n >\n 好友帮帮砍\n </span>\n </div>\n <div className=\"price price-group\">\n <span className=\"price-label\">\n 到手最低:¥\n </span>\n <span className=\"new-price\">\n {val.low_prize}\n </span>\n <span className=\"old-price\">\n <s>¥{val.original_price}</s>\n </span>\n </div>\n </>\n )}\n {val.type === 6 && (\n <p\n className={\"course-title text-overflow-1\"}\n >\n {val.course_title}\n </p>\n )}\n\n <div\n className=\"status\"\n data-layout={val.type === 4 ? \"row\" : \"\"}\n >\n {val.type === 0 && (\n <a\n onClick={() =>\n this.toCart(val.course_id)\n }\n className=\"status-btn to-group\"\n >\n 立即购买\n </a>\n )}\n {val.type === 1 && (\n <a\n onClick={() =>\n this.toCourse(val.course_id)\n }\n className=\"status-btn to-group\"\n >\n 立即参与拼团\n </a>\n )}\n {val.type === 2 && (\n <a\n onClick={() =>\n this.toInviteFriends(val.order_id, {\n number: val.number,\n course_title: val.course_title,\n image_name: val.image_name,\n price: val.pdd_price,\n })\n }\n className=\"status-btn to-group\"\n data-status=\"done\"\n >\n 已参团,邀请好友参团\n </a>\n )}\n {val.type === 3 && (\n <a\n onClick={() =>\n this.toCourse(val.course_id)\n }\n className=\"status-btn to-group\"\n >\n 我要砍价\n </a>\n )}\n {val.type === 4 && (\n <>\n <a\n onClick={() =>\n this.toContinueBargain(\n val.course_id,\n val.already_bargain,\n val.bargain_code,\n val.image_name\n )\n }\n className=\"status-btn to-group\"\n >\n 继续砍价\n </a>\n <a\n onClick={() =>\n this.bargainToOrder(val.course_id)\n }\n className=\"status-btn to-group\"\n >\n 支付{val.actual_payment}元\n </a>\n </>\n )}\n {val.type === 8 && (\n <a\n onClick={() =>\n this.bargainToOrder(val.course_id)\n }\n className=\"status-btn to-group\"\n >\n 支付{val.actual_payment}元\n </a>\n )}\n {val.type === 6 && (\n <a\n onClick={() =>\n this.toCourse(val.course_id)\n }\n className=\"btn to-group\"\n data-status=\"study\"\n >\n 开始学习\n </a>\n )}\n </div>\n </div>\n </CourseItem>\n )\n })}\n </div>\n {data.courseList && data.courseList.length > 4 && (\n <button\n className=\"more-button\"\n onClick={() => this.handleToMore(keys.key)}\n >\n {data.isMore ? \"查看更多\" : \"收起\"}\n </button>\n )}\n </>\n )}\n </React.Fragment>\n )\n })}\n </CommonContainer>\n </>\n )}\n {Number(stage) === 1 && (\n <>\n {/* 精品好课1分开抢 */}\n <CommonContainer title=\"精品好课1分开抢\" id=\"year-group\">\n {groupcourse.course && groupcourse.course.length > 0 && (\n <>\n <div className=\"groupcourse course-box\">\n {groupcourse.course.map((item) => (\n <CourseItem\n image={item.image_name}\n key={item.course_id}\n id={item.course_id}\n toCourse={this.toCourse}\n >\n <div className=\"group-num\">限量300个</div>\n <div className=\"coupon-course__footer\">\n {item.is_buy == 1 && (\n <>\n <p className={\"course-title text-overflow-1\"}>\n {item.course_title}\n </p>\n <a\n onClick={() => this.toCourse(item.course_id)}\n className=\"btn to-study\"\n >\n 开始学习\n </a>\n </>\n )}\n {item.is_buy == 0 && (\n <>\n <div className=\"type\">\n <span className=\"tag\">拼团价</span>\n <span className=\"time\">12月23日开团</span>\n </div>\n <div className=\"price\">\n ¥<span className=\"new-price\">0.01</span>\n <span className=\"old-price\">\n 现价:<s>¥{item.price1}</s>\n </span>\n </div>\n <div className=\"status\">\n <a\n onClick={() => this.toCourse(item.course_id)}\n className=\"status-btn to-buy\"\n >\n 直接购买\n </a>\n {item.is_join == 1 && (\n <a className=\"status-btn add-wish\">\n <img\n src=\"https://julyedu-cdn.oss-cn-beijing.aliyuncs.com/newyear20/PC/add-success.png\"\n alt=\"\"\n />\n 已加心愿单\n </a>\n )}\n {item.is_join == 0 && (\n <a\n onClick={() =>\n this.addWishList(item.course_id, \"group\")\n }\n className=\"status-btn add-wish-success\"\n >\n <img\n src=\"https://julyedu-cdn.oss-cn-beijing.aliyuncs.com/newyear20/H5/like_icon.png\"\n alt=\"\"\n />\n 加入心愿单\n </a>\n )}\n </div>\n </>\n )}\n </div>\n </CourseItem>\n ))}\n </div>\n {groupcourse.courseList && groupcourse.courseList.length > 4 && (\n <button\n className=\"more-button\"\n onClick={() => this.handleToMore(\"groupcourse\")}\n >\n {groupcourse.isMore ? \"查看更多\" : \"收起\"}\n </button>\n )}\n </>\n )}\n </CommonContainer>\n\n {/* 好课价到,等你抄底 */}\n <CommonContainer title=\"好课价到,等你抄底\" id=\"year-discount\">\n <h4 className=\"ai-course__subtitle\">基础</h4>\n {basic.course && basic.course.length > 0 && (\n <>\n <div className=\"groupcourse course-box\">\n {basic.course.map((item) => (\n <CourseItem\n image={item.image_name}\n key={item.course_id}\n id={item.course_id}\n toCourse={this.toCourse}\n >\n <div className=\"coupon-course__footer\">\n {item.is_buy == 1 && (\n <>\n <p className={\"course-title text-overflow-1\"}>\n {item.course_title}\n </p>\n <a\n onClick={() => this.toCourse(item.course_id)}\n className=\"btn to-study\"\n >\n 开始学习\n </a>\n </>\n )}\n {item.is_buy == 0 && (\n <>\n <div className=\"type\">\n {item.type == 0 && (\n <>\n <span className=\"tag\">活动价</span>\n <span className=\"time\">12.23开始</span>\n </>\n )}\n {item.type == 1 && (\n <>\n <span className=\"tag\">拼团价</span>\n <span className=\"time\">12.23开团</span>\n </>\n )}\n {item.type == 2 && (\n <>\n <span className=\"tag\">好友帮帮砍</span>\n <span className=\"time\">12.23开砍</span>\n </>\n )}\n </div>\n <div className=\"price\">\n {item.type == 2 ? \"到手最低:¥\" : \"¥\"}\n <span className=\"new-price\">{item.price2}</span>\n <span className=\"old-price\">\n {item.type == 2 ? \"\" : \"现价:\"}\n <s>¥{item.price1}</s>\n </span>\n </div>\n <div className=\"status\">\n <a\n onClick={() => this.toCourse(item.course_id)}\n className=\"status-btn to-buy\"\n >\n 直接购买\n </a>\n {item.is_join == 1 && (\n <a className=\"status-btn add-wish\">\n <img\n src=\"https://julyedu-cdn.oss-cn-beijing.aliyuncs.com/newyear20/PC/add-success.png\"\n alt=\"\"\n />\n 已加心愿单\n </a>\n )}\n {item.is_join == 0 && (\n <a\n onClick={() =>\n this.addWishList(item.course_id, \"1\")\n }\n className=\"status-btn add-wish-success\"\n >\n <img\n src=\"https://julyedu-cdn.oss-cn-beijing.aliyuncs.com/newyear20/H5/like_icon.png\"\n alt=\"\"\n />\n 加入心愿单\n </a>\n )}\n </div>\n </>\n )}\n </div>\n </CourseItem>\n ))}\n </div>\n {basic.courseList && basic.courseList.length > 4 && (\n <button\n className=\"more-button\"\n onClick={() => this.handleToMore(\"basic\")}\n >\n {basic.isMore ? \"查看更多\" : \"收起\"}\n </button>\n )}\n </>\n )}\n <h4 className=\"ai-course__subtitle\">进阶</h4>\n {advanced.course && advanced.course.length > 0 && (\n <>\n <div className=\"groupcourse course-box\">\n {advanced.course.map((item) => (\n <CourseItem\n image={item.image_name}\n key={item.course_id}\n id={item.course_id}\n toCourse={this.toCourse}\n >\n <div className=\"coupon-course__footer\">\n {item.is_buy == 1 && (\n <>\n <p className={\"course-title text-overflow-1\"}>\n {item.course_title}\n </p>\n <a\n onClick={() => this.toCourse(item.course_id)}\n className=\"btn to-study\"\n >\n 开始学习\n </a>\n </>\n )}\n {item.is_buy == 0 && (\n <>\n <div className=\"type\">\n {item.type == 0 && (\n <>\n <span className=\"tag\">活动价</span>\n <span className=\"time\">12.23开始</span>\n </>\n )}\n {item.type == 1 && (\n <>\n <span className=\"tag\">拼团价</span>\n <span className=\"time\">12.23开团</span>\n </>\n )}\n {item.type == 2 && (\n <>\n <span className=\"tag\">好友帮帮砍</span>\n <span className=\"time\">12.23开砍</span>\n </>\n )}\n </div>\n <div className=\"price\">\n {item.type == 2 ? \"到手最低:¥\" : \"¥\"}\n <span className=\"new-price\">{item.price2}</span>\n <span className=\"old-price\">\n {item.type == 2 ? \"\" : \"现价:\"}\n <s>¥{item.price1}</s>\n </span>\n </div>\n <div className=\"status\">\n <a\n onClick={() => this.toCourse(item.course_id)}\n className=\"status-btn to-buy\"\n >\n 直接购买\n </a>\n {item.is_join == 1 && (\n <a className=\"status-btn add-wish\">\n <img\n src=\"https://julyedu-cdn.oss-cn-beijing.aliyuncs.com/newyear20/PC/add-success.png\"\n alt=\"\"\n />\n 已加心愿单\n </a>\n )}\n {item.is_join == 0 && (\n <a\n onClick={() =>\n this.addWishList(item.course_id, \"2\")\n }\n className=\"status-btn add-wish-success\"\n >\n <img\n src=\"https://julyedu-cdn.oss-cn-beijing.aliyuncs.com/newyear20/H5/like_icon.png\"\n alt=\"\"\n />\n 加入心愿单\n </a>\n )}\n </div>\n </>\n )}\n </div>\n </CourseItem>\n ))}\n </div>\n {advanced.courseList && advanced.courseList.length > 4 && (\n <button\n className=\"more-button\"\n onClick={() => this.handleToMore(\"advanced\")}\n >\n {advanced.isMore ? \"查看更多\" : \"收起\"}\n </button>\n )}\n </>\n )}\n <h4 className=\"ai-course__subtitle\">高阶</h4>\n {higher.course && higher.course.length > 0 && (\n <>\n <div className=\"groupcourse course-box\">\n {higher.course.map((item) => (\n <CourseItem\n image={item.image_name}\n key={item.course_id}\n id={item.course_id}\n toCourse={this.toCourse}\n >\n <div className=\"coupon-course__footer\">\n {item.is_buy == 1 && (\n <>\n <p className={\"course-title text-overflow-1\"}>\n {item.course_title}\n </p>\n <a\n onClick={() => this.toCourse(item.course_id)}\n className=\"btn to-study\"\n >\n 开始学习\n </a>\n </>\n )}\n {item.is_buy == 0 && (\n <>\n <div className=\"type\">\n {item.type == 0 && (\n <>\n <span className=\"tag\">活动价</span>\n <span className=\"time\">12.23开始</span>\n </>\n )}\n {item.type == 1 && (\n <>\n <span className=\"tag\">拼团价</span>\n <span className=\"time\">12.23开团</span>\n </>\n )}\n {item.type == 2 && (\n <>\n <span className=\"tag\">好友帮帮砍</span>\n <span className=\"time\">12.23开砍</span>\n </>\n )}\n </div>\n <div className=\"price\">\n {item.type == 2 ? \"到手最低:¥\" : \"¥\"}\n <span className=\"new-price\">{item.price2}</span>\n <span className=\"old-price\">\n {item.type == 2 ? \"\" : \"现价:\"}\n <s>¥{item.price1}</s>\n </span>\n </div>\n <div className=\"status\">\n <a\n onClick={() => this.toCourse(item.course_id)}\n className=\"status-btn to-buy\"\n >\n 直接购买\n </a>\n {item.is_join == 1 && (\n <a className=\"status-btn add-wish\">\n <img\n src=\"https://julyedu-cdn.oss-cn-beijing.aliyuncs.com/newyear20/PC/add-success.png\"\n alt=\"\"\n />\n 已加心愿单\n </a>\n )}\n {item.is_join == 0 && (\n <a\n onClick={() =>\n this.addWishList(item.course_id, \"3\")\n }\n className=\"status-btn add-wish-success\"\n >\n <img\n src=\"https://julyedu-cdn.oss-cn-beijing.aliyuncs.com/newyear20/H5/like_icon.png\"\n alt=\"\"\n />\n 加入心愿单\n </a>\n )}\n </div>\n </>\n )}\n </div>\n </CourseItem>\n ))}\n </div>\n {higher.courseList && higher.courseList.length > 4 && (\n <button\n className=\"more-button\"\n onClick={() => this.handleToMore(\"higher\")}\n >\n {higher.isMore ? \"查看更多\" : \"收起\"}\n </button>\n )}\n </>\n )}\n <h4 className=\"ai-course__subtitle\">扩展</h4>\n {expand.course && expand.course.length > 0 && (\n <>\n <div className=\"groupcourse course-box\">\n {expand.course.map((item) => (\n <CourseItem\n image={item.image_name}\n key={item.course_id}\n id={item.course_id}\n toCourse={this.toCourse}\n >\n <div className=\"coupon-course__footer\">\n {item.is_buy == 1 && (\n <>\n <p className={\"course-title text-overflow-1\"}>\n {item.course_title}\n </p>\n <a\n onClick={() => this.toCourse(item.course_id)}\n className=\"btn to-study\"\n >\n 开始学习\n </a>\n </>\n )}\n {item.is_buy == 0 && (\n <>\n <div className=\"type\">\n {item.type == 0 && (\n <>\n <span className=\"tag\">活动价</span>\n <span className=\"time\">12.23开始</span>\n </>\n )}\n {item.type == 1 && (\n <>\n <span className=\"tag\">拼团价</span>\n <span className=\"time\">12.23开团</span>\n </>\n )}\n {item.type == 2 && (\n <>\n <span className=\"tag\">好友帮帮砍</span>\n <span className=\"time\">12.23开砍</span>\n </>\n )}\n </div>\n <div className=\"price\">\n {item.type == 2 ? \"到手最低:¥\" : \"¥\"}\n <span className=\"new-price\">{item.price2}</span>\n <span className=\"old-price\">\n {item.type == 2 ? \"\" : \"现价:\"}\n <s>¥{item.price1}</s>\n </span>\n </div>\n <div className=\"status\">\n <a\n onClick={() => this.toCourse(item.course_id)}\n className=\"status-btn to-buy\"\n >\n 直接购买\n </a>\n {item.is_join == 1 && (\n <a className=\"status-btn add-wish\">\n <img\n src=\"https://julyedu-cdn.oss-cn-beijing.aliyuncs.com/newyear20/PC/add-success.png\"\n alt=\"\"\n />\n 已加心愿单\n </a>\n )}\n {item.is_join == 0 && (\n <a\n onClick={() =>\n this.addWishList(item.course_id, \"4\")\n }\n className=\"status-btn add-wish-success\"\n >\n <img\n src=\"https://julyedu-cdn.oss-cn-beijing.aliyuncs.com/newyear20/H5/like_icon.png\"\n alt=\"\"\n />\n 加入心愿单\n </a>\n )}\n </div>\n </>\n )}\n </div>\n </CourseItem>\n ))}\n </div>\n {expand.courseList && expand.courseList.length > 4 && (\n <button\n className=\"more-button\"\n onClick={() => this.handleToMore(\"expand\")}\n >\n {expand.isMore ? \"查看更多\" : \"收起\"}\n </button>\n )}\n </>\n )}\n </CommonContainer>\n </>\n )}\n\n {this.state.tofreeStudy && (\n <CommonPopup top={100} closePopup={this.closePopup} mark={false}>\n <div className=\"sub__code_container\">\n <p className=\"sub__title\">提醒服务</p>\n <p className=\"sub__tip\">\n 进入服务号回复<i>77</i>免费领取课程\n </p>\n <img\n className=\"sub__qr_code\"\n id={\"live-qr-code\"}\n src=\"//julyedu-cdn.oss-cn-beijing.aliyuncs.com/2018christyear/h5/qrcode.jpg\"\n alt=\"\"\n />\n {browser.isAndroidApp ? (\n <button className={\"save-image\"} onClick={this.saveImage2}>\n 保存二维码\n </button>\n ) : (\n <p className=\"sub__tip\">长按识别/扫码 关注【七月在线】服务号</p>\n )}\n </div>\n </CommonPopup>\n )}\n {this.state.isshowFollow && (\n <CommonPopup top={100} closePopup={this.closePopupWish} mark={false}>\n <div className=\"sub__code_container\">\n <p className=\"sub__title\">提醒服务</p>\n <p className=\"sub__tip\">课程开售立即提醒,不错过任何优惠哦!</p>\n <img\n className=\"sub__qr_code\"\n id={\"live-qr-code\"}\n src={this.state.followBarcode}\n alt=\"\"\n />\n {browser.isAndroidApp ? (\n <button className={\"save-image\"} onClick={this.saveImage}>\n 保存二维码\n </button>\n ) : (\n <p className=\"sub__tip\">长按识别/扫码 关注【七月在线】服务号</p>\n )}\n </div>\n </CommonPopup>\n )}\n </div>\n )\n }\n}\n\nexport default withRouter(YearCourse)\n"],"sourceRoot":""}