# 学校组织管理菜单开关设计 ## 目标 让平台超管能为每所学校独立启用院系管理、专业管理和行政班管理,并让教师端菜单、班级页面与后端写接口一致地遵守配置。 ## 配置模型 `school_product_config` 增加三个布尔字段:`faculty_management_enabled`、`major_management_enabled`、`admin_class_management_enabled`。 组织模式仍是快捷预设:标准学校将三个开关置为开启并由学校维护学生名单;教师教学班维护名单将三个开关置为关闭并由教师维护名单。手工调整任一开关后,组织模式记录为 `CUSTOM`;非行政班模式仍由教师维护名单。 ## 依赖规则 - 关闭院系管理时,系统自动关闭专业管理和行政班管理。 - 关闭专业管理时,系统自动关闭行政班管理。 - 行政班管理只能在院系管理和专业管理均开启时启用。 - 已有院系、专业、行政班及其成员数据不会被删除;关闭开关只会隐藏菜单并拒绝新的相关写操作。 ## 界面行为 平台学校编辑窗保留组织模式下拉框作为预设,并新增三个开关。专业和行政班开关在依赖未满足时禁用并显示原因。切换预设会同步更新开关;手动切换有效开关后显示“自定义配置”。 教师端侧栏按三个开关分别过滤院系、专业菜单;班级管理菜单始终保留,但行政班标签、筛选和创建入口仅在行政班开关开启时显示。教师教学班名单模式继续隐藏教师管理菜单。 ## 后端约束 API 返回完整配置。院系、专业和行政班写操作分别检查对应开关;直接调用接口不能绕过前端。平台超管可修改配置。配置更新会规范化依赖关系并保留既有数据。 ## 验收 - 教师名单学校三个开关均关闭,教师端不显示院系/专业菜单,班级页无行政班。 - 打开院系和专业、关闭行政班后,院系与专业菜单可见,班级页仅显示教学班。 - 关闭院系会自动关闭其余两个开关;现存组织数据可在重新打开后继续访问。