docs: add message page design spec

This commit is contained in:
czz
2026-05-07 16:44:13 +08:00
parent 19ea7c89d0
commit 93f60c74ab

View File

@@ -0,0 +1,173 @@
# 消息页面设计说明
## 1. 目标
在当前微信小程序项目中新增一个“消息”页面,页面风格参考提供的设计图,并与现有首页形成双向页面跳转。
本次目标是让项目从“只有首页”扩展为“首页 + 消息页”的可预览状态,同时保留后续继续新增“报告”“我的”等页面的扩展空间。
## 2. 本次范围
本次实现包含:
- 新增消息页面
- 首页与消息页之间的底部导航跳转
- 抽取一个可复用的底部导航组件
- 在消息页中实现顶部双标签、消息卡片列表、未读红点视觉
- 更新页面注册配置
- 更新 README补充当前页面结构和消息页说明
本次不包含:
- 真正的后端消息接口
- 消息已读、删除、下拉刷新、分页加载
- “系统消息”标签下的真实内容切换接口
- “报告”“小e”“我的”真实业务页
## 3. 设计原则
- 保持项目结构简单,适合新手继续修改
- 尽量复用现有首页的深色视觉语言
- 不额外引入新的大型依赖
- 先完成静态页面和页面跳转,再为后续真实接口预留清晰结构
## 4. 页面与组件设计
### 4.1 消息页面
新增目录:
- `src/pages/message/index.tsx`
- `src/pages/message/index.scss`
- `src/pages/message/index.config.ts`
页面内容分为三块:
1. 顶部标签区
2. 消息卡片列表区
3. 底部导航区
顶部标签区使用两个标签:
- `体征消息`
- `系统消息`
默认高亮 `体征消息``系统消息` 右侧显示一个小红点作为未读提示。首版只做前端本地切换,切换后可展示不同的本地占位数据,不接接口。
消息卡片列表区使用 3 条演示数据,卡片字段参考设计图:
- 标题
- 设备 ID
- 使用人员
- 消息类型
- 检测数值
- 发生时间
页面整体继续使用深色背景、圆角卡片、浅色文字和青绿色高亮色,尽量与首页统一。
### 4.2 底部导航组件
新增目录:
- `src/components/tab-bar/index.tsx`
- `src/components/tab-bar/index.scss`
组件负责:
- 渲染统一的 5 个底部导航项
- 根据传入的当前页面 key 控制高亮状态
- 处理首页与消息页之间的跳转
- 对暂未实现的页面继续保留轻提示
组件入参保持简单,建议至少包含:
- 当前激活项 key
组件内部统一维护导航项配置,避免首页和消息页各自重复维护一份。
## 5. 交互设计
### 5.1 页面跳转
- 首页点击底部 `消息`,跳转到消息页
- 消息页点击底部 `首页`,跳转到首页
- 点击当前已激活 tab 不重复跳转
- 点击 `报告``小e``我的` 时,继续提示“功能待接入”
为了避免多层页面堆栈,首页与消息页之间的 tab 切换优先使用 `Taro.redirectTo`
### 5.2 消息标签切换
- 点击 `体征消息`,显示体征消息列表
- 点击 `系统消息`,显示系统消息占位列表
- 当前仅做前端状态切换,不持久化
### 5.3 消息列表滚动
如果卡片数量超过一屏,允许页面自然纵向滚动。底部导航固定在底部,页面内容区域保留足够底部内边距,避免被遮挡。
## 6. 数据设计
消息页首版使用本地静态数据。建议定义明确的 TypeScript 类型,例如:
- `MessageTabKey`
- `MessageItem`
数据至少包含:
- `id`
- `title`
- `deviceId`
- `userName`
- `messageType`
- `valueText`
- `occurredAt`
- `category`
其中 `category` 用于区分 `vital``system` 两类消息,便于本地筛选。
## 7. 文件修改范围
预计涉及文件:
- `src/app.config.ts`
- `src/pages/index/index.tsx`
- `src/pages/index/index.scss`
- `src/pages/message/index.tsx`
- `src/pages/message/index.scss`
- `src/pages/message/index.config.ts`
- `src/components/tab-bar/index.tsx`
- `src/components/tab-bar/index.scss`
- `README.md`
## 8. 测试与验证
至少验证以下内容:
- 项目可以正常编译
- 首页底部 `消息` 可跳转到消息页
- 消息页底部 `首页` 可跳回首页
- 消息页顶部双标签可以切换
- 当前激活 tab 样式正确
- 页面底部内容不会被固定导航遮挡
## 9. 风险与控制
风险 1底部导航从首页内联实现改为组件后可能影响首页现有视觉。
控制方式:保留原有视觉结构,优先抽取已有样式命名和布局逻辑,避免大改。
风险 2tab 切换若使用 `navigateTo`,可能导致页面堆栈不断增加。
控制方式:首页与消息页之间统一使用 `redirectTo`
风险 3消息页完全照搬图片可能与当前项目样式不一致。
控制方式:保留设计图核心布局,但颜色、阴影、圆角与首页现有风格保持同一体系。
## 10. 完成标准
满足以下条件即可认为本次任务完成:
- 小程序内已存在独立消息页
- 首页与消息页可通过底部导航双向切换
- 消息页主要视觉与提供的参考图接近
- 代码结构对新手友好,文件职责清晰
- README 已同步说明当前新增页面