diff --git a/public/react/src/context/TPIContextProvider.js b/public/react/src/context/TPIContextProvider.js
index ae88bf865..3e7695847 100644
--- a/public/react/src/context/TPIContextProvider.js
+++ b/public/react/src/context/TPIContextProvider.js
@@ -54,6 +54,8 @@ const testSetsExpandedArrayInitVal = [false, false, false, false, false,
false, false, false, false, false,
false, false, false, false, false]
window.__fetchAllFlag = false; // 是否调用过fetchAll TODO 如何多次使用provider?
+
+const $ = window.$
class TPIContextProvider extends Component {
constructor(props) {
super(props)
@@ -592,13 +594,48 @@ pop_box_new(htmlvalue, 480, 182);
currentPassedGameGainExperience: experience,
})
}
+ initDisplayInterval = () => {
+ if (this.showWebDisplayButtonTimeout) {
+ window.clearTimeout(this.showWebDisplayButtonTimeout)
+ }
+ this.showWebDisplayButtonTimeout = window.setTimeout(() => {
+ this.setState({ challenge: update(challenge,
+ {
+ showWebDisplayButton: { $set: false },
+ })
+ })
+ this.showWebDisplayButtonTimeout = null
+ }, 61 * 1000)
+
+ let remain = 60
+ if (this.displayInterval) {
+ window.clearInterval(this.displayInterval)
+ }
+ this.displayInterval = window.setInterval(() => {
+ const button = $('#showWebDisplayButton');
+ if (button.length) {
+ button.html(`查看效果(${remain})`)
+ if (remain == 0) {
+ button.html('查看效果')
+ }
+ }
+ if (remain == 0) {
+ window.clearInterval(this.displayInterval)
+ this.displayInterval = null
+ return;
+ }
+
+ remain -= 1;
+ }, 1000)
+ }
language_display(data) {
const { game, tomcat_url } = this.state;
- const $ = window.$;
const challenge = Object.assign({}, this.state.challenge)
if(challenge.isWeb && data.port != -1) {
// var $result = $("#php_display");
challenge.showWebDisplayButton = true; // ActionView处是否出现查看效果按钮
+ this.initDisplayInterval()
+
const path = challenge.web_route || challenge.path
const webDisplayUrl = `${tomcat_url}:${data.port}/${path}`
challenge.webDisplayUrl = webDisplayUrl
@@ -653,24 +690,11 @@ pop_box_new(htmlvalue, 480, 182);
const currentGamePassed = this.props.game !== 2 && status === 2
- currentGamePassed && this.language_display(response);
+
// 评测通过了,立即同步costTime
currentGamePassed && this._updateCostTime(true, true);
- if (currentGamePassed) {
- game.status = 2;
- game.next_game = next_game;
-
- } else {
- this.showDialog({
- contentText:
,
- isSingleButton: true
- })
- }
const output_sets = {
"test_sets": test_sets,
@@ -689,6 +713,31 @@ pop_box_new(htmlvalue, 480, 182);
// output_sets.test_sets_array = test_sets_array;
// }
+ // 检查是否编译通过
+ let compileSuccess = false;
+ if (test_sets && test_sets.length) {
+ test_sets.some((item) => {
+ if (item.compile_success) {
+ compileSuccess = true;
+ return true;
+ }
+ })
+ }
+
+ compileSuccess && this.language_display(response);
+ if (currentGamePassed) {
+ game.status = 2;
+ game.next_game = next_game;
+ } else {
+ this.showDialog({
+ contentText: ,
+ isSingleButton: true
+ })
+ }
+
this.setState({
testSetsExpandedArray: testSetsExpandedArrayInitVal.slice(0), // 重置测试集展开状态
diff --git a/public/react/src/modules/courses/shixunHomework/Listofworks.js b/public/react/src/modules/courses/shixunHomework/Listofworks.js
index db008e2c4..5dd049441 100644
--- a/public/react/src/modules/courses/shixunHomework/Listofworks.js
+++ b/public/react/src/modules/courses/shixunHomework/Listofworks.js
@@ -1340,14 +1340,15 @@ class Listofworks extends Component {
// 导出实习报告批量
internshipreport = (url)=>{
console.log("internshipreport");
- // params: {
- // homework_common_id: homeworkid,
- // work_status: this.state.course_groupyslstwo,
- // course_group: this.state.checkedValuesineinfo,
- // search: this.state.searchtext,
- // }
- // let url = "/zip/shixun_report";
- // let homeworkid = this.props.match.params.homeworkid;
+ var struy="";
+ try {
+ struy = moment().format('YYYY-MM-DD')+"-"+moment().format('hh-mm');
+ struy=struy.replace(/-/g,"");
+ }catch (e) {
+ console.log(1347);
+ console.log(e);
+ }
+
axios.get((url),{responseType: 'blob'}).then((response) => {
console.log("1350");
console.log(response);
@@ -1363,19 +1364,10 @@ class Listofworks extends Component {
const blob = new Blob([response.data], { type: type })
const downloadElement = document.createElement('a')
const href = window.URL.createObjectURL(blob)
- //后台再header中传文件名
- // console.log(Base64.decode(response.headers['content-disposition'].split('=')[1]));
const string = Base64.decode(response.headers['content-disposition'].split('=')[1]);
+ console.log(response.headers['content-disposition'].split('=')[1]);
downloadElement.href = href
- var now="";
- try {
- now = moment().year()+""+(moment().month()+1)+""+moment().date()+""+moment().hour()+""+moment().minute()+""
- console.log(now);
-
- } catch (e) {
- console.log("1376");
- }
- downloadElement.download = string+now+".zip"
+ downloadElement.download = string+struy+".zip"
document.body.appendChild(downloadElement)
downloadElement.click()
document.body.removeChild(downloadElement) // 下载完成移除元素
@@ -1388,6 +1380,17 @@ class Listofworks extends Component {
// 课堂学生成绩的导出下载
Classstudentachievement=(url)=>{
console.log("Classstudentachievement");
+ // console.log();
+ var struy="";
+ try {
+ struy = moment().format('YYYY-MM-DD')+"-"+moment().format('hh-mm');
+ struy=struy.replace(/-/g,"");
+ }catch (e) {
+ console.log(1397);
+ console.log(e);
+ }
+
+
axios.get((url),{responseType: 'blob'}).then((response) => {
console.log("1374");
console.log(response);
@@ -1401,21 +1404,10 @@ class Listofworks extends Component {
const blob = new Blob([response.data], { type: type })
const downloadElement = document.createElement('a')
const href = window.URL.createObjectURL(blob)
- //后台再header中传文件名
- // console.log("1409");
- // console.log(Base64.decode(response.headers['content-disposition'].split('=')[1]));
const string = Base64.decode(response.headers['content-disposition'].split('=')[1]);
- var now="";
- try {
- now = moment().year()+""+(moment().month()+1)+""+moment().date()+""+moment().hour()+""+moment().minute()+""
- console.log("1422");
- console.log(now);
-
- } catch (e) {
- console.log("1432");
- }
+ console.log(response.headers['content-disposition'].split('=')[1]);
downloadElement.href = href
- downloadElement.download =string+now+".xlsx";
+ downloadElement.download =string+struy+".xlsx";
document.body.appendChild(downloadElement)
downloadElement.click()
document.body.removeChild(downloadElement) // 下载完成移除元素
diff --git a/public/react/src/modules/page/main/ActionView.js b/public/react/src/modules/page/main/ActionView.js
index e0e52de9e..fff7d416d 100644
--- a/public/react/src/modules/page/main/ActionView.js
+++ b/public/react/src/modules/page/main/ActionView.js
@@ -25,7 +25,14 @@ const styles = theme => ({
color: '#4CACFF',
border: '1px solid #4CACFF'
}
+ },
+ hoverButton: {
+ margin: theme.spacing.unit,
+ height: '30px',
+ padding: '0 16px',
+ color: '#4CACFF',
+ border: '1px solid #4CACFF'
},
buttonText: {
color: '#1B4061 !important',
@@ -64,11 +71,12 @@ class ActionView extends Component {
{/*将第一个按钮改为visibility方式隐藏,不然加载时测评按钮会出现没有垂直居中的情况*/}
-
-
+
+
+
{
!gameBuilding &&