diff --git a/public/react/src/modules/courses/Video/VideoIndex.js b/public/react/src/modules/courses/Video/VideoIndex.js index 7a974c582..e4fd369ce 100644 --- a/public/react/src/modules/courses/Video/VideoIndex.js +++ b/public/react/src/modules/courses/Video/VideoIndex.js @@ -1,7 +1,7 @@ -import React,{ Component } from "react"; -import { WordsBtn,on, trigger ,publicSearchs} from 'educoder'; +import React, {Component} from "react"; +import {WordsBtn, on, trigger, publicSearchs} from 'educoder'; -import { Menu, Spin } from 'antd'; +import {Menu, Spin} from 'antd'; import axios from 'axios'; import Videos from './Video'; @@ -12,288 +12,292 @@ import Videostatistics from '../videostatistics/Videostatistics'; import './video.css'; import '../css/Courses.css'; import '../publicNav/nav.css'; + const PAGE_SIZE = 15; const LIVE_PAGE_SIZE = 10; const $ = window.$; -function getRight(){ - var right = parseInt($(".-task-sidebar").css("right")); - return right===0?0:right; +function getRight() { + var right = parseInt($(".-task-sidebar").css("right")); + return right === 0 ? 0 : right; } -class VideoIndex extends Component{ - constructor(props){ - super(props); - this.state={ - page:1, - upload:false, - videos:undefined, - videoData:undefined, - otherLinkVisible:false, - type:"video", - isSpining:false, - lives:undefined, - liveData:undefined, +class VideoIndex extends Component { + constructor(props) { + super(props); + this.state = { + page: 1, + upload: false, + videos: undefined, + videoData: undefined, + otherLinkVisible: false, + type: "video", + isSpining: false, - liveId:undefined, + lives: undefined, + liveData: undefined, - liveVisible:false, - statistics:false, + liveId: undefined, - } - } + liveVisible: false, + statistics: 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{ - if(search === "?open=new"){ - this.setState({ - upload:true - }) - } - this.checkType("video",page); - } - } - componentDidUpdate = (prevProps) => { - if(this.props.match.params.videoId !== prevProps.match.params.videoId ){ - this.setState({ - upload:false - }) - const { page } = this.state; - 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); - }) - } + checkType = (type, page) => { + this.setState({ + type, + isSpining: true + }) + if (type === "video") { + this.getList(page); + } else { + this.getLiveList(page); + } + } - // 获取视频列表 - getList=(page)=>{ - const { coursesId , videoId }=this.props.match.params; - const fetchUrl = `/courses/${coursesId}/course_videos.json`; - axios.get(fetchUrl, { - params: { - page, - limit: PAGE_SIZE, - category_id:videoId - } - }) - .then((response) => { - if(response){ - this.setState({ - videos:response.data.videos, - videoData:response.data, - isSpining:false - }) - } - }).catch((error) => { - console.log(error); - }) - } + componentDidMount = () => { + const {search} = this.props.location; + const {page} = this.state; + if (search && search === "?open=live") { + this.setState({ + type: "live" + }) + this.checkType("live", page); + } else { + if (search === "?open=new") { + this.setState({ + upload: true + }) + } + this.checkType("video", page); + } + } + componentDidUpdate = (prevProps) => { + if (this.props.match.params.videoId !== prevProps.match.params.videoId) { + this.setState({ + upload: false + }) + const {page} = this.state; + 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); + }) + } - changeType=(e)=>{ - this.setState({ - type:e.key, - upload:false, - page:1 - }) - this.checkType(e.key,1); - } + // 获取视频列表 + getList = (page) => { + const {coursesId, videoId} = this.props.match.params; + const fetchUrl = `/courses/${coursesId}/course_videos.json`; + axios.get(fetchUrl, { + params: { + page, + limit: PAGE_SIZE, + category_id: videoId + } + }) + .then((response) => { + if (response) { + this.setState({ + videos: response.data.videos, + videoData: response.data, + isSpining: false + }) + } + }).catch((error) => { + console.log(error); + }) + } - changePage=(page,type)=>{ - this.setState({ - page - }) - this.checkType(type,page); - } + changeType = (e) => { + this.setState({ + type: e.key, + upload: false, + page: 1 + }) + this.checkType(e.key, 1); + } - onEditVideo=(item)=>{ - let videoId = { - videoId: item.id, - title: item.title - } - this.setState({ - videoId, - }) - this.setVisible(true); - } - uploadVideo=(upload)=>{ + 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, - isSpining:true - }) - const { page } = this.state; - setTimeout(()=>{ - this.getList(page); - },500) - } + this.setState({ + upload, + isSpining: true + }) + const {page} = this.state; + setTimeout(() => { + this.getList(page); + }, 500) + } - 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(); - } - } + 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); - } + // 直播设置后回调的方法 + // 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); + } - // 新增目录 - addDir=()=>{ - let {videoData}=this.state; - trigger('videoAdd', parseInt(videoData.course_module_id)); - } - // 目录重命名 - editDir=(name,id)=>{ - let data={id,name,update:this.getList} - trigger('editVideo',data); - } - // 增加外链 - setLinkeVisible=(flag,refresh)=>{ - this.setState({ - otherLinkVisible:flag - }) - if(refresh){ - const { page } = this.state; - this.getList(page); - } - } - //统计 - statisticsy=(bool)=>{ - this.setState({ - statistics:bool + // 新增目录 + addDir = () => { + let {videoData} = this.state; + trigger('videoAdd', parseInt(videoData.course_module_id)); + } + // 目录重命名 + editDir = (name, id) => { + let data = {id, name, update: this.getList} + trigger('editVideo', data); + } + // 增加外链 + setLinkeVisible = (flag, refresh) => { + this.setState({ + otherLinkVisible: flag + }) + if (refresh) { + const {page} = this.state; + this.getList(page); + } + } + //统计 + statisticsy = (bool) => { + this.setState({ + statistics: bool }) } - render(){ - const { videos , upload , videoData , type , liveData , lives , page , liveVisible , isSpining , liveId , otherLinkVisible,statistics } = this.state; - const { coursesId , videoId }=this.props.match.params; - let course_identity = this.props&&this.props.coursedata; - let is_teacher=this.props&&this.props.user&&this.props.user.is_teacher; - const flag = parseInt(course_identity) < 5; - const newOperation = flag; - const new_upload = flag && (is_teacher && this.props.checkIfProfessionalCertification()); - return( - - - - { - liveVisible ? - : - : + - } + } { - statistics===false? -
+ statistics === false ? +
{ videoData && videoData.category_name && type === "video" ? {videoData.category_name} : -
+
视频 直播 @@ -308,27 +312,32 @@ class VideoIndex extends Component{ newOperation ? this.statisticsy(true)} + onClick={() => this.statisticsy(true)} >统计 { videoId ? - this.editDir(videoData && videoData.category_name,videoId)} className={"ml30 font-16"}>目录重命名 + this.editDir(videoData && videoData.category_name, videoId)} + className={"ml30 font-16"}>目录重命名 : 新建目录 } - this.setLinkeVisible(true)}>增加外链 - :"" + this.setLinkeVisible(true)}>增加外链 + : "" } { new_upload ? { upload ? - this.uploadVideo(false)}>取消 + this.uploadVideo(false)}>取消 : 上传视频 } - :"" + + : "" } : @@ -338,44 +347,45 @@ class VideoIndex extends Component{
: - this.statisticsy(b)}> + this.statisticsy(b)}> } { - statistics===false? - - { - type === "video" ? - - : - - } - + statistics === false ? + + { + type === "video" ? + + : + + } + : "" } - - ) - } + + ) + } } + export default VideoIndex; diff --git a/public/react/src/modules/courses/videostatistics/component/Videostatisticscomtwo.js b/public/react/src/modules/courses/videostatistics/component/Videostatisticscomtwo.js index 764ddcb1f..ff6af4d38 100644 --- a/public/react/src/modules/courses/videostatistics/component/Videostatisticscomtwo.js +++ b/public/react/src/modules/courses/videostatistics/component/Videostatisticscomtwo.js @@ -16,7 +16,7 @@ class Videostatisticscomtwo extends Component { this.state = { data: [], page: 1, - limit: 10, + limit: 20, members_count: 0, columnsstu: [ { diff --git a/public/react/src/modules/courses/videostatistics/component/Videostatisticslist.js b/public/react/src/modules/courses/videostatistics/component/Videostatisticslist.js index 637ec306c..e3f671f36 100644 --- a/public/react/src/modules/courses/videostatistics/component/Videostatisticslist.js +++ b/public/react/src/modules/courses/videostatistics/component/Videostatisticslist.js @@ -89,7 +89,7 @@ class Videostatisticslist extends Component { loading:false, data:[], page:1, - limit:10, + limit:20, members_count:0, order:undefined, } @@ -134,7 +134,7 @@ class Videostatisticslist extends Component { let datalists = []; for (var i = 0; i < response.data.videos.length; i++) { datalists.push({ - number: (parseInt(this.state.spage) - 1) * parseInt(this.state.limit) + (i + 1), + number: (parseInt(this.state.page) - 1) * parseInt(this.state.limit) + (i + 1), title: response.data.videos[i].title, people_num: response.data.videos[i].people_num, total_time: response.data.videos[i].total_time,