57 lines
1.4 KiB
TypeScript
57 lines
1.4 KiB
TypeScript
import request from '@/utils/request'
|
|
|
|
export interface Case {
|
|
id: number
|
|
title: string
|
|
description: string
|
|
beforeImages: string[]
|
|
afterImages: string[]
|
|
serviceType: string
|
|
price: number
|
|
materials: string
|
|
duration: number
|
|
status: string
|
|
views: number
|
|
likes: number
|
|
user: any
|
|
createdAt: string
|
|
updatedAt: string
|
|
}
|
|
|
|
export interface QueryParams {
|
|
serviceType?: string
|
|
status?: string
|
|
page?: number
|
|
limit?: number
|
|
}
|
|
|
|
// 获取案例列表
|
|
export const getCaseList = (params?: QueryParams) => {
|
|
return request.get<any, { code: number; message: string; data: { list: Case[]; total: number; page: number; pageSize: number } }>('/cases', { params })
|
|
}
|
|
|
|
// 获取案例详情
|
|
export const getCaseDetail = (id: number) => {
|
|
return request.get<any, { code: number; message: string; data: Case }>(`/cases/${id}`)
|
|
}
|
|
|
|
// 创建案例
|
|
export const createCase = (data: Partial<Case>) => {
|
|
return request.post<any, { code: number; message: string; data: Case }>('/cases', data)
|
|
}
|
|
|
|
// 更新案例
|
|
export const updateCase = (id: number, data: Partial<Case>) => {
|
|
return request.patch<any, { code: number; message: string; data: Case }>(`/cases/${id}`, data)
|
|
}
|
|
|
|
// 删除案例
|
|
export const deleteCase = (id: number) => {
|
|
return request.delete<any, { code: number; message: string }>(`/cases/${id}`)
|
|
}
|
|
|
|
// 点赞案例
|
|
export const likeCase = (id: number) => {
|
|
return request.post<any, { code: number; message: string }>(`/cases/${id}/like`)
|
|
}
|