2026年山东大学软件学院创新项目实训前端技术报告(八)
一、本周工作进展
本周围绕"前端功能完整性收官与体验精细化"完成了病历OCR识别、疾病档案管理、健康仪表盘、预警历史、设计系统建设、组件库沉淀、适老化体验增强等收尾工作。前端现已覆盖全部规划功能模块,建立了完整的设计系统与组件库,适老化体验从"可用"提升到"好用"水平。
本人工作:
- 完成病历OCR识别功能,实现拍照/选图→Base64编码→后端AI识别→结构化指标展示的完整流程
- 完成疾病档案管理模块,支持疾病CRUD并与用药计划数据关联
- 完成健康仪表盘页面,集成健康数据统计、趋势列表、疾病档案展示
- 建立统一设计系统(Design Tokens),定义品牌色、字体、间距、阴影等设计令牌
二、病历OCR识别
2.1 功能概述
支持拍照或从相册选择病历/检测报告图片,调用后端AI进行OCR识别,提取关键医疗指标并结构化展示。OCR入口内嵌在病历管理页面(pages/medical-record)中,同时保留独立的OCR结果页面(pages/ocr-result)。
2.2 识别流程
选择图片 → wx.chooseImage(支持拍照/相册)
→ 获取临时文件路径
→ wx.getFileSystemManager().readFile() 读取为Base64编码
→ medicalRecordService.ocr({ imageBase64, elderlyId })
→ 后端AI识别,返回 { summary, indicators, medicalRecordId }
→ 前端展示识别结果(摘要+结构化指标列表)
→ 可跳转AI对话页进行病历深度分析
2.3 技术实现要点
图片处理:
- 使用
wx.chooseImage选择图片,支持压缩(sizeType: ['compressed']) - 使用
wx.getFileSystemManager().readFile({ encoding: 'base64' })读取为Base64 - 图片预览通过
wx.previewImage支持全屏查看
OCR结果展示:
summary:AI生成的文字摘要indicators:结构化指标数组,每项包含指标名称、数值、单位、参考范围medicalRecordId:识别后自动保存的病历记录ID,可用于后续AI分析
AI病历分析跳转:
- 识别完成后提供"AI分析"按钮
- 跳转到AI对话页,自动携带
medicalRecordId参数 - AI对话页收到参数后自动发送"请帮我分析这份病历"并附带病历ID
- 支持结合历史健康数据进行综合分析(
includeHistory参数)
2.4 病历记录管理
独立的病历管理页面(pages/medical-record),功能包括:
- 病历CRUD:标题、医院、医生、就诊日期、内容、备注
- OCR入口:内嵌在病历页面顶部,选图即识别
- 列表管理:下拉刷新、删除确认
- 数据过滤:自动排除AI健康报告记录(通过标题前缀
AI健康趋势分析报告过滤),避免与健康报告模块重复展示
三、疾病档案管理
3.1 功能概述
独立的疾病管理模块(pages/disease),支持老人常见疾病的录入、编辑、删除,并与用药计划模块实现数据关联。
3.2 核心功能
- 疾病CRUD:疾病名称(必填)、疾病描述(选填)
- 数据归属:新增时自动携带
elderlyId,后端按归属校验权限 - 家属端适配:家属端按当前选中老人过滤疾病列表
- 关联提示:删除疾病时提示"该疾病关联的用药计划也将无法使用"
3.3 与用药计划的关联
用药计划(pages/medicine)添加/编辑时必须选择关联疾病:
- 疾病列表通过
diseaseService.list()获取,展示为 Picker 选择器 - 保存时传递
diseaseId到后端 - 编辑用药计划时自动回显关联疾病(通过
diseaseIndex匹配下标) - 健康仪表盘页面也可直接管理疾病,与独立疾病页面数据同步
四、健康仪表盘
4.1 功能概述
健康数据可视化页面(pages/health-dashboard),集成健康数据统计分析、趋势记录列表、疾病档案管理于一体。
4.2 数据展示
最新指标卡片:
- 血压(收缩压/舒张压)、血糖、心率
- 每个指标附带状态标签:正常(绿)、偏高(黄)、异常(红)
统计面板:
- 每个指标展示四项统计值:最新值、平均值、最小值、最大值
- 血压统计分别计算收缩压和舒张压的统计值,展示为
平均/最小/最大格式
趋势列表:
- 最近30条健康记录,按日期倒序排列
- 每条记录显示日期、血压/血糖/心率数值及综合状态
- 综合状态取所有指标中最严重的等级(danger > warning > normal)
疾病档案:
- 仪表盘页面底部集成疾病列表
- 支持直接在仪表盘页面添加、编辑、删除疾病
- 与独立疾病页面数据完全同步
五、设计系统(Design Tokens)
5.1 概述
建立了统一的设计系统文件 styles/design-tokens.wxss,定义了全站共享的设计令牌,确保视觉一致性。设计风格融合了温暖编辑感(Claude)+ 色彩层次(Notion)+ 精致细节(Apple)。
5.2 品牌色系统
主色 - 珊瑚色(传递关怀与活力):
--color-primary: #cc785c- 悬停态:
#b86a4e,按压态:#a9583e - 浅色背景:
--color-primary-soft: #fdf5f2
家属色 - 沉稳蓝(传递信任与专业):
--color-family: #4A8FD4- 悬停态:
#3a7fc4,按压态:#2a6fb4
表面色三级层次:
- 页面画布:
--color-canvas: #faf9f5(温暖奶油色) - 卡片表面:
--color-surface: #ffffff - 深色卡片:
--color-surface-card: #efe9de
功能色:
- 成功/正常:
--color-success: #5db872(绿) - 警告/关注:
--color-warning: #d4a017(黄) - 危险/异常:
--color-danger: #c64545(红) - 信息:
--color-info: #5db8a6(青)
5.4 间距与触控
间距阶梯:
- xxs: 8rpx → xs: 12rpx → s: 16rpx → m: 24rpx → l: 32rpx → xl: 40rpx → xxl: 48rpx → section: 64rpx
触控目标(适老化):
- 最小触控区域:
--min-touch-target: 96rpx - 大号触控区域:
--min-touch-target-lg: 112rpx
5.5 圆角、阴影与动画
圆角阶梯: xs(4rpx) → s(8rpx) → m(12rpx) → l(16rpx) → xl(24rpx) → 2xl(32rpx) → round(999rpx)
阴影系统:
- sm:
0 2rpx 8rpx rgba(20,20,19,0.04) - md:
0 4rpx 16rpx rgba(20,20,19,0.06) - lg:
0 8rpx 32rpx rgba(20,20,19,0.08) - card:
0 2rpx 12rpx rgba(20,20,19,0.05)
动画系统:
- 缓动函数:ease-out / ease-in-out / spring
- 动画时长:fast(150ms) / normal(250ms) / slow(350ms)
七、组件库
7.1 概述
共沉淀14个通用业务组件,覆盖导航、数据展示、表单、反馈、聊天等场景。所有组件遵循设计系统规范,支持关怀模式和字号切换。
7.2 组件清单
导航类:
| 组件 | 功能 | 使用场景 |
|---|---|---|
ec-navbar | 统一导航栏 | 所有子页面,支持返回按钮、标题自定义 |
ec-action-tile | 功能入口瓷砖 | 首页、我的页面快捷功能入口 |
数据展示类:
| 组件 | 功能 | 使用场景 |
|---|---|---|
ec-card | 卡片容器 | 通用数据展示容器 |
ec-metric-card | 健康指标卡片 | 首页、仪表盘的血压/血糖/心率展示 |
ec-status-badge | 状态标签 | 健康状态(正常/偏高/异常)、预警级别 |
ec-section-header | 区域标题 | 页面分区标题,支持操作按钮 |
ec-todo-item | 待办事项 | 用药提醒列表项 |
聊天类:
| 组件 | 功能 | 使用场景 |
|---|---|---|
ec-chat-bubble | 聊天气泡 | AI对话消息展示,区分用户/AI消息样式 |
表单与弹窗类:
| 组件 | 功能 | 使用场景 |
|---|---|---|
ec-modal | 弹窗组件 | 表单弹窗、确认操作 |
ec-care-toggle | 关怀模式开关 | 登录页、设置页 |
ec-font-size-switcher | 字号切换器 | 设置页字号选择 |
状态反馈类:
| 组件 | 功能 | 使用场景 |
|---|---|---|
ec-loading | 加载状态 | 全局加载提示 |
ec-skeleton | 骨架屏 | 页面加载占位 |
ec-empty-state | 空状态 | 列表无数据时展示 |
ec-empty-state-enhanced | 增强空状态 | 带操作引导的空状态 |
ec-error-state | 错误状态 | 请求失败时展示 |
ec-success-feedback | 成功反馈 | 操作成功提示 |
7.3 样式文件体系
styles/
├── design-tokens.wxss # 设计令牌(颜色、字体、间距等)
├── base.wxss # 基础样式重置
├── utilities.wxss # 工具类(flex、margin、padding等)
├── animations.wxss # 动画定义
├── interactions.wxss # 交互动效
├── shadows.wxss # 阴影样式
└── themes/
├── care-mode.wxss # 关怀模式样式
├── font-size-modes.wxss # 三档字号样式
└── high-contrast.wxss # 高对比度样式
八、适老化体验增强
8.1 三档字号模式
通过 app.setFontSizeMode(mode) 全局切换,支持三种模式:
| 模式 | 说明 | 倍率 | CSS类名 |
|---|---|---|---|
standard | 标准字号 | 1.0x | (无额外类) |
large | 大号字号 | 1.2x | font-size-large |
xlarge | 超大字号 | 1.5x | font-size-xlarge |
实现机制:
app.js中setFontSizeMode()更新全局状态并持久化到wx.setStorageSync('fontSize')- 通过
updateFontSize回调通知所有页面更新fontSizeClass - 各页面通过
app.getFontSizeClass(mode)获取对应CSS类名 - 字号样式定义在
styles/themes/font-size-modes.wxss中
8.2 高对比度模式
独立于关怀模式和字号模式的视觉增强:
- 全局开关:
app.toggleHighContrast() - 独立样式文件:
styles/themes/high-contrast.wxss - 通过
updateHighContrast回调通知页面 - 持久化到
wx.setStorageSync('highContrast')
8.3 关怀模式
全局适老化模式,切换后影响全站:
- 全局开关:
app.toggleCareMode() - 持久化到
wx.setStorageSync('careMode') - 通过
updateCareMode回调通知所有页面 - 同步更新自定义TabBar状态
- 样式定义在
styles/themes/care-mode.wxss中
九、其他功能模块
9.1 消息中心
消息页面(pages/message)作为AI Agent的入口聚合页:
- 展示5种AI Agent卡片(健康陪诊、情感陪伴、健康干预、家属辅诊、用药安全)
- 点击卡片跳转到AI对话页并自动选择对应Agent
- 根据用户角色高亮推荐Agent(老人端推荐健康陪诊,家属端推荐家属辅诊)
9.2 手机号绑定
微信登录用户若未绑定手机号,系统引导至绑定页(pages/bind-phone):
- 手机号+验证码绑定流程
- 绑定成功后更新本地用户信息和Token
- 支持跳过绑定直接使用
9.3 数据详情与编辑
健康数据详情页(pages/data-detail)支持:
- 单条记录的完整指标展示(血压、血糖、心率、体温、身高、体重)
- 每个指标附带状态标签
- 编辑模式:修改任意指标值
- 删除功能:确认后删除记录并返回列表
- 数据来源标识:手动录入 / 设备采集 / OCR识别
9.4 健康数据录入增强
健康数据录入页(pages/record)支持7项指标:
- 血压(收缩压+舒张压)、血糖、心率、体温、身高、体重
- 使用
healthUtil.validateHealthForm()统一校验 - 录入后自动刷新历史记录列表
- 记录列表显示每条数据的综合状态和具体指标值
十、联调验证情况
10.1 病历OCR模块
- 图片选择和预览正常
- Base64编码和OCR识别正常
- 识别结果结构化展示正常
- 跳转AI对话分析功能正常
- 病历CRUD功能正常
10.2 疾病管理模块
- 疾病CRUD功能正常
- 与用药计划关联正常(选择器、diseaseId传递)
- 家属端数据隔离正常
- 仪表盘内嵌疾病管理正常
10.3 健康仪表盘
- 健康数据统计展示正常(最新值、平均值、最小值、最大值)
- 趋势列表渲染正常(30条记录、状态标签)
- 疾病档案展示和操作正常
- 家属端切换老人后数据刷新正常
十一、项目前端功能全景
截至本阶段,前端共完成 16个页面 和 14个通用组件,覆盖以下功能模块:
| 模块 | 页面 | 核心功能 |
|---|---|---|
| 用户认证 | login、bind-phone | 短信登录、微信登录、手机号绑定 |
| 首页 | index | 健康概览、待办、快捷入口、家属切换 |
| AI对话 | ai-chat、message | 5种Agent、流式对话、历史会话、内容审查 |
| 健康报告 | health-report | AI报告生成、追问对话、历史管理 |
| 健康数据 | record、data-detail | 数据录入(7项)、详情查看、编辑删除 |
| 健康仪表盘 | health-dashboard | 数据统计、趋势列表、疾病管理 |
| 预警历史 | alert-history | 异常预警、类型筛选 |
| 用药提醒 | medicine | 今日提醒、用药计划CRUD、服药时刻配置 |
| 病历管理 | medical-record | 病历CRUD、OCR识别 |
| OCR识别 | ocr-result | 图片识别、结果展示、AI分析跳转 |
| 疾病管理 | disease | 疾病CRUD、用药计划关联 |
| 家属绑定 | family-bind | 扫码绑定、手机号绑定、解绑、更换 |
| 个人中心 | profile | 头像昵称、字号设置、关怀模式、二维码、退出 |
| 远程关怀 | remote-command | (预留) |
十二、后续计划
- 完善远程关怀功能页面,实现家属对老人设备的远程控制指令
- 增加健康数据图表可视化(折线图、柱状图),提升数据展示效果
- 优化弱网环境下的用户体验,增加请求重试和离线缓存机制
- 补充自动化测试覆盖,确保核心流程的回归质量
- 增加token自动刷新机制,减少用户重新登录次数
十三、总结
本阶段完成了前端全部规划功能的开发与优化。病历OCR模块实现了从拍照识别到AI分析的端到端流程。疾病档案管理与用药计划实现了数据关联。健康仪表盘提供了数据可视化与统计分析能力。预警历史实现了基于阈值的自动异常检测。设计系统的建立(品牌色、字体、间距、阴影、动画等设计令牌)和14个通用组件库的沉淀,保证了全站视觉一致性和开发效率。三档字号模式、关怀模式、高对比度模式的独立控制,全面覆盖了适老化需求。至此,前端共完成16个页面、14个组件、20+个服务接口的开发,具备完整的功能交付能力,为项目最终验收做好了充分准备。
更多推荐



所有评论(0)