|
@@ -17,9 +17,11 @@ import HomeBanner from './components/home-banner.vue'
|
|
|
import useRequest from '../../hooks/useRequest'
|
|
|
import Menus from './components/menus.vue'
|
|
|
import {
|
|
|
+ getActivities,
|
|
|
getCircles,
|
|
|
getMyStudyTours,
|
|
|
getSetIndexConfigs,
|
|
|
+ getStudyTours,
|
|
|
shareCircle,
|
|
|
} from '../../core/libs/requests'
|
|
|
import { logo } from '../../core/libs/svgs'
|
|
@@ -36,6 +38,8 @@ import ButtonEvo from '@/components/button-evo.vue'
|
|
|
import ImgBtnEvo from '@/components/img-btn-evo.vue'
|
|
|
import SectionHeading from '@/components/section-heading.vue'
|
|
|
import dayjs from 'dayjs'
|
|
|
+import { sort } from 'radash'
|
|
|
+import { Activity, StudyTour } from '../../core/libs/models'
|
|
|
|
|
|
defineOptions({
|
|
|
name: 'Home',
|
|
@@ -51,8 +55,11 @@ const { data: indexConfigsData, run: setIndexConfigsData } = useRequest(
|
|
|
const { data: studyTours, run: setStudyTours } = useRequest(() => getMyStudyTours(), {
|
|
|
initialData: [],
|
|
|
})
|
|
|
+// const {} = useRequest(() =>)
|
|
|
const swiperData = ref<{ data: any }[]>()
|
|
|
const swiperCurrent = ref(0)
|
|
|
+const hotActivities =
|
|
|
+ ref<{ type: 'studyTour' | 'activity'; data: StudyTour & Activity; startAt: string | number }[]>()
|
|
|
const currentStudyTour = computed(() =>
|
|
|
studyTours.value.find(
|
|
|
(it) => dayjs(it.studyStartTime).isBefore(dayjs()) && dayjs(it.studyEndTime).isAfter(dayjs()),
|
|
@@ -73,20 +80,27 @@ const handleLike = async (options) => {
|
|
|
})
|
|
|
pageHelperRef.value?.refresh()
|
|
|
}
|
|
|
+const setHotActivities = async () => {
|
|
|
+ const res = await Promise.all([
|
|
|
+ getStudyTours({ headRecommend: 1 }).then((res) =>
|
|
|
+ res.data.list.map((it) => ({ type: 'studyTour', data: it, startAt: it.applyStartTime })),
|
|
|
+ ),
|
|
|
+ getActivities({ headRecommend: 1 }).then((res) =>
|
|
|
+ res.data.list.map((it) => ({ type: 'activity', data: it, startAt: it.applyStartTime })),
|
|
|
+ ),
|
|
|
+ ])
|
|
|
+ console.log(sort(res.flat(), (it) => it.startAt))
|
|
|
+ hotActivities.value = sort(res.flat(), (it) => it.startAt) as any
|
|
|
+}
|
|
|
onShow(async () => {
|
|
|
pageHelperRef.value?.refresh()
|
|
|
// await setStudyTours()
|
|
|
// setStudyTours()
|
|
|
})
|
|
|
onLoad(async () => {
|
|
|
- await setIndexConfigsData()
|
|
|
- await setStudyTours()
|
|
|
- console.log(
|
|
|
- studyTours.value.map((it) => [
|
|
|
- dayjs(it.studyStartTime).format('YYYY-MM-DD HH:mm'),
|
|
|
- dayjs(it.studyEndTime).format('YYYY-MM-DD HH:mm'),
|
|
|
- ]),
|
|
|
- )
|
|
|
+ await Promise.all([setIndexConfigsData(), setStudyTours(), setHotActivities()])
|
|
|
+ // await setIndexConfigsData()
|
|
|
+ // await setStudyTours()
|
|
|
swiperData.value = indexConfigsData.value.list.map((it) => ({
|
|
|
data: it,
|
|
|
}))
|
|
@@ -178,9 +192,9 @@ onShareAppMessage(async ({ from, target }) => {
|
|
|
<ButtonEvo color="red" size="lg">敌无命</ButtonEvo>
|
|
|
</div> -->
|
|
|
<menus></menus>
|
|
|
- <!-- <view class="my-6 mx-3.5">
|
|
|
- <HotActivity></HotActivity>
|
|
|
- </view> -->
|
|
|
+ <view class="my-6 mx-3.5">
|
|
|
+ <HotActivity :items="hotActivities"></HotActivity>
|
|
|
+ </view>
|
|
|
<view v-if="features.about" class="my-6 mx-3.5" @click="toAbout()">
|
|
|
<Card>
|
|
|
<div class="flex items-center gap-2">
|