/* eslint-disable eqeqeq */ import React, { Component } from "react" import classnames from "classnames" import { http, SendMessageToApp } from "src/utils" import "./index.scss" import { getParam } from "../../../utils" class CoursePopup extends Component { constructor(props) { super(props) this.state = { courseList: [], isshowAppTip: false, } } componentDidMount() { this.fetchCourseData() this.distinguishVersion() } distinguishVersion = () => { // plat_form 1ios 2android // version 1->3.704 2->4.5.1.20191105 if (getParam("plat_form") == 1) { let version = Number(getParam("version")) this.setState({ isshowAppTip: version < 3.704 ? true : false, }) } if (getParam("plat_form") == 2) { let version = getParam("version").replace(/\./g, "").slice(0, 3) this.setState({ isshowAppTip: Number(version) < 451 ? true : false, }) } } fetchCourseData = () => { Promise.all([ http.get(`${API.home}/sys/browse/blessing/courses`), http.get(`${API.home}/sys/user/blessing`), ]).then((res) => { const { code, data } = res[0].data const doneCourse = res[1].data.data.today_browsed_courses || [] if (code === 200) { this.setState({ courseList: data.map((item) => { if (doneCourse.some((id) => id == item.course_id)) { return Object.assign({}, item, { blessing: 2, }) } return item }), }) } }) } toCourseDetail = (item) => { console.log(this.props) const { isLogin, history, toLogin } = this.props // to={`/detail?id=${item.course_id}&ac=11`} if (isLogin) { if (!getParam("version")) { history.push(`/detail?id=${item.course_id}&ac=11`) } else { if (this.state.isshowAppTip) { SendMessageToApp("toCourse", item.course_id) } else { if (item.blessing) { let data = { courseId: item.course_id, type: 2, } SendMessageToApp("toBlessingCourse", data) } else { let data = { courseId: item.course_id, type: 1, // 正常跳课程详情页type:0,积福气浏览课程详情页-没有浏览过type:1 已浏览过type:2 } SendMessageToApp("toBlessingCourse", data) } } } } else { toLogin() } } render() { const { courseList, isshowAppTip } = this.state const { handleToHide } = this.props return ( <div className="course-popup__container"> <div className="course-popup"> <h2 className="course-popup__title">指定课程</h2> <div className="course-popup__list"> {courseList.map((item) => ( <span className={classnames("course-popup__item", { "course-popup__item--active": item.blessing, })} key={item.course_id} onClick={() => { this.toCourseDetail(item) }} > <span className="course-popup__name">{item.course_title}</span> {item.blessing && <span>+2点</span>} </span> ))} </div> {isshowAppTip && ( <div className="course-popup-apptip"> 当前版本浏览课程暂不能增加福气值,可以前往h5/pc端浏览课程增加福气值 </div> )} </div> <i className="iconfont iconiconfront-2" onClick={handleToHide}></i> </div> ) } } export default CoursePopup