Merge branch 'master' of https://gitea.xn--7p0a.site/2312072104/dm
This commit is contained in:
commit
50d36e240a
|
@ -26,7 +26,7 @@ function Marking(){
|
||||||
{class:'课程2:web前端开发与数据库的结合',time:"关闭时间:2024-4-16 11.46",ImgSrc:Test},
|
{class:'课程2:web前端开发与数据库的结合',time:"关闭时间:2024-4-16 11.46",ImgSrc:Test},
|
||||||
{class:'课程2:web前端开发与数据库的结合',time:"关闭时间:2024-4-16 11.46",ImgSrc:Test},
|
{class:'课程2:web前端开发与数据库的结合',time:"关闭时间:2024-4-16 11.46",ImgSrc:Test},
|
||||||
].map((item) =>
|
].map((item) =>
|
||||||
<Link style={{color:'#000',textDecoration:'none'}}>
|
<Link style={{color:'#000',textDecoration:'none'}} to={'studentlink'}>
|
||||||
<li key={item.class}>
|
<li key={item.class}>
|
||||||
<img src={item.ImgSrc} alt="" width='35px' height='35px'/>
|
<img src={item.ImgSrc} alt="" width='35px' height='35px'/>
|
||||||
<p>
|
<p>
|
||||||
|
|
|
@ -0,0 +1,10 @@
|
||||||
|
.body-right-studentlink{
|
||||||
|
width: 1420px;
|
||||||
|
height: 830px;
|
||||||
|
position: absolute;
|
||||||
|
top: 72px;
|
||||||
|
left: 220px;
|
||||||
|
border-radius: 10px;
|
||||||
|
float: right;
|
||||||
|
background-color: #f7f8fa;
|
||||||
|
}
|
|
@ -0,0 +1,28 @@
|
||||||
|
import './StudentLink.css'
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
function StudentLink(){
|
||||||
|
return(
|
||||||
|
<div className='body-right-studentlink'>
|
||||||
|
<table>
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>学生</th>
|
||||||
|
<th>链接</th>
|
||||||
|
<th>分数</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td>数据1</td>
|
||||||
|
<td>数据2</td>
|
||||||
|
<td>数据3</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
export default StudentLink
|
|
@ -1,74 +0,0 @@
|
||||||
.body-trainmanage{
|
|
||||||
width: 1420px;
|
|
||||||
height: 830px;
|
|
||||||
position: absolute;
|
|
||||||
top: 72px;
|
|
||||||
left: 220px;
|
|
||||||
border-radius: 10px;
|
|
||||||
float: right;
|
|
||||||
background-color: #f7f8fa;
|
|
||||||
}
|
|
||||||
.body-trainmanage p{
|
|
||||||
font-size: 20px;
|
|
||||||
position: absolute;
|
|
||||||
left: 50px;
|
|
||||||
}
|
|
||||||
.line{
|
|
||||||
width: 250px;
|
|
||||||
height: 2px;
|
|
||||||
position: absolute;
|
|
||||||
top: 60px;
|
|
||||||
background-image: linear-gradient(120deg,#ffffff,rgb(223, 223, 223),#fff);
|
|
||||||
}
|
|
||||||
.ul1-trainmanage{
|
|
||||||
width: 650px;
|
|
||||||
height: 200px;
|
|
||||||
position: absolute;
|
|
||||||
top: 50px;
|
|
||||||
left: 10px;
|
|
||||||
}
|
|
||||||
.ul2-trainmanage{
|
|
||||||
width: 650px;
|
|
||||||
height: 200px;
|
|
||||||
position: absolute;
|
|
||||||
top: 50px;
|
|
||||||
left: 700px;
|
|
||||||
}
|
|
||||||
.train-list-trainmanage li{
|
|
||||||
width: 650px;
|
|
||||||
height: 70px;
|
|
||||||
list-style-type: none;
|
|
||||||
margin-top: 10px;
|
|
||||||
border-radius: 10px;
|
|
||||||
background-color: #ffffff;
|
|
||||||
box-shadow: 2px 2px 2px #d8d9d9;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
.train-list-trainmanage span {
|
|
||||||
font-size: 20px;
|
|
||||||
}
|
|
||||||
.train-list-trainmanage p{
|
|
||||||
font-size: 15px;
|
|
||||||
margin-left: 460px;
|
|
||||||
margin-top: -40px;
|
|
||||||
}
|
|
||||||
.train-list-trainmanage li::before {
|
|
||||||
content: "▶";
|
|
||||||
color: rgb(132, 213, 209);
|
|
||||||
padding-right: 20px;
|
|
||||||
line-height: 65px;
|
|
||||||
padding-left: 15px;
|
|
||||||
font-size: 20px;
|
|
||||||
display: inline-block;
|
|
||||||
}
|
|
||||||
|
|
||||||
.sendtestpage{
|
|
||||||
padding: 20px 30px;
|
|
||||||
font-size: 20px;
|
|
||||||
text-decoration: none;
|
|
||||||
color: #000;
|
|
||||||
position: absolute;
|
|
||||||
bottom: 50px;
|
|
||||||
right: 100px;
|
|
||||||
background-color: rgb(186, 237, 237);
|
|
||||||
}
|
|
|
@ -1,44 +0,0 @@
|
||||||
import './trainmanage.css'
|
|
||||||
import { Link } from 'react-router-dom';
|
|
||||||
// import React, { useEffect, useState } from 'react';
|
|
||||||
// import axios from 'axios';
|
|
||||||
|
|
||||||
|
|
||||||
function TrainManage(){
|
|
||||||
const teacher_ID=localStorage.getItem('islogin')
|
|
||||||
if(teacher_ID==null){
|
|
||||||
alert('登录过期,请重新登录')
|
|
||||||
window.location.href='http://36.138.114.105:30294/'
|
|
||||||
}
|
|
||||||
return(
|
|
||||||
<div className='body-trainmanage'>
|
|
||||||
<p>已批改试卷</p>
|
|
||||||
<div className='line'></div>
|
|
||||||
<div className='train-list-trainmanage'>
|
|
||||||
<ul className='ul1-trainmanage'>
|
|
||||||
<li>
|
|
||||||
<span>111</span>
|
|
||||||
<p>关闭时间:2024-11-5</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<span>333</span>
|
|
||||||
<p>关闭时间:2024-11-5</p>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<ul className='ul2-trainmanage'>
|
|
||||||
<li>
|
|
||||||
<span>222</span>
|
|
||||||
<p>关闭时间:2024-11-5</p>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<span>444</span>
|
|
||||||
<p>关闭时间:2024-11-5</p>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<Link to='/teacher/sendtest' className='sendtestpage'>前往发布试卷</Link>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
export default TrainManage
|
|
|
@ -6,11 +6,7 @@ import './ManageTest.css'
|
||||||
|
|
||||||
function TeacherPage() {
|
function TeacherPage() {
|
||||||
|
|
||||||
const teacher_ID=localStorage.getItem('islogin')
|
const teacher_ID = localStorage.getItem('islogin')
|
||||||
if(teacher_ID==null){
|
|
||||||
alert('登录过期,请重新登录')
|
|
||||||
window.location.href='http://36.138.114.105:30294/'
|
|
||||||
}
|
|
||||||
const [classData, setClassData] = useState({});
|
const [classData, setClassData] = useState({});
|
||||||
const [classtest,setClassTest]=useState()
|
const [classtest,setClassTest]=useState()
|
||||||
const [defaultclass,setDefaultClass]=useState()
|
const [defaultclass,setDefaultClass]=useState()
|
|
@ -7,10 +7,6 @@ import axios from 'axios';
|
||||||
function SendTest(){
|
function SendTest(){
|
||||||
// const { key } = useParams();
|
// const { key } = useParams();
|
||||||
const teacher_ID=localStorage.getItem('islogin')
|
const teacher_ID=localStorage.getItem('islogin')
|
||||||
if(teacher_ID==null){
|
|
||||||
alert('登录过期,请重新登录')
|
|
||||||
window.location.href='http://36.138.114.105:30294/'
|
|
||||||
}
|
|
||||||
//获取题目
|
//获取题目
|
||||||
const [ChoiceQuestion,SetChoiceQuestion]=useState()
|
const [ChoiceQuestion,SetChoiceQuestion]=useState()
|
||||||
const [Completion,SetCompletion]=useState()
|
const [Completion,SetCompletion]=useState()
|
|
@ -5,10 +5,6 @@ import axios from 'axios';
|
||||||
|
|
||||||
function SendTrain(){
|
function SendTrain(){
|
||||||
const teacher_ID=localStorage.getItem('islogin')
|
const teacher_ID=localStorage.getItem('islogin')
|
||||||
if(teacher_ID==null){
|
|
||||||
alert('登录过期,请重新登录')
|
|
||||||
window.location.href='http://36.138.114.105:30294/'
|
|
||||||
}
|
|
||||||
//获取所有基础题的所有题目
|
//获取所有基础题的所有题目
|
||||||
const [Trainquestion,SetTrainquestion]=useState()
|
const [Trainquestion,SetTrainquestion]=useState()
|
||||||
//章节内容
|
//章节内容
|
|
@ -1,32 +1,74 @@
|
||||||
.body-TrainManage{
|
.body-trainmanage{
|
||||||
width: 1420px;
|
width: 1420px;
|
||||||
height: 830px;
|
height: 830px;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
top: 72px;
|
top: 72px;
|
||||||
left: 220px;
|
left: 220px;
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
|
float: right;
|
||||||
background-color: #f7f8fa;
|
background-color: #f7f8fa;
|
||||||
}
|
}
|
||||||
.body-right-Train h3{
|
.body-trainmanage p{
|
||||||
margin-left: 60px;
|
|
||||||
font-size: 20px;
|
font-size: 20px;
|
||||||
margin-bottom: -5px;
|
position: absolute;
|
||||||
|
left: 50px;
|
||||||
|
}
|
||||||
|
.line{
|
||||||
|
width: 250px;
|
||||||
|
height: 2px;
|
||||||
|
position: absolute;
|
||||||
|
top: 60px;
|
||||||
|
background-image: linear-gradient(120deg,#ffffff,rgb(223, 223, 223),#fff);
|
||||||
|
}
|
||||||
|
.ul1-trainmanage{
|
||||||
|
width: 650px;
|
||||||
|
height: 200px;
|
||||||
|
position: absolute;
|
||||||
|
top: 50px;
|
||||||
|
left: 10px;
|
||||||
|
}
|
||||||
|
.ul2-trainmanage{
|
||||||
|
width: 650px;
|
||||||
|
height: 200px;
|
||||||
|
position: absolute;
|
||||||
|
top: 50px;
|
||||||
|
left: 700px;
|
||||||
|
}
|
||||||
|
.train-list-trainmanage li{
|
||||||
|
width: 650px;
|
||||||
|
height: 70px;
|
||||||
|
list-style-type: none;
|
||||||
|
margin-top: 10px;
|
||||||
|
border-radius: 10px;
|
||||||
|
background-color: #ffffff;
|
||||||
|
box-shadow: 2px 2px 2px #d8d9d9;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.train-list-trainmanage span {
|
||||||
|
font-size: 20px;
|
||||||
|
}
|
||||||
|
.train-list-trainmanage p{
|
||||||
|
font-size: 15px;
|
||||||
|
margin-left: 460px;
|
||||||
|
margin-top: -40px;
|
||||||
|
}
|
||||||
|
.train-list-trainmanage li::before {
|
||||||
|
content: "▶";
|
||||||
|
color: rgb(132, 213, 209);
|
||||||
|
padding-right: 20px;
|
||||||
|
line-height: 65px;
|
||||||
|
padding-left: 15px;
|
||||||
|
font-size: 20px;
|
||||||
|
display: inline-block;
|
||||||
}
|
}
|
||||||
|
|
||||||
.test-Train{
|
.sendtestpage{
|
||||||
display:flex;
|
padding: 20px 30px;
|
||||||
flex-wrap: wrap;
|
font-size: 20px;
|
||||||
flex-direction: row;
|
text-decoration: none;
|
||||||
margin-left: 40px;
|
color: #000;
|
||||||
margin-bottom: 60px;
|
position: absolute;
|
||||||
}
|
bottom: 50px;
|
||||||
|
right: 100px;
|
||||||
.Train-box{
|
background-color: rgb(186, 237, 237);
|
||||||
flex-basis: calc(30.00% - 10PX);
|
|
||||||
box-sizing: border-box;
|
|
||||||
margin: 20px;
|
|
||||||
height: 210px;
|
|
||||||
background-image: linear-gradient(190deg,rgba(157, 246, 252, 0.7),rgba(198, 212, 255, 0.7));
|
|
||||||
border-radius: 15px;
|
|
||||||
line-height: 35px;
|
|
||||||
}
|
}
|
|
@ -1,37 +1,39 @@
|
||||||
import './Trainmanage.css'
|
import './trainmanage.css'
|
||||||
import axios from 'axios';
|
import { Link } from 'react-router-dom';
|
||||||
import React,{ useState,useEffect } from 'react';
|
// import React, { useEffect, useState } from 'react';
|
||||||
|
// import axios from 'axios';
|
||||||
|
|
||||||
function TeacherTrainManage(){
|
|
||||||
const click=()=>{
|
|
||||||
console.log('a');
|
|
||||||
}
|
|
||||||
|
|
||||||
|
function TrainManage(){
|
||||||
return(
|
return(
|
||||||
<div className="body-TrainManage">
|
<div className='body-trainmanage'>
|
||||||
<div className="body-right-Train">
|
<p>已批改试卷</p>
|
||||||
<h3>正在进行的考试与练习</h3>
|
<div className='line'></div>
|
||||||
<div className='test-Train'>
|
<div className='train-list-trainmanage'>
|
||||||
<div className='Train-box'>
|
<ul className='ul1-trainmanage'>
|
||||||
<p>试卷ID:</p>
|
<li>
|
||||||
<span>发布者:</span>
|
<span>111</span>
|
||||||
<div>发布时间:</div>
|
<p>关闭时间:2024-11-5</p>
|
||||||
<div>截至时间:</div>
|
</li>
|
||||||
</div>
|
<li>
|
||||||
</div>
|
<span>333</span>
|
||||||
<button onClick={click}>测试按钮</button>
|
<p>关闭时间:2024-11-5</p>
|
||||||
|
</li>
|
||||||
<h3>已结束或完成的试卷与练习</h3>
|
</ul>
|
||||||
<div className='test-subject'>
|
<ul className='ul2-trainmanage'>
|
||||||
<div className='test-box'>
|
<li>
|
||||||
<p>试卷ID:</p>
|
<span>222</span>
|
||||||
<span>发布者:</span>
|
<p>关闭时间:2024-11-5</p>
|
||||||
<div>发布时间:</div>
|
</li>
|
||||||
<div>截至时间:</div>
|
<li>
|
||||||
</div>
|
<span>444</span>
|
||||||
</div>
|
<p>关闭时间:2024-11-5</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<Link to='/teacher/SendTrain' className='sendtestpage'>前往发布实训</Link>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
export default TeacherTrainManage
|
|
||||||
|
export default TrainManage
|
|
@ -110,6 +110,8 @@
|
||||||
height: 30px;
|
height: 30px;
|
||||||
background-color: #b4c7c0;
|
background-color: #b4c7c0;
|
||||||
border: none;
|
border: none;
|
||||||
|
position: absolute;
|
||||||
|
left: 840px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.btn-test:hover{
|
.btn-test:hover{
|
||||||
|
|
|
@ -48,9 +48,6 @@ function SubjectPage(){
|
||||||
</div>
|
</div>
|
||||||
))}
|
))}
|
||||||
</div>}
|
</div>}
|
||||||
<button onClick={()=>{
|
|
||||||
console.log(title[0][0][11]);
|
|
||||||
}}></button>
|
|
||||||
<p className='bottomP'>提醒:请及时完成实训内容!!!</p>
|
<p className='bottomP'>提醒:请及时完成实训内容!!!</p>
|
||||||
</div>
|
</div>
|
||||||
)};
|
)};
|
||||||
|
|
|
@ -9,8 +9,8 @@ import HeaderNavTeacher from '../nav/teacherIndex';
|
||||||
// 用户页面
|
// 用户页面
|
||||||
import Home from '../pages/Home/Home';
|
import Home from '../pages/Home/Home';
|
||||||
import SubjectPage from '../pages/ListPages/Subject/SubjectPage';
|
import SubjectPage from '../pages/ListPages/Subject/SubjectPage';
|
||||||
import AnalysePage from '../pages/ListPages/Analyse/AnalysePages';
|
|
||||||
import Training from '../pages/ListPages/Training/TrainingPage';
|
import Training from '../pages/ListPages/Training/TrainingPage';
|
||||||
|
import AnalysePage from '../pages/ListPages/Analyse/AnalysePages';
|
||||||
import Exam from '../pages/ListPages/Subject/Exam';
|
import Exam from '../pages/ListPages/Subject/Exam';
|
||||||
import Operation1 from '../pages/ListPages/Training/Operation1';
|
import Operation1 from '../pages/ListPages/Training/Operation1';
|
||||||
import Operation2 from '../pages/ListPages/Training/Operation2';
|
import Operation2 from '../pages/ListPages/Training/Operation2';
|
||||||
|
@ -18,11 +18,12 @@ import Operation2 from '../pages/ListPages/Training/Operation2';
|
||||||
// 教师页面
|
// 教师页面
|
||||||
import TeacherPage from '../TeacherPages/TeacherPage';
|
import TeacherPage from '../TeacherPages/TeacherPage';
|
||||||
import ClassID from '../TeacherPages/classlistpages/classId';
|
import ClassID from '../TeacherPages/classlistpages/classId';
|
||||||
import ManageTest from '../TeacherPages/teachermanagetest/ManageTest';
|
import ManageTest from '../TeacherPages/TestManage/ManageTest';
|
||||||
import SendTest from '../TeacherPages/SendTest/SendTest';
|
import SendTest from '../TeacherPages/TestManage/SendTest';
|
||||||
import Marking from '../TeacherPages/MarkingPages/Marking';
|
import Marking from '../TeacherPages/MarkingPages/Marking';
|
||||||
import SendTrain from '../TeacherPages/SendTrain/SendTrain';
|
import SendTrain from '../TeacherPages/TrainManage/SendTrain';
|
||||||
import TrainManage from '../TeacherPages/SendTest/trainmanage';
|
import TrainManage from '../TeacherPages/TrainManage/trainmanage';
|
||||||
|
import StudentLink from '../TeacherPages/MarkingPages/StudentLink';
|
||||||
|
|
||||||
// 定义一个组件来包裹除了特定页面(exam)外的所有页面使其有导航
|
// 定义一个组件来包裹除了特定页面(exam)外的所有页面使其有导航
|
||||||
const MainLayout = ({ headerNav:HeaderNav }) => {
|
const MainLayout = ({ headerNav:HeaderNav }) => {
|
||||||
|
@ -44,22 +45,21 @@ function App() {
|
||||||
<Routes>
|
<Routes>
|
||||||
{/* 使用 HeaderNav 的用户页面 */}
|
{/* 使用 HeaderNav 的用户页面 */}
|
||||||
<Route path="/" element={<MainLayout headerNav={HeaderNav} />}>
|
<Route path="/" element={<MainLayout headerNav={HeaderNav} />}>
|
||||||
<Route index element={<Home />} />
|
<Route index element={<Home />} /> {/* 主页 */}
|
||||||
<Route path="analyse" element={<AnalysePage />} />
|
<Route path='subject' element={<SubjectPage/>} /> {/* 练习 */}
|
||||||
<Route path='subject' element={<SubjectPage/>} />
|
<Route path='train' element={<Training/>}/> {/* 实训 */}
|
||||||
<Route path='train' element={<Training/>}/>
|
<Route path="analyse" element={<AnalysePage />} /> {/* 学习分析 */}
|
||||||
{/* 其他需要HeaderNav的页面 */}
|
{/* 其他需要HeaderNav的页面 */}
|
||||||
</Route>
|
</Route>
|
||||||
|
|
||||||
{/* 使用 HeaderNavTeacher 的教师页面 */}
|
{/* 使用 HeaderNavTeacher 的教师页面 */}
|
||||||
<Route path="/teacher" element={<MainLayout headerNav={HeaderNavTeacher} />}>
|
<Route path="/teacher" element={<MainLayout headerNav={HeaderNavTeacher} />}>
|
||||||
<Route index element={<TeacherPage/>} />
|
<Route index element={<TeacherPage/>} /> {/* 班级管理 */}
|
||||||
<Route path='managetest' element={<ManageTest />}/>
|
<Route path='trainmanage' element={<TrainManage/>}/> {/* 实训管理 */}
|
||||||
{/* <Route path='managetest/:ClassID' element={<ManageTest />}/> */}
|
<Route path='mark' element={<Marking/>}/> {/* 批改 */}
|
||||||
<Route path="classID/:key" element={<ClassID />} />
|
<Route path='managetest' element={<ManageTest />}/> {/* 考试管理 */}
|
||||||
<Route path='mark' element={<Marking/>}/>
|
<Route path="classID/:key" element={<ClassID />} /> {/* 班级管理1 */}
|
||||||
<Route path='trainmanage' element={<TrainManage/>}/>
|
<Route path='mark/studentlink' element={<StudentLink/>}/> {/* 批改1 */}
|
||||||
|
|
||||||
{/* 其他需要HeaderNavTeacher的页面 */}
|
{/* 其他需要HeaderNavTeacher的页面 */}
|
||||||
</Route>
|
</Route>
|
||||||
|
|
||||||
|
@ -68,11 +68,11 @@ function App() {
|
||||||
</Route>
|
</Route>
|
||||||
|
|
||||||
{/* 页面使用单独的布局,不包含HeaderNav和HeaderNavTeacher */}
|
{/* 页面使用单独的布局,不包含HeaderNav和HeaderNavTeacher */}
|
||||||
<Route path="exam/:examId" element={<Exam />} />
|
<Route path="exam/:examId" element={<Exam />} />{/* 练习-考试页面 */}
|
||||||
<Route path='/teacher/sendtest' element={<SendTest />}/>
|
<Route path='/teacher/sendtest' element={<SendTest />}/> {/* 考试管理-发布试卷 */}
|
||||||
<Route path='operation1/:operateID' element={<Operation1/>}/>
|
<Route path='/teacher/SendTrain' element={<SendTrain/>}/> {/* 实训管理-发布实训 */}
|
||||||
<Route path='operation2/:operateID' element={<Operation2/>}/>
|
<Route path='operation1/:operateID' element={<Operation1/>}/> {/* 实训页面1 */}
|
||||||
<Route path='teacher/SendTrain' element={<SendTrain/>}/>
|
<Route path='operation2/:operateID' element={<Operation2/>}/> {/* 实训页面2 */}
|
||||||
{/* 独立的顶级路由,如登录页面,也不包含HeaderNav */}
|
{/* 独立的顶级路由,如登录页面,也不包含HeaderNav */}
|
||||||
{/* 登录页面 */}
|
{/* 登录页面 */}
|
||||||
<Route path="signin" element={<SignInPage />} />
|
<Route path="signin" element={<SignInPage />} />
|
||||||
|
|
Loading…
Reference in New Issue