|
|
@@ -14,9 +14,30 @@
|
|
|
<!-- view mode -->
|
|
|
<view v-if="pageMode==='view'">
|
|
|
<report-blocks-renderer v-if="blocks && blocks.length > 0" :blocks="blocks" />
|
|
|
+ <view v-else-if="hasPayloadData" class="payload-fallback">
|
|
|
+ <view class="card" v-if="payload.summary && payload.summary.overallScore">
|
|
|
+ <view class="card-title">综合评分</view>
|
|
|
+ <text class="score-text">{{ payload.summary.overallScore }}</text>
|
|
|
+ </view>
|
|
|
+ <view class="card" v-if="payload.indicators && payload.indicators.length">
|
|
|
+ <view class="card-title">健康指标({{ payload.indicators.length }} 项)</view>
|
|
|
+ <view class="indicator-item" v-for="(ind, idx) in payload.indicators" :key="'fallback-' + idx">
|
|
|
+ <text class="ind-name">{{ ind.indicatorName || ind.name || '' }}</text>
|
|
|
+ <text class="ind-value">{{ ind.indicatorValue || ind.value || '' }}{{ ind.unit || '' }}</text>
|
|
|
+ <text class="ind-status" :class="'status-' + _cssClass(ind.status)">{{ statusText(ind.status) }}</text>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ <view class="card" v-if="payload.diseaseRisks && payload.diseaseRisks.length">
|
|
|
+ <view class="card-title">疾病风险</view>
|
|
|
+ <view class="risk-item" v-for="(risk, idx) in payload.diseaseRisks" :key="'risk-fb-' + idx">
|
|
|
+ <text class="risk-name">{{ risk.diseaseName || '' }}</text>
|
|
|
+ <view class="risk-level" :class="'risk-' + (risk.riskLevel || 'low')">{{ riskLevelText(risk.riskLevel) }}</view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
+ </view>
|
|
|
<view class="empty-hint" v-else>暂无报告内容</view>
|
|
|
- <view class="edit-btn" v-if="isGutFlora && hasRiskBlocks && pageMode==='view'">
|
|
|
- <view class="nav-edit" @tap="enterEditMode"><text>编辑</text></view>
|
|
|
+ <view class="edit-btn" v-if="isGutFlora && pageMode==='view'">
|
|
|
+ <view class="nav-edit" @tap="enterEditMode"><text>{{ blocks && blocks.length > 0 ? '编辑' : '查看完整数据 ›' }}</text></view>
|
|
|
</view>
|
|
|
</view>
|
|
|
|
|
|
@@ -433,9 +454,9 @@ export default {
|
|
|
isGutFlora() {
|
|
|
return this.reportType === 'gut_flora'
|
|
|
},
|
|
|
- hasRiskBlocks() {
|
|
|
- var list = this.blocks || []
|
|
|
- return list.some(function(b) { return b.riskLevel === 'high' || b.riskLevel === 'medium' || b.riskLevel === 'moderate' })
|
|
|
+ hasPayloadData() {
|
|
|
+ var p = this.payload
|
|
|
+ return p && ((p.indicators && p.indicators.length > 0) || (p.diseaseRisks && p.diseaseRisks.length > 0) || (p.gutFlora && p.gutFlora.length > 0))
|
|
|
},
|
|
|
totalAbnormalCount() {
|
|
|
var list = this.payload.indicators || []
|
|
|
@@ -899,6 +920,8 @@ export default {
|
|
|
font-size: 26rpx;
|
|
|
padding: 60rpx 0;
|
|
|
}
|
|
|
+.payload-fallback { padding: 0; }
|
|
|
+.payload-fallback .score-text { font-size: 48rpx; font-weight: bold; color: #4A9BD7; text-align: center; display: block; padding: 20rpx 0; }
|
|
|
.edit-btn {
|
|
|
margin: 30rpx 0;
|
|
|
display: flex;
|