目录
- [⏳ 前情回顾](#⏳ 前情回顾)
- [🎯 本节目标](#🎯 本节目标)
- 第一步:班级------教务系统的"集成枢纽"
- 第二步:搭建"班级管理"页面
- 第三步:完善新增表单
- 第四步:核心交互------实现"发布/结课"状态控制
- 第五步:录入测试数据
- [🌟 总结与预告](#🌟 总结与预告)
⏳ 前情回顾
在前面的章节中,我们已经搭建好了教务系统的"基础设施":
- 教室资源:物理空间的管理。
- 正课套餐:商业产品的定义。
现在,我们要进入教务系统的心脏地带 ------班级管理。班级是所有教务要素(学生、老师、时间、空间、课程)的集合体,也是后续考勤消课、业绩核算的唯一载体。
🎯 本节目标
- 全维度建模 :创建
Class(班级)模型,整合人员、时间与资源。 - 页面搭建:构建班级管理指挥中心,实现信息的高效录入与展示。
- 核心业务逻辑 :
- 资源关联:将班级与老师、教室、课包深度绑定。
- 状态流转:管理班级从招生到结课的全生命周期。
第一步:班级------教务系统的"集成枢纽"
一个班级不仅仅是一个名字,它是一个复杂的动态系统。
创建数据源:Class (班级表)
| 区域 | 字段名称 | 字段标识 | 数据类型 | 备注/关联 |
|---|---|---|---|---|
| 基础信息 | 班级名称 | name |
文本 | 必填 |
| 课程类型 | courseType |
枚举 | 体验课、正课 | |
| 最小年龄 | minAge |
数字 | ||
| 最大年龄 | maxAge |
数字 | ||
| 班级简介 | intro |
文本 | ||
| 容量定价 | 容量上限 | capacity |
数字 | 库存控制核心 |
| 课时单价 | unitPrice |
数字 | 财务核算依据 | |
| 关联套餐 | packageId |
关联关系 | 关联 CoursePackage (上一节做的表) |
|
| 开课周期 | 开课日期 | startDate |
日期 | |
| 结课日期 | endDate |
日期 | ||
| 预计总课时 | totalHours |
数字 | ||
| 每周频次 | weeklyFreq |
数字 | ||
| 初始资源 | 默认老师 | teacherId |
关联关系 | 关联 Employee (员工表,需过滤"老师"角色) |
| 默认教室 | classroomId |
关联关系 | 关联 Classroom (第一节做的表) |
|
| 系统字段 | 班级状态 | status |
枚举 | 1=草稿/未发布, 2=招生中, 3=已结课 |
💡 业务逻辑沉淀:
- 资源锁定 :通过关联
Classroom和Employee,我们为后续的排课功能打下了基础。- 生命周期:班级状态决定了该班级是否能在前端被家长看到,以及是否允许进行排课操作。

第二步:搭建"班级管理"页面
班级管理页面需要承载极高的信息密度,我们继续在管理后台应用中进行搭建。
创建页面:在微搭应用编辑器中,新建页面"班级管理",布局选择"左侧导航布局"。


添加组件:从组件库拖入"布局组件",并在其中嵌入"数据表格"组件。


绑定数据 :点击"使用数据源生成表格",选择我们刚刚创建的 Class(班级表)。勾选"查询"、"新增"、"编辑"、"删除"等全部场景。

配置筛选器:添加"班级名称"、"老师名称"和"教室名称"作为常用筛选条件,方便教务人员快速定位。

切换到布局设计,选择左侧导航布局,点击添加平级菜单,配置菜单

第三步:完善新增表单
班级信息的录入涉及多个维度,默认的单列布局会导致表单过长。我们需要利用微搭的网格布局进行优化。
多列布局 :选中表单容器,将 PC 端的"表单列数"修改为 2列。

重点突出 :将"班级简介"的列占比设置为 12 (占满一行),方便输入。

配置必填 :将"班级名称"、"课程类型"、"容量上限"、"班级状态"设置为 必填项 。

设置"班级状态"默认值为 1 (草稿/未发布),防止误操作导致班级提前对外可见。

默认老师要配置筛选条件,角色等于老师

默认教室要设置筛选条件,状态等于启用

关联套餐要设置筛选条件,状态等于销售中

结课日期设置最早选中日期,设置为开始日期的选中值

第四步:核心交互------实现"发布/结课"状态控制
为了提高运营效率,我们在表格操作列增加快速切换班级状态的按钮。
添加操作按钮 :选中数据表格的"操作列",拖入两个"按钮"组件,分别命名为"发布"和"结课"。

配置显隐逻辑(条件展示) :发布按钮 :在"显示条件"中绑定公式:$w.table1.cell__custom__option.record.status=="1"'。即只有"草稿/未发布"状态才显示发布按钮。

结课按钮 :在"显示条件"中绑定公式:$w.table1.cell__custom__option.record.status=="2"'。即只有"招生中"状态才显示结课按钮。

配置点击事件 :发布动作 :点击事件选择"调用数据源方法" ,选择班级表,方法选择更新单条,查询条件配置为数据标识等于所在行的数据标识,更新数据 :status 设置为 '2'。



结课动作 :点击事件选择"调用数据源方法" ,选择班级表,方法选择更新单条,查询条件配置为数据标识等于所在行的数据标识,更新数据 :status 设置为 '3'。具体配置参考发布动作。
交互反馈:在方法执行成功的事件回调中,添加"显示提示"方法,提示"操作成功",并执行"刷新数据表格"动作。
第五步:录入测试数据
进入实时预览,录入几条真实的班级数据,检查页面表现:
- 新建班级:录入"初级美术周三班",关联"创意美术"课程类型,设置容量为 12 人。
- 资源绑定:尝试关联一位现有的老师和一个教室。
- 状态流转:在列表页点击"发布"按钮,观察状态标签是否变为"招生中"。

🌟 总结与预告
我们已经完成了教务系统的"心脏"------班级管理。有了班级,系统现在已经知道"谁(老师)在什么地方(教室)教什么(课程)"。
下一讲: 《教务核心------智能排课与冲突校验》。我们将学习如何根据班级的周期性规则自动生成课程表,并集成日历视图进行可视化的资源调度。