From c5d6247f49a9e8a00a2a192ec53eb4c6877387d0 Mon Sep 17 00:00:00 2001 From: zdl <3489966805@qq.com> Date: Thu, 6 Nov 2025 01:17:06 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20MSW=20=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E5=92=8C=E8=B0=83=E8=AF=95=E4=BB=A3=E7=A0=81=E6=B8=85?= =?UTF-8?q?=E7=90=86...?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/SubscriptionBadge.js | 14 -------------- src/mocks/browser.js | 12 ++++++------ src/mocks/data/events.js | 5 ++++- src/mocks/handlers/event.js | 19 +++++++++++++++++-- 4 files changed, 27 insertions(+), 23 deletions(-) diff --git a/src/components/SubscriptionBadge.js b/src/components/SubscriptionBadge.js index 243a81e9..34ed24c1 100644 --- a/src/components/SubscriptionBadge.js +++ b/src/components/SubscriptionBadge.js @@ -19,20 +19,6 @@ import { logger } from '../utils/logger'; * @param {'sm' | 'md'} props.size - 标签尺寸 */ const SubscriptionBadge = ({ tier = 'pro', size = 'sm' }) => { - // 🔍 调试:SubscriptionBadge 被渲染(强制输出) - console.error('🔴 [DEBUG] SubscriptionBadge 组件被渲染 - 这不应该出现(max 会员)', { - tier, - size, - 调用位置: new Error().stack - }); - - // 🔍 调试:SubscriptionBadge 被渲染(logger) - logger.debug('SubscriptionBadge', '组件被渲染', { - tier, - size, - 调用栈: new Error().stack - }); - // PRO 和 MAX 配置 const config = { pro: { diff --git a/src/mocks/browser.js b/src/mocks/browser.js index a09ecb1c..0c1b88cc 100644 --- a/src/mocks/browser.js +++ b/src/mocks/browser.js @@ -31,11 +31,11 @@ export async function startMockServiceWorker() { try { await worker.start({ - // 🎯 严格模式(关键配置) + // 🎯 警告模式(关键配置) // 'bypass': 未定义 Mock 的请求自动转发到真实后端 - // 'warn': 未定义的请求会显示警告(调试用) - // 'error': 未定义的请求会抛出错误(严格模式)✅ 当前使用 穿透模式 bypass - onUnhandledRequest: 'error', + // 'warn': 未定义的请求会显示警告(调试用)✅ 当前使用(允许 passthrough) + // 'error': 未定义的请求会抛出错误(严格模式,不允许 passthrough) + onUnhandledRequest: 'warn', // 自定义 Service Worker URL(如果需要) serviceWorker: { @@ -48,11 +48,11 @@ export async function startMockServiceWorker() { isStarted = true; console.log( - '%c[MSW] Mock Service Worker 已启动 🎭 (严格模式)', + '%c[MSW] Mock Service Worker 已启动 🎭 (警告模式)', 'color: #4CAF50; font-weight: bold; font-size: 14px;' ); console.log( - '%c严格模式:已定义 Mock → 返回假数据 | 未定义 Mock → 控制台报错 ❌', + '%c警告模式:已定义 Mock → 返回假数据 | 未定义 Mock → 显示警告 ⚠️ | 允许 passthrough', 'color: #FF9800; font-weight: bold; font-size: 12px;' ); console.log( diff --git a/src/mocks/data/events.js b/src/mocks/data/events.js index 1b3fa40a..87ae97a7 100644 --- a/src/mocks/data/events.js +++ b/src/mocks/data/events.js @@ -928,13 +928,16 @@ export function generateMockEvents(params = {}) { const end = start + per_page; const paginatedEvents = filteredEvents.slice(start, end); + const totalPages = Math.ceil(filteredEvents.length / per_page); return { events: paginatedEvents, pagination: { page: page, per_page: per_page, total: filteredEvents.length, - total_pages: Math.ceil(filteredEvents.length / per_page), + pages: totalPages, // ← 对齐后端字段名 (was: total_pages) + has_prev: page > 1, // ← 对齐后端:是否有上一页 + has_next: page < totalPages // ← 对齐后端:是否有下一页 }, }; } diff --git a/src/mocks/handlers/event.js b/src/mocks/handlers/event.js index 75639ef6..59c93dce 100644 --- a/src/mocks/handlers/event.js +++ b/src/mocks/handlers/event.js @@ -13,7 +13,7 @@ export const eventHandlers = [ // ==================== 事件列表相关 ==================== // 获取事件列表 - http.get('/api/events/', async ({ request }) => { + http.get('/api/events', async ({ request }) => { await delay(500); const url = new URL(request.url); @@ -41,11 +41,26 @@ export const eventHandlers = [ }); } catch (error) { console.error('[Mock] 获取事件列表失败:', error); + console.error('[Mock] Error details:', { + message: error.message, + stack: error.stack, + params: params + }); return HttpResponse.json( { success: false, error: '获取事件列表失败', - data: { events: [], pagination: {} } + data: { + events: [], + pagination: { + page: 1, + per_page: 10, + total: 0, + pages: 0, // ← 对齐后端字段名 + has_prev: false, // ← 对齐后端 + has_next: false // ← 对齐后端 + } + } }, { status: 500 } );