- 后端:theme 表增加 color 字段;主题创建/更新/课程响应返回 themeColor - 前端:主题管理页颜色选择器与列表;管理端课程列表与详情主题 Tag - 课程中心/课程包卡片展示主题 Tag,course-center 规范化接口字段 - 隐藏管理端课程配置列与筛选;课程详情关联主题使用 themeName/color Made-with: Cursor
62 lines
1.2 KiB
TypeScript
62 lines
1.2 KiB
TypeScript
import { http } from './index';
|
|
|
|
export interface Theme {
|
|
id: number;
|
|
name: string;
|
|
description?: string;
|
|
color?: string;
|
|
sortOrder: number;
|
|
status: string;
|
|
createdAt: string;
|
|
courses?: {
|
|
id: number;
|
|
name: string;
|
|
coverImagePath?: string;
|
|
}[];
|
|
}
|
|
|
|
export interface CreateThemeData {
|
|
name: string;
|
|
description?: string;
|
|
color?: string;
|
|
sortOrder?: number;
|
|
}
|
|
|
|
export interface UpdateThemeData {
|
|
name?: string;
|
|
description?: string;
|
|
color?: string;
|
|
sortOrder?: number;
|
|
status?: string;
|
|
}
|
|
|
|
// 获取主题列表
|
|
export function getThemeList() {
|
|
return http.get('/v1/admin/themes');
|
|
}
|
|
|
|
// 获取主题详情
|
|
export function getThemeDetail(id: number) {
|
|
return http.get(`/v1/admin/themes/${id}`);
|
|
}
|
|
|
|
// 创建主题
|
|
export function createTheme(data: CreateThemeData) {
|
|
return http.post('/v1/admin/themes', data);
|
|
}
|
|
|
|
// 更新主题
|
|
export function updateTheme(id: number, data: UpdateThemeData) {
|
|
return http.put(`/v1/admin/themes/${id}`, data);
|
|
}
|
|
|
|
// 删除主题
|
|
export function deleteTheme(id: number) {
|
|
return http.delete(`/v1/admin/themes/${id}`);
|
|
}
|
|
|
|
// 重新排序主题
|
|
export function reorderThemes(ids: number[]) {
|
|
return http.put('/v1/admin/themes/reorder', { ids });
|
|
}
|