|
|
@@ -44,9 +44,9 @@
|
|
|
|
|
|
<div v-if="isCreator || isCourseSelected" class="course-tabs">
|
|
|
<el-radio-group v-model="tabName" size="large">
|
|
|
- <el-radio-button label="tasks">任务时间轴</el-radio-button>
|
|
|
- <el-radio-button label="notice">通知栏</el-radio-button>
|
|
|
- <el-radio-button label="courseware">课件列表</el-radio-button>
|
|
|
+ <el-radio-button label="task" @click="switchTab('task')">任务</el-radio-button>
|
|
|
+ <el-radio-button label="notice" @click="switchTab('notice')">通知</el-radio-button>
|
|
|
+ <el-radio-button label="courseware" @click="switchTab('courseware')">课件</el-radio-button>
|
|
|
</el-radio-group>
|
|
|
<div>
|
|
|
<el-popover v-if="isCreator && tabName==='notice'"
|
|
|
@@ -92,17 +92,20 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
- <div class="course-tab-content">
|
|
|
- <div v-if="tabName==='tasks'" class="tab-tasks">
|
|
|
- <!-- <el-timeline>-->
|
|
|
- <!-- <el-timeline-item-->
|
|
|
- <!-- v-for="(task, index) in tasks"-->
|
|
|
- <!-- :key="index"-->
|
|
|
- <!-- :timestamp="task.timestamp"-->
|
|
|
- <!-- >-->
|
|
|
- <!-- {{ task.content }}-->
|
|
|
- <!-- </el-timeline-item>-->
|
|
|
- <!-- </el-timeline>-->
|
|
|
+ <div v-if="isCreator || isCourseSelected" class="course-tab-content">
|
|
|
+ <div v-if="tabName==='task'">
|
|
|
+<!-- <el-timeline>-->
|
|
|
+<!-- <el-timeline-item-->
|
|
|
+<!-- v-for="(task, index) in tasks"-->
|
|
|
+<!-- :key="index"-->
|
|
|
+<!-- :timestamp="task.timestamp"-->
|
|
|
+<!-- >-->
|
|
|
+<!-- {{ task.content }}-->
|
|
|
+<!-- </el-timeline-item>-->
|
|
|
+<!-- </el-timeline>-->
|
|
|
+ evalExamList: {{this.evalExamList}}
|
|
|
+ <br/>
|
|
|
+ coderExamList: {{this.coderExamList}}
|
|
|
</div>
|
|
|
<div v-else-if="tabName==='notice'" class="tab-notice">
|
|
|
<NoticeItem v-for="(item,index) in announcementList" :key="index" :ref="'noticeItem'+item.id"
|
|
|
@@ -176,9 +179,12 @@ export default {
|
|
|
isCourseSelected: false,
|
|
|
noImgUrl: variables.noImgUrl,
|
|
|
themeColor,
|
|
|
- tabName: "notice",
|
|
|
+ tabName: "task",
|
|
|
noticePopover: false,
|
|
|
-
|
|
|
+ //
|
|
|
+ evalExamList: [],
|
|
|
+ coderExamList: [],
|
|
|
+ //
|
|
|
announcementFormDialog: false,
|
|
|
announcementForm: {
|
|
|
dialogTitle: "添加发布",
|
|
|
@@ -266,14 +272,14 @@ export default {
|
|
|
this.$apis.checkCourseSelection(this.$route.params.id, this.$store.state.user.id)
|
|
|
.then(res => {
|
|
|
this.isCourseSelected = res.data.data;
|
|
|
- this.$apis.getAnnouncementsByCourseId(this.$route.params.id)
|
|
|
- .then(res => {
|
|
|
- this.announcementList = res.data.data;
|
|
|
- });
|
|
|
+ if (this.isCreator || this.isCourseSelected) {
|
|
|
+ this.switchTab(this.tabName);
|
|
|
+ }
|
|
|
});
|
|
|
});
|
|
|
},
|
|
|
methods: {
|
|
|
+ //
|
|
|
timestampToTime(timestamp) {
|
|
|
const date = new Date(timestamp);
|
|
|
const Y = date.getFullYear() + "-";
|
|
|
@@ -281,8 +287,7 @@ export default {
|
|
|
const D = (date.getDate() < 10 ? "0" + date.getDate() : date.getDate());
|
|
|
return Y + M + D;
|
|
|
},
|
|
|
-
|
|
|
- //
|
|
|
+ // 公告相关
|
|
|
selAndInitAnnouncement(type) {
|
|
|
this.announcementForm.type = type;
|
|
|
this.announcementFormDialog = true;
|
|
|
@@ -394,7 +399,6 @@ export default {
|
|
|
console.log(action);
|
|
|
});
|
|
|
},
|
|
|
-
|
|
|
//
|
|
|
handleFileUploading() {
|
|
|
},
|
|
|
@@ -402,8 +406,7 @@ export default {
|
|
|
},
|
|
|
handleDownloadFileIconClick(url) {
|
|
|
},
|
|
|
-
|
|
|
- //
|
|
|
+ // 选课、退课
|
|
|
handleSelectCourse() {
|
|
|
ElMessageBox.prompt("请输入选课码", "选课:" + this.courseInfo.name, {
|
|
|
confirmButtonText: "立即选课",
|
|
|
@@ -461,6 +464,35 @@ export default {
|
|
|
.catch(() => {
|
|
|
});
|
|
|
},
|
|
|
+ // tab页相关
|
|
|
+ switchTab(tabName) {
|
|
|
+ switch (tabName) {
|
|
|
+ case "task":
|
|
|
+ if (this.courseInfo.evalId !== null) {
|
|
|
+ this.$apis.getTeacherEvalExamsByCourseId(this.courseInfo.evalId)
|
|
|
+ .then(res => {
|
|
|
+ this.evalExamList = res.data.data;
|
|
|
+ });
|
|
|
+ }
|
|
|
+ if (this.courseInfo.coderId !== null) {
|
|
|
+ this.$apis.getTeacherCoderExamsByCourseId(this.courseInfo.coderId)
|
|
|
+ .then(res => {
|
|
|
+ this.coderExamList = res.data.data;
|
|
|
+ });
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ case "notice":
|
|
|
+ this.$apis.getAnnouncementsByCourseId(this.$route.params.id)
|
|
|
+ .then(res => {
|
|
|
+ this.announcementList = res.data.data;
|
|
|
+ });
|
|
|
+ break;
|
|
|
+ case "courseware":
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ },
|
|
|
},
|
|
|
};
|
|
|
</script>
|