|
|
@@ -11,6 +11,11 @@
|
|
|
icon="el-icon-circle-plus-outline"
|
|
|
style="color: #f5b86e;">Eval测试
|
|
|
</el-button>
|
|
|
+ <el-button v-if="eaiId"
|
|
|
+ @click="handleAddEaiClick"
|
|
|
+ icon="el-icon-circle-plus-outline"
|
|
|
+ style="color: #50A879;">Eai任务
|
|
|
+ </el-button>
|
|
|
<el-timeline>
|
|
|
<el-timeline-item
|
|
|
v-for="task in courseTaskList"
|
|
|
@@ -279,6 +284,9 @@ export default {
|
|
|
evalId: {
|
|
|
required: true,
|
|
|
},
|
|
|
+ eaiId: {
|
|
|
+ require:true,
|
|
|
+ },
|
|
|
courseId: {
|
|
|
required: true,
|
|
|
},
|
|
|
@@ -297,6 +305,7 @@ export default {
|
|
|
themeColor,
|
|
|
evalExamList: [],
|
|
|
coderExamList: [],
|
|
|
+ eaiExamList: [],
|
|
|
courseName: "",
|
|
|
|
|
|
//create Coder exam
|
|
|
@@ -427,6 +436,7 @@ export default {
|
|
|
return []
|
|
|
.concat(this.evalExamList)
|
|
|
.concat(this.coderExamList)
|
|
|
+ .concat(this.eaiExamList)
|
|
|
.sort((a, b) => {
|
|
|
let a_time = a["startAt"] * 1000 || new Date(a.startTime).getTime();
|
|
|
let b_time = b["startAt"] * 1000 || new Date(b.startTime).getTime();
|
|
|
@@ -458,6 +468,9 @@ export default {
|
|
|
if (_this.coderId !== null) {
|
|
|
_this.coderExamList = (await _this.$apis.getTeacherCoderExamsByCourseId(_this.coderId)).data.data || [];
|
|
|
}
|
|
|
+ if(this.eaiId !== null) {
|
|
|
+ _this.eaiExamList = (await _this.$apis.getTeacherEaiExamsByCourseId(_this.eaiId)).data.data || [];
|
|
|
+ }
|
|
|
} else if (this.isStudent) {
|
|
|
if (_this.evalId !== null) {
|
|
|
_this.evalExamList = (await _this.$apis.getStudentEvalExamsByCourseId(_this.evalId)).data.data || [];
|
|
|
@@ -465,6 +478,9 @@ export default {
|
|
|
if (_this.coderId !== null) {
|
|
|
_this.coderExamList = (await _this.$apis.getStudentCoderExamsByCourseId(_this.coderId)).data.data || [];
|
|
|
}
|
|
|
+ if (_this.eaiId !== null) {
|
|
|
+ _this.eaiExamList = (await _this.$apis.getStudentEaiExamsByCourseId(_this.eaiId)).data.data || [];
|
|
|
+ }
|
|
|
}
|
|
|
},
|
|
|
|
|
|
@@ -654,6 +670,12 @@ export default {
|
|
|
this.evalExamDialog = true;
|
|
|
},
|
|
|
|
|
|
+ handleAddEaiClick() {
|
|
|
+ this.eaiExamDialog = true;
|
|
|
+ },
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
handleAddCoderClick() {
|
|
|
this.coderExamDialog = true;
|
|
|
},
|
|
|
@@ -664,6 +686,13 @@ export default {
|
|
|
this.$refs.evalExamFormRef.resetFields();
|
|
|
},
|
|
|
|
|
|
+ handleEaiExamFormCancel() {
|
|
|
+ this.eaiExamDialog = false;
|
|
|
+ this.$refs.eaiExamFormRef.resetFields();
|
|
|
+ },
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
//格式化日期函数
|
|
|
formatDate(date, fmt) {
|
|
|
if (typeof date == "string") {
|
|
|
@@ -727,8 +756,49 @@ export default {
|
|
|
).catch(_err => {
|
|
|
ElMessage.error("创建Eval评测失败");
|
|
|
});
|
|
|
+ },
|
|
|
+
|
|
|
+ // 创建Eval评测
|
|
|
+ createEaiExam() {
|
|
|
+ const obj = {
|
|
|
+ creatorId: this.$store.state.user.id,
|
|
|
+ examName: this.evalExamForm.examName,
|
|
|
+ position: this.evalExamForm.position,
|
|
|
+ skills: Object.values(this.evalExamForm.skills),
|
|
|
+ difficulty: this.evalExamForm.difficulty,
|
|
|
+ startTime: this.formatDate(this.evalExamForm.range[0], "yyyy-MM-dd hh:mm:ss"),
|
|
|
+ endTime: this.formatDate(this.evalExamForm.range[1], "yyyy-MM-dd hh:mm:ss"),
|
|
|
+ comment: this.evalExamForm.comment,
|
|
|
+ antiCheating: this.evalExamForm.antiCheating,
|
|
|
+ isPublic: !this.evalExamForm.isPrivate,
|
|
|
+ isHidden: false,
|
|
|
+ courseId: this.evalId,
|
|
|
+ courseName: this.courseName
|
|
|
+ };
|
|
|
+ console.log("创建eval测试", obj);
|
|
|
+ this.$apis.createEvalExam(obj).then(
|
|
|
+ _res => {
|
|
|
+ ElMessage.success("创建Eval评测成功");
|
|
|
+ this.init();
|
|
|
+ console.log(_res);
|
|
|
+ this.evalExamDialog = false;
|
|
|
+ this.isEvalExamCreated = !!_res.data;
|
|
|
+ console.log(this.isEvalExamCreated);
|
|
|
+ const examId = _res.data.data.result.examId;
|
|
|
+ this.$router.push({
|
|
|
+ name: "edit-exams",
|
|
|
+ params: {
|
|
|
+ examId: examId
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ ).catch(_err => {
|
|
|
+ ElMessage.error("创建Eval评测失败");
|
|
|
+ });
|
|
|
}
|
|
|
},
|
|
|
+
|
|
|
+
|
|
|
};
|
|
|
</script>
|
|
|
|