import type { PageParam, PageResult } from '@/api'; import request from '@/utils/request'; import type { ApiResult } from '@/api'; import { MODULES_API_URL } from '@/config/setting'; /** 主题团课资源 */ export interface ThematicCourse { id?: number; title?: string; type?: string; sourceSite?: string; sourceUrl?: string; sourceKey?: string; cover?: string; summary?: string; content?: string; fileId?: number; fileUrl?: string; tags?: string; heat?: number; publishTime?: string; status?: number; lastSyncTime?: string; createTime?: string; } export interface ThematicCourseParam extends PageParam { type?: string; tags?: string; status?: number; } export const THEMATIC_TYPE_OPTIONS = [ { label: '课件', value: 'courseware' }, { label: '讲稿', value: 'script' }, { label: '视频', value: 'video' }, { label: '案例', value: 'case' }, { label: '活动方案', value: 'activity' } ]; export async function pageThematicCourses(params: ThematicCourseParam) { const res = await request.get>>( MODULES_API_URL + '/gxmu/thematic-course/page', { params } ); if (res.data.code === 0) { return res.data.data; } return Promise.reject(new Error(res.data.message)); } export async function getThematicCourse(id: number) { const res = await request.get>( MODULES_API_URL + '/gxmu/thematic-course/' + id ); if (res.data.code === 0 && res.data.data) { return res.data.data; } return Promise.reject(new Error(res.data.message)); } export async function addThematicCourse(data: ThematicCourse) { const res = await request.post>( MODULES_API_URL + '/gxmu/thematic-course', data ); if (res.data.code === 0) { return res.data.message; } return Promise.reject(new Error(res.data.message)); } export async function updateThematicCourse(data: ThematicCourse) { const res = await request.put>( MODULES_API_URL + '/gxmu/thematic-course', data ); if (res.data.code === 0) { return res.data.message; } return Promise.reject(new Error(res.data.message)); } export async function removeThematicCourse(id: number) { const res = await request.delete>( MODULES_API_URL + '/gxmu/thematic-course/' + id ); if (res.data.code === 0) { return res.data.message; } return Promise.reject(new Error(res.data.message)); } export async function syncThematicCourses() { const res = await request.post>( MODULES_API_URL + '/gxmu/thematic-course/sync' ); if (res.data.code === 0) { return res.data.message; } return Promise.reject(new Error(res.data.message)); }