diff --git a/pages/leaderboard/leaderboard.js b/pages/leaderboard/leaderboard.js
index d907617..a57252c 100644
--- a/pages/leaderboard/leaderboard.js
+++ b/pages/leaderboard/leaderboard.js
@@ -18,6 +18,7 @@ Page({
myEntry: null,
loading: false,
refreshing: false,
+ pullRefreshing: false,
empty: false,
icons: iconsMod.build()
},
@@ -48,7 +49,11 @@ Page({
},
onPullDownRefresh() {
- this.fetchRank(() => wx.stopPullDownRefresh(), true)
+ this.setData({ pullRefreshing: true })
+ this.fetchRank(() => {
+ this.setData({ pullRefreshing: false })
+ wx.stopPullDownRefresh()
+ }, true)
},
switchPeriod(e) {
diff --git a/pages/leaderboard/leaderboard.wxml b/pages/leaderboard/leaderboard.wxml
index 10c4a28..7c5de7f 100644
--- a/pages/leaderboard/leaderboard.wxml
+++ b/pages/leaderboard/leaderboard.wxml
@@ -12,6 +12,12 @@
+
+
+
+ 刷新中…
+
+
diff --git a/pages/leaderboard/leaderboard.wxss b/pages/leaderboard/leaderboard.wxss
index 49f08b7..80a1947 100644
--- a/pages/leaderboard/leaderboard.wxss
+++ b/pages/leaderboard/leaderboard.wxss
@@ -467,6 +467,39 @@
color: var(--text-secondary);
}
+/* 刷新中指示器:下拉刷新时顶部显示(后台静默刷新不显示,保持无感) */
+.refresh-indicator {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ gap: 10rpx;
+ padding: 14rpx 0;
+ animation: refreshFadeIn 0.2s ease;
+}
+
+.refresh-spinner {
+ width: 28rpx;
+ height: 28rpx;
+ border: 3rpx solid rgba(var(--primary-rgb), 0.2);
+ border-top-color: var(--primary);
+ border-radius: 50%;
+ animation: refreshSpin 0.8s linear infinite;
+}
+
+.refresh-text {
+ font-size: 24rpx;
+ color: var(--text-secondary);
+}
+
+@keyframes refreshSpin {
+ to { transform: rotate(360deg); }
+}
+
+@keyframes refreshFadeIn {
+ from { opacity: 0; }
+ to { opacity: 1; }
+}
+
/* Loading: 旋转加载图标 + 骨架屏容器 */
.leaderboard-skeleton {
padding: 40rpx 32rpx 0;