数据结构优化

This commit is contained in:
李琦
2026-01-23 16:13:39 +08:00
parent 9d39b7c22b
commit 88ba9be318
5 changed files with 12 additions and 7 deletions

View File

@@ -73,7 +73,7 @@
<!-- Error state -->
<div v-else-if="error" class="text-center text-red-500 py-20">
<p class="mb-4">{{ error }}</p>
<button @click="fetchBlogPosts" class="px-4 py-2 bg-art-accent text-white rounded hover:bg-opacity-80 transition-colors">
<button @click="() => fetchBlogPosts(true)" class="px-4 py-2 bg-art-accent text-white rounded hover:bg-opacity-80 transition-colors">
重试
</button>
</div>

View File

@@ -150,8 +150,10 @@ const fetchHomeData = async () => {
latestWork.value = works[0]
}
if (posts && posts.length > 0) {
featuredPost.value = posts[0]
// fetchPosts 现在返回 PaginationResponse<Post>,需要取 .list
const postsList = 'list' in posts ? posts.list : []
if (postsList && postsList.length > 0) {
featuredPost.value = postsList[0]
}
} catch (err) {
console.error('Error fetching home data:', err)

View File

@@ -187,8 +187,9 @@ const handleCancel = () => {
const loadPosts = async () => {
try {
const posts = await fetchPosts()
allPosts.value = posts
const response = await fetchPosts()
// fetchPosts 现在返回 PaginationResponse<Post>,需要取 .list
allPosts.value = 'list' in response ? response.list : []
} catch (error) {
console.error('Failed to load posts:', error)
}

View File

@@ -183,7 +183,7 @@
<script setup lang="ts">
import { ref, onMounted, computed } from 'vue'
import { getAdminPosts, deletePost as deletePostApi, Post, togglePostStatus, PaginationResponse } from '../../services/api'
import { getAdminPosts, deletePost as deletePostApi, Post, togglePostStatus } from '../../services/api'
import { useToast } from '../../composables/useToast'
import PostRelationModal from '../../components/admin/PostRelationModal.vue'
import AccessLogModal from '../../components/admin/AccessLogModal.vue'

View File

@@ -117,7 +117,9 @@ const loadData = async () => {
stats.value = statsData
operationLogs.value = logsData.list
recentPosts.value = postsData.slice(0, 5)
// fetchPosts 现在返回 PaginationResponse<Post>,需要取 .list
const postsList = 'list' in postsData ? postsData.list : []
recentPosts.value = postsList.slice(0, 5)
} catch (error) {
console.error(error)