|
@@ -12,14 +12,23 @@ import MomentItem from '@/components/moment-item.vue'
|
|
import SectionHeading from '@/components/section-heading.vue'
|
|
import SectionHeading from '@/components/section-heading.vue'
|
|
import ClassItem from '../components/class-item.vue'
|
|
import ClassItem from '../components/class-item.vue'
|
|
import TimeLine from './components/time-line.vue'
|
|
import TimeLine from './components/time-line.vue'
|
|
-import { getBanners, getCircles, getContents } from '../../../core/libs/requests'
|
|
|
|
|
|
+import {
|
|
|
|
+ getAppMemberLevelConfigs,
|
|
|
|
+ getBanners,
|
|
|
|
+ getCircles,
|
|
|
|
+ getContents,
|
|
|
|
+ getStudyTours,
|
|
|
|
+} from '../../../core/libs/requests'
|
|
import { NetImages } from '../../../core/libs/net-images'
|
|
import { NetImages } from '../../../core/libs/net-images'
|
|
import { BannerMode } from '../../../core/libs/models'
|
|
import { BannerMode } from '../../../core/libs/models'
|
|
import { useRouter } from '../../../core/utils/router'
|
|
import { useRouter } from '../../../core/utils/router'
|
|
import PageHelper from '@/components/page-helper.vue'
|
|
import PageHelper from '@/components/page-helper.vue'
|
|
|
|
+import RegisterCard from './components/register-card.vue'
|
|
|
|
|
|
const router = useRouter()
|
|
const router = useRouter()
|
|
-const { data: studyTours, run: setStudyTours } = useRequest(() => getContents({ contentType: '1' }))
|
|
|
|
|
|
+const { data: studyTours, run: setStudyTours } = useRequest(() =>
|
|
|
|
+ getStudyTours({ headRecommend: 1 }),
|
|
|
|
+)
|
|
const { data: classmates, run: setClassmates } = useRequest(
|
|
const { data: classmates, run: setClassmates } = useRequest(
|
|
() => getContents({ contentCategory: '101', pageSize: '2' }),
|
|
() => getContents({ contentCategory: '101', pageSize: '2' }),
|
|
{ initialData: { list: [] } },
|
|
{ initialData: { list: [] } },
|
|
@@ -28,10 +37,17 @@ const { data: banners, run: setBanners } = useRequest(
|
|
() => getBanners({ mode: BannerMode.StudyTour }),
|
|
() => getBanners({ mode: BannerMode.StudyTour }),
|
|
{ initialData: [] },
|
|
{ initialData: [] },
|
|
)
|
|
)
|
|
|
|
+const { data: levels, run: setLevels } = useRequest(() => getAppMemberLevelConfigs(), {
|
|
|
|
+ initialData: [],
|
|
|
|
+})
|
|
|
|
+const levelsByMemberLevel = computed(() =>
|
|
|
|
+ levels.value.reduce((acc, item) => {
|
|
|
|
+ acc[item.memberLevel] = item
|
|
|
|
+ return acc
|
|
|
|
+ }, {}),
|
|
|
|
+)
|
|
onMounted(async () => {
|
|
onMounted(async () => {
|
|
- await setStudyTours()
|
|
|
|
- await setClassmates()
|
|
|
|
- await setBanners()
|
|
|
|
|
|
+ await Promise.all([setLevels(), setStudyTours(), setClassmates(), setBanners()])
|
|
})
|
|
})
|
|
</script>
|
|
</script>
|
|
<template>
|
|
<template>
|
|
@@ -39,15 +55,30 @@ onMounted(async () => {
|
|
<div class="">
|
|
<div class="">
|
|
<!-- <TimeLine></TimeLine> -->
|
|
<!-- <TimeLine></TimeLine> -->
|
|
<template v-if="banners.length">
|
|
<template v-if="banners.length">
|
|
- <wd-img
|
|
|
|
- width="100%"
|
|
|
|
- height="100%"
|
|
|
|
- custom-class="aspect-[1.73/1]"
|
|
|
|
- :src="banners[0].bannerImgUrl"
|
|
|
|
- @click="router.push(`/pages/home/study-tour/list`)"
|
|
|
|
- ></wd-img>
|
|
|
|
|
|
+ <div class="aspect-[1.73/1]">
|
|
|
|
+ <wd-img
|
|
|
|
+ width="100%"
|
|
|
|
+ height="100%"
|
|
|
|
+ custom-class="aspect-[1.73/1]"
|
|
|
|
+ :src="banners[0].bannerImgUrl"
|
|
|
|
+ @click="router.push(`/pages/home/study-tour/list`)"
|
|
|
|
+ ></wd-img>
|
|
|
|
+ </div>
|
|
</template>
|
|
</template>
|
|
</div>
|
|
</div>
|
|
|
|
+ <!-- <PageHelper :request="getActivities" :query="{ headRecommend: 1 }">
|
|
|
|
+ <template #default="{ source }"> -->
|
|
|
|
+ <template v-if="studyTours.list.length">
|
|
|
|
+ <swiper class="aspect-[0.75/1] rounded-[20px] overflow-hidden">
|
|
|
|
+ <template v-for="(it, i) in studyTours.list" :key="i">
|
|
|
|
+ <swiper-item>
|
|
|
|
+ <RegisterCard :options="{ ...it, levelsByMemberLevel }"></RegisterCard>
|
|
|
|
+ </swiper-item>
|
|
|
|
+ </template>
|
|
|
|
+ </swiper>
|
|
|
|
+ </template>
|
|
|
|
+ <!-- </template>
|
|
|
|
+ </PageHelper> -->
|
|
<!-- <card custom-class="p-0!">
|
|
<!-- <card custom-class="p-0!">
|
|
<view class="relative">
|
|
<view class="relative">
|
|
<wd-img
|
|
<wd-img
|