@@ -71,8 +51,13 @@ class LiveItem extends Component{
}
- 创建时间:{item.created_at}
-
+
+
+
+ { item.platform && 直播平台:{item.platform} }
+ { item.live_time && 开播时间:{item.live_time}}
+ { item.duration && 直播时长:{item.duration} }
+
{
item.op_auth ?
@@ -80,7 +65,7 @@ class LiveItem extends Component{
}
{
item.delete_auth ?
- this.deleteLive(item.id)}>删除
+ this.deleteLive(item.id)}>删除
:""
}
diff --git a/public/react/src/modules/courses/Video/LiveNew.js b/public/react/src/modules/courses/Video/LiveNew.js
index 2cd23f049..d505f052d 100644
--- a/public/react/src/modules/courses/Video/LiveNew.js
+++ b/public/react/src/modules/courses/Video/LiveNew.js
@@ -1,20 +1,50 @@
import React,{ Component } from "react";
-import { Modal , Form , Input , Spin } from 'antd';
+import { Modal , Form , Input , Spin , Select , DatePicker , InputNumber } from 'antd';
+import locale from 'antd/lib/date-picker/locale/zh_CN';
+import moment from 'moment';
+import { handleDateString } from 'educoder';
import './video.css';
import axios from 'axios';
+
const { TextArea } = Input;
+const { Option } = Select;
+
+function range(start, end) {
+ const result = [];
+ for (let i = start; i < end; i++) {
+ result.push(i);
+ }
+ return result;
+}
+function disabledDateTime() {
+ return {
+ disabledMinutes: () => range(1, 30).concat(range(31, 60)),
+ };
+}
+function disabledDate(current) {
+ return current && current < moment().endOf('day').subtract(1, 'days');
+}
+
class LiveNew extends Component{
constructor(props){
super(props);
this.state={
- isSpining:false
+ isSpining:false,
+ beginTime:undefined,
+ beginTimeFlag:false,
}
}
+ componentDidMount=()=>{
+ console.log("1",this.props.liveId)
+ this.checkType();
+ }
+
componentDidUpdate=(prevState)=>{
+ console.log("2",prevState.liveId);
if(prevState && prevState.liveId !== this.props.liveId){
this.setState({
isSpining:true
@@ -25,7 +55,8 @@ class LiveNew extends Component{
checkType=()=>{
const { liveId } = this.props;
-
+ console.log("3",this.props.liveId);
+ this.clearAll();
if(liveId){
const url =`/live_links/${liveId}/edit.json`;
axios.get(url).then(result=>{
@@ -33,14 +64,15 @@ class LiveNew extends Component{
this.props.form.setFieldsValue({
url:result.data.url,
description:result.data.description,
+ platform:result.data.platform || "tencent",
+ duration:result.data.duration,
+ course_name:result.data.course_name
+ })
+ this.setState({
+ beginTime:result.data.live_time && moment(result.data.live_time,"YYYY-MM-DD HH:mm")
})
}
})
- }else{
- this.props.form.setFieldsValue({
- url:undefined,
- description:undefined
- })
}
this.setState({
isSpining:false
@@ -50,7 +82,13 @@ class LiveNew extends Component{
handleSubmit=()=>{
this.props.form.validateFields((err, values) => {
if(!err){
- console.log("2")
+ const { beginTime } = this.state;
+ if(!beginTime){
+ this.setState({
+ beginTimeFlag:true
+ })
+ return;
+ }
const { liveId } = this.props;
if(liveId){
// 修改
@@ -64,8 +102,10 @@ class LiveNew extends Component{
// 修改
updateFunc=(id,values)=>{
const url = `/live_links/${id}.json`;
+ const { beginTime } = this.state;
axios.put(url,{
- ...values
+ ...values,
+ live_time:beginTime
}).then(result=>{
if(result){
this.props.showNotification("修改成功!");
@@ -81,8 +121,10 @@ class LiveNew extends Component{
creatFunc=(values)=>{
const CourseId=this.props.match.params.coursesId;
const url = `/courses/${CourseId}/live_links.json`;
+ const { beginTime } = this.state;
axios.post(url,{
- ...values
+ ...values,
+ live_time:beginTime
}).then(result=>{
if(result){
this.props.showNotification("添加成功!");
@@ -107,15 +149,31 @@ class LiveNew extends Component{
cancelNew=()=>{
const { setliveVisibel } = this.props;
+ this.clearAll();
+ setliveVisibel && setliveVisibel(false);
+ }
+
+ clearAll=()=>{
this.props.form.setFieldsValue({
+ course_name:undefined,
+ platform:"tencent",
url:undefined,
- description:undefined
+ description:undefined,
+ duration:undefined
+ })
+ this.setState({
+ beginTime:undefined
+ })
+ }
+
+ onChangeTime=(data,dateString)=>{
+ this.setState({
+ beginTime:handleDateString(dateString)
})
- setliveVisibel && setliveVisibel(false);
}
render(){
- const { isSpining } = this.state;
+ const { isSpining , beginTime , beginTimeFlag } = this.state;
const {getFieldDecorator} = this.props.form;
const { visible } = this.props;
@@ -131,6 +189,24 @@ class LiveNew extends Component{
+ {getFieldDecorator('course_name', {
+ rules: [{required: true, message: "请输入课程名字"}],
+ })(
+
+ )}
+
+
+ {getFieldDecorator('platform', {
+ rules: [{required: true, message: "请选择直播平台"}],
+ })(
+
+ )}
+
{getFieldDecorator('url', {
rules: [{required: true, message: "请输入第三方直播链接"}],
@@ -138,6 +214,38 @@ class LiveNew extends Component{
)}
+
+
+
*开播时间
+
+
+ {
+ beginTimeFlag && 请选择开播时间
+ }
+
+
+
+ {getFieldDecorator('duration', {
+ rules: [],
+ })(
+
+ )}
+
+
分钟
+
{getFieldDecorator('description', {
rules: [{
@@ -147,10 +255,7 @@ class LiveNew extends Component{
)}
- {/*
- EduCoder推荐您使用腾讯课堂进行直播
- 操作指引
-
*/}
+
取消
diff --git a/public/react/src/modules/courses/Video/VideoIndex.js b/public/react/src/modules/courses/Video/VideoIndex.js
index 070b76bbc..b1bf5efdc 100644
--- a/public/react/src/modules/courses/Video/VideoIndex.js
+++ b/public/react/src/modules/courses/Video/VideoIndex.js
@@ -28,7 +28,6 @@ class VideoIndex extends Component{
lives:undefined,
liveData:undefined,
- my_liveId:undefined,
liveId:undefined,
liveVisible:false
@@ -66,8 +65,6 @@ class VideoIndex extends Component{
liveData:result.data,
lives:result.data.lives,
isSpining:false,
- my_liveId:result.data.my_live_id,
- liveId:result.data.my_live_id
})
}
}).catch(error=>{
@@ -155,9 +152,8 @@ class VideoIndex extends Component{
// }
// 直播设置
liveSetting=()=>{
- const { my_liveId } = this.state;
this.setState({
- liveId:my_liveId
+ liveId:undefined
})
this.setliveVisibel(true);
}
@@ -166,6 +162,11 @@ class VideoIndex extends Component{
this.setState({
liveVisible:flag
})
+ if(flag === false){
+ this.setState({
+ liveId:undefined
+ })
+ }
if(changetypeFlag){
this.checkType("live",1);
}
@@ -223,7 +224,7 @@ class VideoIndex extends Component{
}
:
-
直播设置
+
添加直播
}
}
diff --git a/public/react/src/modules/courses/Video/video.css b/public/react/src/modules/courses/Video/video.css
index b44a33371..ea34ffe22 100644
--- a/public/react/src/modules/courses/Video/video.css
+++ b/public/react/src/modules/courses/Video/video.css
@@ -42,6 +42,11 @@
align-items: center;
height: 25px;
}
+.flex-bottom{
+ display: flex;
+ justify-content: space-between;
+ align-items: flex-end;
+}
.square-main .buttonRow i {
vertical-align: top;
font-size: 16px;
@@ -68,8 +73,8 @@
align-items: center;
}
.liveAuthor{
- width: 36px;
- height: 36px;
+ width: 20px;
+ height: 20px;
border-radius: 50%;
margin-right: 20px;
}
@@ -117,6 +122,16 @@
line-clamp: 2;
-webkit-box-orient: vertical;
}
+.timeStyle{
+ transition: 0.5s;
+}
+.borderRed{
+ border:1px solid #f5222d;
+ border-radius: 4px;
+}
+.setStyle{
+ margin-bottom: 5px!important;
+}
.switchStyle.ant-switch-checked{
background-color: #25C03B;
}
@@ -128,7 +143,7 @@
}
.liveModal .ant-row.ant-form-item{
position: relative;
- margin-bottom: 20px;
+ margin-bottom: 16px;
}
.liveModal .ant-form-explain{
position: absolute;
@@ -136,8 +151,8 @@
left: 0px;
}
.liveModal .ant-col.ant-form-item-label{
- height: 30px;
- line-height: 30px;
+ height: 22px;
+ line-height: 22px;
}
.platform{
background: #fff;
diff --git a/public/react/src/modules/courses/shixunHomework/ShixunhomeWorkItem.js b/public/react/src/modules/courses/shixunHomework/ShixunhomeWorkItem.js
index 19ad9d5cf..5c12fe3b9 100644
--- a/public/react/src/modules/courses/shixunHomework/ShixunhomeWorkItem.js
+++ b/public/react/src/modules/courses/shixunHomework/ShixunhomeWorkItem.js
@@ -399,15 +399,15 @@ class ShixunhomeWorkItem extends Component{
:"":"":"":""
}
- { this.props.isAdmin?
this.hrefjumpskip("/courses/"+this.props.match.params.coursesId+"/"+this.state.shixuntypes+"/"+discussMessage.homework_id+"/list?tab=0")} className="btn colorblue font-16 fontweight400 mr20 fr">查看详情:""}
+ { this.props.isAdmin?
this.hrefjumpskip("/courses/"+this.props.match.params.coursesId+"/"+this.state.shixuntypes+"/"+discussMessage.homework_id+"/list?tab=0")} className="btn colorblue font-16 fontweight400 mr20 fr">作品详情:""}
{
- this.props.isStudent?
this.hrefjumpskip("/courses/"+this.props.match.params.coursesId+"/"+this.state.shixuntypes+"/"+discussMessage.homework_id+"/list?tab=0")} className="btn colorblue font-16 fontweight400 mr20 fr mt2">查看详情:""
+ this.props.isStudent?
this.hrefjumpskip("/courses/"+this.props.match.params.coursesId+"/"+this.state.shixuntypes+"/"+discussMessage.homework_id+"/list?tab=0")} className="btn colorblue font-16 fontweight400 mr20 fr mt2">作品详情:""
}
{
this.props.isNotMember===true? this.props.discussMessage.private_icon===true?""
- :
this.hrefjumpskip("/courses/"+this.props.match.params.coursesId+"/"+this.state.shixuntypes+"/"+discussMessage.homework_id+"/list?tab=0")} className="btn colorblue font-16 fontweight400 mr20 fr">查看详情:""
+ :
this.hrefjumpskip("/courses/"+this.props.match.params.coursesId+"/"+this.state.shixuntypes+"/"+discussMessage.homework_id+"/list?tab=0")} className="btn colorblue font-16 fontweight400 mr20 fr">作品详情:""
}