前言
项目地址
本项目是为开发一套容器化的开发、运行、测试环境,用以支持Web开发、程序设计等课程的实验教学。
教师查看作业下已提交的项目
<el-tab-pane label="课程作业" name="3">
<el-collapse>
<el-collapse-item v-for="(curriculum, currIdx) in curriculumData"
:title="curriculum.title + '(课序号:' + curriculum.data[0].courseId + ')'" :name="curriculum.id">
<el-collapse>
<el-collapse-item v-for="(hw, hwIdx) in curriculum.homework" :title="'作业标题: ' + hw.title" :name="hw.id">
<el-table :data="hw.subProject" style="width: 100%">
<el-table-column prop="studentName" label="学生姓名" width="150" />
<el-table-column prop="studentClass" label="班级" width="180" />
<el-table-column prop="projectName" label="项目名称" width="180" />
<el-table-column prop="description" label="描述信息" width="200">
</el-table-column>
<el-table-column prop="url" label="项目地址">
<template #defaule="scope">
<a :href="scope.row.url">{{ scope.row.url }}</a>
</template>
</el-table-column>
</el-table>
</el-collapse-item>
</el-collapse>
</el-collapse-item>
</el-collapse>
</el-tab-pane>
for (let curr of curriculumData.value) {
for (let hw of curr.homework) {
if (hw.subProject.length == 0) {
let param = new FormData();
param.append('labId', hw.id);
const proRes = await request('weblab/lab/getProjectList', param);
console.log(proRes);
if (proRes.data.msg == 'success') {
const proData = proRes.data.pkg;
for (let p of proData) {
hw.subProject.push({
id: p.id,
projectName: p.name,
description: p.description,
url: p.url,
studentName: p.realName,
studentClass: p.banji,
createTime: ''
})
}
}
}
}
}
教师查看学生详细信息
<div v-show="showStudentDetail">
<el-page-header content="学生详细信息" @back="showStudentDetail = false;" />
<el-main>
<el-form>
<el-form-item label="姓名">
{{ showStudent.name }}
</el-form-item>
<el-form-item label="邮箱">
{{ showStudent.email }}
</el-form-item>
<el-form-item label="">
<el-table :data="showStudent.project">
<el-table-column prop="projectName" label="项目名称" />
<el-table-column prop="createTime" label="创建日期" />
<el-table-column prop="description" label="描述信息" />
<el-table-column prop="url" label="项目地址" />
</el-table>
</el-form-item>
</el-form>
</el-main>
</div>
const showStudentDetail = ref(false);
interface StudentDetail {
id: string,
name: string,
email: string,
project: projectDataIF[]
}
const showStudent = ref<StudentDetail>({ id: '', name: '', email: '', project: [] })
const checkStudentDetail = async (student: StudentDataIF) => {
console.log(student);
if (student.id != showStudent.value.id) {
showStudent.value.id = student.id;
showStudent.value.name = student.name;
showStudent.value.email = student.email;
showStudent.value.project.splice(0,showStudent.value.project.length)
let param = new FormData();
param.append('userId', student.id);
const res = await request('weblab/project/getProjectListByUserId', param);
console.log(res);
if (res.data.msg == 'success') {
const data = res.data.pkg;
for (let d of data) {
showStudent.value.project.push({
id: d.id,
projectName: d.name,
description: d.description,
url: d.url,
studentName: '',
studentClass: '',
createTime: d.createTime.slice(0, 10)
})
}
}
}
showStudentDetail.value = true;
}