diff --git a/Front/vue-unilife/src/api/schedule.ts b/Front/vue-unilife/src/api/schedule.ts
index bfe2577..36219a5 100644
--- a/Front/vue-unilife/src/api/schedule.ts
+++ b/Front/vue-unilife/src/api/schedule.ts
@@ -44,6 +44,7 @@ export interface CreateCourseParams {
endTime: string;
startWeek: number;
endWeek: number;
+ semester?: string;
color?: string;
}
@@ -91,6 +92,11 @@ export default {
return get<{ code: number; data: { total: number; list: CourseItem[] } }>(`/courses/day/${dayOfWeek}`);
},
+ // 获取用户在指定学期的课程
+ getCoursesBySemester(semester: string) {
+ return get<{ code: number; data: { total: number; list: CourseItem[] } }>(`/courses/semester/${semester}`);
+ },
+
// 更新课程
updateCourse(id: number, data: UpdateCourseParams) {
return put<{ code: number; message: string }>(`/courses/${id}`, data);
diff --git a/Front/vue-unilife/src/views/schedule/CourseTableView.vue b/Front/vue-unilife/src/views/schedule/CourseTableView.vue
index 56e55f2..adea693 100644
--- a/Front/vue-unilife/src/views/schedule/CourseTableView.vue
+++ b/Front/vue-unilife/src/views/schedule/CourseTableView.vue
@@ -14,7 +14,7 @@
学期:
-
+
@@ -264,6 +264,7 @@ const courseForm = reactive({
endTime: '',
startWeek: 1,
endWeek: 16,
+ semester: '2023-1', // 默认学期
color: '#409EFF'
});
@@ -293,7 +294,15 @@ onMounted(async () => {
const fetchCourses = async () => {
loading.value = true;
try {
- const res = await scheduleApi.getAllCourses();
+ let res;
+ if (currentSemester.value) {
+ // 按学期查询
+ res = await scheduleApi.getCoursesBySemester(currentSemester.value);
+ } else {
+ // 查询所有课程
+ res = await scheduleApi.getAllCourses();
+ }
+
if (res.code === 200) {
courses.value = res.data.list;
}
@@ -364,6 +373,7 @@ const handleCellClick = (day: number, timeSlotId: number) => {
courseForm.startWeek = currentWeek.value;
courseForm.endWeek = currentWeek.value + 15 > 20 ? 20 : currentWeek.value + 15;
+ courseForm.semester = currentSemester.value; // 设置当前学期
courseForm.color = getRandomColor();
courseDialogVisible.value = true;
@@ -392,6 +402,7 @@ const handleAddCourse = () => {
courseForm.endTime = '09:40';
courseForm.startWeek = 1;
courseForm.endWeek = 16;
+ courseForm.semester = currentSemester.value; // 设置当前学期
courseForm.color = getRandomColor();
courseDialogVisible.value = true;
@@ -591,6 +602,7 @@ const saveCourse = async () => {
endTime: formatTime(courseForm.endTime),
startWeek: courseForm.startWeek,
endWeek: courseForm.endWeek,
+ semester: courseForm.semester,
color: courseForm.color || '#409EFF'
};
@@ -667,6 +679,11 @@ const getRandomColor = () => {
];
return colors[Math.floor(Math.random() * colors.length)];
};
+
+// 学期选择变化处理
+const handleSemesterChange = () => {
+ fetchCourses();
+};