|
@@ -11,7 +11,12 @@
|
|
|
import SectionHeading from '@/components/section-heading.vue'
|
|
|
import Card from '@/components/card.vue'
|
|
|
import OfflineActivityItem from '../components/offline-activity-item.vue'
|
|
|
-import { getAllCategories, getContents, getActivities } from '../../../core/libs/requests'
|
|
|
+import {
|
|
|
+ getAllCategories,
|
|
|
+ getContents,
|
|
|
+ getActivities,
|
|
|
+ getAppMemberLevelConfigs,
|
|
|
+} from '../../../core/libs/requests'
|
|
|
import { strip, leaderboardText } from '@designer-hub/assets/src/assets/svgs'
|
|
|
import { NetImages } from '../../../core/libs/net-images'
|
|
|
import RegisterCard from '../components/register-card.vue'
|
|
@@ -32,6 +37,21 @@ const { data, run: setData } = useRequest(
|
|
|
initialData: { list: [] },
|
|
|
},
|
|
|
)
|
|
|
+const { data: activities, run: setActivities } = useRequest(
|
|
|
+ () => getActivities({ headRecommend: 1 }),
|
|
|
+ {
|
|
|
+ initialData: { list: [] },
|
|
|
+ },
|
|
|
+)
|
|
|
+const { data: levels, run: setLevels } = useRequest(() => getAppMemberLevelConfigs(), {
|
|
|
+ initialData: [],
|
|
|
+})
|
|
|
+const levelsByMemberLevel = computed(() =>
|
|
|
+ levels.value.reduce((acc, item) => {
|
|
|
+ acc[item.memberLevel] = item
|
|
|
+ return acc
|
|
|
+ }, {}),
|
|
|
+)
|
|
|
const setContentCategory = (index) => {
|
|
|
contentCategory.value = categories.value.find(({ id }) => id === 2)?.children[index].id.toString()
|
|
|
}
|
|
@@ -42,7 +62,7 @@ const handleTabChange = ({ index }) => {
|
|
|
onMounted(async () => {
|
|
|
await setCategories()
|
|
|
setContentCategory(tab.value)
|
|
|
- await setData()
|
|
|
+ await Promise.all([setActivities(), setData(), setLevels()])
|
|
|
})
|
|
|
</script>
|
|
|
|
|
@@ -54,17 +74,13 @@ onMounted(async () => {
|
|
|
path="/pages/home/offline-activity/list/index"
|
|
|
end-text="查看全部"
|
|
|
></section-heading>
|
|
|
- <PageHelper :request="getActivities" :query="{ headRecommend: 1 }">
|
|
|
- <template #default="{ source }">
|
|
|
- <swiper class="aspect-[0.75/1] rounded-[20px] overflow-hidden">
|
|
|
- <template v-for="(it, i) in source.list" :key="i">
|
|
|
- <swiper-item>
|
|
|
- <RegisterCard :options="it"></RegisterCard>
|
|
|
- </swiper-item>
|
|
|
- </template>
|
|
|
- </swiper>
|
|
|
+ <swiper class="aspect-[0.75/1] rounded-[20px] overflow-hidden">
|
|
|
+ <template v-for="(it, i) in activities.list" :key="i">
|
|
|
+ <swiper-item>
|
|
|
+ <RegisterCard :options="{ ...it, levelsByMemberLevel }"></RegisterCard>
|
|
|
+ </swiper-item>
|
|
|
</template>
|
|
|
- </PageHelper>
|
|
|
+ </swiper>
|
|
|
<card custom-class="">
|
|
|
<div class="my-7.5 text-black text-xl font-normal font-['PingFang_SC'] leading-[10.18px]">
|
|
|
筑巢荟-活动营
|