微搭低代码MBA 培训管理系统实战 24——教师端工作台:我的课表与签到管理

张开发
2026/4/6 6:31:36 15 分钟阅读

分享文章

微搭低代码MBA 培训管理系统实战 24——教师端工作台:我的课表与签到管理
目录前言1 数据准备2 搭建教师布局2.1 增加教师角色2.2 增加教师门户2.3 创建教师布局3 搭建我的课表界面3.1 页面整体布局3.2 数据表格配置3.3 配置数据筛选4.4 配置查询条件3.5 配置排序字段4 操作列配置5 开始上课功能实现5.1 功能说明5.2 核心逻辑实现6 结束上课功能实现6.1 功能说明6.2 核心逻辑实现最终效果总结前言在前几讲中我们完成了教务端的资源调度和学员端的服务体验。今天我们要把目光转向系统中的另一个核心角色——教师。对于任课老师尤其是外聘专家来说他们并不关心机构的销售线索或公海池他们只需要一个干净、高效的教学履约看板我什么时候有课我的学生签到情况如何本讲我们将基于前期搭建的 RBAC权限控制体系实现数据行级的权限隔离并构建一个集排期、签到、结课于一体的教师工作台。本节目标:数据模型扩展在排课记录表中增加课程状态字段页面布局搭建创建教师工作台布局我的课表展示教师名下的排课记录开始上课更新课程状态为进行中结束上课批量将未签到记录标记为缺勤1 数据准备排课记录表扩展字段MBA_Schedules在原有的排课记录表基础上修改一下课表状态字段字段名称字段标识字段类型说明课表状态status枚举1-待上课、2-进行中、3-已结课、4-已取消2 搭建教师布局目前我们已经有了销售、财务、教务角色需要继续增加教师角色为教师搭建专属的工作台。2.1 增加教师角色打开角色管理模块增加教师角色2.2 增加教师门户在门户管理模块增加教师门户2.3 创建教师布局点击布局设计点击新建布局选择左侧导航布局重命名为教师布局修改布局的标题改为教师工作台3 搭建我的课表界面3.1 页面整体布局点击创建页面的图标输入页面的名称我的课表布局选择教师布局因为主要是教师使用切换到页面布局选择教师布局添加平级菜单添加我的课表菜单3.2 数据表格配置在教师布局的内容插槽下添加布局组件修改标题改为我的课表在页面布局中添加数据表格组件数据模型选择排课记录表3.3 配置数据筛选显示表格数据的时候我们需要只显示当前任课老师的排课记录。点击筛选器配置筛选条件关联教师等于我们的当前用户对象的数据标识4.4 配置查询条件点击筛选器给表格配置查询条件添加具体的查询条件关联班级关联选择关联教室关联选择上课日期范围日期范围3.5 配置排序字段默认按照上课日期的降序进行排序最近的课程显示在最前面4 操作列配置在排课管理页面的数据表格操作列需要配置功能按钮按钮名称功能说明显示条件开始上课更新课程状态为进行中课程状态 待上课结束上课批量将未签到记录标记为缺勤课程状态 进行中5 开始上课功能实现5.1 功能说明上课前教师点击开始上课按钮系统将课程状态更新为进行中表示课程正在进行。5.2 核心逻辑实现创建自定义方法startClass// 开始上课exportdefaultasyncfunctionstartClass({event,data}){constscheduleIddata.target._id;try{$w.utils.showLoading({title:正在开始上课...});// 更新课程状态为进行中await$w.cloud.callDataSource({dataSourceName:MBA_Schedules,methodName:wedaUpdateV2,params:{filter:{where:{_id:{$eq:scheduleId}}},data:{class_status:2,// 2-进行中updated_at:Date.now()}}});$w.utils.hideLoading();$w.utils.showToast({title:开始上课成功,icon:success});$w.table1.refresh();// 刷新列表}catch(error){console.error(开始上课失败:,error);$w.utils.hideLoading();$w.utils.showToast({title:开始上课失败请重试,icon:error});}}给操作列的开始上课按钮配置点击事件调用startClass方法传入所在行数据6 结束上课功能实现6.1 功能说明课程结束后教师需要执行结束上课操作。系统会自动将所有状态为待签到的考勤记录标记为缺勤并将课程状态更新为已结课。6.2 核心逻辑实现创建自定义方法endClass// 结束上课exportdefaultasyncfunctionendClass({event,data}){constscheduleIddata.target._id;try{$w.utils.showLoading({title:正在结束上课...});// 1. 查询该课程所有待签到的记录constattendanceResawait$w.cloud.callDataSource({dataSourceName:MBA_Attendance,methodName:wedaGetRecordsV2,params:{filter:{where:{$and:[{rel_schedule_id:{$eq:scheduleId}},{status:{$eq:1}}// 1-待签到]}},select:{$master:true}}});// 2. 批量更新为缺勤状态if(attendanceRes.records.length0){constrecordIdsattendanceRes.records.map(recordrecord._id);await$w.cloud.callDataSource({dataSourceName:MBA_Attendance,methodName:wedaBatchUpdateV2,params:{data:{status:5,// 5-缺勤},filter:{where:{_id:{$in:recordIds}}}}});}// 3. 更新课程状态为已结课await$w.cloud.callDataSource({dataSourceName:MBA_Schedules,methodName:wedaUpdateV2,params:{filter:{where:{_id:{$eq:scheduleId}}},data:{status:3,// 3-已结课}}});$w.utils.hideLoading();$w.utils.showToast({title:结束上课成功${attendanceRes.records.length}人标记为缺勤,icon:success});$w.table1.refresh();// 刷新列表}catch(error){console.error(结束上课失败:,error);$w.utils.hideLoading();$w.utils.showToast({title:结束上课失败请重试,icon:error});}}给操作列的结束上课按钮配置点击事件调用endClass方法传入所在行数据最终效果教师打开教师工作台可以看到自己的排课记录对于待上课的课程点击开始上课按钮开始上课后课程状态变为进行中。课程结束后点击结束上课按钮。结束上课后未签到的学员被自动标记为缺勤总结本节我们完成了教师工作台的完整实现数据模型扩展扩展排课记录表增加class_status字段课程状态1-待上课、2-进行中、3-已结课教师布局搭建创建教师角色和教师门户创建教师布局添加教师工作台菜单我的课表创建教师课表页面配置数据筛选只显示当前教师的排课配置查询条件和排序配置表格列显示开始上课功能更新课程状态为进行中标记课程正在进行结束上课功能查询该课程所有待签到记录使用wedaBatchUpdateV2批量更新为缺勤更新课程状态为已结课通过本讲的实现教师可以方便地查看自己的课表进行开始上课和结束上课操作实现了教学履约的标准化管理。下一步我们将继续完善学员端的扫码签到功能实现真正的无纸化考勤。

更多文章