feat: 添加最新预约加载骨架屏状态

This commit is contained in:
ws
2026-04-24 18:00:24 +08:00
parent c46ffcf567
commit bc665a5d82
4 changed files with 40 additions and 3 deletions
+5 -1
View File
@@ -6,7 +6,8 @@ Page({
data: {
isLoggedIn: false,
loginFailed: false,
latestRecord: null
latestRecord: null,
recordLoading: false
},
onLoad() {
@@ -53,6 +54,7 @@ Page({
},
async loadLatestRecord() {
this.setData({ recordLoading: true })
try {
const openid = app.globalData.userInfo.openid
const record = await appointmentDB.getLatest(openid)
@@ -64,6 +66,8 @@ Page({
} catch (err) {
console.error('加载最新预约失败', err)
this.setData({ latestRecord: null })
} finally {
this.setData({ recordLoading: false })
}
},
+13 -1
View File
@@ -43,7 +43,19 @@
</view>
<!-- 最新预约摘要 -->
<view class="latest-card" wx:if="{{latestRecord}}">
<view class="latest-card" wx:if="{{recordLoading}}">
<view class="latest-header">
<text class="latest-title">最新预约</text>
</view>
<view class="latest-body">
<view class="skeleton-row"><view class="skeleton-bar" style="width:60%"></view></view>
<view class="skeleton-row"><view class="skeleton-bar" style="width:80%"></view></view>
<view class="skeleton-row"><view class="skeleton-bar" style="width:50%"></view></view>
<view class="skeleton-row"><view class="skeleton-bar" style="width:40%"></view></view>
</view>
</view>
<view class="latest-card" wx:elif="{{latestRecord}}">
<view class="latest-header">
<view class="latest-header-left">
<text class="latest-title">最新预约</text>
+21
View File
@@ -285,3 +285,24 @@ page {
color: #b8c9db;
letter-spacing: 4rpx;
}
/* 骨架屏 */
.skeleton-row {
display: flex;
justify-content: flex-start;
align-items: center;
padding: 8rpx 0;
}
.skeleton-bar {
height: 24rpx;
border-radius: 8rpx;
background: linear-gradient(90deg, #e8eef5 25%, #dbeafe 50%, #e8eef5 75%);
background-size: 200% 100%;
animation: skeleton-pulse 1.5s ease-in-out infinite;
}
@keyframes skeleton-pulse {
0% { background-position: 200% 0; }
100% { background-position: -200% 0; }
}