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) => {
-