Merge remote-tracking branch 'origin/feature/20250910-all' into feature/20251017_cl_GR_DETAIL
This commit is contained in:
@@ -104,7 +104,6 @@ onMounted(() => {
|
|||||||
|
|
||||||
if (mainInst && thumbsInst) {
|
if (mainInst && thumbsInst) {
|
||||||
mainInst.sync(thumbsInst)
|
mainInst.sync(thumbsInst)
|
||||||
|
|
||||||
// 썸네일 슬라이드의 화살표 버튼에 이벤트 리스너 추가
|
// 썸네일 슬라이드의 화살표 버튼에 이벤트 리스너 추가
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
addArrowClickListeners(thumbsInst, (direction, targetIndex) => {
|
addArrowClickListeners(thumbsInst, (direction, targetIndex) => {
|
||||||
|
|||||||
@@ -63,6 +63,26 @@ const isPassVideo = (item: PageDataTemplateComponentSet, index: number) => {
|
|||||||
|
|
||||||
const handleVideoClick = (index: number) => {
|
const handleVideoClick = (index: number) => {
|
||||||
playingSlideIndex.value = index
|
playingSlideIndex.value = index
|
||||||
|
|
||||||
|
const group = getComponentGroup(props.components, 'videoPlay')
|
||||||
|
const base = group?.tracking?.click_item || ''
|
||||||
|
const next = base
|
||||||
|
? base.replace(/(^.*_)(\d+)$/, `$1${index}`) === base
|
||||||
|
? `${base}_${index}`
|
||||||
|
: base.replace(/(^.*_)(\d+)$/, `$1${index}`)
|
||||||
|
: `${index}`
|
||||||
|
|
||||||
|
const sendingGroup = group
|
||||||
|
? { ...group, tracking: { ...group.tracking, click_item: next } }
|
||||||
|
: group
|
||||||
|
|
||||||
|
sendLog(
|
||||||
|
locale.value,
|
||||||
|
useAnalyticsLogDataDirect(
|
||||||
|
(sendingGroup as any) || getComponentGroup(props.components, 'videoPlay'),
|
||||||
|
1
|
||||||
|
)
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
const stopVideo = () => {
|
const stopVideo = () => {
|
||||||
|
|||||||
@@ -118,11 +118,11 @@ export type PageDataTemplateComponentSet = PageDataTemplateComponent & {
|
|||||||
set_order?: number
|
set_order?: number
|
||||||
}
|
}
|
||||||
|
|
||||||
// 템플릿 컴포넌트 타입 - 두 가지 패턴
|
// 템플릿 컴포넌트 타입 - 세 가지 패턴
|
||||||
export type PageDataTemplateComponents =
|
export type PageDataTemplateComponents =
|
||||||
| PageDataTemplateComponent // 단일 컴포넌트 패턴
|
| PageDataTemplateComponent // 단일 컴포넌트 패턴
|
||||||
| { group_sets: PageDataTemplateComponentSet[] } // 그룹 세트 패턴
|
| { group_sets: PageDataTemplateComponentSet[], arrow: PageDataArrowComponent } // 그룹 세트 패턴
|
||||||
|
|
||||||
// 템플릿 타입
|
// 템플릿 타입
|
||||||
export interface PageDataTemplate {
|
export interface PageDataTemplate {
|
||||||
page_ver_tmpl_seq: number
|
page_ver_tmpl_seq: number
|
||||||
@@ -133,13 +133,6 @@ export interface PageDataTemplate {
|
|||||||
components: PageDataTemplateComponents
|
components: PageDataTemplateComponents
|
||||||
}
|
}
|
||||||
|
|
||||||
// Tracking 타입
|
|
||||||
export interface PageDataTracking {
|
|
||||||
click_item: string
|
|
||||||
action_type: string
|
|
||||||
click_sarea: string
|
|
||||||
}
|
|
||||||
|
|
||||||
// ===== API 관련 타입들 =====
|
// ===== API 관련 타입들 =====
|
||||||
|
|
||||||
// API 에러 응답 타입
|
// API 에러 응답 타입
|
||||||
@@ -172,3 +165,15 @@ export interface PageDataApiResult {
|
|||||||
data: PageDataResponse | null
|
data: PageDataResponse | null
|
||||||
error: string | null
|
error: string | null
|
||||||
}
|
}
|
||||||
|
// Tracking 타입
|
||||||
|
export interface PageDataTracking {
|
||||||
|
click_item: string
|
||||||
|
action_type: string
|
||||||
|
click_sarea: string
|
||||||
|
}
|
||||||
|
|
||||||
|
// Arrow 컴포넌트 타입
|
||||||
|
|
||||||
|
export type PageDataArrowComponent = PageDataTemplateComponent & {
|
||||||
|
groups: PageDataResourceGroups
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user