diff --git a/pages/apply/apply.wxml b/pages/apply/apply.wxml
index 9a0dea0..8160529 100644
--- a/pages/apply/apply.wxml
+++ b/pages/apply/apply.wxml
@@ -1,8 +1,5 @@
-
-
-
登录后才能提交报名信息
diff --git a/pages/detail/detail.js b/pages/detail/detail.js
index 95ff456..693d455 100644
--- a/pages/detail/detail.js
+++ b/pages/detail/detail.js
@@ -362,7 +362,26 @@ Page({
},
onLoad(options) {
- const id = Number(options.id);
+ console.log('Detail onLoad options:', options);
+
+ let rawId = options.id;
+
+ // 处理扫描普通二维码进入:options.q 为 URL 编码后的链接
+ // 格式:https://jitsi-web.yuedongsports.com/mini-app/event?id=xxx
+ if (!rawId && options.q) {
+ try {
+ const decoded = decodeURIComponent(options.q);
+ const match = decoded.match(/[?&]id=([^&]+)/);
+ console.log('Detail onLoad options:', decoded);
+ console.log('Detail onLoad options:', match);
+
+ if (match) rawId = match[1];
+ } catch (e) {
+ console.warn('Detail: 解析 options.q 失败', e);
+ }
+ }
+
+ const id = Number(rawId);
this.setData({ id });
if (!id) return;
this.fetchDetail(id);
@@ -372,7 +391,7 @@ Page({
request({
path: API.eventDetail(id),
method: 'GET',
- needAuth: false
+ needAuth: true
})
.then((res) => {
const detail = res || {};
diff --git a/pages/home/home.js b/pages/home/home.js
index 8a0325f..4079948 100644
--- a/pages/home/home.js
+++ b/pages/home/home.js
@@ -58,6 +58,7 @@ Page({
banners: [],
rows: [],
loading: false,
+ isFirstLoad: false,
loadingText: '加载中...',
pageNo: 1,
@@ -278,7 +279,7 @@ Page({
});
}
- this.setData({ loading: true });
+ this.setData({ loading: true, isFirstLoad: !!reset });
const pageNo = reset ? 1 : this.data.pageNo;
const pageSize = this.data.pageSize;
const status = this.data.status;
@@ -336,12 +337,14 @@ Page({
rows: nextRows,
hasMore,
loading: false,
+ isFirstLoad: false,
loadingText: hasMore ? '加载中...' : '没有更多了'
});
})
.catch((err) => {
this.setData({
loading: false,
+ isFirstLoad: false,
hasMore: false,
rows: reset ? [] : this.data.rows,
loadingText: err && err.message ? err.message : '加载失败'
@@ -365,7 +368,7 @@ Page({
});
}
- this.setData({ loading: true });
+ this.setData({ loading: true, isFirstLoad: !!reset });
const pageNo = reset ? 1 : this.data.pageNo;
const pageSize = this.data.pageSize;
@@ -419,12 +422,14 @@ Page({
rows: nextRows,
hasMore,
loading: false,
+ isFirstLoad: false,
loadingText: hasMore ? '加载中...' : '没有更多了'
});
})
.catch(() => {
this.setData({
loading: false,
+ isFirstLoad: false,
hasMore: false,
rows: reset ? [] : this.data.rows,
loadingText: '加载失败'
diff --git a/pages/home/home.wxml b/pages/home/home.wxml
index bce4c56..4d8f69f 100644
--- a/pages/home/home.wxml
+++ b/pages/home/home.wxml
@@ -47,6 +47,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
暂无数据
@@ -98,7 +111,16 @@
- {{loadingText}}
+
+
+
+
+
+
+
+
+
+ 没有更多了
\ No newline at end of file
diff --git a/pages/home/home.wxss b/pages/home/home.wxss
index fbeef5f..77a79e8 100644
--- a/pages/home/home.wxss
+++ b/pages/home/home.wxss
@@ -368,8 +368,74 @@ page {
}
.loading {
- text-align: center;
+ display: flex;
+ justify-content: center;
+ align-items: center;
color: #969799;
font-size: 26rpx;
padding: 32rpx 0 48rpx;
}
+
+/* ===== 三点加载动画 ===== */
+.loading-dots {
+ display: flex;
+ align-items: center;
+ gap: 12rpx;
+}
+
+.loading-dot {
+ width: 14rpx;
+ height: 14rpx;
+ border-radius: 50%;
+ background: #1a56db;
+ animation: dot-bounce 2.8s infinite ease-in-out;
+}
+
+.loading-dot:nth-child(1) { animation-delay: 0s; }
+.loading-dot:nth-child(2) { animation-delay: 0.2s; }
+.loading-dot:nth-child(3) { animation-delay: 0.4s; }
+
+@keyframes dot-bounce {
+ 0%, 80%, 100% { transform: scale(0.6); opacity: 0.4; }
+ 40% { transform: scale(1); opacity: 1; }
+}
+
+/* ===== 首屏骨架屏 ===== */
+.skeleton-card {
+ background: #fff;
+ border-radius: 20rpx;
+ overflow: hidden;
+ margin-bottom: 24rpx;
+}
+
+.skeleton-cover {
+ width: 100%;
+ height: 300rpx;
+ background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
+ background-size: 200% 100%;
+ animation: skeleton-shimmer 1.4s infinite;
+}
+
+.skeleton-body {
+ padding: 24rpx 28rpx 28rpx;
+ display: flex;
+ flex-direction: column;
+ gap: 16rpx;
+}
+
+.skeleton-line {
+ height: 24rpx;
+ border-radius: 8rpx;
+ background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
+ background-size: 200% 100%;
+ animation: skeleton-shimmer 1.4s infinite;
+}
+
+.skeleton-line--long { width: 80%; }
+.skeleton-line--mid { width: 60%; }
+.skeleton-line--short { width: 40%; }
+
+@keyframes skeleton-shimmer {
+ 0% { background-position: 200% 0; }
+ 100% { background-position: -200% 0; }
+}
diff --git a/project.private.config.json b/project.private.config.json
index 4701181..d2b5502 100644
--- a/project.private.config.json
+++ b/project.private.config.json
@@ -1,5 +1,5 @@
{
- "libVersion": "3.15.0",
+ "libVersion": "3.15.1",
"projectname": "YD_Event.miniApp",
"setting": {
"urlCheck": false,
diff --git a/subpackages/mine/cert/cert.js b/subpackages/mine/cert/cert.js
index 6715a10..460f270 100644
--- a/subpackages/mine/cert/cert.js
+++ b/subpackages/mine/cert/cert.js
@@ -76,8 +76,8 @@ Page({
return this.loadRecords();
},
- /** 触底加载更多 */
- onLoadMore() {
+ /** 上拉加载更多 */
+ onReachBottom() {
if (this.data.loading || this.data.noMore) return;
this.loadRecords();
},
diff --git a/subpackages/mine/cert/cert.wxml b/subpackages/mine/cert/cert.wxml
index 091265d..70b8a4f 100644
--- a/subpackages/mine/cert/cert.wxml
+++ b/subpackages/mine/cert/cert.wxml
@@ -23,7 +23,7 @@
-
+
@@ -63,6 +63,6 @@
没有更多了
-
+
diff --git a/subpackages/mine/cert/cert.wxss b/subpackages/mine/cert/cert.wxss
index a132d0b..22f168c 100644
--- a/subpackages/mine/cert/cert.wxss
+++ b/subpackages/mine/cert/cert.wxss
@@ -120,8 +120,6 @@
/* ===== 列表容器 ===== */
.record-list {
- flex: 1;
- height: 0;
background: #ffffff;
border-radius: 16rpx;
margin: 0 20rpx;
diff --git a/subpackages/mine/order/order.js b/subpackages/mine/order/order.js
index 1b250ec..930c84c 100644
--- a/subpackages/mine/order/order.js
+++ b/subpackages/mine/order/order.js
@@ -80,7 +80,7 @@ Page({
wx.navigateTo({ url: `/subpackages/mine/order-detail/order-detail?id=${id}` });
},
- onLoadMore() {
+ onReachBottom() {
this.loadOrders(false);
}
});
diff --git a/subpackages/mine/order/order.wxml b/subpackages/mine/order/order.wxml
index 7d61ab7..49cc3ab 100644
--- a/subpackages/mine/order/order.wxml
+++ b/subpackages/mine/order/order.wxml
@@ -7,12 +7,7 @@
left-arrow
> -->
-
+
+
暂无订单
@@ -47,5 +43,5 @@
-
+
diff --git a/subpackages/mine/order/order.wxss b/subpackages/mine/order/order.wxss
index 13e1f73..2ac1c4a 100644
--- a/subpackages/mine/order/order.wxss
+++ b/subpackages/mine/order/order.wxss
@@ -5,7 +5,6 @@
}
.list {
- height: calc(100vh - 88rpx);
padding: 24rpx 32rpx 40rpx;
box-sizing: border-box;
}
@@ -90,9 +89,17 @@
display: flex;
flex-direction: column;
align-items: center;
- padding-top: 200rpx;
+ justify-content: center;
+ padding-top: 240rpx;
}
+.empty-icon {
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ width: 60%;
+ /* margin-bottom: 32rpx; */
+}
.empty-text {
font-size: 28rpx;
color: #999;
diff --git a/subpackages/mine/points/points.js b/subpackages/mine/points/points.js
index b3787f1..8413a80 100644
--- a/subpackages/mine/points/points.js
+++ b/subpackages/mine/points/points.js
@@ -57,8 +57,8 @@ Page({
return this.loadRecords(true);
},
- /** 加载更多 */
- onLoadMore() {
+ /** 上拉加载更多 */
+ onReachBottom() {
if (this.data.loading || this.data.noMore) return;
this.loadRecords(false);
},
diff --git a/subpackages/mine/points/points.wxml b/subpackages/mine/points/points.wxml
index de766d8..f080392 100644
--- a/subpackages/mine/points/points.wxml
+++ b/subpackages/mine/points/points.wxml
@@ -21,7 +21,7 @@
-
+