fix. pageVerTmplSeq 타입 통일

This commit is contained in:
clkim
2025-10-21 15:14:26 +09:00
parent 51ca33ed19
commit 118bec5dde
15 changed files with 35 additions and 68 deletions

View File

@@ -1,5 +1,5 @@
<script setup lang="ts">
import { getYouTubeEmbedUrl } from '#layers/utils/youtube'
import { getYouTubeEmbedUrl } from '@/layers/utils/youtubeUtil'
interface Props {
youtubeUrl: string

View File

@@ -61,7 +61,7 @@ watchEffect(() => {
<component
:is="getTemplateComponent(template.template_code)"
:components="template.components"
:page-ver-tmpl-seq="template.page_ver_tmpl_seq.toString()"
:page-ver-tmpl-seq="template.page_ver_tmpl_seq"
/>
</template>
</main>

View File

@@ -11,45 +11,6 @@ declare const svcLog: any
declare const twq: any
declare const ttq: any
/**
* 페이지 데이터와 템플릿 정보를 기반으로 분석용 로그 데이터를 생성하는 composable
* @param resourcesData 페이지 리소스 데이터
* @param pageVerTmplSeq 템플릿 시퀀스 번호
* @returns 분석용 로그 데이터 객체
*/
export const useAnalyticsLogData = (
resourcesData: PageDataResourceGroup,
pageVerTmplSeq: number
) => {
const store = usePageDataStore()
const pageData = store.pageData
if (!pageData) {
return ref({} as AnalyticsDetailType)
}
// const pageDataTrack = (typeof resourcesData.tracking === 'object' ? resourcesData.tracking : {}) as AnalyticsLogDataTracking
const pageDataTrack = resourcesData.tracking
const logData = ref({
actionType: pageDataTrack?.action_type,
// logSourceType:pageDataTrack.logSourceType,
// viewArea:pageDataTrack.viewArea,
// viewType:pageDataTrack.viewType,
clickArea: pageData.page_name_en,
clickSarea: pageData.templates[pageVerTmplSeq].page_ver_tmpl_name_en,
clickItem: `${pageData.templates[pageVerTmplSeq].page_ver_tmpl_name}_${pageDataTrack?.click_item}`,
event: pageData.page_name,
eventCategory: `${pageData.page_name}_${pageDataTrack?.click_item}`,
template_code: pageData.templates[pageVerTmplSeq].template_code,
page_ver_tmpl_name: pageData.templates[pageVerTmplSeq].page_ver_tmpl_name,
page_ver_tmpl_name_en:
pageData.templates[pageVerTmplSeq].page_ver_tmpl_name_en,
} as unknown as AnalyticsDetailType)
return logData
}
/**
* 페이지 데이터와 템플릿 정보를 기반으로 분석용 로그 데이터를 생성하는 composable (직접 객체 반환)
* @param resourcesData 페이지 리소스 데이터
@@ -74,15 +35,15 @@ export const useAnalyticsLogDataDirect = (
// logSourceType:pageDataTrack.logSourceType,
// viewArea:pageDataTrack.viewArea,
// viewType:pageDataTrack.viewType,
clickArea: pageData.page_name_en,
clickArea: pageData.page_name_en, //페이지타이틀(영문)
clickSarea: pageData.templates[pageVerTmplSeq].page_ver_tmpl_name_en,
clickItem: `${pageData.templates[pageVerTmplSeq].page_ver_tmpl_name}_${pageDataTrack?.click_item}`,
event: pageData.page_name,
eventCategory: `${pageData.page_name}_${pageDataTrack?.click_item}`,
template_code: pageData.templates[pageVerTmplSeq].template_code,
page_ver_tmpl_name: pageData.templates[pageVerTmplSeq].page_ver_tmpl_name,
page_ver_tmpl_name_en:
pageData.templates[pageVerTmplSeq].page_ver_tmpl_name_en,
// template_code: pageData.templates[pageVerTmplSeq].template_code,
// page_ver_tmpl_name: pageData.templates[pageVerTmplSeq].page_ver_tmpl_name,
// page_ver_tmpl_name_en:
// pageData.templates[pageVerTmplSeq].page_ver_tmpl_name_en,
} as unknown as AnalyticsDetailType
return logData
@@ -369,7 +330,6 @@ export default () => {
sendSA,
sendLog,
sendMarketingScript,
useAnalyticsLogData,
useAnalyticsLogDataDirect,
}
}

View File

@@ -14,7 +14,7 @@ export const useResourcesData = () => {
const stoveApiBaseUrl = config.public.stoveApiUrl
const apiUrl = `${stoveApiBaseUrl}/pub-comm/v1.0/template/operateResources`
const queryParams: Record<string, string> = {
const queryParams: Record<string, string | number> = {
page_seq: pageSeq,
page_ver: pageVer,
page_ver_tmpl_seq: pageVerTmplSeq,

View File

@@ -9,7 +9,7 @@ import type { PageDataTemplateComponents } from '#layers/types/api/pageData'
interface Props {
components: PageDataTemplateComponents
pageVerTmplSeq: string
pageVerTmplSeq: number
}
const props = defineProps<Props>()

View File

@@ -8,7 +8,7 @@ import type { PageDataTemplateComponents } from '#layers/types/api/pageData'
interface Props {
components: PageDataTemplateComponents
pageVerTmplSeq: string
pageVerTmplSeq: number
}
const props = defineProps<Props>()

View File

@@ -8,7 +8,7 @@ import type { PageDataTemplateComponents } from '#layers/types/api/pageData'
interface Props {
components: PageDataTemplateComponents
pageVerTmplSeq: string
pageVerTmplSeq: number
}
const props = defineProps<Props>()

View File

@@ -4,7 +4,9 @@ import {
getComponentContainer,
getComponentGroupAry,
getComponentGroup,
isTypeVideo,
} from '#layers/utils/dataUtil'
import { getMediaImgSrc, getMediaSrc } from '#layers/utils/youtubeUtil'
import type {
PageDataTemplateComponents,
PageDataTemplateComponentSet,
@@ -12,7 +14,7 @@ import type {
interface Props {
components: PageDataTemplateComponents
pageVerTmplSeq: string
pageVerTmplSeq: number
}
const props = defineProps<Props>()

View File

@@ -1,12 +1,15 @@
<script setup lang="ts">
import { SplideSlide } from '@splidejs/vue-splide'
import { getComponentGroup } from '#layers/utils/dataUtil'
import {
getComponentContainer,
getComponentGroup,
} from '#layers/utils/dataUtil'
import type { Splide as SplideType } from '@splidejs/splide'
import type { PageDataTemplateComponents } from '#layers/types/api/pageData'
interface Props {
components: PageDataTemplateComponents
pageVerTmplSeq: string
pageVerTmplSeq: number
}
const props = defineProps<Props>()
@@ -77,7 +80,7 @@ const onArrowClick = (direction, targetIndex) => {
<div class="slide-inner border-line mt-auto">
<BlocksVisualContent
:resources-data="getComponentGroup(item, 'imgList')"
:page-ver-tmpl-seq="Number(props.pageVerTmplSeq)"
:page-ver-tmpl-seq="props.pageVerTmplSeq"
object-fit="cover"
:alt="getComponentGroup(item, 'subTitle')?.display?.text"
/>
@@ -87,7 +90,7 @@ const onArrowClick = (direction, targetIndex) => {
<WidgetsButtonList
v-if="buttonListData"
:resources-data="buttonListData"
:page-ver-tmpl-seq="Number(props.pageVerTmplSeq)"
:page-ver-tmpl-seq="props.pageVerTmplSeq"
class="mt-[40px] md:mt-[56px]"
/>
</div>

View File

@@ -1,12 +1,15 @@
<script setup lang="ts">
import { SplideSlide } from '@splidejs/vue-splide'
import { getComponentGroup } from '#layers/utils/dataUtil'
import {
getComponentContainer,
getComponentGroup,
} from '#layers/utils/dataUtil'
import type { Splide as SplideType } from '@splidejs/splide'
import type { PageDataTemplateComponents } from '#layers/types/api/pageData'
interface Props {
components: PageDataTemplateComponents
pageVerTmplSeq: string
pageVerTmplSeq: number
}
const props = defineProps<Props>()
@@ -107,7 +110,7 @@ const onArrowClick = (direction, targetIndex) => {
<WidgetsButtonList
v-if="buttonListData"
:resources-data="buttonListData"
:page-ver-tmpl-seq="Number(props.pageVerTmplSeq)"
:page-ver-tmpl-seq="props.pageVerTmplSeq"
class="mt-[32px]"
/>
</div>

View File

@@ -4,7 +4,7 @@ import type { PageDataTemplateComponents } from '#layers/types/api/pageData'
interface Props {
components: PageDataTemplateComponents
pageVerTmplSeq: string
pageVerTmplSeq: number
}
const props = defineProps<Props>()
@@ -47,13 +47,13 @@ const buttonListData = computed(() =>
<WidgetsVideoPlay
v-if="videoPlayData"
:resources-data="videoPlayData"
:page-ver-tmpl-seq="Number(props.pageVerTmplSeq)"
:page-ver-tmpl-seq="props.pageVerTmplSeq"
/>
<WidgetsButtonList
v-if="buttonListData.length > 0"
button-type="market"
:resources-data="buttonListData"
:page-ver-tmpl-seq="Number(props.pageVerTmplSeq)"
:page-ver-tmpl-seq="props.pageVerTmplSeq"
class="mt-[22px] md:mt-[52px]"
/>
</div>

View File

@@ -11,7 +11,7 @@ import type { OperateGroupItem } from '#layers/types/api/resourcesData'
interface Props {
components: PageDataTemplateComponents
pageVerTmplSeq: string
pageVerTmplSeq: number
}
const props = defineProps<Props>()
@@ -55,7 +55,6 @@ const { data: slideData } = await useAsyncData(
minLength: 4,
}) as OperateGroupItem[]
console.log('bannerList', bannerList)
return bannerList
},
{
@@ -105,7 +104,7 @@ const onArrowClick = direction => {
<WidgetsVideoPlay
v-if="videoPlayData"
:resources-data="videoPlayData"
:page-ver-tmpl-seq="Number(props.pageVerTmplSeq)"
:page-ver-tmpl-seq="props.pageVerTmplSeq"
/>
<BlocksSlideCenterHighlight
v-if="slideData && slideData.length > 0"

View File

@@ -10,7 +10,7 @@ import type { PageDataTemplateComponents } from '#layers/types/api/pageData'
interface Props {
components: PageDataTemplateComponents
pageVerTmplSeq: string
pageVerTmplSeq: number
}
const props = defineProps<Props>()
@@ -62,7 +62,7 @@ const onArrowClick = direction => {
<WidgetsButtonList
v-if="hasComponentGroup(item, 'buttonList')"
:resources-data="getComponentGroupAry(item, 'buttonList')"
:page-ver-tmpl-seq="Number(props.pageVerTmplSeq)"
:page-ver-tmpl-seq="props.pageVerTmplSeq"
class="mt-[28px] md:mt-[52px]"
/>
</div>

View File

@@ -36,7 +36,7 @@ export interface ResourcesDataResponse {
export interface GetResourcesDataParams {
pageSeq: string
pageVer: string
pageVerTmplSeq: string
pageVerTmplSeq: number
langCode: string
q?: string
qc?: string