111
This commit is contained in:
+23
-10
@@ -41,6 +41,11 @@ async function load() {
|
||||
}
|
||||
|
||||
async function executeScene(scene: 'sleep' | 'all-off') {
|
||||
if (scene === 'sleep' && !dashboard.value?.tcmResult?.hasCompleted) {
|
||||
showToast('请先完成中医四诊,生成体质倾向')
|
||||
router.push('/tcm-assessment')
|
||||
return
|
||||
}
|
||||
sceneRunning.value = scene
|
||||
try {
|
||||
const result = scene === 'sleep'
|
||||
@@ -82,7 +87,7 @@ onMounted(load)
|
||||
<section class="hero-card">
|
||||
<p class="eyebrow">今日健康建议</p>
|
||||
<h2>{{ dashboard?.currentPlan?.title || '尚未完成健康评估' }}</h2>
|
||||
<p>{{ dashboard?.currentPlan?.summary || '完成健康评估后,系统会自动生成个人健康方案与家居启动参数。' }}</p>
|
||||
<p>{{ dashboard?.currentPlan?.summary || '完成健康评估后,系统会整理您的基本情况并生成日常健康建议。' }}</p>
|
||||
<van-button
|
||||
v-if="!dashboard?.currentPlan"
|
||||
round
|
||||
@@ -99,21 +104,26 @@ onMounted(load)
|
||||
<div class="guide-badge">重要提醒</div>
|
||||
<div class="guide-body">
|
||||
<div class="guide-text">
|
||||
<h3>先填写个人基本信息与身体评估</h3>
|
||||
<p>尚未进行身体及睡眠质量、运动情况、饮食情况三大维度评估。完成评估后将为您专属定制全套智能家居启动参数!</p>
|
||||
<h3>完善个人基本信息与健康评估</h3>
|
||||
<p>尚未记录身体及睡眠质量、运动情况、饮食情况。健康评估仅用于了解基本情况;设备启动参数由中医四诊体质结果生成。</p>
|
||||
</div>
|
||||
<button class="guide-btn" type="button">去评估 ></button>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- 个性化智能家居启动参数概览 (已完成评估) -->
|
||||
<section v-else class="section-card personalized-startup-card">
|
||||
<!-- 智能家居启动参数仅来源于中医四诊体质结果 -->
|
||||
<section class="section-card personalized-startup-card">
|
||||
<div class="section-title">
|
||||
<span>专属舒睡启动参数</span>
|
||||
<span>体质专属舒睡启动参数</span>
|
||||
</div>
|
||||
<p class="startup-card-desc">依据您的体征评估与冷热、承托偏好,智能中枢已生成专属预设:</p>
|
||||
<p class="startup-card-desc">
|
||||
{{ dashboard?.tcmResult?.hasCompleted
|
||||
? `依据${dashboard.tcmResult.constitutionName}倾向生成基础预设;床垫加热看重庆天气,软硬度看 BMI。`
|
||||
: '先完成中医四诊并生成体质倾向,才可一键开启专属场景。' }}
|
||||
<a v-if="!dashboard?.tcmResult?.hasCompleted" href="/tcm-assessment" @click.prevent="router.push('/tcm-assessment')">去完成四诊 ›</a>
|
||||
</p>
|
||||
|
||||
<div class="startup-params-tags">
|
||||
<div v-if="dashboard?.tcmResult?.hasCompleted" class="startup-params-tags">
|
||||
<div class="startup-param-badge">
|
||||
<span class="lbl">恒湿目标</span>
|
||||
<strong>{{ dashboard?.sceneConfig?.targetHumidity || 55 }}% · {{ dashboard?.sceneConfig?.fanLevel || '1挡' }}</strong>
|
||||
@@ -128,19 +138,22 @@ onMounted(load)
|
||||
</div>
|
||||
<div class="startup-param-badge">
|
||||
<span class="lbl">8H 床垫</span>
|
||||
<strong>左右加热 {{ dashboard?.sceneConfig?.mattressHeatingLevel ?? 1 }} 档 · {{ dashboard?.sceneConfig?.mattressMode || '智能适配' }}</strong>
|
||||
<strong>左右加热 {{ dashboard?.mattressComfort?.heatingLevel ?? 0 }} 档 · 软硬度{{ dashboard?.mattressComfort?.firmness || '待填写 BMI' }}</strong>
|
||||
</div>
|
||||
<div class="startup-param-badge" v-if="dashboard?.sceneConfig?.enableUv">
|
||||
<span class="lbl">除湿消杀</span>
|
||||
<strong style="color: #7b42b5;">UV 深度消杀已开启</strong>
|
||||
</div>
|
||||
</div>
|
||||
<p v-if="dashboard?.tcmResult?.hasCompleted" class="startup-card-desc">
|
||||
{{ dashboard?.mattressComfort?.weatherReason }};{{ dashboard?.mattressComfort?.firmnessReason }}
|
||||
</p>
|
||||
|
||||
<div class="startup-scene-actions">
|
||||
<button
|
||||
class="startup-action-primary"
|
||||
type="button"
|
||||
:disabled="!homeAssistant?.connected || sceneAvailable === 0 || !!sceneRunning"
|
||||
:disabled="!dashboard?.tcmResult?.hasCompleted || !homeAssistant?.connected || sceneAvailable === 0 || !!sceneRunning"
|
||||
@click="executeScene('sleep')"
|
||||
>
|
||||
{{ sceneRunning === 'sleep' ? '正在开启…' : '一键开启' }}
|
||||
|
||||
Reference in New Issue
Block a user