diff --git a/miniprogram/.env b/miniprogram/.env index e405b71..7fda9c6 100644 --- a/miniprogram/.env +++ b/miniprogram/.env @@ -1,2 +1,2 @@ VITE_ICE_API_BASE_URL=https://venue.test.chatgqt.top -VITE_COMPREHENSIVE_API_BASE_URL=https://8002.frp.chatgqt.top \ No newline at end of file +VITE_COMPREHENSIVE_API_BASE_URL=https://venue2.test.chatgqt.top \ No newline at end of file diff --git a/miniprogram/src/pages/comprehensive/courses/index.vue b/miniprogram/src/pages/comprehensive/courses/index.vue index f99555b..859b448 100644 --- a/miniprogram/src/pages/comprehensive/courses/index.vue +++ b/miniprogram/src/pages/comprehensive/courses/index.vue @@ -118,6 +118,7 @@ const pageSize = 20 const total = ref(0) const isLoading = ref(false) const isLoadingMore = ref(false) +let loadRequestId = 0 const ticketProduct = ref(null) const ticketQty = ref(1) @@ -143,6 +144,7 @@ const dateOptions = computed(() => { const hasMore = computed(() => sessions.value.length < total.value) const switchTab = (tab) => { + if (activeTab.value === tab) return activeTab.value = tab if (tab === 'tickets') { loadTicketProduct() @@ -153,15 +155,22 @@ const switchTab = (tab) => { } const onDateSelect = (date) => { + if (selectedDate.value === date) return selectedDate.value = date loadSessions(true) } const loadSessions = async (reset) => { - if (activeTab.value === 'membership' && !session.isLoggedIn) return + if (activeTab.value === 'membership' && !session.isLoggedIn) { + sessions.value = [] + total.value = 0 + return + } + const requestId = ++loadRequestId if (reset) { page.value = 1 isLoading.value = true + sessions.value = [] } else { isLoadingMore.value = true } @@ -172,11 +181,20 @@ const loadSessions = async (reset) => { } else { data = await courseApi.getSessions({ page: page.value, pageSize, date: selectedDate.value }) } + if (requestId !== loadRequestId) return sessions.value = reset ? data.items : [...sessions.value, ...data.items] total.value = data.total + } catch { + if (requestId !== loadRequestId) return + if (reset) { + sessions.value = [] + total.value = 0 + } } finally { - isLoading.value = false - isLoadingMore.value = false + if (requestId === loadRequestId) { + isLoading.value = false + isLoadingMore.value = false + } } } diff --git a/miniprogram/src/pages/comprehensive/private/index.vue b/miniprogram/src/pages/comprehensive/private/index.vue index a9a69c5..243b474 100644 --- a/miniprogram/src/pages/comprehensive/private/index.vue +++ b/miniprogram/src/pages/comprehensive/private/index.vue @@ -50,8 +50,11 @@ v-for="(slot, si) in grid.time_slots" :key="si" class="grid-row" + :class="{ 'grid-row-first': si === 0 }" > - {{ slot.start }} + + {{ slot.start }} +