courseList.js 2.37 KB
Newer Older
xuzhenghua committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
import React, { Component } from 'react';
import { http } from '@/utils';
import { HeaderBar } from "@/common";
import CollegeBanner from './banner';
import CollegeHeader from './header';
import './courseList.scss';
import { Toast } from 'antd-mobile';

class CollegeCourse extends Component {

  constructor(props) {
    super(props);
    this.state = {
      header: '',
      courseList: []
    };
  }

  componentDidMount() {
    this.fetchCourseList();
  }

  fetchCourseList = () => {
    const { match } = this.props;
    const id = match.params.id || 0;
    http.get(`${API['home']}/sys/school/${id}`).then(res => {
      const { code, data } = res.data;
      if(code === 200) {
        this.setState({
          header: data.name,
          courseList: data.data
        });
FE committed
33
        document.title = `助力高校在线教学计划之${data.name}专区 - 七月在线`
xuzhenghua committed
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
      }
    });
  }

  toCourseDetail = (id) => {
    const { history, match } = this.props;
    const school_id = match.params.id || 0
    http.post(`${API['home']}/sys/school/verify`, {
      school_id,
      course_id: id,
    }).then(res => {
      const { code, msg } = res.data;
      if(code === 200) {
        history.push(`/detail?id=${id}`);
      }else if(code === 4030 || code === 4013) {
        history.push('/passport/login');
      }else {
        Toast.info(`${msg}~`);
      }
    });
  }

  render() {
    const { courseList = [], header } = this.state;
    return (
      <>
        <HeaderBar title={'助学计划'} arrow={true}/>
        <CollegeBanner />
xuzhenghua committed
62
        <CollegeHeader
xuzhenghua committed
63 64 65 66 67 68 69 70 71
          headerStyle={{
            marginTop: '20px'
          }}
          title={header}
        />
        <p className="college-course__desc">点击需要学习的课程封面,在课程详情页进入购买流程凭免单券免费兑换课程。</p>
        <div className="college-course__body">
          {
            courseList.map(item => (
xuzhenghua committed
72 73
              <div
                className="college-course__item"
xuzhenghua committed
74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
                onClick={() => this.toCourseDetail(item.course_id)}
                key={item.course_id}
              >
                <i className="college-course__cover" style={{'backgroundImage': `url(${item.image_name})`}}></i>
                <p className="college-course__title">{item.course_title}</p>
              </div>
            ))
          }
        </div>
      </>
    )
  }
}

export default CollegeCourse;