From f72a5cec619fc5f4273312c39219e83052f678d6 Mon Sep 17 00:00:00 2001 From: wangys <3401275564@qq.com> Date: Tue, 21 Oct 2025 16:21:10 +0800 Subject: [PATCH] =?UTF-8?q?web-=E5=AD=A6=E4=B9=A0=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E3=80=81upload=E7=BB=84=E4=BB=B6=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- schoolNewsWeb/src/apis/resource/resource.ts | 8 +- schoolNewsWeb/src/apis/study/course.ts | 50 +- .../src/components/file/FileUpload.vue | 238 ++++++- schoolNewsWeb/src/types/base/index.ts | 18 +- schoolNewsWeb/src/types/study/index.ts | 61 +- schoolNewsWeb/src/types/usercenter/index.ts | 6 +- .../manage/study/CourseManagementView.vue | 53 ++ .../manage/study/components/CourseAdd.vue | 600 ++++++++++++++++++ .../manage/study/components/CourseList.vue | 263 ++++++++ .../admin/manage/study/components/index.ts | 3 + .../src/views/article/ArticleAddView.vue | 73 +-- .../components/ResouceCollect.vue | 9 +- .../components/ResourceArticle.vue | 33 +- 13 files changed, 1288 insertions(+), 127 deletions(-) create mode 100644 schoolNewsWeb/src/views/admin/manage/study/CourseManagementView.vue create mode 100644 schoolNewsWeb/src/views/admin/manage/study/components/CourseAdd.vue create mode 100644 schoolNewsWeb/src/views/admin/manage/study/components/CourseList.vue create mode 100644 schoolNewsWeb/src/views/admin/manage/study/components/index.ts diff --git a/schoolNewsWeb/src/apis/resource/resource.ts b/schoolNewsWeb/src/apis/resource/resource.ts index 5c57b4b..113539d 100644 --- a/schoolNewsWeb/src/apis/resource/resource.ts +++ b/schoolNewsWeb/src/apis/resource/resource.ts @@ -7,7 +7,7 @@ */ import { api } from '@/apis'; -import type { ResultDomain, Resource, ResourceSearchParams, PageParam, ResourceVO } from '@/types'; +import type { ResultDomain, Resource, ResourceSearchParams, PageParam, ResourceVO, UserCollection } from '@/types'; /** * 资源API服务 @@ -137,12 +137,12 @@ export const resourceApi = { }, /** - * 增加收藏次数 + * 收藏次数增减 * @param resourceID 资源ID * @returns Promise> */ - async incrementCollectCount(resourceID: string): Promise> { - const response = await api.post(`/news/resources/resource/${resourceID}/collect`); + async resourceCollect(collect: UserCollection): Promise> { + const response = await api.post(`/news/resources/resource/collect`, collect); return response.data; }, diff --git a/schoolNewsWeb/src/apis/study/course.ts b/schoolNewsWeb/src/apis/study/course.ts index 14a9241..900acea 100644 --- a/schoolNewsWeb/src/apis/study/course.ts +++ b/schoolNewsWeb/src/apis/study/course.ts @@ -5,19 +5,33 @@ */ import { api } from '@/apis/index'; -import type { Course, CourseChapter, ResultDomain } from '@/types'; +import type { Course, CourseChapter, ResultDomain,CourseVO,PageRequest, PageParam } from '@/types'; /** * 课程API服务 */ export const courseApi = { + prefixCourse: '/study/courses', /** * 获取课程列表 * @param filter 过滤条件 * @returns Promise> */ - async getCourseList(filter?: Partial): Promise> { - const response = await api.get('/study/course/list', filter); + async getCourseList(filter?: Course): Promise> { + const response = await api.get(`${this.prefixCourse}/list`, filter); + return response.data; + }, + + /** + * 获取课程分页列表 + * @param PageRequest 分页请求 + * @returns Promise> + */ + async getCoursePage(pageParam: PageParam, filter?: Course): Promise> { + const response = await api.post(`${this.prefixCourse}/page`, { + pageParam, + filter + }); return response.data; }, @@ -26,8 +40,8 @@ export const courseApi = { * @param courseID 课程ID * @returns Promise> */ - async getCourseById(courseID: string): Promise> { - const response = await api.get(`/study/course/${courseID}`); + async getCourseById(courseID: string): Promise> { + const response = await api.get(`${this.prefixCourse}/${courseID}`); return response.data; }, @@ -36,8 +50,8 @@ export const courseApi = { * @param course 课程数据 * @returns Promise> */ - async createCourse(course: Course): Promise> { - const response = await api.post('/study/course/create', course); + async createCourse(course: CourseVO): Promise> { + const response = await api.post(`${this.prefixCourse}/course`, course); return response.data; }, @@ -47,7 +61,7 @@ export const courseApi = { * @returns Promise> */ async updateCourse(course: Course): Promise> { - const response = await api.put('/study/course/update', course); + const response = await api.put(`${this.prefixCourse}/course`, course); return response.data; }, @@ -57,7 +71,7 @@ export const courseApi = { * @returns Promise> */ async deleteCourse(courseID: string): Promise> { - const response = await api.delete(`/study/course/${courseID}`); + const response = await api.delete(`${this.prefixCourse}/${courseID}`); return response.data; }, @@ -68,7 +82,7 @@ export const courseApi = { * @returns Promise> */ async updateCourseStatus(courseID: string, status: number): Promise> { - const response = await api.put(`/study/course/${courseID}/status`, null, { + const response = await api.put(`${this.prefixCourse}/${courseID}/status`, null, { params: { status } }); return response.data; @@ -80,7 +94,7 @@ export const courseApi = { * @returns Promise> */ async incrementViewCount(courseID: string): Promise> { - const response = await api.post(`/study/course/${courseID}/view`); + const response = await api.post(`${this.prefixCourse}/${courseID}/view`); return response.data; }, @@ -90,7 +104,7 @@ export const courseApi = { * @returns Promise> */ async incrementLearnCount(courseID: string): Promise> { - const response = await api.post(`/study/course/${courseID}/learn`); + const response = await api.post(`${this.prefixCourse}/${courseID}/learn`); return response.data; }, @@ -100,7 +114,7 @@ export const courseApi = { * @returns Promise> */ async getCourseChapters(courseID: string): Promise> { - const response = await api.get(`/study/course/${courseID}/chapters`); + const response = await api.get(`${this.prefixCourse}/${courseID}/chapters`); return response.data; }, @@ -110,7 +124,7 @@ export const courseApi = { * @returns Promise> */ async getChapterById(chapterID: string): Promise> { - const response = await api.get(`/study/course/chapter/${chapterID}`); + const response = await api.get(`${this.prefixCourse}/chapter/${chapterID}`); return response.data; }, @@ -120,7 +134,7 @@ export const courseApi = { * @returns Promise> */ async createChapter(chapter: CourseChapter): Promise> { - const response = await api.post('/study/course/chapter/create', chapter); + const response = await api.post(`${this.prefixCourse}/chapter/create`, chapter); return response.data; }, @@ -130,7 +144,7 @@ export const courseApi = { * @returns Promise> */ async updateChapter(chapter: CourseChapter): Promise> { - const response = await api.put('/study/course/chapter/update', chapter); + const response = await api.put(`${this.prefixCourse}/chapter/update`, chapter); return response.data; }, @@ -140,7 +154,7 @@ export const courseApi = { * @returns Promise> */ async deleteChapter(chapterID: string): Promise> { - const response = await api.delete(`/study/course/chapter/${chapterID}`); + const response = await api.delete(`${this.prefixCourse}/chapter/${chapterID}`); return response.data; }, @@ -151,7 +165,7 @@ export const courseApi = { * @returns Promise> */ async updateChapterOrder(chapterID: string, orderNum: number): Promise> { - const response = await api.put(`/study/course/chapter/${chapterID}/order`, null, { + const response = await api.put(`${this.prefixCourse}/chapter/${chapterID}/order`, null, { params: { orderNum } }); return response.data; diff --git a/schoolNewsWeb/src/components/file/FileUpload.vue b/schoolNewsWeb/src/components/file/FileUpload.vue index 55fcf7e..aff083c 100644 --- a/schoolNewsWeb/src/components/file/FileUpload.vue +++ b/schoolNewsWeb/src/components/file/FileUpload.vue @@ -1,5 +1,57 @@