数据结构优化
This commit is contained in:
@@ -50,7 +50,7 @@ export interface Work {
|
||||
desc: string
|
||||
techStack: { category: string; items: string[] }[]
|
||||
gallery: string[]
|
||||
links: { live: string }
|
||||
links: { live?: string; github?: string; demo?: string }
|
||||
next: string
|
||||
}
|
||||
|
||||
@@ -405,7 +405,7 @@ export const fetchWorks = async (): Promise<Work[]> => {
|
||||
desc: work.desc || '',
|
||||
techStack: Array.isArray(work.techStack) ? work.techStack : [],
|
||||
gallery: Array.isArray(work.gallery) ? work.gallery : [],
|
||||
links: work.links || { live: '' },
|
||||
links: work.links || {},
|
||||
next: work.next || ''
|
||||
})) as Work[]
|
||||
} catch (error) {
|
||||
@@ -443,7 +443,7 @@ export const fetchWork = async (id: string): Promise<Work> => {
|
||||
desc: '',
|
||||
techStack: [],
|
||||
gallery: [],
|
||||
links: { live: '#' },
|
||||
links: {},
|
||||
next: ''
|
||||
}
|
||||
}
|
||||
@@ -1657,6 +1657,42 @@ export interface AttachmentCategory {
|
||||
}
|
||||
|
||||
// 附件管理API
|
||||
export const getAdminAttachments = async (params?: {
|
||||
page?: number
|
||||
pageSize?: number
|
||||
categoryId?: number
|
||||
fileType?: string
|
||||
keyword?: string
|
||||
}): Promise<{ list: Attachment[], total: number, page: number, size: number }> => {
|
||||
try {
|
||||
const queryParams = new URLSearchParams()
|
||||
if (params?.page) queryParams.append('page', params.page.toString())
|
||||
if (params?.pageSize) queryParams.append('pageSize', params.pageSize.toString())
|
||||
if (params?.categoryId) queryParams.append('categoryId', params.categoryId.toString())
|
||||
if (params?.fileType) queryParams.append('fileType', params.fileType)
|
||||
if (params?.keyword) queryParams.append('keyword', params.keyword)
|
||||
|
||||
const url = `${API_BASE}/admin/attachments${queryParams.toString() ? '?' + queryParams.toString() : ''}`
|
||||
const response = await fetch(url, {
|
||||
headers: getAuthHeaders()
|
||||
})
|
||||
if (!response.ok) {
|
||||
const errorData = await response.json()
|
||||
throw new Error(errorData.message || '获取附件列表失败')
|
||||
}
|
||||
const data = await response.json()
|
||||
return {
|
||||
list: data.result?.list || [],
|
||||
total: data.result?.total || 0,
|
||||
page: data.result?.page || 1,
|
||||
size: data.result?.size || 20
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Get admin attachments error:', error)
|
||||
throw error
|
||||
}
|
||||
}
|
||||
|
||||
export const updateAttachment = async (id: number, data: { categoryId?: number | null }): Promise<Attachment> => {
|
||||
try {
|
||||
const response = await fetch(`${API_BASE}/admin/attachments/${id}`, {
|
||||
|
||||
Reference in New Issue
Block a user