diff --git a/reading-platform-frontend/src/api/course.ts b/reading-platform-frontend/src/api/course.ts index 8da045b..8395e3a 100644 --- a/reading-platform-frontend/src/api/course.ts +++ b/reading-platform-frontend/src/api/course.ts @@ -157,9 +157,9 @@ export function getReviewList(params: CourseQueryParams): Promise<{ return api.getCoursePage1(toFindAllParams({ ...params, reviewOnly: true })).then(normalizePageResult) as any; } -// 获取课程包详情 -export function getCourse(id: number): Promise { - return api.getCourse1(id) as any; +// 获取课程包详情(id 支持 number | string,避免大整数精度丢失) +export function getCourse(id: number | string): Promise { + return api.getCourse1(id as number) as any; } // 创建课程包 @@ -168,13 +168,13 @@ export function createCourse(data: any): Promise { } // 更新课程包 -export function updateCourse(id: number, data: any): Promise { - return api.updateCourse(id, data) as any; +export function updateCourse(id: number | string, data: any): Promise { + return api.updateCourse(id as number, data) as any; } // 删除课程包 -export function deleteCourse(id: number): Promise { - return api.deleteCourse(id) as any; +export function deleteCourse(id: number | string): Promise { + return api.deleteCourse(id as number) as any; } // 验证课程完整性 (暂时返回 true,后端可能没有此接口) @@ -229,7 +229,7 @@ export function republishCourse(id: number): Promise { } // 获取课程包统计数据 (暂时返回空对象) -export function getCourseStats(id: number): Promise { +export function getCourseStats(id: number | string): Promise { return Promise.resolve({}); } diff --git a/reading-platform-frontend/src/views/admin/courses/CourseDetailView.vue b/reading-platform-frontend/src/views/admin/courses/CourseDetailView.vue index 7f23d1d..966dd4b 100644 --- a/reading-platform-frontend/src/views/admin/courses/CourseDetailView.vue +++ b/reading-platform-frontend/src/views/admin/courses/CourseDetailView.vue @@ -760,7 +760,7 @@ const viewStats = () => { const deleteCourse = async () => { try { - await courseApi.deleteCourse(+route.params.id); + await courseApi.deleteCourse(route.params.id as string); message.success('删除成功'); router.push('/admin/courses'); } catch (error) { @@ -781,7 +781,7 @@ onMounted(async () => { const fetchCourseDetail = async () => { loading.value = true; try { - const courseId = +route.params.id; + const courseId = route.params.id as string; const data = await courseApi.getCourse(courseId); course.value = data; diff --git a/reading-platform-frontend/src/views/admin/courses/CourseEditView.vue b/reading-platform-frontend/src/views/admin/courses/CourseEditView.vue index ae4a484..9e9c6fe 100644 --- a/reading-platform-frontend/src/views/admin/courses/CourseEditView.vue +++ b/reading-platform-frontend/src/views/admin/courses/CourseEditView.vue @@ -137,7 +137,7 @@ const router = useRouter(); const route = useRoute(); const isEdit = computed(() => !!route.params.id); -const courseId = computed(() => Number(route.params.id)); +const courseId = computed(() => route.params.id as string | undefined); const loading = ref(false); const saving = ref(false); diff --git a/reading-platform-frontend/src/views/admin/courses/CourseListView.vue b/reading-platform-frontend/src/views/admin/courses/CourseListView.vue index 65a0074..a0eec06 100644 --- a/reading-platform-frontend/src/views/admin/courses/CourseListView.vue +++ b/reading-platform-frontend/src/views/admin/courses/CourseListView.vue @@ -274,19 +274,19 @@ const handleTableChange = (pag: any) => { fetchCourses(); }; -const viewCourse = (id: number) => { +const viewCourse = (id: number | string) => { router.push(`/admin/courses/${id}`); }; -const editCourse = (id: number) => { +const editCourse = (id: number | string) => { router.push(`/admin/courses/${id}/edit`); }; -const viewStats = (id: number) => { +const viewStats = (id: number | string) => { router.push(`/admin/courses/${id}/stats`); }; -const deleteCourseHandler = async (id: number) => { +const deleteCourseHandler = async (id: number | string) => { try { await courseApi.deleteCourse(id); message.success('删除成功'); diff --git a/reading-platform-frontend/src/views/admin/courses/CourseStatsView.vue b/reading-platform-frontend/src/views/admin/courses/CourseStatsView.vue index 81adb6d..67398e1 100644 --- a/reading-platform-frontend/src/views/admin/courses/CourseStatsView.vue +++ b/reading-platform-frontend/src/views/admin/courses/CourseStatsView.vue @@ -252,7 +252,7 @@ onMounted(async () => { const fetchCourseStats = async () => { loading.value = true; try { - const courseId = +route.params.id; + const courseId = route.params.id as string; // 获取统计数据 const statsData = await courseApi.getCourseStats(courseId);