From 4e69185c486a3cee45edf86ebb424425919d1e23 Mon Sep 17 00:00:00 2001 From: liwentao Date: Mon, 15 Jun 2026 15:49:21 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E5=9B=A2=E8=AF=BE=E5=89=8D?= =?UTF-8?q?=E5=90=8E=E7=AB=AF=E4=BA=A4=E4=BA=92?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gym-manage-uniapp/api/groupCourse.js | 35 ++ .../components/groupCourse/FilterSection.vue | 96 +++- .../composables/useGroupCourseList.js | 122 ++++- gym-manage-uniapp/groupcourse-api.md | 144 ++++++ gym-manage-uniapp/log.text | 448 ++++++++++++++++++ .../pages/groupCourse/detail.vue | 84 ++-- gym-manage-uniapp/pages/groupCourse/list.vue | 34 +- 7 files changed, 880 insertions(+), 83 deletions(-) create mode 100644 gym-manage-uniapp/log.text diff --git a/gym-manage-uniapp/api/groupCourse.js b/gym-manage-uniapp/api/groupCourse.js index 8fb0d6e..d4f2b8d 100644 --- a/gym-manage-uniapp/api/groupCourse.js +++ b/gym-manage-uniapp/api/groupCourse.js @@ -45,6 +45,40 @@ export function getTypeLabels(typeId, options = { cache: true, cacheTime: 5 * 60 return request.get(`/groupCourse/types/${typeId}/labels`, {}, options) } +export function searchGroupCourse(params = {}, options = {}) { + const { + courseName, + courseType, + startDate, + endDate, + timePeriod, + priceSort, + remainingMost, + page = 0, + size = 10 + } = params + + const requestBody = { page, size } + + if (courseName) requestBody.courseName = courseName + if (courseType) requestBody.courseType = courseType + if (startDate) requestBody.startDate = formatDateTime(startDate) + if (endDate) requestBody.endDate = formatDateTime(endDate, true) + if (timePeriod) requestBody.timePeriod = timePeriod + if (priceSort) requestBody.priceSort = priceSort + if (remainingMost !== undefined) requestBody.remainingMost = remainingMost + + return request.post('/groupCourse/search', requestBody, options) +} + +function formatDateTime(dateStr, isEnd = false) { + if (!dateStr) return dateStr + if (dateStr.includes('T')) return dateStr + return isEnd + ? `${dateStr}T23:59:59` + : `${dateStr}T00:00:00` +} + export function bookGroupCourse(params) { return request.post('/groupCourse/book', params) } @@ -60,6 +94,7 @@ export function getMemberBookings(memberId, options = {}) { export default { getGroupCourseList, getGroupCoursePage, + searchGroupCourse, getGroupCourseById, getGroupCourseDetail, createGroupCourse, diff --git a/gym-manage-uniapp/components/groupCourse/FilterSection.vue b/gym-manage-uniapp/components/groupCourse/FilterSection.vue index d97595d..c81cbf6 100644 --- a/gym-manage-uniapp/components/groupCourse/FilterSection.vue +++ b/gym-manage-uniapp/components/groupCourse/FilterSection.vue @@ -1,5 +1,20 @@