report.wxml 4.7 KB

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