培养方案:专业/年级版本、课程模块、学分校验、复制版本、发布锁定、旧版本归档。

教学任务:学期开课、授课教师、唯一主讲、合班、容量与周次校验、发布及结课。
SQLite 开发库已自动升级,无需删除原数据库。
新增对应 MySQL EF Core 迁移。
Vue 已编译进 wwwroot,仍可只运行 ASP.NET Core 单服务。
桌面端及 390px 窄屏页面验证通过,无前端控制台错误。
This commit is contained in:
2026-07-24 14:10:43 +08:00 Unverified
parent 30d793773c
commit 628944f64d
23 changed files with 5430 additions and 47 deletions
+20 -2
View File
@@ -6,6 +6,8 @@ import {
DataAnalysis,
OfficeBuilding,
Operation,
Reading,
Tickets,
User,
UserFilled,
} from '@element-plus/icons-vue'
@@ -23,6 +25,8 @@ const pageTitle = computed(() => {
'base-data': '基础数据',
personnel: '人员档案',
courses: '课程库',
curriculum: '培养方案',
'teaching-tasks': '教学任务',
users: '用户与权限',
}
return titles[String(route.name)] ?? '教务管理'
@@ -80,6 +84,20 @@ onMounted(() => auth.refresh().catch(() => undefined))
<el-icon><Collection /></el-icon>
<template #title>课程库</template>
</el-menu-item>
<el-menu-item
v-if="auth.user?.roles.some((role) => ['SuperAdmin', 'AcademicAdmin', 'CollegeAdmin'].includes(role))"
index="/curriculum"
>
<el-icon><Reading /></el-icon>
<template #title>培养方案</template>
</el-menu-item>
<el-menu-item
v-if="auth.user?.roles.some((role) => ['SuperAdmin', 'AcademicAdmin', 'CollegeAdmin'].includes(role))"
index="/teaching-tasks"
>
<el-icon><Tickets /></el-icon>
<template #title>教学任务</template>
</el-menu-item>
<el-menu-item v-if="auth.isSuperAdmin" index="/users">
<el-icon><User /></el-icon>
<template #title>用户与权限</template>
@@ -87,8 +105,8 @@ onMounted(() => auth.refresh().catch(() => undefined))
</el-menu>
<div v-if="!collapsed" class="phase-note">
<span>第一阶段 · 基础底座</span>
<p>组织权限和教学资源正在运行</p>
<span>第一阶段 · 核心可用版</span>
<p>主数据与培养方案正在运行</p>
</div>
</aside>