Files
schoolNews/schoolNewsWeb/src/views/user/study-plan/CourseStudyView.vue
2025-10-27 17:29:25 +08:00

56 lines
1.4 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<CourseLearning
v-if="courseId"
:course-id="courseId"
:chapter-index="chapterIndex"
:node-index="nodeIndex"
:back-button-text="taskId ? '返回任务详情' : '返回课程详情'"
@back="handleBack"
/>
</template>
<script setup lang="ts">
import { computed } from 'vue';
import { useRouter, useRoute } from 'vue-router';
import { CourseLearning } from '@/views/public/course/components';
defineOptions({
name: 'CourseStudyView'
});
const router = useRouter();
const route = useRoute();
// 从路由参数获取课程ID和节点索引
const courseId = computed(() => route.query.courseId as string || '');
const chapterIndex = computed(() => parseInt(route.query.chapterIndex as string) || 0);
const nodeIndex = computed(() => parseInt(route.query.nodeIndex as string) || 0);
const taskId = computed(() => route.query.taskId as string || '');
// 返回到上一页
function handleBack() {
// 如果有 taskId返回任务详情页
if (taskId.value) {
router.push({
path: '/study-plan/task-detail',
query: {
taskId: taskId.value
}
});
} else {
// 否则返回课程详情页
router.push({
path: '/study-plan/course-detail',
query: {
courseId: courseId.value
}
});
}
}
</script>
<style lang="scss" scoped>
// 此组件只是容器,样式由子组件处理
</style>