From 8956f0b7903603d1185f1aa0a90bfd625ea58463 Mon Sep 17 00:00:00 2001 From: zhonghua Date: Mon, 16 Mar 2026 14:13:59 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=AF=BE=E7=A8=8B=E5=8C=85=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E8=AF=A6=E6=83=85=20-=20=E4=BF=AE=E5=A4=8D=E5=A4=A7?= =?UTF-8?q?=E6=95=B4=E6=95=B0=20ID=20=E7=B2=BE=E5=BA=A6=E4=B8=A2=E5=A4=B1?= =?UTF-8?q?=EF=BC=8C=E4=BD=BF=E7=94=A8=20string=20=E4=BC=A0=E9=80=92?= =?UTF-8?q?=E9=81=BF=E5=85=8D=E8=AF=BE=E7=A8=8B=E4=B8=8D=E5=AD=98=E5=9C=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Made-with: Cursor --- reading-platform-frontend/src/api/course.ts | 16 ++++++++-------- .../src/views/admin/courses/CourseDetailView.vue | 4 ++-- .../src/views/admin/courses/CourseEditView.vue | 2 +- .../src/views/admin/courses/CourseListView.vue | 8 ++++---- .../src/views/admin/courses/CourseStatsView.vue | 2 +- 5 files changed, 16 insertions(+), 16 deletions(-) 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);