import React,{ Component } from "react"; import { Menu, Spin } from 'antd'; import { WordsBtn } from 'educoder'; import axios from 'axios'; import Videos from './Video'; import Lives from './Live'; import LivesNew from './LiveNew'; import './video.css'; import '../css/Courses.css'; import '../publicNav/nav.css'; const PAGE_SIZE = 15; const LIVE_PAGE_SIZE = 10; class VideoIndex extends Component{ constructor(props){ super(props); this.state={ page:1, upload:false, videos:undefined, videoData:undefined, type:"video", isSpining:false, lives:undefined, liveData:undefined, liveId:undefined, liveVisible:false } } checkType=(type,page)=>{ this.setState({ type, isSpining:true }) if(type === "video"){ this.getList(page); }else{ this.getLiveList(page); } } componentDidMount=()=>{ const { search } = this.props.location; const { page } = this.state; if(search && search === "?open=live"){ this.setState({ type:"live" }) this.checkType("live",page); }else{ this.checkType("video",page); } } // 获取直播列表 getLiveList=(page)=>{ const CourseId=this.props.match.params.coursesId; const url = `/courses/${CourseId}/live_links.json`; axios.get(url,{ params:{ page, limit:LIVE_PAGE_SIZE } }).then(result=>{ if(result){ this.setState({ liveData:result.data, lives:result.data.lives, isSpining:false, }) } }).catch(error=>{ console.log(error); }) } // 获取视频列表 getList=(page)=>{ const CourseId=this.props.match.params.coursesId; const fetchUrl = `/courses/${CourseId}/course_videos.json`; axios.get(fetchUrl, { params: { page, limit: PAGE_SIZE, } }) .then((response) => { if(response){ this.setState({ videos:response.data.videos, videoData:response.data, isSpining:false }) } }).catch((error) => { console.log(error); }) } changeType=(e)=>{ this.setState({ type:e.key, upload:false, page:1 }) this.checkType(e.key,1); } changePage=(page,type)=>{ this.setState({ page }) this.checkType(type,page); } onEditVideo=(item)=>{ let videoId = { videoId: item.id, title: item.title } this.setState({ videoId, }) this.setVisible(true); } uploadVideo=(upload)=>{ this.setState({ upload }) const { page } = this.state; this.getList(page); } toUpload =()=> { const { admin , is_teacher,business} = this.props.user; if (admin || business || (is_teacher && this.props.checkIfProfessionalCertification())) { this.setState({ type:"video", upload:true, page:1 }) } else { this.props.showProfessionalCertificationDialog(); } } // 直播设置后回调的方法 // successFunc=()=>{ // this.setState({ // type:"live", // page:1 // }) // this.checkType("live",1); // } // 直播设置 liveSetting=()=>{ this.setState({ liveId:undefined }) this.setliveVisibel(true); } //直播设置弹框 setliveVisibel=(flag,changetypeFlag)=>{ this.setState({ liveVisible:flag }) if(flag === false){ this.setState({ liveId:undefined }) } if(changetypeFlag){ this.checkType("live",1); } } // 列表-编辑(修改传到编辑的id) setLiveId=(id)=>{ this.setState({ liveId:id }) this.setliveVisibel(true); } render(){ const { videos , upload , videoData , type , liveData , lives , page , liveVisible , isSpining , liveId } = this.state; const { admin , is_teacher , business } = this.props.user; // console.log("p",this.props); return( { liveVisible ? : }
视频 直播
{ (admin || is_teacher || business) &&
  • { type === "video" ? { upload ? this.uploadVideo(false)}>取消 : 上传视频 } : 添加直播 }
  • }
    { type === "video" ? : }
    ) } } export default VideoIndex;