From eab8154b0e0744c1bf6e869c7d21dff90fc5cd14 Mon Sep 17 00:00:00 2001 From: nopy <646880214@qq.com> Date: Wed, 26 Jun 2024 19:35:37 +0800 Subject: [PATCH 1/2] 1 --- app-dm/src/TeacherPages/list_pods/List_pods.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app-dm/src/TeacherPages/list_pods/List_pods.jsx b/app-dm/src/TeacherPages/list_pods/List_pods.jsx index 7588fba..d1e5004 100644 --- a/app-dm/src/TeacherPages/list_pods/List_pods.jsx +++ b/app-dm/src/TeacherPages/list_pods/List_pods.jsx @@ -1,6 +1,6 @@ function List_pods(){ return( -
+ ) } export default List_pods \ No newline at end of file From b94b8f52b9ecc733b49e3fb70edbb075d6adca95 Mon Sep 17 00:00:00 2001 From: nopy <646880214@qq.com> Date: Wed, 26 Jun 2024 23:43:33 +0800 Subject: [PATCH 2/2] 6.26 --- .../TeacherPages/classlistpages/classId.jsx | 2 +- .../pages/ListPages/Training/Operation3.css | 0 .../pages/ListPages/Training/Operation3.jsx | 95 +++++++++++++++++++ app-dm/src/router/index.jsx | 10 +- 4 files changed, 102 insertions(+), 5 deletions(-) create mode 100644 app-dm/src/pages/ListPages/Training/Operation3.css create mode 100644 app-dm/src/pages/ListPages/Training/Operation3.jsx diff --git a/app-dm/src/TeacherPages/classlistpages/classId.jsx b/app-dm/src/TeacherPages/classlistpages/classId.jsx index e3969d2..4fd27a2 100644 --- a/app-dm/src/TeacherPages/classlistpages/classId.jsx +++ b/app-dm/src/TeacherPages/classlistpages/classId.jsx @@ -66,7 +66,7 @@ } } } - + setStudentScores(scores); }); }, [selectedSubject]); diff --git a/app-dm/src/pages/ListPages/Training/Operation3.css b/app-dm/src/pages/ListPages/Training/Operation3.css new file mode 100644 index 0000000..e69de29 diff --git a/app-dm/src/pages/ListPages/Training/Operation3.jsx b/app-dm/src/pages/ListPages/Training/Operation3.jsx new file mode 100644 index 0000000..e531d3d --- /dev/null +++ b/app-dm/src/pages/ListPages/Training/Operation3.jsx @@ -0,0 +1,95 @@ +import './Operation2.css' +import { Terminal } from "@xterm/xterm"; +import "@xterm/xterm/css/xterm.css" +import React,{ MouseEvent, useEffect, useRef, useState } from "react"; +import { useParams } from 'react-router'; +import { Link } from 'react-router-dom'; +import arrowleft from '../img/arrowleft.jpg' +import arrowright from '../img/arrowright.jpg' +import bottom from '../img/bottom.jpg' +import top from '../img/top.jpg' + +function Operation3() { + const { operateID } = useParams(); + + //倒计时 + // const { OperationId } = useParams(); + const [test_data, setTestData] = useState(''); + const [countdown, setCountdown] = useState(0); + + // 倒计时初始化 + useEffect(() => { + const examDuration = 60 * 60; // 假设考试时长为1小时 + setCountdown(examDuration); + }, []); + + // 倒计时更新 + useEffect(() => { + let interval = setInterval(() => { + if (countdown > 0) { + setCountdown(countdown - 1); + } else { + clearInterval(interval); + alert('考试时间到!'); + } + }, 1000); + return () => clearInterval(interval); + }, [countdown]); + + // 转换秒数为时分秒格式 + const formatTime = (seconds) => { + const hours = Math.floor(seconds / 3600); + const minutes = Math.floor((seconds % 3600) / 60); + const secs = seconds % 60; + return `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${secs.toString().padStart(2, '0')}`; + }; + + // 下拉菜单 + const [isSubjectDropdownOpen, setIsSubjectDropdownOpen] = useState(false); + + return ( +剩余时间:{formatTime(countdown)}
+题目
+上一页
+ + + + +完成
+ +