|
@@ -1,7 +1,6 @@
|
|
|
<template>
|
|
<template>
|
|
|
<view class="container">
|
|
<view class="container">
|
|
|
<block v-if="!isLoggedIn">
|
|
<block v-if="!isLoggedIn">
|
|
|
- <PageBanner theme="body" tagline="科学管理全家健康" quote="身体健康是幸福的基础" />
|
|
|
|
|
<!-- 品牌定位语 -->
|
|
<!-- 品牌定位语 -->
|
|
|
<view class="brand-strap"><text class="brand-strap-text">科学管理全家健康数据</text></view>
|
|
<view class="brand-strap"><text class="brand-strap-text">科学管理全家健康数据</text></view>
|
|
|
<!-- 痛点卡 -->
|
|
<!-- 痛点卡 -->
|
|
@@ -166,8 +165,6 @@
|
|
|
</view>
|
|
</view>
|
|
|
</block>
|
|
</block>
|
|
|
<block v-else>
|
|
<block v-else>
|
|
|
- <PageBanner theme="body" tagline="看见·主动健康闭环" quote="采集→看见→行动" />
|
|
|
|
|
-
|
|
|
|
|
<view class="tab-bar">
|
|
<view class="tab-bar">
|
|
|
<view v-for="tab in tabs" :key="tab.code" class="tab-item" :class="{ active: currentTab === tab.code }" @click="switchTab(tab.code)">
|
|
<view v-for="tab in tabs" :key="tab.code" class="tab-item" :class="{ active: currentTab === tab.code }" @click="switchTab(tab.code)">
|
|
|
<text class="tab-icon">{{ tab.icon }}</text>
|
|
<text class="tab-icon">{{ tab.icon }}</text>
|
|
@@ -192,11 +189,14 @@
|
|
|
</view>
|
|
</view>
|
|
|
|
|
|
|
|
<view class="section section-data-collect">
|
|
<view class="section section-data-collect">
|
|
|
- <ReportUploadCard
|
|
|
|
|
- title="上传健康报告"
|
|
|
|
|
- desc="体检/肠道/舌诊报告 · 解读"
|
|
|
|
|
- :tags="['体检报告', '肠道检测', '舌诊']"
|
|
|
|
|
- @click="goPage('/pages/health/report-upload')" />
|
|
|
|
|
|
|
+ <view class="data-card" @click="goPage('/pages/health/report-upload')">
|
|
|
|
|
+ <view class="data-card-icon" style="background:rgba(249,115,22,0.12)"><text>📋</text></view>
|
|
|
|
|
+ <view class="data-card-info">
|
|
|
|
|
+ <text class="data-card-title">上传健康报告</text>
|
|
|
|
|
+ <text class="data-card-desc">体检/肠道/舌诊报告 · 解读</text>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ <text class="data-card-arrow">›</text>
|
|
|
|
|
+ </view>
|
|
|
|
|
|
|
|
<view class="data-card data-card-assessment">
|
|
<view class="data-card data-card-assessment">
|
|
|
<view class="data-card-head">
|
|
<view class="data-card-head">
|
|
@@ -259,14 +259,12 @@
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
|
<script>
|
|
|
-import PageBanner from '../../components/PageBanner.vue'
|
|
|
|
|
import LoginGuideCard from '../../components/LoginGuideCard.vue'
|
|
import LoginGuideCard from '../../components/LoginGuideCard.vue'
|
|
|
import RadarChart from '../../components/RadarChart.vue'
|
|
import RadarChart from '../../components/RadarChart.vue'
|
|
|
import ArticleBookshelf from '../../components/ArticleBookshelf.vue'
|
|
import ArticleBookshelf from '../../components/ArticleBookshelf.vue'
|
|
|
-import ReportUploadCard from '../../components/report-upload-card.vue'
|
|
|
|
|
|
|
|
|
|
export default {
|
|
export default {
|
|
|
- components: { PageBanner, LoginGuideCard, RadarChart, ArticleBookshelf, ReportUploadCard },
|
|
|
|
|
|
|
+ components: { LoginGuideCard, RadarChart, ArticleBookshelf },
|
|
|
data() {
|
|
data() {
|
|
|
return {
|
|
return {
|
|
|
isLoggedIn: false,
|
|
isLoggedIn: false,
|
|
@@ -276,6 +274,7 @@ export default {
|
|
|
reports: [],
|
|
reports: [],
|
|
|
lastPlan: '',
|
|
lastPlan: '',
|
|
|
healthArticles: [],
|
|
healthArticles: [],
|
|
|
|
|
+ hasAiQHistory: false,
|
|
|
tabs: [
|
|
tabs: [
|
|
|
{ code: 'body', label: '健康', icon: '🟠', color: '#FF8C42' },
|
|
{ code: 'body', label: '健康', icon: '🟠', color: '#FF8C42' },
|
|
|
{ code: 'cognitive', label: '认知', icon: '🧠', color: '#6366F1' },
|
|
{ code: 'cognitive', label: '认知', icon: '🧠', color: '#6366F1' },
|
|
@@ -613,6 +612,11 @@ export default {
|
|
|
.dc-title { font-size: 32rpx; font-weight: bold; color: #333; }
|
|
.dc-title { font-size: 32rpx; font-weight: bold; color: #333; }
|
|
|
.section-data-collect { margin: 8rpx 24rpx; }
|
|
.section-data-collect { margin: 8rpx 24rpx; }
|
|
|
.data-card { display: flex; align-items: center; background: #fff; border-radius: 20rpx; padding: 24rpx; margin-bottom: 12rpx; box-shadow: 0 2rpx 12rpx rgba(0,0,0,0.06); }
|
|
.data-card { display: flex; align-items: center; background: #fff; border-radius: 20rpx; padding: 24rpx; margin-bottom: 12rpx; box-shadow: 0 2rpx 12rpx rgba(0,0,0,0.06); }
|
|
|
|
|
+.data-card-icon { width: 88rpx; height: 88rpx; border-radius: 20rpx; display: flex; align-items: center; justify-content: center; margin-right: 20rpx; font-size: 40rpx; }
|
|
|
|
|
+.data-card-info { flex: 1; }
|
|
|
|
|
+.data-card-title { font-size: 28rpx; font-weight: bold; color: #333; display: block; margin-bottom: 6rpx; }
|
|
|
|
|
+.data-card-desc { font-size: 22rpx; color: #999; }
|
|
|
|
|
+.data-card-arrow { font-size: 36rpx; color: #ccc; }
|
|
|
.data-card-assessment { flex-direction: column; align-items: stretch; padding: 24rpx; }
|
|
.data-card-assessment { flex-direction: column; align-items: stretch; padding: 24rpx; }
|
|
|
.data-card-head { display: flex; align-items: center; margin-bottom: 16rpx; }
|
|
.data-card-head { display: flex; align-items: center; margin-bottom: 16rpx; }
|
|
|
.data-card-subtitle { font-size: 22rpx; color: #999; margin-left: 12rpx; }
|
|
.data-card-subtitle { font-size: 22rpx; color: #999; margin-left: 12rpx; }
|