已完成“考试安排与考场管理”模块:

考试计划草稿、场次配置与正式发布。
教学班、考试时间、考场、监考教师关联。
自动校验考场容量。
阻止考场、监考教师和学生考试时间冲突。
管理员查看考生名单。
教师查看个人监考安排。
学生查看已发布考试日程。
SQLite 增量升级和 MySQL 正式迁移。
This commit is contained in:
2026-07-24 15:43:55 +08:00 Unverified
parent af52e27a3a
commit 7f3e37de20
18 changed files with 3057 additions and 2 deletions
+9
View File
@@ -11,6 +11,7 @@ import {
Calendar,
CircleCheck,
DocumentChecked,
AlarmClock,
User,
UserFilled,
} from '@element-plus/icons-vue'
@@ -43,6 +44,7 @@ const pageTitle = computed(() => {
schedules: '排课与课表',
'course-selections': '选课与教学班',
grades: '成绩与学业档案',
exams: '考试与考场',
users: '用户与权限',
}
return titles[String(route.name)] ?? '教务管理'
@@ -138,6 +140,13 @@ onMounted(() => auth.refresh().catch(() => undefined))
<el-icon><DocumentChecked /></el-icon>
<template #title>{{ auth.user?.roles.includes('Student') ? '学业成绩' : '成绩管理' }}</template>
</el-menu-item>
<el-menu-item
v-if="auth.user?.roles.some((role) => ['SuperAdmin', 'AcademicAdmin', 'Teacher', 'Student'].includes(role))"
index="/exams"
>
<el-icon><AlarmClock /></el-icon>
<template #title>{{ auth.user?.roles.includes('Student') ? '我的考试' : auth.user?.roles.includes('Teacher') ? '我的监考' : '考试管理' }}</template>
</el-menu-item>
<el-menu-item v-if="auth.isSuperAdmin" index="/users">
<el-icon><User /></el-icon>
<template #title>用户与权限</template>