微搭低代码MBA 培训管理系统实战 36——消息通知功能

目录

前情回顾与本节目标

在上一节中,我们完成了小程序端的课程预约功能。本节我们将实现消息通知功能,学员可以查看各类消息通知,包括课程提醒、公告、生日祝福等。

本节核心目标:

  • 消息列表展示:显示消息列表,包含不同类型和状态
  • 未读统计:显示未读消息数量
  • 标记已读:点击消息后标记为已读

第一步:数据模型准备

消息通知表(MBA_Messages)

字段名称 字段标识 字段类型 说明
消息ID _id 文本 主键,系统自动生成
关联学员 rel_student_id 多对一 关联 StudentProfiles 表
消息类型 type 枚举 1-课程提醒、2-补课提醒、3-生日祝福、4-班级公告、5-系统通知
消息标题 title 文本 消息标题
消息内容 content 文本 消息内容
是否已读 is_read 布尔值 是否已读
发送时间 send_time 日期时间 发送时间

第二步:创建页面

点击创建页面 图标,输入"消息通知",选择tab栏导航布局

切换到布局设计,添加菜单


第三步:页面布局

3.1 页面头部

添加容器组件,设置宽、高和背景色:

css 复制代码
:root {
  width: 100%;
  min-height: 100vh;
  background-color: #F6F7F9;
}

继续添加普通容器,设置背景色、内边距和圆角:

css 复制代码
:root {
  background: linear-gradient(135deg, #3b82f6 0%, #1d4ed8 100%);
  padding: 48px 20px 24px 20px;
  border-radius: 0 0 24px 24px;
}

里边添加两个文本组件,设置普通容器的布局为横向排列,两端对齐

设置文本的字体颜色

3.2 头部数据绑定

创建内置数据表查询,数据模型选择消息通知表,方法选择查询多条

配置查询条件,关联学员等于全局变量的数据标识

bash 复制代码
$w.app.dataset.state.currentUser._id

是否已读设置为false

给文本组件绑定文本内容,绑定未读数量

bash 复制代码
$w.queryMessage.data.total+'条未读'

第四步:消息列表区域

添加数据列表组件 ,数据模型选择MBA_Messages

设置普通容器的背景色和外阴影

给图标组件绑定条件展示,未读的时候显示

bash 复制代码
!$w.item_listView1.is_read

第五步:标记已读功能

创建自定义方法 markAsRead

javascript 复制代码
export default async function markAsRead({ event, data }) {
  try {
    const message = data.target;
    
    // 如果已经是已读,不处理
    if (message.is_read) {
      return;
    }
    
    $w.utils.showLoading({ title: '处理中...' });
    
    // 更新消息为已读
    await $w.cloud.callDataSource({
      dataSourceName: 'MBA_Messages',
      methodName: 'wedaUpdateV2',
      params: {
        data: {
          is_read: true,
        },
        filter: {
          where: {
            _id: { $eq: message._id }
          }
        }
      }
    });
    
    $w.utils.hideLoading();
    
    // 刷新列表
    $w.listView1.refresh({})
    $w.queryMessage.trigger()
    
  } catch (e) {
    console.error('标记已读失败', e);
    $w.utils.hideLoading();
  }
}

给容器设置点击事件,调用方法,传入所在行数据

最终效果

切换到消息页面,列出所有消息

总结

本节完成了消息通知功能的实现:

  1. 消息列表展示:显示消息列表,包含类型图标、标题、内容、时间
  2. 未读标识:未读消息左侧蓝色边框,标题加粗,显示红点
  3. 标记已读:点击消息后标记为已读,更新状态
相关推荐
EIP低代码平台9 小时前
EIP低代码平台-系统参数配置详解|落地三级等保+高灵活私有化部署方案
低代码·c#·权限·工作流·netcore
盟接之桥13 小时前
为制造而生:制造业EDI如何重塑全球连接力
网络·安全·低代码·汽车·制造
SL-staff15 小时前
(二十四)「JVS-Rules规则引擎 V2.5」— 决策树节点
低代码·决策树·规则引擎·jvs-rules·jvs·决策树节点
Jeking2173 天前
unione cloud 低代码平台 快速落地设备点检保养管理场景
低代码·流程引擎·表单设计·流程设计·表单引擎·unione cloud
快乐非自愿4 天前
2026 IDC认证低代码平台TOP7|制造业/政务场景可直接复用
人工智能·低代码·制造·政务
图扑软件5 天前
其域创新 × 图扑软件|3DGS 高斯泼溅智慧钢厂实景孪生
前端·低代码·3d·编辑器·图形渲染·可视化
canonical-entropy5 天前
下一代低代码渲染框架 nop-chaos-flux 的设计原则
低代码·ddd·函数式编程·可逆计算·nop平台
SL-staff5 天前
(二十一)「JVS-Rules规则引擎 V2.5」— 决策流的在线调试
低代码·规则引擎·jvs-rules·jvs·模拟测试
SL-staff6 天前
企业文档系统私有化部署方案技术对比:JVS企业文档 vs 语雀 vs 飞书
低代码·私有化部署·飞书·jvs·企业文档·jvs企业文档·生态集成
ZGi.ai6 天前
ZGI工作流引擎:把AI应用的执行过程从黑盒变成流程图
人工智能·低代码·流程图·ai应用·ai工作流·zgi