94 lines
4.0 KiB
Markdown
94 lines
4.0 KiB
Markdown
# 新功能需求文档
|
||
|
||
## 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`(可选,用于区分自动/手动或私信/系统)
|
||
|
||
---
|