46 lines
1.1 KiB
Vue
46 lines
1.1 KiB
Vue
<script setup lang="ts">
|
|
import {
|
|
getComponentGroup,
|
|
ensureMinimumSlideData,
|
|
} from '#layers/utils/dataUtil'
|
|
import type { PageDataTemplateComponents } from '#layers/types/api/pageData'
|
|
|
|
interface Props {
|
|
components: PageDataTemplateComponents
|
|
pageVerTmplSeq: string
|
|
}
|
|
|
|
const props = defineProps<Props>()
|
|
|
|
const backgroundData = computed(() =>
|
|
getComponentGroup(props.components, 'background')
|
|
)
|
|
const mainTitleData = computed(() =>
|
|
getComponentGroup(props.components, 'mainTitle')
|
|
)
|
|
const slideData = computed(() => {
|
|
return ensureMinimumSlideData(props.components)
|
|
})
|
|
const videoPlayData = computed(() =>
|
|
getComponentGroup(props.components, 'videoPlay')
|
|
)
|
|
</script>
|
|
|
|
<template>
|
|
<section class="section-container">
|
|
<WidgetsBackground v-if="backgroundData" :resources-data="backgroundData" />
|
|
<div class="section-content">
|
|
<WidgetsMainTitle
|
|
v-if="mainTitleData"
|
|
:resources-data="mainTitleData"
|
|
class="title-sm"
|
|
/>
|
|
<BlocksSlideThumbnail
|
|
:slide-data="slideData"
|
|
:video-play="videoPlayData"
|
|
class="mt-[24px] md:mt-[32px]"
|
|
/>
|
|
</div>
|
|
</section>
|
|
</template>
|