feat: 体重管理饮食运动详情更新+西安中心应急大屏v4

This commit is contained in:
liuyunqin
2026-08-04 17:52:20 +08:00
parent aaad019628
commit 2b8a35d5a3
2 changed files with 4356 additions and 76 deletions
@@ -234,84 +234,91 @@ body { background: #f0f2f5; display: flex; justify-content: center; align-items:
</div>
<!-- ====== 饮食卡片(早餐·午餐·晚餐·加餐) ====== -->
<div class="meal-card" id="cardDiet">
<div class="meal-card__header">
<div class="meal-card__left">
<div class="meal-card__icon meal-card__icon--breakfast">🍽️</div>
<span class="meal-card__name">饮食</span>
</div>
<span class="meal-card__kcal meal-card__kcal--in"><span id="kcalDiet">1086</span> kcal</span>
</div>
<!-- ====== 饮食卡片(早餐·午餐·晚餐·加餐) ====== -->
<div class="meal-card" id="cardDiet">
<div class="meal-card__header" onclick="toggleDietCard(this)">
<div class="meal-card__left">
<div class="meal-card__icon meal-card__icon--breakfast">🍽️</div>
<span class="meal-card__name">饮食</span>
</div>
<div style="display:flex;align-items:center;gap:8px;">
<span class="meal-card__kcal meal-card__kcal--in"><span id="kcalDiet">1086</span> kcal</span>
<div class="meal-card__expand">
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"/></svg>
</div>
</div>
</div>
<!-- 早餐 -->
<div class="diet-sub" id="dietSubBreakfast">
<div class="diet-sub__header" onclick="toggleDietSub('breakfast', this)">
<div class="meal-card__icon meal-card__icon--breakfast" style="width:22px;height:22px;font-size:11px;"></div>
<span class="diet-sub__name">早餐</span>
<span class="diet-sub__kcal" id="kcalBreakfast">320</span>
<div class="meal-card__expand">
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"/></svg>
</div>
</div>
<div class="meal-items" id="groupBreakfast">
<div class="meal-item"><div class="meal-item__emoji">🥚</div><div class="meal-item__info"><div class="meal-item__name">水煮鸡蛋<span class="meal-item__src meal-item__src--auto">智记</span></div><div class="meal-item__meta">×1 · 约50g</div></div><div class="meal-item__kcal">80 kcal</div></div>
<div class="meal-item"><div class="meal-item__emoji">🥛</div><div class="meal-item__info"><div class="meal-item__name">纯牛奶<span class="meal-item__src meal-item__src--auto">智记</span></div><div class="meal-item__meta">×1 · 250ml</div></div><div class="meal-item__kcal">120 kcal</div></div>
<div class="meal-item"><div class="meal-item__emoji">🍞</div><div class="meal-item__info"><div class="meal-item__name">全麦面包<span class="meal-item__src meal-item__src--auto">智记</span></div><div class="meal-item__meta">×2 · 约80g</div></div><div class="meal-item__kcal">120 kcal</div></div>
</div>
</div>
<div id="groupDiet">
<!-- 早餐 -->
<div class="diet-sub" id="dietSubBreakfast">
<div class="diet-sub__header" onclick="event.stopPropagation();toggleDietSub('breakfast', this)">
<div class="meal-card__icon meal-card__icon--breakfast" style="width:22px;height:22px;font-size:11px;"></div>
<span class="diet-sub__name">早餐</span>
<span class="diet-sub__kcal" id="kcalBreakfast">320</span>
<div class="meal-card__expand">
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"/></svg>
</div>
</div>
<div class="meal-items" id="groupBreakfast">
<div class="meal-item"><div class="meal-item__emoji">🥚</div><div class="meal-item__info"><div class="meal-item__name">水煮鸡蛋<span class="meal-item__src meal-item__src--auto">智记</span></div><div class="meal-item__meta">×1 · 50g</div></div><div class="meal-item__kcal">80 kcal</div></div>
<div class="meal-item"><div class="meal-item__emoji">🥛</div><div class="meal-item__info"><div class="meal-item__name">纯牛奶<span class="meal-item__src meal-item__src--auto">智记</span></div><div class="meal-item__meta">×1 · 250ml</div></div><div class="meal-item__kcal">120 kcal</div></div>
<div class="meal-item"><div class="meal-item__emoji">🍞</div><div class="meal-item__info"><div class="meal-item__name">全麦面包<span class="meal-item__src meal-item__src--auto">智记</span></div><div class="meal-item__meta">×2 · 约80g</div></div><div class="meal-item__kcal">120 kcal</div></div>
</div>
</div>
<!-- 午餐 -->
<div class="diet-sub" id="dietSubLunch">
<div class="diet-sub__header" onclick="toggleDietSub('lunch', this)">
<div class="meal-card__icon meal-card__icon--lunch" style="width:22px;height:22px;font-size:11px;"></div>
<span class="diet-sub__name">午餐</span>
<span class="diet-sub__kcal" id="kcalLunch">480</span>
<div class="meal-card__expand">
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"/></svg>
</div>
</div>
<div class="meal-items" id="groupLunch">
<div class="meal-item"><div class="meal-item__emoji">🍚</div><div class="meal-item__info"><div class="meal-item__name">白米饭<span class="meal-item__src meal-item__src--auto">智记</span></div><div class="meal-item__meta">×1 · 约200g</div></div><div class="meal-item__kcal">232 kcal</div></div>
<div class="meal-item"><div class="meal-item__emoji">🐔</div><div class="meal-item__info"><div class="meal-item__name">宫保鸡丁<span class="meal-item__src meal-item__src--manual">自记</span></div><div class="meal-item__meta">×1 · 约150g</div></div><div class="meal-item__kcal">148 kcal</div></div>
<div class="meal-item"><div class="meal-item__emoji">🥬</div><div class="meal-item__info"><div class="meal-item__name">清炒时蔬<span class="meal-item__src meal-item__src--manual">自记</span></div><div class="meal-item__meta">×1 · 约200g</div></div><div class="meal-item__kcal">100 kcal</div></div>
</div>
</div>
<!-- 午餐 -->
<div class="diet-sub" id="dietSubLunch">
<div class="diet-sub__header" onclick="event.stopPropagation();toggleDietSub('lunch', this)">
<div class="meal-card__icon meal-card__icon--lunch" style="width:22px;height:22px;font-size:11px;"></div>
<span class="diet-sub__name">午餐</span>
<span class="diet-sub__kcal" id="kcalLunch">480</span>
<div class="meal-card__expand">
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"/></svg>
</div>
</div>
<div class="meal-items" id="groupLunch">
<div class="meal-item"><div class="meal-item__emoji">🍚</div><div class="meal-item__info"><div class="meal-item__name">白米饭<span class="meal-item__src meal-item__src--auto">智记</span></div><div class="meal-item__meta">×1 · 约200g</div></div><div class="meal-item__kcal">232 kcal</div></div>
<div class="meal-item"><div class="meal-item__emoji">🐔</div><div class="meal-item__info"><div class="meal-item__name">宫保鸡丁<span class="meal-item__src meal-item__src--manual">自记</span></div><div class="meal-item__meta">×1 · 约150g</div></div><div class="meal-item__kcal">148 kcal</div></div>
<div class="meal-item"><div class="meal-item__emoji">🥬</div><div class="meal-item__info"><div class="meal-item__name">清炒时蔬<span class="meal-item__src meal-item__src--manual">自记</span></div><div class="meal-item__meta">×1 · 约200g</div></div><div class="meal-item__kcal">100 kcal</div></div>
</div>
</div>
<!-- 晚餐 -->
<div class="diet-sub" id="dietSubDinner">
<div class="diet-sub__header" onclick="toggleDietSub('dinner', this)">
<div class="meal-card__icon meal-card__icon--dinner" style="width:22px;height:22px;font-size:11px;">🌙</div>
<span class="diet-sub__name">晚餐</span>
<span class="diet-sub__kcal" id="kcalDinner">220</span>
<div class="meal-card__expand">
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"/></svg>
</div>
</div>
<div class="meal-items" id="groupDinner">
<div class="meal-item"><div class="meal-item__emoji">🥗</div><div class="meal-item__info"><div class="meal-item__name">鸡胸肉沙拉<span class="meal-item__src meal-item__src--auto">智记</span></div><div class="meal-item__meta">×1 · 约250g</div></div><div class="meal-item__kcal">180 kcal</div></div>
<div class="meal-item"><div class="meal-item__emoji">🍠</div><div class="meal-item__info"><div class="meal-item__name">蒸红薯<span class="meal-item__src meal-item__src--auto">智记</span></div><div class="meal-item__meta">×1 · 约100g</div></div><div class="meal-item__kcal">40 kcal</div></div>
</div>
</div>
<!-- 晚餐 -->
<div class="diet-sub" id="dietSubDinner">
<div class="diet-sub__header" onclick="event.stopPropagation();toggleDietSub('dinner', this)">
<div class="meal-card__icon meal-card__icon--dinner" style="width:22px;height:22px;font-size:11px;">🌙</div>
<span class="diet-sub__name">晚餐</span>
<span class="diet-sub__kcal" id="kcalDinner">220</span>
<div class="meal-card__expand">
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"/></svg>
</div>
</div>
<div class="meal-items" id="groupDinner">
<div class="meal-item"><div class="meal-item__emoji">🥗</div><div class="meal-item__info"><div class="meal-item__name">鸡胸肉沙拉<span class="meal-item__src meal-item__src--auto">智记</span></div><div class="meal-item__meta">×1 · 约250g</div></div><div class="meal-item__kcal">180 kcal</div></div>
<div class="meal-item"><div class="meal-item__emoji">🍠</div><div class="meal-item__info"><div class="meal-item__name">蒸红薯<span class="meal-item__src meal-item__src--auto">智记</span></div><div class="meal-item__meta">×1 · 约100g</div></div><div class="meal-item__kcal">40 kcal</div></div>
</div>
</div>
<!-- 加餐 -->
<div class="diet-sub" id="dietSubSnack">
<div class="diet-sub__header" onclick="toggleDietSub('snack', this)">
<div class="meal-card__icon meal-card__icon--snack" style="width:22px;height:22px;font-size:11px;">🍎</div>
<span class="diet-sub__name">加餐</span>
<span class="diet-sub__kcal" id="kcalSnack">66</span>
<div class="meal-card__expand">
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"/></svg>
</div>
</div>
<div class="meal-items" id="groupSnack">
<div class="meal-item"><div class="meal-item__emoji">🍎</div><div class="meal-item__info"><div class="meal-item__name">苹果<span class="meal-item__src meal-item__src--manual">自记</span></div><div class="meal-item__meta">×1 · 约200g</div></div><div class="meal-item__kcal">66 kcal</div></div>
</div>
</div>
<!-- 加餐 -->
<div class="diet-sub" id="dietSubSnack">
<div class="diet-sub__header" onclick="event.stopPropagation();toggleDietSub('snack', this)">
<div class="meal-card__icon meal-card__icon--snack" style="width:22px;height:22px;font-size:11px;">🍎</div>
<span class="diet-sub__name">加餐</span>
<span class="diet-sub__kcal" id="kcalSnack">66</span>
<div class="meal-card__expand">
<svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"><polyline points="6 9 12 15 18 9"/></svg>
</div>
</div>
<div class="meal-items" id="groupSnack">
<div class="meal-item"><div class="meal-item__emoji">🍎</div><div class="meal-item__info"><div class="meal-item__name">苹果<span class="meal-item__src meal-item__src--manual">自记</span></div><div class="meal-item__meta">×1 · 约200g</div></div><div class="meal-item__kcal">66 kcal</div></div>
</div>
</div>
<!-- 暂无饮食记录 -->
<div class="diet-sub__empty" id="dietEmpty" style="display:none;">暂无饮食记录</div>
</div>
<!-- 暂无饮食记录 -->
<div class="diet-sub__empty" id="dietEmpty" style="display:none;">暂无饮食记录</div>
</div>
</div>
<!-- ====== 运动卡片 ====== -->
<div class="meal-card" id="cardExercise">
@@ -730,8 +737,14 @@ function renderMeals(dateStr) {
document.getElementById('dietEmpty').style.display = '';
}
// 更新饮食总热量
document.getElementById('kcalDiet').textContent = totalKcal > 0 ? totalKcal : '--';
// 更新饮食总热量,有数据时自动展开饮食卡片
document.getElementById('kcalDiet').textContent = totalKcal > 0 ? totalKcal : '--';
var groupDiet = document.getElementById('groupDiet');
var dietExpand = document.querySelector('#cardDiet .meal-card__expand');
if (hasAnyDiet) {
groupDiet.style.display = '';
dietExpand.classList.remove('open');
}
// 运动卡片独立处理
var exCard = document.getElementById('cardExercise');
@@ -760,7 +773,18 @@ function renderMeals(dateStr) {
}
}
function toggleDietSub(type, headerEl) {
function toggleDietCard(headerEl) {
var items = document.getElementById('groupDiet');
var expand = headerEl.querySelector('.meal-card__expand');
if (items.style.display === 'none') {
items.style.display = '';
expand.classList.remove('open');
} else {
items.style.display = 'none';
expand.classList.add('open');
}
}
function toggleDietSub(type, headerEl) {
var items = document.getElementById('group' + type.charAt(0).toUpperCase() + type.slice(1));
var expand = headerEl.querySelector('.meal-card__expand');
if (items.style.display === 'none') {
File diff suppressed because it is too large Load Diff