Слияние кода завершено, страница обновится автоматически
<template>
<div class="index">
<div class="flex">
<div class="w-[750px] h-[340px] flex-none mr-5">
<ElCarousel
v-if="getSwiperData.enabled"
class="w-full"
trigger="click"
height="340px"
>
<ElCarouselItem v-for="item in showList" :key="item">
<NuxtLink :to="item.link.path" target="_blank">
<ElImage
class="w-full h-full rounded-[8px] bg-white overflow-hidden"
:src="item.image"
fit="contain"
/>
</NuxtLink>
</ElCarouselItem>
</ElCarousel>
</div>
<InformationCard
link="/information/new"
class="flex-1 min-w-0"
header="最新资讯"
:data="pageData.new"
:show-time="false"
/>
</div>
<div class="mt-5 flex">
<InformationCard
link="/information"
class="w-[750px] flex-none mr-5"
header="全部资讯"
:data="pageData.all"
:only-title="false"
/>
<InformationCard
link="/information/hot"
class="flex-1"
header="热门资讯"
:data="pageData.hot"
:only-title="false"
image-size="mini"
:show-author="false"
:show-desc="false"
:show-click="false"
:border="false"
:title-line="2"
/>
</div>
</div>
</template>
<script lang="ts" setup>
import { ElCarousel, ElCarouselItem, ElImage } from 'element-plus'
import { getIndex } from '@/api/shop'
import { useAppStore } from '~~/stores/app'
const appStore = useAppStore()
const { data: pageData } = await useAsyncData(() => getIndex(), {
default: () => ({
all: [],
hot: [],
new: [],
page: {}
})
})
const getSwiperData = computed(() => {
try {
const data = JSON.parse(pageData.value.page.data)
console.log(data)
return data.find((item) => item.name === 'pc-banner')?.content
} catch (error) {
return {}
}
})
const showList = computed(() => {
return (
getSwiperData.value?.data ||
[]
)
})
</script>
<style lang="scss" scoped></style>
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарий ( 0 )