diff --git a/pwuniapp/common/api.js b/pwuniapp/common/api.js
index b35fd7e..588a020 100644
--- a/pwuniapp/common/api.js
+++ b/pwuniapp/common/api.js
@@ -51,16 +51,36 @@ export function formatActivityData(raw) {
/**
* 获取组局活动列表 (真实请求 MySQL,异常时返回空列表)
*/
-export async function getActivities() {
+export async function getActivities(options = {}) {
+ const paged = Number(options.page) > 0;
try {
- const list = await http.get('/activities');
- if (Array.isArray(list) && list.length > 0) {
- return list.map(formatActivityData);
+ const qs = [];
+ if (paged) {
+ qs.push(`page=${Math.floor(Number(options.page))}`);
+ qs.push(`pageSize=${Math.floor(Number(options.pageSize) || 20)}`);
+ if (options.keyword) qs.push(`keyword=${encodeURIComponent(String(options.keyword).trim())}`);
+ if (options.payType) qs.push(`payType=${encodeURIComponent(options.payType)}`);
+ if (Number(options.creatorId) > 0) qs.push(`creatorId=${Math.floor(Number(options.creatorId))}`);
+ if (options.category) qs.push(`category=${encodeURIComponent(options.category)}`);
+ if (options.categoryName) qs.push(`categoryName=${encodeURIComponent(options.categoryName)}`);
+ }
+ const res = await http.get(`/activities${qs.length ? `?${qs.join('&')}` : ''}`);
+ if (Array.isArray(res)) {
+ return res.map(formatActivityData);
+ }
+ if (res && Array.isArray(res.list)) {
+ return {
+ list: res.list.map(formatActivityData),
+ total: Number(res.total || 0),
+ page: Number(res.page || 1),
+ pageSize: Number(res.pageSize || 20),
+ hasMore: Boolean(res.hasMore)
+ };
}
} catch (err) {
console.warn('[API] 获取后端活动列表异常:', err.message);
}
- return [];
+ return paged ? { list: [], total: 0, page: 1, pageSize: 20, hasMore: false } : [];
}
/**
@@ -302,16 +322,33 @@ export function formatOrderData(raw) {
/**
* 获取订单列表 (真实读取 MySQL)
*/
-export async function getOrders() {
+export async function getOrders(options = {}) {
+ const paged = Number(options.page) > 0;
try {
- const list = await http.get(`/orders?userId=${normalizeUserId()}`);
- if (Array.isArray(list) && list.length > 0) {
- return list.map(formatOrderData);
+ const qs = [];
+ if (options.status) qs.push(`status=${encodeURIComponent(options.status)}`);
+ if (paged) {
+ qs.push(`page=${Math.floor(Number(options.page))}`);
+ qs.push(`pageSize=${Math.floor(Number(options.pageSize) || 20)}`);
+ }
+ const suffix = qs.length ? `&${qs.join('&')}` : '';
+ const res = await http.get(`/orders?userId=${normalizeUserId()}${suffix}`);
+ if (Array.isArray(res)) {
+ return res.map(formatOrderData);
+ }
+ if (res && Array.isArray(res.list)) {
+ return {
+ list: res.list.map(formatOrderData),
+ total: Number(res.total || 0),
+ page: Number(res.page || 1),
+ pageSize: Number(res.pageSize || 20),
+ hasMore: Boolean(res.hasMore)
+ };
}
} catch (err) {
console.warn('[API] 获取订单列表异常:', err.message);
}
- return [];
+ return paged ? { list: [], total: 0, page: 1, pageSize: 20, hasMore: false } : [];
}
/**
@@ -1368,10 +1405,17 @@ export async function getSubscribeTemplates() {
/**
* 获取站内消息通知列表与未读数
*/
-export async function getNotifications(userId, limit = 50) {
+export async function getNotifications(userId, limit = 50, extra = {}) {
const uid = normalizeUserId(userId);
try {
- const res = await http.get(`/notifications?userId=${uid}&limit=${Number(limit) || 50}`);
+ const qs = [`userId=${uid}`];
+ if (Number(extra.page) > 0) {
+ qs.push(`page=${Math.floor(Number(extra.page))}`);
+ qs.push(`pageSize=${Math.floor(Number(extra.pageSize) || 20)}`);
+ } else {
+ qs.push(`limit=${Number(limit) || 50}`);
+ }
+ const res = await http.get(`/notifications?${qs.join('&')}`);
return res || { list: [], unread: 0 };
} catch (err) {
throw err;
diff --git a/pwuniapp/pages/activity/list.vue b/pwuniapp/pages/activity/list.vue
index 03febc8..4b6d3cf 100644
--- a/pwuniapp/pages/activity/list.vue
+++ b/pwuniapp/pages/activity/list.vue
@@ -163,6 +163,13 @@
清空搜索条件
+
+
+ 正在加载更多…
+
+
+ 没有更多了
+
@@ -172,8 +179,8 @@