From a850f96ef48428c4a0a6b78cc0b5fb233dc57ece Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com>
Date: Fri, 6 Dec 2019 11:53:51 +0800
Subject: [PATCH 1/4] =?UTF-8?q?=E8=B0=83=E6=95=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
public/react/src/AppConfig.js | 7 +
.../exercise/ExerciseReviewAndAnswer.js | 128 +++++++++++-------
2 files changed, 84 insertions(+), 51 deletions(-)
diff --git a/public/react/src/AppConfig.js b/public/react/src/AppConfig.js
index f3b0d0412..064c64db1 100644
--- a/public/react/src/AppConfig.js
+++ b/public/react/src/AppConfig.js
@@ -30,6 +30,13 @@ if (isDev) {
window.location.search.indexOf('debug=s') != -1 ? 'student' :
window.location.search.indexOf('debug=a') != -1 ? 'admin' : parsed.debug || 'admin'
}
+// 超管
+// debugType="admin";
+// 老师
+// debugType="teacher";
+// 学生
+//debugType="student";
+
window._debugType = debugType;
export function initAxiosInterceptors(props) {
initOnlineOfflineListener()
diff --git a/public/react/src/modules/courses/exercise/ExerciseReviewAndAnswer.js b/public/react/src/modules/courses/exercise/ExerciseReviewAndAnswer.js
index 8bbbffa10..0f2dbfcfe 100644
--- a/public/react/src/modules/courses/exercise/ExerciseReviewAndAnswer.js
+++ b/public/react/src/modules/courses/exercise/ExerciseReviewAndAnswer.js
@@ -1,26 +1,33 @@
import React,{ Component } from "react";
-import {Checkbox,Radio, Input,InputNumber,Spin} from "antd";
+import {Input,InputNumber,Spin,Statistic} from "antd";
-import '../css/members.css'
-import '../css/busyWork.css'
-import '../poll/pollStyle.css'
-import '../css/Courses.css'
+import '../css/members.css';
+import '../css/busyWork.css';
+import '../poll/pollStyle.css';
+import '../css/Courses.css';
-import moment from 'moment'
-import { WordsBtn,markdownToHTML,ActionBtn,getImageUrl, MarkdownToHtml } from 'educoder'
-import Modals from '../../modals/Modals'
+import moment from 'moment';
+import { WordsBtn,markdownToHTML,ActionBtn,getImageUrl, MarkdownToHtml } from 'educoder';
+import Modals from '../../modals/Modals';
import CoursesListType from '../coursesPublic/CoursesListType';
-import Multiple from './question/multiple'
-import Single from './question/single'
-import FillEmpty from './question/fillEmpty'
-import SimpleAnswer from './question/simpleAnswer'
-import ShixunAnswer from './question/shixunAnswer'
+import Multiple from './question/multiple';
+import Single from './question/single';
+import FillEmpty from './question/fillEmpty';
+import SimpleAnswer from './question/simpleAnswer';
+import ShixunAnswer from './question/shixunAnswer';
-import update from 'immutability-helper'
+import update from 'immutability-helper';
import axios from 'axios';
-import './new/common.css'
+import './new/common.css';
+
+const { Countdown } = Statistic;
+
+// const deadline = Date.now() + this.state.time*60*60; // Moment is also OK
+
+// console.log(deadline)
+
const Textarea =Input.TextArea
const tagArray = [
'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I',
@@ -98,32 +105,37 @@ class ExerciseReviewAndAnswer extends Component{
remainTime=(time)=>{
// let { time } = this.state;
- let h=moment(parseInt(time)*1000).hour()-8;
- let m=moment(parseInt(time)*1000).minutes();
- let s=moment(parseInt(time)*1000).seconds();
- this.timer = setInterval(() => {
- if(time>0){
- if(s==0){
- if(m > 0){
- m--;
- }
- s=59;
- }else{
- s--;
- }
- this.setState({
- hour:h,
- minute:m,
- second:s
- })
- if(h==0 && m==0 && s==0){
- clearInterval(this.timer);
- this.autoCommitExercise();
- }
- }else{
- clearInterval(this.timer);
- }
- },1000)
+ // let h=moment(parseInt(time)*1000).hour()-8;
+ // let m=moment(parseInt(time)*1000).minutes();
+ // let s=moment(parseInt(time)*1000).seconds();
+ // this.timer = setInterval(() => {
+ // if(time>0){
+ // if(s==0){
+ // if(m > 0){
+ // m--;
+ // }
+ // s=59;
+ // }else{
+ // s--;
+ // }
+ // this.setState({
+ // hour:h,
+ // minute:m,
+ // second:s
+ // })
+ // if(h==0 && m==0 && s==0){
+ // clearInterval(this.timer);
+ // this.autoCommitExercise();
+ // }
+ // }else{
+ // clearInterval(this.timer);
+ // }
+ // },1000)
+ }
+ autosetimes=(time)=>{
+ this.setState({
+ time:parseInt(time)
+ })
}
//自动交卷
autoCommitExercise=()=>{
@@ -146,7 +158,8 @@ class ExerciseReviewAndAnswer extends Component{
}
if(result.data.status===-2){
- this.remainTime(parseInt(result.data.message))
+ // this.remainTime(parseInt(result.data.message))
+ this.autosetimes(result.data.message)
}
}
}).catch((error)=>{
@@ -244,7 +257,7 @@ class ExerciseReviewAndAnswer extends Component{
isSpin:false
})
if(result.data.exercise.left_time != null){
- this.remainTime(result.data.exercise.left_time);
+ // this.remainTime(result.data.exercise.left_time);
}
}
}).catch((error)=>{
@@ -571,6 +584,14 @@ class ExerciseReviewAndAnswer extends Component{
this.props.history.push(`/courses/${coursesId}/exercises/${eId}/student_exercise_list?tab=0`)
}
+ deadline=(time)=>{
+ if(time===null){
+
+ }else{
+ return Date.now() + time * 1000 ;
+ }
+
+ }
render(){
let coursesId=this.props.match.params.coursesId;
let eId=this.props.match.params.Id;
@@ -613,6 +634,7 @@ class ExerciseReviewAndAnswer extends Component{
const { current_user } = this.props
// console.log(data&&data.exercise.user_name)
document.title=courseName&&courseName;
+
return(
@@ -663,6 +685,7 @@ class ExerciseReviewAndAnswer extends Component{
{exercise && exercise.exercise_name}
+
@@ -671,15 +694,18 @@ class ExerciseReviewAndAnswer extends Component{
返回
:
time && time != 0 ?
-
-
{ hour >= 10 ? hour : '0'+hour}
- :
- { minute >= 10 ? minute : '0'+minute}
- :
- { second >= 10 ? second : '0'+second}
- :""
+
+
+
+ :""
}
-
+ {/**/}
+ {/*
{ hour >= 10 ? hour : '0'+hour}*/}
+ {/* :*/}
+ {/* { minute >= 10 ? minute : '0'+minute}*/}
+ {/* :*/}
+ {/* { second >= 10 ? second : '0'+second}*/}
+ {/**/}
{
isAdmin && 打回重做
}
From 7419f33221c5609815039902c5d835fb0997cb56 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=9E=97?= <904079904@qq.com>
Date: Fri, 6 Dec 2019 12:48:15 +0800
Subject: [PATCH 2/4] =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=95=B0=E6=8D=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
public/react/src/modules/user/account/AccountBasicEdit.js | 4 ++--
.../src/modules/user/modal/RealNameCertificationModal.js | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/public/react/src/modules/user/account/AccountBasicEdit.js b/public/react/src/modules/user/account/AccountBasicEdit.js
index 9d292a168..892fe10a6 100644
--- a/public/react/src/modules/user/account/AccountBasicEdit.js
+++ b/public/react/src/modules/user/account/AccountBasicEdit.js
@@ -413,7 +413,7 @@ class AccountBasic extends Component {
//昵称
handleSubmitName(rule, value, callback){
if (value) {
- let iconRule1 = /[`~!@#$%^&*()\-+=<>?:"{}|,.\/;'\\[\]·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘’,。、]/im;
+ let iconRule1 = /[`~!@#$%^&()\-+=<>?:"{}|,.\/;'\\[\]·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘’,。、]/im;
// 判断是否含有emoji表情
let iconRule2 = /[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF][\u200D|\uFE0F]|[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF]|[0-9|*|#]\uFE0F\u20E3|[0-9|#]\u20E3|[\u203C-\u3299]\uFE0F\u200D|[\u203C-\u3299]\uFE0F|[\u2122-\u2B55]|\u303D|[\A9|\AE]\u3030|\uA9|\uAE|\u3030/ig;
// 如果为true,字符串含有emoji表情 ,false不含
@@ -436,7 +436,7 @@ class AccountBasic extends Component {
// 姓名
handleSubmitNames(rule, value, callback){
if (value) {
- let iconRule1 = /[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘’,。、]/im;
+ let iconRule1 = /[`~!@#$%^&()_\-+=<>?:"{}|,.\/;'\\[\]·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘’,。、]/im;
// 判断是否含有emoji表情
let iconRule2 = /[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF][\u200D|\uFE0F]|[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF]|[0-9|*|#]\uFE0F\u20E3|[0-9|#]\u20E3|[\u203C-\u3299]\uFE0F\u200D|[\u203C-\u3299]\uFE0F|[\u2122-\u2B55]|\u303D|[\A9|\AE]\u3030|\uA9|\uAE|\u3030/ig;
// 如果为true,字符串含有emoji表情 ,false不含
diff --git a/public/react/src/modules/user/modal/RealNameCertificationModal.js b/public/react/src/modules/user/modal/RealNameCertificationModal.js
index 55def4203..3fa4ac0ea 100644
--- a/public/react/src/modules/user/modal/RealNameCertificationModal.js
+++ b/public/react/src/modules/user/modal/RealNameCertificationModal.js
@@ -453,7 +453,7 @@ class RealNameCertificationModal extends Component{
// 姓名
handleSubmitNames(rule, value, callback){
if (value) {
- let iconRule1 = /[`~!@#$%^&*()_\-+=<>?:"{}|,.\/;'\\[\]·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘’,。、]/im;
+ let iconRule1 = /[`~!@#$%^&()_\-+=<>?:"{}|,.\/;'\\[\]·~!@#¥%……&*()——\-+={}|《》?:“”【】、;‘’,。、]/im;
// 判断是否含有emoji表情
let iconRule2 = /[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF][\u200D|\uFE0F]|[\uD83C|\uD83D|\uD83E][\uDC00-\uDFFF]|[0-9|*|#]\uFE0F\u20E3|[0-9|#]\u20E3|[\u203C-\u3299]\uFE0F\u200D|[\u203C-\u3299]\uFE0F|[\u2122-\u2B55]|\u303D|[\A9|\AE]\u3030|\uA9|\uAE|\u3030/ig;
// 如果为true,字符串含有emoji表情 ,false不含
From c5e0be2da749420a85e4a8b71f0641712669581c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E6=9D=A8=E6=A0=91=E6=98=8E?= <775174143@qq.com>
Date: Fri, 6 Dec 2019 13:37:25 +0800
Subject: [PATCH 3/4] =?UTF-8?q?=E8=B0=83=E6=95=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
public/images/educoder/path-detail.jpg | Bin 18531 -> 115120 bytes
1 file changed, 0 insertions(+), 0 deletions(-)
diff --git a/public/images/educoder/path-detail.jpg b/public/images/educoder/path-detail.jpg
index cea866a72a51e9e0a9591ac02cead66661e92920..5d00327239fd6239ecc3a9878e7d81777f1062ff 100644
GIT binary patch
literal 115120
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𝔭kM>c
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