# 新功能需求文档 ## 1. 增加新功能 - 1.1 站内信 --- ## 1.1 站内信 ### (1) 入口 1. **位置** - 在 App/小程序的 **“我的”页面** → **功能区**,新增站内信入口 **【我的消息】**。 2. **红点提示** - 当存在未读消息时,入口 icon 右上角显示 **红色圆点**(数量可扩展为数字气泡)。 - 进入站内信页面后,红点消失(默认已读所有消息)。 --- ### (2) 详情页(站内信列表页) #### 2.1 页面结构 - 顶部导航栏: - 左侧返回按钮(返回上一级页面) - 中间标题文字:“我的消息” - 右侧占位元素(保持左右对称布局) - Tab 分类栏: - 位于标题下方,支持切换 **“全部”** 与 **“私信”** 两类消息。 - 当前选中 Tab 高亮显示(背景色 `#C4FFDF`、文字色 `#00AC4E`、边框色 `#00AC4E`),未选中 Tab 为白底黑字灰框。 - 分割线:Tab 分类栏下方有一条 1rpx 高的浅灰色分割线。 - 消息列表区域: - 占满剩余屏幕高度,支持纵向滚动。 - 列表为空时显示缺省提示(后期可补充)。 #### 2.2 消息列表排序 - 所有通知按 **最近时间倒序** 排列(最新发布的消息排在最前)。 #### 2.3 单条消息展示字段 每条消息以 **圆角白色卡片** 形式呈现,包含以下信息: 1. **标题** - 字体大小 32rpx,靠左显示,距左边距 30rpx,顶部间距 22rpx。 2. **正文** - 字体大小 32rpx(实际可根据视觉稿调整为 28rpx 以提升可读性),靠左显示,距左边距 30rpx,与标题间距 10rpx。 - 正文支持长文本: - 若内容超出卡片宽度,自动换行。 - 若内容高度超出卡片可视范围,卡片高度自动延伸或内部可滚动查看(确保完整显示)。 3. **通知时间** - 字体大小 32rpx(建议实际用 24–28rpx),靠右显示,右外边距 18rpx,底部边距 10rpx,与正文之间保留适当间距(如 70rpx 或由内容自适应)。 - 时间格式示例:`2025/01/01 11:12`(后期统一规范为 `YYYY-MM-DD HH:mm`)。 #### 2.4 默认已读逻辑 - 用户 **进入站内信列表页** 时,系统自动将所有消息标记为已读: - 前端调用接口将当前用户所有未读消息状态更新为已读。 - 同时更新入口红点状态为无未读。 --- ### (3) 通知发送(后台功能,前端配合展示) #### 3.1 后台配置能力 - 管理员可在后台配置通知的发送规则与内容。 - 通知分为 **自动发送** 与 **手动发送** 两类。 #### 3.2 自动发送 - 定义固定的触发条件和消息模板。触发条件满足时,系统自动向目标用户推送通知。 - 已知自动发送场景(可扩展): 1. **组局成功时**:所有参与人收到相应通知。 2. **组局失败时**:所有参与人收到相应通知。 3. ……(待补充其他业务事件,如活动开始提醒、订单状态变更等) #### 3.3 手动发送 - 管理员可手动选择: 1. **单个或多个指定用户**:发送相同内容的自定义通知。 2. **全部用户**:发送相同内容的自定义通知。 - 通知内容完全由发送者自定义(标题、正文)。 #### 3.4 前端展示区分(可扩展) - 若业务需要,可在消息列表中通过标签或图标区分 **系统自动通知** 与 **私信/人工通知**。 - Tab “私信” 仅展示手动发送给指定用户的消息,“全部” 则展示所有类型。 --- ### (4) 数据来源与交互 - 前端通过接口获取消息列表,按 Tab 分类请求不同类型数据。 - 切换 Tab 时重新拉取对应分类消息并渲染。 - 列表数据字段至少包括: - `id`(唯一标识) - `title`(标题) - `content`(正文) - `time`(通知时间) - `isRead`(是否已读,用于标记样式或逻辑) - `type`(可选,用于区分自动/手动或私信/系统) ---