feat/roster-enrollment-bidirectional-sync
main
active 记录操作列原本恒为空(仅 archived 显示永久删除)。 新增归档操作: 调用 DELETE /archive/enrollments/:id(权限 student:edit), 确认弹窗提示会联动花名册移出, 归档后显示删除按钮。
- 新增 ensureEnrollmentsForRoster:班级添加/导入成员时事务内自动补建报读记录 (course_category=班级class_type, classType=offline, 班名快照, 老师取class_teacher配置, 起止日期取班级; 幂等: 已有 active 报读指向此班则跳过) - addStudents 改为事务包裹并联动建报读 - commitRosterImport 导入提交后联动建报读 - 存量数据可用 backfill_roster_enrollments.sql 回填
optionFilterProp 默认按 value(数字 id)过滤,导致搜"3"匹配教室 id=3 显示"209"。 排课页顶部筛选教室/筛选班级与账号管理角色分配统一加 showSearch+optionFilterProp=label, 按显示文本搜索。