feat: 记录页首次空状态显示引导卡

之前: totalSessions=0 时,用户看到 stats 显示 0次/0秒 + 空日历 + 空历史,
一整页'什么都没有'。
现在: 完全没记录时只显示一张大引导卡(插画+CTA'开始训练'),
有数据后才显示 3 个统计/日历/历史卡片。
This commit is contained in:
2026-07-08 14:11:56 +08:00
parent 486390917c
commit 9bd4b8c2f4
2 changed files with 70 additions and 4 deletions
+19 -4
View File
@@ -8,8 +8,23 @@
<!-- 真实内容 (loading 时隐藏) --> <!-- 真实内容 (loading 时隐藏) -->
<view hidden="{{loading}}"> <view hidden="{{loading}}">
<!-- 统计卡片 --> <!-- 首次空状态: 完全没训练记录时显示引导卡 -->
<ui-card variant="in"> <view class="first-train-prompt" wx:if="{{totalSessions === 0}}">
<view class="empty-illus first-train-illus">
<view class="empty-illus-body"></view>
<view class="empty-illus-arm empty-illus-arm--l"></view>
<view class="empty-illus-arm empty-illus-arm--r"></view>
<view class="empty-illus-bubble">开始</view>
</view>
<text class="first-train-title">开始你的第一次训练</text>
<text class="first-train-sub">每一次坚持都值得被记录</text>
<view class="first-train-cta" bindtap="onStartTrain">
<text>开始训练</text>
</view>
</view>
<!-- 统计卡片 (有数据时才显示) -->
<ui-card variant="in" hidden="{{totalSessions === 0}}">
<view class="stats"> <view class="stats">
<view class="stat-item"> <view class="stat-item">
<image class="stat-icon" src="{{icons.rankFill}}" mode="aspectFit"></image> <image class="stat-icon" src="{{icons.rankFill}}" mode="aspectFit"></image>
@@ -30,7 +45,7 @@
</ui-card> </ui-card>
<!-- 日历热力图 --> <!-- 日历热力图 -->
<ui-card variant="in"> <ui-card variant="in" hidden="{{totalSessions === 0}}">
<view class="calendar-section"> <view class="calendar-section">
<view class="month-picker"> <view class="month-picker">
<view class="month-arrow" bindtap="onPrevMonth"> <view class="month-arrow" bindtap="onPrevMonth">
@@ -55,7 +70,7 @@
</ui-card> </ui-card>
<!-- 历史记录 --> <!-- 历史记录 -->
<ui-card variant="in"> <ui-card variant="in" hidden="{{totalSessions === 0}}">
<view class="history-section"> <view class="history-section">
<view class="history-header"> <view class="history-header">
<view class="history-title-wrap"> <view class="history-title-wrap">
+51
View File
@@ -346,3 +346,54 @@
font-size: 26rpx; font-size: 26rpx;
color: var(--text-secondary); color: var(--text-secondary);
} }
/* ---- 首次训练空状态引导 ---- */
.first-train-prompt {
display: flex;
flex-direction: column;
align-items: center;
padding: 60rpx 32rpx 80rpx;
background: var(--card-bg);
border-radius: 24rpx;
box-shadow: 0 2rpx 16rpx rgba(0, 0, 0, 0.06);
margin-bottom: 24rpx;
}
.first-train-illus {
width: 240rpx;
height: 240rpx;
margin-bottom: 32rpx;
}
.first-train-title {
font-size: 36rpx;
font-weight: 700;
color: var(--text);
margin-bottom: 12rpx;
}
.first-train-sub {
font-size: 26rpx;
color: var(--text-secondary);
margin-bottom: 36rpx;
}
.first-train-cta {
display: flex;
align-items: center;
justify-content: center;
height: 88rpx;
padding: 0 80rpx;
background: linear-gradient(135deg, var(--primary), var(--primary-light));
color: #FFFFFF;
font-size: 30rpx;
font-weight: 600;
border-radius: 44rpx;
box-shadow: 0 8rpx 20rpx rgba(var(--primary-rgb), 0.3);
transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.first-train-cta:active {
transform: scale(0.96);
box-shadow: 0 4rpx 10rpx rgba(var(--primary-rgb), 0.2);
}