diff --git a/src/types/syllabus.ts b/src/types/syllabus.ts
index 71b1f15..84d0e3d 100644
--- a/src/types/syllabus.ts
+++ b/src/types/syllabus.ts
@@ -100,6 +100,8 @@ export interface MyClassVo {
classId: number;
className: string | null;
gradeName: string | null;
+ /** 年级是否启用课表查看(排课情况年级设置;缺省视为启用,兜底旧后端) */
+ gradeEnabled?: boolean | null;
/** 是否班主任(正/副班主任) */
headTeacher: boolean;
/** 是否展示全部科目 */
diff --git a/src/views/syllabus/MyTimetable.vue b/src/views/syllabus/MyTimetable.vue
index fcc6396..83d202b 100644
--- a/src/views/syllabus/MyTimetable.vue
+++ b/src/views/syllabus/MyTimetable.vue
@@ -50,6 +50,10 @@
暂无可查看的班级
管理员/校领导需确认学校已建班级;老师需确认已在班级服务中维护班主任或任教关系;学生需确认学籍班级已维护。
+
+ 当前年级均未启用课表查看
+ 请联系管理员在「排课情况」对应年级打开「启用」开关。
+
请选择班级
@@ -297,11 +301,12 @@ const availableViews = computed
>(() => {
/** 多身份才需要切换;单身份固定展示无需切换 */
const showViewSwitcher = computed(() => availableViews.value.length > 1);
-/** 当前身份视图下的班级:管理员=全部;班主任=所带班级;任教=任教班级 */
+/** 当前身份视图下的班级:管理员=全部;班主任=所带班级;任教=任教班级;均只保留年级已启用的(排课情况年级设置,缺省视为启用兜底旧数据) */
const viewClasses = computed(() => {
- if (viewMode.value === "head") return classes.value.filter((c) => c.headTeacher);
- if (viewMode.value === "teacher") return classes.value.filter((c) => (c.subjects || []).length > 0);
- return classes.value;
+ const enabled = (c: MyClassVo) => c.gradeEnabled !== false;
+ if (viewMode.value === "head") return classes.value.filter((c) => c.headTeacher && enabled(c));
+ if (viewMode.value === "teacher") return classes.value.filter((c) => (c.subjects || []).length > 0 && enabled(c));
+ return classes.value.filter(enabled);
});
/** 题注身份视图徽标文案(无身份视图时兜底「全部科目」,如学生) */