report.wxml 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. <view class="report-page">
  2. <view wx:if="{{loading}}" class="state-box">报告加载中...</view>
  3. <view wx:elif="{{status == 'empty'}}" class="state-card">
  4. <view class="state-title">暂无评估报告</view>
  5. <view class="state-desc">完成一次 AI 健康评估后,这里会展示最新报告。</view>
  6. <view class="state-btn" bindtap="goDiagnosis">开始评估</view>
  7. </view>
  8. <view wx:elif="{{status == 'pending' || status == 'generating'}}" class="state-card generating-card">
  9. <view class="state-title">AI 正在生成报告</view>
  10. <view class="state-desc">系统已接收本次评估信息,通常需要几十秒,请耐心等待。</view>
  11. <view class="loading-dot"></view>
  12. </view>
  13. <view wx:elif="{{status == 'error' || status == 'failed'}}" class="state-card">
  14. <view class="state-title">报告暂时不可用</view>
  15. <view class="state-desc">{{errorMessage || '请稍后重试'}}</view>
  16. <view class="state-btn" bindtap="retryReport">重新加载</view>
  17. </view>
  18. <view wx:else class="report-content">
  19. <view class="hero-card">
  20. <view class="hero-top">
  21. <view class="hero-main">
  22. <view class="hero-badge-wrap">
  23. <image class="hero-badge-icon" src="/images/footer/wellnessc.png" mode="aspectFit"></image>
  24. <view class="hero-badge">AI健康评估</view>
  25. </view>
  26. <view class="hero-title">AI 分析报告</view>
  27. <view class="hero-sub">{{scaleUser ? scaleUser.nickName : '当前用户'}}<text wx:if="{{reportTime}}"> · {{reportTime}}</text></view>
  28. </view>
  29. <view class="hero-status">{{exam && exam.status == 'completed' ? '已完成' : '生成中'}}</view>
  30. </view>
  31. <view class="hero-stats" wx:if="{{statList.length}}">
  32. <view class="hero-stat" wx:for="{{statList}}" wx:key="label">
  33. <view class="hero-stat-label">{{item.label}}</view>
  34. <view class="hero-stat-value">{{item.value}}</view>
  35. </view>
  36. </view>
  37. </view>
  38. <view class="info-card" wx:if="{{latestScaleResult}}">
  39. <view class="card-head">
  40. <view class="card-accent"></view>
  41. <view class="card-title">最近体测数据</view>
  42. </view>
  43. <view class="data-list">
  44. <view class="data-item" wx:if="{{latestScaleResult.weight}}">
  45. <text class="data-key">体重</text>
  46. <text class="data-value">{{latestScaleResult.weight}}</text>
  47. </view>
  48. <view class="data-item" wx:if="{{latestScaleResult.bmi}}">
  49. <text class="data-key">BMI</text>
  50. <text class="data-value">{{latestScaleResult.bmi}}</text>
  51. </view>
  52. <view class="data-item" wx:if="{{latestScaleResult.bodyfat}}">
  53. <text class="data-key">体脂率</text>
  54. <text class="data-value">{{latestScaleResult.bodyfat}}</text>
  55. </view>
  56. </view>
  57. </view>
  58. <view class="info-card" wx:if="{{questionList.length}}">
  59. <view class="card-head">
  60. <view class="card-accent"></view>
  61. <view class="card-title">健康问答记录</view>
  62. </view>
  63. <view class="question-item" wx:for="{{questionList}}" wx:key="title">
  64. <view class="question-title">{{item.title}}</view>
  65. <view class="question-value">{{item.value}}</view>
  66. </view>
  67. </view>
  68. <view class="info-card" wx:if="{{imageList.length}}">
  69. <view class="card-head">
  70. <view class="card-accent"></view>
  71. <view class="card-title">上传图片</view>
  72. </view>
  73. <view class="image-list">
  74. <view class="image-item" wx:for="{{imageList}}" wx:key="title">
  75. <image class="report-image" src="{{item.url}}" mode="aspectFill" data-src="{{item.url}}" bindtap="previewReportImage"></image>
  76. <view class="image-title">{{item.title}}</view>
  77. </view>
  78. </view>
  79. </view>
  80. <view class="section-card" wx:for="{{sectionList}}" wx:key="title">
  81. <view class="section-head">
  82. <view class="section-badge">{{item.badge}}</view>
  83. <view class="card-title">{{item.title}}</view>
  84. </view>
  85. <view class="section-content">{{item.content}}</view>
  86. </view>
  87. <view class="disclaimer-card">
  88. <view class="card-head">
  89. <view class="card-accent warn"></view>
  90. <view class="card-title small">AI 生成内容提示</view>
  91. </view>
  92. <view class="section-content">本报告由人工智能技术辅助生成,分析结果仅供健康参考,不构成专业建议。如需进一步了解身体状态,请及时咨询专业健康顾问。</view>
  93. </view>
  94. </view>
  95. </view>