diff --git a/frontend/admin/src/pages/PostPage.vue b/frontend/admin/src/pages/PostPage.vue index 8e3ef78..223d4ba 100644 --- a/frontend/admin/src/pages/PostPage.vue +++ b/frontend/admin/src/pages/PostPage.vue @@ -43,9 +43,9 @@ const loading = ref(false); const posts = ref([]); // Pagination state -const page = ref(0); // 改为从0开始计数 -const limit = ref(10); -const total = ref(0); +const first = ref(0); // 当前页起始索引 +const rows = ref(10); // 每页显示数量 +const total = ref(0); // 总记录数 // Status mapping const statusMap = { @@ -120,18 +120,27 @@ const calculateDiscountPrice = (price, discount) => { const fetchPosts = async () => { loading.value = true; try { - const response = await postService.getPosts(page.value + 1, limit.value); // API调用时页码加1 + // Calculate current page (1-based) from first and rows + const currentPage = (first.value / rows.value) + 1; + console.log('Fetching page:', currentPage); // Debug log + + const response = await postService.getPosts({ + page: currentPage, + limit: rows.value + }); + posts.value = response.items.map(post => ({ ...post, status: statusMap[post.status] || '未知', mediaTypes: getMediaTypes(post.assets), - price: post.price / 100, // Convert cents to yuan + price: post.price / 100, publishedAt: formatDateTime(post.created_at), viewCount: post.views, likes: post.likes })); total.value = response.total; } catch (error) { + console.error('Fetch error:', error); // Debug log toast.add({ severity: 'error', summary: '错误', detail: '加载文章失败', life: 3000 }); } finally { loading.value = false; @@ -140,8 +149,9 @@ const fetchPosts = async () => { // Handle page change const onPage = (event) => { - page.value = event.page; // PrimeVue的页码从0开始 - limit.value = event.rows; + console.log('Page event:', event); // Debug log + first.value = event.first; + rows.value = event.rows; fetchPosts(); }; @@ -188,8 +198,8 @@ const formatMediaTypes = (mediaTypes) => { -