74 lines
2.1 KiB
TypeScript
74 lines
2.1 KiB
TypeScript
// Author: fruit.com.cn
|
|
|
|
import request from '@/axios'
|
|
import type {
|
|
DramaCategory,
|
|
DramaItem,
|
|
DramaReviewAction,
|
|
DramaSaveData,
|
|
PageResult
|
|
} from './types'
|
|
|
|
export interface DramaPageParams {
|
|
pageIndex?: number
|
|
pageSize?: number
|
|
keyword?: string
|
|
status?: string
|
|
categoryId?: number
|
|
isHot?: boolean
|
|
dramaTypes?: Array<'ANIME' | 'LIVE'>
|
|
}
|
|
|
|
export const pageDramasApi = (params: DramaPageParams) => {
|
|
return request.get<PageResult<DramaItem>>({ url: '/admin/dramas/page', params })
|
|
}
|
|
|
|
export const getDramaApi = (id: number) => {
|
|
return request.get<DramaItem>({ url: `/admin/dramas/${id}` })
|
|
}
|
|
|
|
export const createDramaApi = (data: DramaSaveData) => {
|
|
return request.post<number>({ url: '/admin/dramas', data })
|
|
}
|
|
|
|
export const updateDramaApi = (id: number, data: DramaSaveData) => {
|
|
return request.put<void>({ url: `/admin/dramas/${id}`, data })
|
|
}
|
|
|
|
export const deleteDramaApi = (id: number) => {
|
|
return request.delete<void>({ url: `/admin/dramas/${id}` })
|
|
}
|
|
|
|
/** 审核与发布:submit / approve / reject / publish / offline */
|
|
export const changeDramaStatusApi = (id: number, action: DramaReviewAction, reason?: string) => {
|
|
return request.post<void>({ url: `/admin/dramas/${id}/${action}`, data: { reason } })
|
|
}
|
|
|
|
/** 下拉选项(短剧表单用),只返回 id/name */
|
|
export const listDramaCategoryOptionsApi = () => {
|
|
return request.get<DramaCategory[]>({ url: '/admin/dicts/drama-category' })
|
|
}
|
|
|
|
export interface DramaCategorySaveData {
|
|
name: string
|
|
sort?: number
|
|
status?: number
|
|
}
|
|
|
|
/** 类型管理列表,带短剧数量 */
|
|
export const listDramaCategoriesApi = () => {
|
|
return request.get<DramaCategory[]>({ url: '/admin/drama-categories' })
|
|
}
|
|
|
|
export const createDramaCategoryApi = (data: DramaCategorySaveData) => {
|
|
return request.post<number>({ url: '/admin/drama-categories', data })
|
|
}
|
|
|
|
export const updateDramaCategoryApi = (id: number, data: DramaCategorySaveData) => {
|
|
return request.put<void>({ url: `/admin/drama-categories/${id}`, data })
|
|
}
|
|
|
|
export const deleteDramaCategoryApi = (id: number) => {
|
|
return request.delete<void>({ url: `/admin/drama-categories/${id}` })
|
|
}
|