diff --git a/src/api/admin/dramaClassification.ts b/src/api/admin/dramaClassification.ts index 15769a1..e66e789 100644 --- a/src/api/admin/dramaClassification.ts +++ b/src/api/admin/dramaClassification.ts @@ -4,11 +4,14 @@ import request from '@/axios' import type { PageResult } from './types' export interface DramaClassificationItem { - id: number + id: string name: string + code: string nameEn: string nameId: string locales?: Record + layoutType: 'GRID' | 'RANKING' + revision: string sort: number status: number dramaCount: number @@ -18,17 +21,20 @@ export interface DramaClassificationItem { export interface DramaClassificationSaveData { name: string locales: Record + code?: string + layoutType?: 'GRID' | 'RANKING' sort?: number status?: number } export interface ClassificationDramaItem { - id: number + id: string title: string cover: string status: string totalEpisodes: number sort: number + position?: number updatedAt: string } @@ -43,19 +49,19 @@ export const listClassificationsApi = () => { } export const createClassificationApi = (data: DramaClassificationSaveData) => { - return request.post({ url: '/admin/drama-classifications', data }) + return request.post({ url: '/admin/drama-classifications', data }) } -export const updateClassificationApi = (id: number, data: DramaClassificationSaveData) => { +export const updateClassificationApi = (id: string, data: DramaClassificationSaveData) => { return request.put({ url: `/admin/drama-classifications/${id}`, data }) } -export const deleteClassificationApi = (id: number) => { +export const deleteClassificationApi = (id: string) => { return request.delete({ url: `/admin/drama-classifications/${id}` }) } /** 分类下已关联的短剧 */ -export const listClassificationDramasApi = (id: number, params: ClassificationDramaPageParams) => { +export const listClassificationDramasApi = (id: string, params: ClassificationDramaPageParams) => { return request.get>({ url: `/admin/drama-classifications/${id}/dramas`, params @@ -64,7 +70,7 @@ export const listClassificationDramasApi = (id: number, params: ClassificationDr /** 尚未关联到该分类的短剧(添加弹窗用) */ export const listClassificationDramaCandidatesApi = ( - id: number, + id: string, params: ClassificationDramaPageParams ) => { return request.get>({ @@ -74,7 +80,7 @@ export const listClassificationDramaCandidatesApi = ( } /** 批量关联短剧,返回实际新增数量 */ -export const bindClassificationDramasApi = (id: number, dramaIds: number[]) => { +export const bindClassificationDramasApi = (id: string, dramaIds: string[]) => { return request.post({ url: `/admin/drama-classifications/${id}/dramas`, data: { dramaIds } @@ -82,8 +88,16 @@ export const bindClassificationDramasApi = (id: number, dramaIds: number[]) => { } /** 从分类移除短剧 */ -export const unbindClassificationDramaApi = (id: number, dramaId: number) => { +export const unbindClassificationDramaApi = (id: string, dramaId: string) => { return request.delete({ url: `/admin/drama-classifications/${id}/dramas/${dramaId}` }) } + +/** 原子保存推荐榜完整内容与顺序 */ +export const saveRankingItemsApi = (id: string, dramaIds: string[]) => { + return request.put({ + url: `/admin/drama-classifications/${id}/ranking-items`, + data: { dramaIds } + }) +} diff --git a/src/views/contentManagement/CategoryDramaView.vue b/src/views/contentManagement/CategoryDramaView.vue index 343c8af..ae5c65b 100644 --- a/src/views/contentManagement/CategoryDramaView.vue +++ b/src/views/contentManagement/CategoryDramaView.vue @@ -4,6 +4,7 @@