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 ( +
+
+ {/* 导航 */} + {/*

{OperationId}

*/} +

剩余时间:{formatTime(countdown)}

+
+
+
+ {/* 左边导航 */} +

题目

+
    + +
  • setIsSubjectDropdownOpen(!isSubjectDropdownOpen)}> + 主观题 + {isSubjectDropdownOpen ? : } + {isSubjectDropdownOpen && ( +
      +
    • 判断题
    • +
    • 选择题
    • +
    • 简答题
    • + {/* 子菜单项 */} +
    + )} +
  • + +
  • 实训题
  • +
+
+
+ 第三页(实训题:)的右边页面 +
+ +

上一页

+ + + + +

完成

+ +
+
+ ) +} + +export default Operation3; \ No newline at end of file diff --git a/app-dm/src/router/index.jsx b/app-dm/src/router/index.jsx index 019d193..1a281f0 100755 --- a/app-dm/src/router/index.jsx +++ b/app-dm/src/router/index.jsx @@ -16,6 +16,7 @@ import AnalysePage from '../pages/ListPages/Analyse/AnalysePages'; import Exam from '../pages/ListPages/Subject/Exam'; import Operation1 from '../pages/ListPages/Training/Operation1'; import Operation2 from '../pages/ListPages/Training/Operation2'; +import Operation3 from '../pages/ListPages/Training/Operation3'; // 教师页面 import TeacherPage from '../TeacherPages/TeacherPage'; @@ -23,8 +24,8 @@ import ClassID from '../TeacherPages/classlistpages/classId'; import ManageTest from '../TeacherPages/TestManage/ManageTest'; import SendTest from '../TeacherPages/TestManage/SendTest'; import Marking from '../TeacherPages/MarkingPages/Marking'; -import SendTrain from '../TeacherPages/Trainmanage/SendTrain'; -import TrainManage from '../TeacherPages/Trainmanage/Trainmanage'; +import SendTrain from '../TeacherPages/TrainManage/SendTrain'; +import TrainManage from '../TeacherPages/TrainManage/Trainmanage'; import StudentLink from '../TeacherPages/MarkingPages/StudentLink'; import List_pods from '../TeacherPages/list_pods/list_pods'; @@ -75,8 +76,9 @@ function App() { } />{/* 练习-考试页面 */} }/> {/* 考试管理-发布试卷 */} }/> {/*实训管理-发布实训*/} - }/> {/* 实训页面1 */} - }/> {/* 实训页面2 */} + }/> {/* 实训页面1:理论 */} + }/> {/* 实训页面2:数据库 */} + }/> {/* 实训页面3:web前端 */} }/> }/>