|
@@ -3,143 +3,160 @@
|
|
|
<!-- 通用登录浮层 -->
|
|
<!-- 通用登录浮层 -->
|
|
|
<login-sheet ref="loginSheet" @success="onSheetLoginSuccess" @open="onLoginSheetOpen" @close="onLoginSheetClose" />
|
|
<login-sheet ref="loginSheet" @success="onSheetLoginSuccess" @open="onLoginSheetOpen" @close="onLoginSheetClose" />
|
|
|
<block v-if="!isLoggedIn">
|
|
<block v-if="!isLoggedIn">
|
|
|
- <!-- 品牌定位语 -->
|
|
|
|
|
- <view class="brand-strap"><text class="brand-strap-text">科学管理全家健康数据</text></view>
|
|
|
|
|
- <!-- 痛点卡 -->
|
|
|
|
|
- <view class="pain-card">
|
|
|
|
|
- <text class="pain-quote">指标正常 ≠ 健康</text>
|
|
|
|
|
- <text class="pain-desc">家人反复生病,你扛了多少次了?</text>
|
|
|
|
|
- </view>
|
|
|
|
|
- <!-- 自测入口 -->
|
|
|
|
|
- <view class="self-test-card" @click="goSelfTest">
|
|
|
|
|
- <view class="self-test-head">
|
|
|
|
|
- <text class="self-test-icon">⚡</text>
|
|
|
|
|
- <view class="self-test-info">
|
|
|
|
|
- <text class="self-test-title">15题五维健康自检</text>
|
|
|
|
|
- <text class="self-test-sub">约20秒,了解家人健康概况</text>
|
|
|
|
|
|
|
+ <view class="gh-page">
|
|
|
|
|
+ <!-- 页面头 -->
|
|
|
|
|
+ <view class="gh-head">
|
|
|
|
|
+ <text class="gh-eyebrow">浠艾福 · 家庭主动健康</text>
|
|
|
|
|
+ <text class="gh-title">科学管理全家健康数据</text>
|
|
|
|
|
+ <text class="gh-sub">把每个家人的健康数据,变成看得懂的结论。</text>
|
|
|
|
|
+ </view>
|
|
|
|
|
+
|
|
|
|
|
+ <!-- 痛点条 -->
|
|
|
|
|
+ <view class="gh-pain">
|
|
|
|
|
+ <text class="gh-pain-quote">指标正常 ≠ 健康</text>
|
|
|
|
|
+ <text class="gh-pain-desc">家人反复生病,你扛了多少次了?</text>
|
|
|
|
|
+ </view>
|
|
|
|
|
+
|
|
|
|
|
+ <!-- 自检 hero CTA -->
|
|
|
|
|
+ <view class="gh-cta" @click="goSelfTest">
|
|
|
|
|
+ <view class="gh-cta-ic"></view>
|
|
|
|
|
+ <view class="gh-cta-info">
|
|
|
|
|
+ <text class="gh-cta-title">15 题五维健康自检</text>
|
|
|
|
|
+ <text class="gh-cta-sub">约 20 秒,了解家人的健康概况</text>
|
|
|
</view>
|
|
</view>
|
|
|
- <text class="self-test-arrow">›</text>
|
|
|
|
|
|
|
+ <text class="gh-chev">›</text>
|
|
|
</view>
|
|
</view>
|
|
|
- </view>
|
|
|
|
|
- <!-- 本期待填调研(按周期计算,服务端返回 pending 列表) -->
|
|
|
|
|
- <view v-for="(item, si) in pendingSurveys" :key="si" class="self-test-card" @click="goSurveyFill(item)">
|
|
|
|
|
- <view class="self-test-head">
|
|
|
|
|
- <text class="self-test-icon">📋</text>
|
|
|
|
|
- <view class="self-test-info">
|
|
|
|
|
- <text class="self-test-title">{{ item.title }}</text>
|
|
|
|
|
- <text class="self-test-sub">{{ cycleLabel(item.cycleType) }} · {{ item.periodStart }} 至 {{ item.periodEnd }}</text>
|
|
|
|
|
|
|
+
|
|
|
|
|
+ <!-- 本期待填调研(按周期计算,服务端返回 pending 列表) -->
|
|
|
|
|
+ <view v-for="(item, si) in pendingSurveys" :key="si" class="gh-pending" @click="goSurveyFill(item)">
|
|
|
|
|
+ <view class="gh-pending-ic"><text class="gh-pending-glyph">研</text></view>
|
|
|
|
|
+ <view class="gh-pending-info">
|
|
|
|
|
+ <text class="gh-pending-title">{{ item.title }}</text>
|
|
|
|
|
+ <text class="gh-pending-sub">{{ cycleLabel(item.cycleType) }} · {{ item.periodStart }} 至 {{ item.periodEnd }}</text>
|
|
|
</view>
|
|
</view>
|
|
|
- <text class="survey-pending-tag">待填写</text>
|
|
|
|
|
|
|
+ <text class="gh-pending-tag">待填写</text>
|
|
|
</view>
|
|
</view>
|
|
|
- </view>
|
|
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
<!-- 演示雷达(登录浮层打开时隐藏:原生 canvas 会盖在浮层之上) -->
|
|
<!-- 演示雷达(登录浮层打开时隐藏:原生 canvas 会盖在浮层之上) -->
|
|
|
- <view v-if="!loginSheetVisible">
|
|
|
|
|
|
|
+ <view class="gh-demo" v-if="!loginSheetVisible">
|
|
|
|
|
+ <view class="gh-demo-head">
|
|
|
|
|
+ <text class="gh-demo-name">身体雷达</text>
|
|
|
|
|
+ <text class="gh-demo-tag">示例</text>
|
|
|
|
|
+ </view>
|
|
|
<RadarChart :dimensions="demoBodyDims" :scores="demoBodyScores" :fillColor="bodyColor" childName="示例" width="560" height="460" />
|
|
<RadarChart :dimensions="demoBodyDims" :scores="demoBodyScores" :fillColor="bodyColor" childName="示例" width="560" height="460" />
|
|
|
- <view class="demo-chart-title-row">
|
|
|
|
|
- <text class="demo-chart-name">🧠 认知雷达</text>
|
|
|
|
|
- <text class="demo-chart-tag">示例</text>
|
|
|
|
|
|
|
+ <view class="gh-demo-head">
|
|
|
|
|
+ <text class="gh-demo-name">认知雷达</text>
|
|
|
|
|
+ <text class="gh-demo-tag">示例</text>
|
|
|
</view>
|
|
</view>
|
|
|
<RadarChart :dimensions="demoCogDims" :scores="demoCogScores" :fillColor="wisdomColor" childName="示例" width="560" height="460" />
|
|
<RadarChart :dimensions="demoCogDims" :scores="demoCogScores" :fillColor="wisdomColor" childName="示例" width="560" height="460" />
|
|
|
</view>
|
|
</view>
|
|
|
- <!-- 五维健康体系 -->
|
|
|
|
|
- <view class="wuxing-section">
|
|
|
|
|
- <view class="wuxing-title">身·心·智·行·富 · 看得见的健康闭环</view>
|
|
|
|
|
- <view class="wuxing-desc">五行相生相克,从报告和测评里,真正读懂家人的身体</view>
|
|
|
|
|
- <view class="wuxing-relations">
|
|
|
|
|
- <view class="rel-group">
|
|
|
|
|
- <text class="rel-title">相生 → 系统前进</text>
|
|
|
|
|
- <view class="rel-chain">
|
|
|
|
|
- <text class="rel-item">🌏 身</text>
|
|
|
|
|
- <text class="rel-arrow">→</text>
|
|
|
|
|
- <text class="rel-item">⚡ 智</text>
|
|
|
|
|
- <text class="rel-arrow">→</text>
|
|
|
|
|
- <text class="rel-item">💧 富</text>
|
|
|
|
|
- <text class="rel-arrow">→</text>
|
|
|
|
|
- <text class="rel-item">🌿 行</text>
|
|
|
|
|
- <text class="rel-arrow">→</text>
|
|
|
|
|
- <text class="rel-item">🔥 心</text>
|
|
|
|
|
- <text class="rel-arrow">→</text>
|
|
|
|
|
- <text class="rel-item">🌏 身</text>
|
|
|
|
|
|
|
+
|
|
|
|
|
+ <!-- 五维健康体系 -->
|
|
|
|
|
+ <view class="gh-wuxing">
|
|
|
|
|
+ <text class="gh-wuxing-title">身 · 智 · 富 · 行 · 心,看得见的健康闭环</text>
|
|
|
|
|
+ <text class="gh-wuxing-sub">五行相生相克,从报告和测评里,真正读懂家人的身体。</text>
|
|
|
|
|
+
|
|
|
|
|
+ <view class="gh-rel">
|
|
|
|
|
+ <text class="gh-rel-title">相生 · 前进</text>
|
|
|
|
|
+ <view class="gh-chain">
|
|
|
|
|
+ <text class="gh-node gh-node-body">身</text>
|
|
|
|
|
+ <text class="gh-arrow">→</text>
|
|
|
|
|
+ <text class="gh-node gh-node-wisdom">智</text>
|
|
|
|
|
+ <text class="gh-arrow">→</text>
|
|
|
|
|
+ <text class="gh-node gh-node-wealth">富</text>
|
|
|
|
|
+ <text class="gh-arrow">→</text>
|
|
|
|
|
+ <text class="gh-node gh-node-action">行</text>
|
|
|
|
|
+ <text class="gh-arrow">→</text>
|
|
|
|
|
+ <text class="gh-node gh-node-mind">心</text>
|
|
|
|
|
+ <text class="gh-arrow">→</text>
|
|
|
|
|
+ <text class="gh-node gh-node-body">身</text>
|
|
|
</view>
|
|
</view>
|
|
|
- <text class="rel-hint">健康孕育智慧,智慧创造价值,价值滋养关系,关系反哺心灵,心灵守护健康</text>
|
|
|
|
|
|
|
+ <text class="gh-rel-hint">健康孕育智慧,智慧创造价值,价值滋养关系,关系反哺心灵,心灵守护健康。</text>
|
|
|
</view>
|
|
</view>
|
|
|
- <view class="rel-group">
|
|
|
|
|
- <text class="rel-title">相克 → 系统平衡</text>
|
|
|
|
|
- <view class="rel-chain">
|
|
|
|
|
- <text class="rel-item">🌏 身</text>
|
|
|
|
|
- <text class="rel-op">克</text>
|
|
|
|
|
- <text class="rel-item">💧 富</text>
|
|
|
|
|
- <text class="rel-dot">·</text>
|
|
|
|
|
- <text class="rel-item">⚡ 智</text>
|
|
|
|
|
- <text class="rel-op">克</text>
|
|
|
|
|
- <text class="rel-item">🌿 行</text>
|
|
|
|
|
- <text class="rel-dot">·</text>
|
|
|
|
|
- <text class="rel-item">💧 富</text>
|
|
|
|
|
- <text class="rel-op">克</text>
|
|
|
|
|
- <text class="rel-item">🔥 心</text>
|
|
|
|
|
- <text class="rel-dot">·</text>
|
|
|
|
|
- <text class="rel-item">🌿 行</text>
|
|
|
|
|
- <text class="rel-op">克</text>
|
|
|
|
|
- <text class="rel-item">🌏 身</text>
|
|
|
|
|
- <text class="rel-dot">·</text>
|
|
|
|
|
- <text class="rel-item">🔥 心</text>
|
|
|
|
|
- <text class="rel-op">克</text>
|
|
|
|
|
- <text class="rel-item">⚡ 智</text>
|
|
|
|
|
|
|
+
|
|
|
|
|
+ <view class="gh-rel">
|
|
|
|
|
+ <text class="gh-rel-title">相克 · 平衡</text>
|
|
|
|
|
+ <view class="gh-chain">
|
|
|
|
|
+ <text class="gh-node gh-node-body">身</text>
|
|
|
|
|
+ <text class="gh-op">克</text>
|
|
|
|
|
+ <text class="gh-node gh-node-wealth">富</text>
|
|
|
|
|
+ <text class="gh-sep">·</text>
|
|
|
|
|
+ <text class="gh-node gh-node-wisdom">智</text>
|
|
|
|
|
+ <text class="gh-op">克</text>
|
|
|
|
|
+ <text class="gh-node gh-node-action">行</text>
|
|
|
|
|
+ <text class="gh-sep">·</text>
|
|
|
|
|
+ <text class="gh-node gh-node-wealth">富</text>
|
|
|
|
|
+ <text class="gh-op">克</text>
|
|
|
|
|
+ <text class="gh-node gh-node-mind">心</text>
|
|
|
|
|
+ <text class="gh-sep">·</text>
|
|
|
|
|
+ <text class="gh-node gh-node-action">行</text>
|
|
|
|
|
+ <text class="gh-op">克</text>
|
|
|
|
|
+ <text class="gh-node gh-node-body">身</text>
|
|
|
|
|
+ <text class="gh-sep">·</text>
|
|
|
|
|
+ <text class="gh-node gh-node-mind">心</text>
|
|
|
|
|
+ <text class="gh-op">克</text>
|
|
|
|
|
+ <text class="gh-node gh-node-wisdom">智</text>
|
|
|
</view>
|
|
</view>
|
|
|
- <text class="rel-hint">莫以健康换金钱,真诚胜过算计,财富服务家庭,关爱有度、大爱留白</text>
|
|
|
|
|
|
|
+ <text class="gh-rel-hint">莫以健康换金钱,真诚胜过算计,财富服务家庭,关爱有度、大爱留白。</text>
|
|
|
</view>
|
|
</view>
|
|
|
- </view>
|
|
|
|
|
- <view class="wuxing-cards">
|
|
|
|
|
- <view class="wc-card wc-body" @click="goPage('/pages/body-detail/index')">
|
|
|
|
|
- <text class="wc-icon">🌏</text>
|
|
|
|
|
- <view class="wc-info">
|
|
|
|
|
- <text class="wc-name">身 · 主动健康</text>
|
|
|
|
|
- <text class="wc-text">读懂每一份报告,看见全家体质的变化</text>
|
|
|
|
|
|
|
+
|
|
|
|
|
+ <view class="gh-rows">
|
|
|
|
|
+ <view class="gh-row" @click="goPage('/pages/body-detail/index')">
|
|
|
|
|
+ <view class="gh-ic gh-ic-body"><text class="gh-glyph">身</text></view>
|
|
|
|
|
+ <view class="gh-row-info">
|
|
|
|
|
+ <text class="gh-row-name">身 · 主动健康</text>
|
|
|
|
|
+ <text class="gh-row-sub">读懂每一份报告,看见全家体质的变化</text>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ <text class="gh-row-chev">›</text>
|
|
|
</view>
|
|
</view>
|
|
|
- </view>
|
|
|
|
|
- <view class="wc-card wc-wisdom" @click="goPage('/pages/wisdom-detail/index')">
|
|
|
|
|
- <text class="wc-icon">⚡</text>
|
|
|
|
|
- <view class="wc-info">
|
|
|
|
|
- <text class="wc-name">智 · 面向未来</text>
|
|
|
|
|
- <text class="wc-text">一次测评,看见成员真实的专注与潜能</text>
|
|
|
|
|
|
|
+ <view class="gh-row" @click="goPage('/pages/wisdom-detail/index')">
|
|
|
|
|
+ <view class="gh-ic gh-ic-wisdom"><text class="gh-glyph">智</text></view>
|
|
|
|
|
+ <view class="gh-row-info">
|
|
|
|
|
+ <text class="gh-row-name">智 · 面向未来</text>
|
|
|
|
|
+ <text class="gh-row-sub">一次测评,看见成员真实的专注与潜能</text>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ <text class="gh-row-chev">›</text>
|
|
|
</view>
|
|
</view>
|
|
|
- </view>
|
|
|
|
|
- <view class="wc-card wc-wealth" @click="goPage('/pages/wealth/index')">
|
|
|
|
|
- <text class="wc-icon">💧</text>
|
|
|
|
|
- <view class="wc-info">
|
|
|
|
|
- <text class="wc-name">富 · 利他创富</text>
|
|
|
|
|
- <text class="wc-text">看懂健康与财富的关系,明白身体是最大的本钱</text>
|
|
|
|
|
|
|
+ <view class="gh-row" @click="goPage('/pages/wealth/index')">
|
|
|
|
|
+ <view class="gh-ic gh-ic-wealth"><text class="gh-glyph">富</text></view>
|
|
|
|
|
+ <view class="gh-row-info">
|
|
|
|
|
+ <text class="gh-row-name">富 · 利他创富</text>
|
|
|
|
|
+ <text class="gh-row-sub">看懂健康与财富的关系,明白身体是最大的本钱</text>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ <text class="gh-row-chev">›</text>
|
|
|
</view>
|
|
</view>
|
|
|
- </view>
|
|
|
|
|
- <view class="wc-card wc-action" @click="goPage('/pages/action-detail/member-action-detail')">
|
|
|
|
|
- <text class="wc-icon">🌿</text>
|
|
|
|
|
- <view class="wc-info">
|
|
|
|
|
- <text class="wc-name">行 · 人际和谐</text>
|
|
|
|
|
- <text class="wc-text">看懂关系里的情绪,看见家人真实的需求</text>
|
|
|
|
|
|
|
+ <view class="gh-row" @click="goPage('/pages/action-detail/member-action-detail')">
|
|
|
|
|
+ <view class="gh-ic gh-ic-action"><text class="gh-glyph">行</text></view>
|
|
|
|
|
+ <view class="gh-row-info">
|
|
|
|
|
+ <text class="gh-row-name">行 · 人际和谐</text>
|
|
|
|
|
+ <text class="gh-row-sub">看懂关系里的情绪,看见家人真实的需求</text>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ <text class="gh-row-chev">›</text>
|
|
|
</view>
|
|
</view>
|
|
|
- </view>
|
|
|
|
|
- <view class="wc-card wc-mind" @click="goPage('/pages/mind-detail/index')">
|
|
|
|
|
- <text class="wc-icon">🔥</text>
|
|
|
|
|
- <view class="wc-info">
|
|
|
|
|
- <text class="wc-name">心 · 大爱相随</text>
|
|
|
|
|
- <text class="wc-text">读懂情绪的信号,听懂家人没说出口的话</text>
|
|
|
|
|
|
|
+ <view class="gh-row" @click="goPage('/pages/mind-detail/index')">
|
|
|
|
|
+ <view class="gh-ic gh-ic-mind"><text class="gh-glyph">心</text></view>
|
|
|
|
|
+ <view class="gh-row-info">
|
|
|
|
|
+ <text class="gh-row-name">心 · 大爱相随</text>
|
|
|
|
|
+ <text class="gh-row-sub">读懂情绪的信号,听懂家人没说出口的话</text>
|
|
|
|
|
+ </view>
|
|
|
|
|
+ <text class="gh-row-chev">›</text>
|
|
|
</view>
|
|
</view>
|
|
|
</view>
|
|
</view>
|
|
|
</view>
|
|
</view>
|
|
|
- </view>
|
|
|
|
|
|
|
|
|
|
- <!-- 登录引导 -->
|
|
|
|
|
- <view class="login-guide-section">
|
|
|
|
|
- <LoginGuideCard
|
|
|
|
|
- title="解锁全家健康数据"
|
|
|
|
|
- :items="[
|
|
|
|
|
- '查看七维雷达图与健康报告解读',
|
|
|
|
|
- '完成测评获取个性化健康方案',
|
|
|
|
|
- '每日打卡追踪身体/情绪/认知趋势'
|
|
|
|
|
- ]" />
|
|
|
|
|
|
|
+ <!-- 登录引导 -->
|
|
|
|
|
+ <view class="gh-guide">
|
|
|
|
|
+ <LoginGuideCard
|
|
|
|
|
+ title="登录后查看全家健康数据"
|
|
|
|
|
+ :items="[
|
|
|
|
|
+ '查看七维雷达图与健康报告解读',
|
|
|
|
|
+ '完成测评获取个性化健康方案',
|
|
|
|
|
+ '每日打卡追踪身体 / 情绪 / 认知趋势'
|
|
|
|
|
+ ]" />
|
|
|
|
|
+ </view>
|
|
|
</view>
|
|
</view>
|
|
|
</block>
|
|
</block>
|
|
|
|
|
+
|
|
|
<block v-else>
|
|
<block v-else>
|
|
|
<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)">
|
|
@@ -749,73 +766,93 @@ export default {
|
|
|
.plan-btn { background: linear-gradient(135deg, $brand-primary, $brand-primary-light); color: $app-surface; font-size: calc(24rpx * var(--font-scale, 1)); border: none; border-radius: 24rpx; padding: 10rpx 28rpx; height: 56rpx; line-height: 36rpx; margin: 0; }
|
|
.plan-btn { background: linear-gradient(135deg, $brand-primary, $brand-primary-light); color: $app-surface; font-size: calc(24rpx * var(--font-scale, 1)); border: none; border-radius: 24rpx; padding: 10rpx 28rpx; height: 56rpx; line-height: 36rpx; margin: 0; }
|
|
|
.plan-goal { font-size: calc(24rpx * var(--font-scale, 1)); color: $facade-text-body; line-height: 1.5; display: block; margin-top: 12rpx; }
|
|
.plan-goal { font-size: calc(24rpx * var(--font-scale, 1)); color: $facade-text-body; line-height: 1.5; display: block; margin-top: 12rpx; }
|
|
|
.plan-hint { font-size: calc(22rpx * var(--font-scale, 1)); color: $facade-text-muted; display: block; margin-top: 12rpx; }
|
|
.plan-hint { font-size: calc(22rpx * var(--font-scale, 1)); color: $facade-text-muted; display: block; margin-top: 12rpx; }
|
|
|
-/* ===== 游客态样式 ===== */
|
|
|
|
|
-.brand-strap { margin: 0 24rpx 16rpx; background: linear-gradient(135deg, $facade-brand-tint, rgba($brand-primary, 0.08)); border-radius: 16rpx; padding: 20rpx 24rpx; }
|
|
|
|
|
-.brand-strap-text { font-size: calc(26rpx * var(--font-scale, 1)); color: $brand-primary; font-weight: 600; }
|
|
|
|
|
-.pain-card { margin: 0 24rpx 16rpx; background: $app-surface; border-radius: 24rpx; padding: 28rpx; border-left: 6rpx solid $brand-primary; box-shadow: 0 2rpx 12rpx rgba(0,0,0,0.06); }
|
|
|
|
|
-.pain-quote { font-size: calc(32rpx * var(--font-scale, 1)); font-weight: bold; color: $facade-text-strong; display: block; margin-bottom: 8rpx; }
|
|
|
|
|
-.pain-desc { font-size: calc(26rpx * var(--font-scale, 1)); color: $facade-text-faint; display: block; }
|
|
|
|
|
-.guest-features { display: flex; flex-wrap: wrap; justify-content: space-between; margin: 0 24rpx 16rpx; }
|
|
|
|
|
-.feat-card { width: 48.5%; box-sizing: border-box; background: $app-surface; border-radius: 24rpx; padding: 24rpx 20rpx; margin-bottom: 16rpx; box-shadow: 0 2rpx 12rpx rgba(0,0,0,0.06); }
|
|
|
|
|
-.feat-icon { font-size: calc(44rpx * var(--font-scale, 1)); display: block; margin-bottom: 10rpx; }
|
|
|
|
|
-.feat-title { font-size: calc(26rpx * var(--font-scale, 1)); font-weight: 600; color: $facade-text-strong; display: block; margin-bottom: 4rpx; }
|
|
|
|
|
-.feat-desc { font-size: calc(22rpx * var(--font-scale, 1)); color: $facade-text-muted; display: block; }
|
|
|
|
|
-.self-test-card { margin: 0 24rpx 16rpx; background: linear-gradient(135deg, $brand-primary, $brand-primary-light); border-radius: 24rpx; padding: 24rpx 28rpx; }
|
|
|
|
|
-.self-test-head { display: flex; align-items: center; }
|
|
|
|
|
-.self-test-icon { font-size: calc(40rpx * var(--font-scale, 1)); margin-right: 16rpx; }
|
|
|
|
|
-.self-test-info { flex: 1; }
|
|
|
|
|
-.self-test-title { font-size: calc(28rpx * var(--font-scale, 1)); font-weight: bold; color: $app-surface; display: block; }
|
|
|
|
|
-.self-test-sub { font-size: calc(22rpx * var(--font-scale, 1)); color: rgba($app-surface, 0.8); display: block; margin-top: 4rpx; }
|
|
|
|
|
-.ai-q-entry { margin: 0 24rpx 16rpx; background: linear-gradient(135deg, $brand-primary, $dim-wealth); border-radius: 24rpx; padding: 24rpx 28rpx; }
|
|
|
|
|
-.reminder-icon { font-size: calc(40rpx * var(--font-scale, 1)); margin-right: 16rpx; flex-shrink: 0; }
|
|
|
|
|
-.reminder-body { flex: 1; min-width: 0; }
|
|
|
|
|
-.reminder-text { font-size: calc(26rpx * var(--font-scale, 1)); font-weight: 600; color: $facade-text-strong; display: block; }
|
|
|
|
|
-.reminder-sub { font-size: calc(22rpx * var(--font-scale, 1)); color: $facade-text-muted; margin-top: 4rpx; display: block; line-height: 1.4; }
|
|
|
|
|
-.reminder-arrow { font-size: calc(28rpx * var(--font-scale, 1)); color: $brand-primary; flex-shrink: 0; }
|
|
|
|
|
-.ai-q-head { display: flex; align-items: center; }
|
|
|
|
|
-.ai-q-icon { font-size: calc(40rpx * var(--font-scale, 1)); margin-right: 16rpx; }
|
|
|
|
|
-.ai-q-info { flex: 1; }
|
|
|
|
|
-.q-title { font-size: calc(28rpx * var(--font-scale, 1)); font-weight: bold; color: $app-surface; display: block; }
|
|
|
|
|
-.ai-q-sub { font-size: calc(22rpx * var(--font-scale, 1)); color: rgba($app-surface, 0.85); display: block; margin-top: 4rpx; }
|
|
|
|
|
-.self-test-arrow { font-size: calc(36rpx * var(--font-scale, 1)); color: rgba($app-surface, 0.7); }
|
|
|
|
|
-.demo-section { margin: 0 24rpx 16rpx; }
|
|
|
|
|
-.demo-section-head { margin-bottom: 8rpx; }
|
|
|
|
|
-.demo-section-title { font-size: calc(30rpx * var(--font-scale, 1)); font-weight: bold; color: $facade-text-strong; display: block; }
|
|
|
|
|
-.demo-section-sub { font-size: calc(22rpx * var(--font-scale, 1)); color: $facade-text-muted; display: block; margin-top: 4rpx; }
|
|
|
|
|
-.demo-chart-title-row { display: flex; align-items: center; justify-content: space-between; margin: 8rpx 8rpx 0; padding: 0 8rpx; }
|
|
|
|
|
-.demo-chart-name { font-size: calc(26rpx * var(--font-scale, 1)); font-weight: 600; color: $facade-text-strong; }
|
|
|
|
|
-.demo-chart-tag { font-size: calc(20rpx * var(--font-scale, 1)); color: $brand-primary; background: rgba($brand-primary, 0.1); border-radius: 8rpx; padding: 4rpx 12rpx; }
|
|
|
|
|
-.login-guide-section { margin: 0 24rpx 24rpx; }
|
|
|
|
|
-
|
|
|
|
|
-/* ===== 五维闭环体系样式 ===== */
|
|
|
|
|
-.wuxing-section { margin: 0 24rpx 16rpx; background: $app-surface; border-radius: 24rpx; padding: 24rpx; box-shadow: 0 2rpx 12rpx rgba(0,0,0,0.06); }
|
|
|
|
|
-.wuxing-title { font-size: calc(30rpx * var(--font-scale, 1)); font-weight: bold; color: $facade-text-strong; text-align: center; margin-bottom: 6rpx; }
|
|
|
|
|
-.wuxing-desc { font-size: calc(22rpx * var(--font-scale, 1)); color: $facade-text-muted; text-align: center; margin-bottom: 20rpx; }
|
|
|
|
|
-.wuxing-diagram { position: relative; height: 320rpx; margin: 0 auto 20rpx; }
|
|
|
|
|
-.wuxing-relations { margin-top: 8rpx; }
|
|
|
|
|
-.rel-group { margin-bottom: 16rpx; }
|
|
|
|
|
-.rel-title { font-size: calc(24rpx * var(--font-scale, 1)); font-weight: bold; color: $facade-text-strong; margin-bottom: 8rpx; display: block; }
|
|
|
|
|
-.rel-chain { display: flex; flex-wrap: wrap; align-items: center; gap: 4rpx; margin-bottom: 6rpx; }
|
|
|
|
|
-.rel-item { font-size: calc(22rpx * var(--font-scale, 1)); padding: 4rpx 10rpx; border-radius: 8rpx; background: $facade-fill-cool; color: $facade-text-deep; }
|
|
|
|
|
-.rel-arrow { font-size: calc(20rpx * var(--font-scale, 1)); color: $brand-primary; font-weight: bold; }
|
|
|
|
|
-.rel-dot { font-size: calc(20rpx * var(--font-scale, 1)); color: $facade-text-ghost; }
|
|
|
|
|
-.rel-hint { font-size: calc(20rpx * var(--font-scale, 1)); color: $facade-text-muted; line-height: 1.5; display: block; }
|
|
|
|
|
-.wuxing-cards { display: flex; flex-direction: column; gap: 10rpx; margin-top: 16rpx; }
|
|
|
|
|
-.wc-card { display: flex; align-items: center; padding: 16rpx 20rpx; border-radius: 16rpx; border: 2rpx solid $facade-fill; }
|
|
|
|
|
-.wc-card:active { opacity: 0.85; }
|
|
|
|
|
-.wc-icon { font-size: calc(36rpx * var(--font-scale, 1)); margin-right: 16rpx; flex-shrink: 0; }
|
|
|
|
|
-.wc-info { flex: 1; min-width: 0; display: flex; flex-direction: column; }
|
|
|
|
|
-.wc-name { font-size: calc(24rpx * var(--font-scale, 1)); font-weight: 600; display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
|
|
|
|
|
-.wc-text { font-size: calc(20rpx * var(--font-scale, 1)); color: $facade-text-muted; display: block; margin-top: 4rpx; white-space: normal; }
|
|
|
|
|
-.wc-body { border-color: rgba($dim-body, 0.3); background: rgba($dim-body, 0.04); border-left: 8rpx solid $dim-body; }
|
|
|
|
|
-.wc-body .wc-name { color: $dim-body; }
|
|
|
|
|
-.wc-wisdom { border-color: rgba($dim-wisdom, 0.3); background: rgba($dim-wisdom, 0.04); border-left: 8rpx solid $dim-wisdom; }
|
|
|
|
|
-.wc-wisdom .wc-name { color: $dim-wisdom; }
|
|
|
|
|
-.wc-wealth { border-color: rgba($dim-wealth, 0.3); background: rgba($dim-wealth, 0.04); border-left: 8rpx solid $dim-wealth; }
|
|
|
|
|
-.wc-wealth .wc-name { color: $dim-wealth; }
|
|
|
|
|
-.wc-action { border-color: rgba($dim-action, 0.3); background: rgba($dim-action, 0.04); border-left: 8rpx solid $dim-action; }
|
|
|
|
|
-.wc-action .wc-name { color: $dim-action; }
|
|
|
|
|
-.wc-mind { border-color: rgba($dim-mind, 0.3); background: rgba($dim-mind, 0.04); border-left: 8rpx solid $dim-mind; }
|
|
|
|
|
-.wc-mind .wc-name { color: $dim-mind; }
|
|
|
|
|
-.survey-pending-tag { flex-shrink: 0; font-size: calc(20rpx * var(--font-scale, 1)); color: $app-surface; background: $brand-primary; padding: 6rpx 16rpx; border-radius: 999rpx; }
|
|
|
|
|
|
|
+/* ===== 访客态(新暖调配色 · 令牌化) ===== */
|
|
|
|
|
+$gh-white: str-slice('#{$app-surface}', 2);
|
|
|
|
|
+
|
|
|
|
|
+.gh-page { background: $app-bg; min-height: 100vh; padding: 28rpx 0 40rpx; }
|
|
|
|
|
+
|
|
|
|
|
+/* 页面头 */
|
|
|
|
|
+.gh-head { margin: 0 32rpx 24rpx; display: flex; flex-direction: column; }
|
|
|
|
|
+.gh-eyebrow { font-size: calc(22rpx * var(--font-scale, 1)); font-weight: 600; color: $brand-primary; letter-spacing: 2rpx; }
|
|
|
|
|
+.gh-title { font-size: calc(46rpx * var(--font-scale, 1)); font-weight: 700; color: $facade-text-strong; line-height: 1.32; margin-top: 12rpx; }
|
|
|
|
|
+.gh-sub { font-size: calc(24rpx * var(--font-scale, 1)); color: $facade-text-body; line-height: 1.65; margin-top: 10rpx; }
|
|
|
|
|
+
|
|
|
|
|
+/* 痛点条 */
|
|
|
|
|
+.gh-pain { margin: 0 32rpx 24rpx; display: flex; flex-direction: row; flex-wrap: wrap; align-items: baseline; justify-content: space-between; }
|
|
|
|
|
+.gh-pain-quote { font-size: calc(30rpx * var(--font-scale, 1)); font-weight: 700; color: $brand-primary; }
|
|
|
|
|
+.gh-pain-desc { font-size: calc(24rpx * var(--font-scale, 1)); color: $facade-text-body; }
|
|
|
|
|
+
|
|
|
|
|
+/* 自检 hero CTA */
|
|
|
|
|
+.gh-cta { margin: 0 32rpx 24rpx; display: flex; flex-direction: row; align-items: center; padding: 28rpx; border-radius: 24rpx; background: linear-gradient(135deg, $brand-primary, $brand-primary-dark); box-shadow: 0 12rpx 32rpx rgba($brand-primary, 0.24); }
|
|
|
|
|
+.gh-cta:active { opacity: 0.9; }
|
|
|
|
|
+.gh-cta-ic {
|
|
|
|
|
+ width: 88rpx; height: 88rpx; border-radius: 24rpx; flex-shrink: 0;
|
|
|
|
|
+ background-color: rgba($app-surface, 0.18);
|
|
|
|
|
+ background-repeat: no-repeat;
|
|
|
|
|
+ background-position: center;
|
|
|
|
|
+ background-size: 48rpx 48rpx;
|
|
|
|
|
+ background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23#{$gh-white}' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 2 4 14h6l-1 8 9-12h-6l1-8z'/%3E%3C/svg%3E");
|
|
|
|
|
+}
|
|
|
|
|
+.gh-cta-info { flex: 1; min-width: 0; margin-left: 20rpx; display: flex; flex-direction: column; }
|
|
|
|
|
+.gh-cta-title { font-size: calc(30rpx * var(--font-scale, 1)); font-weight: 700; color: $app-surface; }
|
|
|
|
|
+.gh-cta-sub { font-size: calc(22rpx * var(--font-scale, 1)); color: rgba($app-surface, 0.82); margin-top: 6rpx; }
|
|
|
|
|
+.gh-chev { font-size: calc(36rpx * var(--font-scale, 1)); color: rgba($app-surface, 0.72); margin-left: 12rpx; }
|
|
|
|
|
+
|
|
|
|
|
+/* 待填调研 */
|
|
|
|
|
+.gh-pending { margin: 0 32rpx 20rpx; display: flex; flex-direction: row; align-items: center; padding: 24rpx; border-radius: 20rpx; background: $app-surface; border: 1rpx solid $app-border-subtle; }
|
|
|
|
|
+.gh-pending:active { opacity: 0.9; }
|
|
|
|
|
+.gh-pending-ic { width: 72rpx; height: 72rpx; border-radius: 20rpx; display: flex; flex-direction: row; align-items: center; justify-content: center; flex-shrink: 0; background: $dim-body-tint; }
|
|
|
|
|
+.gh-pending-glyph { font-size: calc(28rpx * var(--font-scale, 1)); font-weight: 700; color: $dim-body-deep; }
|
|
|
|
|
+.gh-pending-info { flex: 1; min-width: 0; margin-left: 20rpx; display: flex; flex-direction: column; }
|
|
|
|
|
+.gh-pending-title { font-size: calc(28rpx * var(--font-scale, 1)); font-weight: 600; color: $facade-text-strong; }
|
|
|
|
|
+.gh-pending-sub { font-size: calc(22rpx * var(--font-scale, 1)); color: $facade-text-body; margin-top: 6rpx; }
|
|
|
|
|
+.gh-pending-tag { flex-shrink: 0; margin-left: 12rpx; font-size: calc(20rpx * var(--font-scale, 1)); font-weight: 600; color: $brand-primary; background: rgba($brand-primary, 0.1); border-radius: 999rpx; padding: 6rpx 16rpx; }
|
|
|
|
|
+
|
|
|
|
|
+/* 演示雷达 */
|
|
|
|
|
+.gh-demo { margin: 0 32rpx 24rpx; background: $app-surface; border-radius: 24rpx; padding: 20rpx 12rpx 12rpx; border: 1rpx solid $app-border-subtle; }
|
|
|
|
|
+.gh-demo-head { display: flex; flex-direction: row; align-items: center; justify-content: space-between; padding: 0 20rpx; margin: 12rpx 0 4rpx; }
|
|
|
|
|
+.gh-demo-name { font-size: calc(24rpx * var(--font-scale, 1)); font-weight: 600; color: $facade-text-strong; }
|
|
|
|
|
+.gh-demo-tag { font-size: calc(20rpx * var(--font-scale, 1)); color: $brand-primary; background: rgba($brand-primary, 0.1); border-radius: 8rpx; padding: 2rpx 12rpx; }
|
|
|
|
|
+
|
|
|
|
|
+/* 五维健康体系 */
|
|
|
|
|
+.gh-wuxing { margin: 0 32rpx 24rpx; background: $app-surface; border-radius: 24rpx; padding: 28rpx 24rpx; border: 1rpx solid $app-border-subtle; }
|
|
|
|
|
+.gh-wuxing-title { display: block; text-align: center; font-size: calc(30rpx * var(--font-scale, 1)); font-weight: 700; color: $facade-text-strong; line-height: 1.45; }
|
|
|
|
|
+.gh-wuxing-sub { display: block; text-align: center; font-size: calc(22rpx * var(--font-scale, 1)); color: $facade-text-body; line-height: 1.65; margin-top: 10rpx; }
|
|
|
|
|
+.gh-rel { margin-top: 24rpx; padding: 20rpx; border-radius: 20rpx; background: $app-bg; }
|
|
|
|
|
+.gh-rel-title { display: block; font-size: calc(24rpx * var(--font-scale, 1)); font-weight: 700; color: $facade-text-strong; margin-bottom: 12rpx; }
|
|
|
|
|
+.gh-chain { display: flex; flex-direction: row; flex-wrap: wrap; align-items: center; }
|
|
|
|
|
+.gh-node { font-size: calc(22rpx * var(--font-scale, 1)); font-weight: 700; padding: 6rpx 14rpx; border-radius: 10rpx; }
|
|
|
|
|
+.gh-node-body { color: $dim-body-deep; background: $dim-body-tint; }
|
|
|
|
|
+.gh-node-wisdom { color: $dim-wisdom-deep; background: $dim-wisdom-tint; }
|
|
|
|
|
+.gh-node-wealth { color: $dim-wealth-deep; background: $dim-wealth-tint; }
|
|
|
|
|
+.gh-node-action { color: $dim-action-deep; background: $dim-action-tint; }
|
|
|
|
|
+.gh-node-mind { color: $dim-mind-deep; background: $dim-mind-tint; }
|
|
|
|
|
+.gh-arrow { font-size: calc(20rpx * var(--font-scale, 1)); color: $facade-text-ghost; margin: 0 6rpx; }
|
|
|
|
|
+.gh-op { font-size: calc(20rpx * var(--font-scale, 1)); color: $status-danger-deep; margin: 0 8rpx; }
|
|
|
|
|
+.gh-sep { font-size: calc(20rpx * var(--font-scale, 1)); color: $facade-text-ghost; margin: 0 8rpx; }
|
|
|
|
|
+.gh-rel-hint { display: block; font-size: calc(20rpx * var(--font-scale, 1)); color: $facade-text-body; line-height: 1.65; margin-top: 12rpx; }
|
|
|
|
|
+
|
|
|
|
|
+.gh-rows { margin-top: 24rpx; display: flex; flex-direction: column; }
|
|
|
|
|
+.gh-row { display: flex; flex-direction: row; align-items: center; padding: 20rpx 0; border-top: 1rpx solid $app-border-subtle; }
|
|
|
|
|
+.gh-row:first-child { border-top: none; padding-top: 4rpx; }
|
|
|
|
|
+.gh-row:active { opacity: 0.85; }
|
|
|
|
|
+.gh-ic { width: 76rpx; height: 76rpx; border-radius: 20rpx; display: flex; flex-direction: row; align-items: center; justify-content: center; flex-shrink: 0; }
|
|
|
|
|
+.gh-ic-body { background: $dim-body-tint; }
|
|
|
|
|
+.gh-ic-wisdom { background: $dim-wisdom-tint; }
|
|
|
|
|
+.gh-ic-wealth { background: $dim-wealth-tint; }
|
|
|
|
|
+.gh-ic-action { background: $dim-action-tint; }
|
|
|
|
|
+.gh-ic-mind { background: $dim-mind-tint; }
|
|
|
|
|
+.gh-glyph { font-size: calc(30rpx * var(--font-scale, 1)); font-weight: 700; }
|
|
|
|
|
+.gh-ic-body .gh-glyph { color: $dim-body-deep; }
|
|
|
|
|
+.gh-ic-wisdom .gh-glyph { color: $dim-wisdom-deep; }
|
|
|
|
|
+.gh-ic-wealth .gh-glyph { color: $dim-wealth-deep; }
|
|
|
|
|
+.gh-ic-action .gh-glyph { color: $dim-action-deep; }
|
|
|
|
|
+.gh-ic-mind .gh-glyph { color: $dim-mind-deep; }
|
|
|
|
|
+.gh-row-info { flex: 1; min-width: 0; margin-left: 20rpx; display: flex; flex-direction: column; }
|
|
|
|
|
+.gh-row-name { font-size: calc(28rpx * var(--font-scale, 1)); font-weight: 600; color: $facade-text-strong; }
|
|
|
|
|
+.gh-row-sub { font-size: calc(22rpx * var(--font-scale, 1)); color: $facade-text-body; line-height: 1.5; margin-top: 6rpx; }
|
|
|
|
|
+.gh-row-chev { font-size: calc(32rpx * var(--font-scale, 1)); color: $facade-text-ghost; margin-left: 12rpx; flex-shrink: 0; }
|
|
|
|
|
+
|
|
|
|
|
+.gh-guide { margin: 0 32rpx 8rpx; }
|
|
|
|
|
+
|
|
|
</style>
|
|
</style>
|