Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
飞
飞鹤小程序
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
FH
飞鹤小程序
Commits
2986933c
Commit
2986933c
authored
Nov 01, 2025
by
王炽
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
66666
parent
8ea0ef83
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
334 additions
and
118 deletions
+334
-118
SeckillSection.vue
components/SeckillSection.vue
+17
-0
InvitePrizePanel.vue
components/integralArea/InvitePrizePanel.vue
+30
-2
TaskCompleteTips.vue
components/renwu/TaskCompleteTips.vue
+14
-1
TaskPop.vue
components/renwu/TaskPop.vue
+19
-0
invaterecords.vue
pages/invate/invaterecords.vue
+8
-0
sharepage.vue
pages/invate/sharepage.vue
+14
-0
Integral.vue
views/Integral.vue
+232
-115
No files found.
components/SeckillSection.vue
View file @
2986933c
...
@@ -168,6 +168,7 @@
...
@@ -168,6 +168,7 @@
import
{
ref
,
onMounted
,
computed
,
watch
,
nextTick
}
from
'vue'
;
import
{
ref
,
onMounted
,
computed
,
watch
,
nextTick
}
from
'vue'
;
import
{
useIntegralStore
}
from
'../stores/integral'
;
import
{
useIntegralStore
}
from
'../stores/integral'
;
import
{
throttleTap
}
from
'../utils/index'
;
import
{
throttleTap
}
from
'../utils/index'
;
import
md
from
'../md'
;
// Props
// Props
const
props
=
defineProps
({
const
props
=
defineProps
({
...
@@ -357,6 +358,15 @@ const shouldShowSection = computed(() => {
...
@@ -357,6 +358,15 @@ const shouldShowSection = computed(() => {
// sessionsLength: creditsSaleData.value?.sessions?.length || 0,
// sessionsLength: creditsSaleData.value?.sessions?.length || 0,
// creditsSaleData: creditsSaleData.value
// creditsSaleData: creditsSaleData.value
// });
// });
if
(
hasSessions
)
{
md
.
sensorComponentLogTake
({
xcxComponentExposure
:
"true"
,
pageName
:
"积分服务页"
,
componentName
:
"积分限时购"
,
componentContent
:
"积分限时购"
});
}
return
hasSessions
;
return
hasSessions
;
});
});
...
@@ -657,6 +667,13 @@ const mapSeckillDataToCreditsSale = (seckillData) => {
...
@@ -657,6 +667,13 @@ const mapSeckillDataToCreditsSale = (seckillData) => {
// 处理积分抢购点击事件
// 处理积分抢购点击事件
const
handleCreditsSaleClick
=
(
good
)
=>
{
const
handleCreditsSaleClick
=
(
good
)
=>
{
console
.
log
(
'点击抢购商品:'
,
good
);
console
.
log
(
'点击抢购商品:'
,
good
);
md
.
sensorComponentLogTake
({
xcxComponentClick
:
"true"
,
pageName
:
"积分服务页"
,
componentName
:
"积分限时购"
,
componentContent
:
good
.
name
});
// 获取当前活动ID和场次Key
// 获取当前活动ID和场次Key
const
activityId
=
creditsSaleData
.
value
.
activityId
;
const
activityId
=
creditsSaleData
.
value
.
activityId
;
const
sessionKey
=
creditsSaleData
.
value
.
sessions
[
currentSessionIndex
.
value
]?.
sessionKey
;
const
sessionKey
=
creditsSaleData
.
value
.
sessions
[
currentSessionIndex
.
value
]?.
sessionKey
;
...
...
components/integralArea/InvitePrizePanel.vue
View file @
2986933c
...
@@ -41,9 +41,9 @@
...
@@ -41,9 +41,9 @@
</
template
>
</
template
>
<
script
setup
>
<
script
setup
>
import
{
defineProps
,
defineEmits
}
from
'vue'
;
import
{
defineProps
,
defineEmits
,
watch
}
from
'vue'
;
import
{
jump
,
JumpType
}
from
'../../utils'
;
import
{
jump
,
JumpType
}
from
'../../utils'
;
import
md
from
'../../md.js'
;
// Props 定义
// Props 定义
const
props
=
defineProps
({
const
props
=
defineProps
({
visible
:
{
visible
:
{
...
@@ -75,6 +75,20 @@ const props = defineProps({
...
@@ -75,6 +75,20 @@ const props = defineProps({
// Emits 定义
// Emits 定义
const
emit
=
defineEmits
([
'close'
,
'record'
,
'prize'
]);
const
emit
=
defineEmits
([
'close'
,
'record'
,
'prize'
]);
// 监听 visible 值的变化
watch
(()
=>
props
.
visible
,
(
newVal
,
oldVal
)
=>
{
console
.
log
(
'InvitePrizePanel visible 值变化:'
,
{
newVal
,
oldVal
});
// 当 visible 变为 true 时执行埋点
if
(
newVal
)
{
md
.
sensorPopLogTake
({
xcxPopExposure
:
"true"
,
toolName
:
"邀请组件"
,
popName
:
"邀请成功弹窗"
});
}
});
// 关闭弹窗
// 关闭弹窗
const
handleClose
=
()
=>
{
const
handleClose
=
()
=>
{
emit
(
'close'
);
emit
(
'close'
);
...
@@ -82,6 +96,13 @@ const handleClose = () => {
...
@@ -82,6 +96,13 @@ const handleClose = () => {
// 查看邀请记录按钮点击事件
// 查看邀请记录按钮点击事件
const
handleRecordClick
=
()
=>
{
const
handleRecordClick
=
()
=>
{
md
.
sensorPopLogTake
({
xcxPopClick
:
"true"
,
toolName
:
"邀请组件"
,
popName
:
"邀请成功弹窗"
,
buttonName
:
"查看邀请明细"
});
jump
({
jump
({
type
:
1
,
type
:
1
,
url
:
'/pages/invate/invaterecords'
url
:
'/pages/invate/invaterecords'
...
@@ -92,6 +113,13 @@ const handleRecordClick = () => {
...
@@ -92,6 +113,13 @@ const handleRecordClick = () => {
// 查看奖品按钮点击事件
// 查看奖品按钮点击事件
const
handlePrizeClick
=
()
=>
{
const
handlePrizeClick
=
()
=>
{
md
.
sensorPopLogTake
({
xcxPopClick
:
"true"
,
toolName
:
"邀请组件"
,
popName
:
"邀请成功弹窗"
,
buttonName
:
"查看奖品"
});
console
.
log
(
'查看奖品按钮点击'
);
console
.
log
(
'查看奖品按钮点击'
);
if
(
props
.
prizeType
===
'credits'
)
{
if
(
props
.
prizeType
===
'credits'
)
{
const
urlStr
=
'https://mom.feihe.com/member/mine/newPointDetail?crmId={crmid}&appCode=XMH'
;
const
urlStr
=
'https://mom.feihe.com/member/mine/newPointDetail?crmId={crmid}&appCode=XMH'
;
...
...
components/renwu/TaskCompleteTips.vue
View file @
2986933c
...
@@ -30,7 +30,8 @@
...
@@ -30,7 +30,8 @@
</
template
>
</
template
>
<
script
setup
>
<
script
setup
>
import
{
defineProps
,
defineEmits
,
ref
}
from
'vue'
;
import
{
defineProps
,
defineEmits
,
ref
,
watch
}
from
'vue'
;
import
md
from
'../../md'
;
// Props 定义
// Props 定义
const
props
=
defineProps
({
const
props
=
defineProps
({
...
@@ -54,6 +55,18 @@ const emit = defineEmits(['close', 'accept']);
...
@@ -54,6 +55,18 @@ const emit = defineEmits(['close', 'accept']);
// 是否正在播放动画
// 是否正在播放动画
const
isAnimating
=
ref
(
false
);
const
isAnimating
=
ref
(
false
);
// 监听 visible 值的变化
watch
(()
=>
props
.
visible
,
(
newVal
)
=>
{
if
(
newVal
)
{
console
.
log
(
'埋点'
);
md
.
sensorPopLogTake
({
xcxPopExposure
:
"true"
,
toolName
:
"做任务赚积分"
,
popName
:
"任务完成弹窗"
});
}
});
// 关闭弹窗
// 关闭弹窗
const
handleClose
=
()
=>
{
const
handleClose
=
()
=>
{
emit
(
'close'
);
emit
(
'close'
);
...
...
components/renwu/TaskPop.vue
View file @
2986933c
...
@@ -44,6 +44,7 @@
...
@@ -44,6 +44,7 @@
<
script
setup
>
<
script
setup
>
import
{
defineProps
,
defineEmits
,
ref
,
onMounted
,
watch
}
from
'vue'
;
import
{
defineProps
,
defineEmits
,
ref
,
onMounted
,
watch
}
from
'vue'
;
import
{
useIntegralStore
}
from
'../../stores/integral'
;
import
{
useIntegralStore
}
from
'../../stores/integral'
;
import
md
from
'../../md.js'
;
// Props 定义
// Props 定义
const
props
=
defineProps
({
const
props
=
defineProps
({
...
@@ -57,6 +58,17 @@ const props = defineProps({
...
@@ -57,6 +58,17 @@ const props = defineProps({
}
}
});
});
onMounted
(()
=>
{
props
.
taskTodo
.
forEach
(
item
=>
{
md
.
sensorComponentLogTake
({
xcxComponentExposure
:
"true"
,
pageName
:
"任务面板页"
,
componentName
:
"做任务赚积分"
,
componentContent
:
item
.
taskTodoExtra
?.
title
});
});
});
// Emits 定义
// Emits 定义
const
emit
=
defineEmits
([
'close'
,
'taskClick'
]);
const
emit
=
defineEmits
([
'close'
,
'taskClick'
]);
...
@@ -98,6 +110,13 @@ const handleClose = () => {
...
@@ -98,6 +110,13 @@ const handleClose = () => {
// 任务点击事件
// 任务点击事件
const
handleTaskClick
=
(
task
,
index
)
=>
{
const
handleTaskClick
=
(
task
,
index
)
=>
{
md
.
sensorComponentLogTake
({
xcxComponentClick
:
"true"
,
pageName
:
"任务面板页"
,
componentName
:
"做任务赚积分"
,
componentContent
:
task
.
taskTodoExtra
?.
title
});
if
(
task
?.
taskTodoExtra
?.
status
===
'3'
)
{
if
(
task
?.
taskTodoExtra
?.
status
===
'3'
)
{
// 已完成的任务不触发跳转
// 已完成的任务不触发跳转
console
.
log
(
'任务已完成:'
,
task
?.
taskTodoExtra
?.
title
);
console
.
log
(
'任务已完成:'
,
task
?.
taskTodoExtra
?.
title
);
...
...
pages/invate/invaterecords.vue
View file @
2986933c
...
@@ -24,6 +24,7 @@
...
@@ -24,6 +24,7 @@
import
{
ref
,
onMounted
}
from
'vue'
;
import
{
ref
,
onMounted
}
from
'vue'
;
import
{
useIntegralStore
}
from
'@/stores/integral'
;
import
{
useIntegralStore
}
from
'@/stores/integral'
;
import
{
showLoading
,
hideLoading
}
from
'@/utils'
;
import
{
showLoading
,
hideLoading
}
from
'@/utils'
;
import
md
from
'../../md'
;
const
integralStore
=
useIntegralStore
();
const
integralStore
=
useIntegralStore
();
const
records
=
ref
([]);
const
records
=
ref
([]);
...
@@ -66,6 +67,13 @@ const formatTimestamp = (timestamp) => {
...
@@ -66,6 +67,13 @@ const formatTimestamp = (timestamp) => {
};
};
onMounted
(
async
()
=>
{
onMounted
(
async
()
=>
{
md
.
sensorComponentLogTake
({
xcxComponentExposure
:
"true"
,
pageName
:
"邀请记录页"
,
componentName
:
"邀请记录"
,
componentContent
:
"邀请记录"
});
showLoading
(
'加载中...'
);
showLoading
(
'加载中...'
);
try
{
try
{
await
integralStore
.
getInvitationList
();
await
integralStore
.
getInvitationList
();
...
...
pages/invate/sharepage.vue
View file @
2986933c
...
@@ -55,6 +55,7 @@ import { jump, JumpType, showLoading, hideLoading } from '../../utils';
...
@@ -55,6 +55,7 @@ import { jump, JumpType, showLoading, hideLoading } from '../../utils';
import
{
useGlobalStore
}
from
'@/stores/global'
;
import
{
useGlobalStore
}
from
'@/stores/global'
;
import
{
useUserStore
}
from
'@/stores/user'
;
import
{
useUserStore
}
from
'@/stores/user'
;
import
{
useIntegralStore
}
from
'@/stores/integral'
;
import
{
useIntegralStore
}
from
'@/stores/integral'
;
import
md
from
'../../md'
;
// 分享登录弹窗状态
// 分享登录弹窗状态
const
showSharePopLogin
=
ref
(
false
);
const
showSharePopLogin
=
ref
(
false
);
...
@@ -111,6 +112,12 @@ const initInviteParams = () => {
...
@@ -111,6 +112,12 @@ const initInviteParams = () => {
};
};
onMounted
(
async
()
=>
{
onMounted
(
async
()
=>
{
md
.
sensorComponentLogTake
({
xcxComponentExposure
:
"true"
,
pageName
:
"新人福利页"
,
componentName
:
"新人福利页"
,
componentContent
:
"立即领取"
});
showLoading
();
showLoading
();
// 先进行自动登录获取基础信息,登录成功后执行页面初始化
// 先进行自动登录获取基础信息,登录成功后执行页面初始化
...
@@ -322,6 +329,13 @@ const handleViewBenefits = () => {
...
@@ -322,6 +329,13 @@ const handleViewBenefits = () => {
// 一键领取按钮点击事件
// 一键领取按钮点击事件
const
handleClaim
=
()
=>
{
const
handleClaim
=
()
=>
{
md
.
sensorComponentLogTake
({
xcxComponentClick
:
"true"
,
pageName
:
"新人福利页"
,
componentName
:
"新人福利页"
,
componentContent
:
"立即领取"
});
if
(
!
isLogin
.
value
)
{
if
(
!
isLogin
.
value
)
{
showPhone
.
value
=
true
;
showPhone
.
value
=
true
;
return
;
return
;
...
...
views/Integral.vue
View file @
2986933c
...
@@ -284,7 +284,8 @@
...
@@ -284,7 +284,8 @@
<view class="
vip
-
active
-
area
" v-if="
vipActive
?.
length
>
0
">
<view class="
vip
-
active
-
area
" v-if="
vipActive
?.
length
>
0
">
<text class="
vip
-
title
" :style="
{
color
:
itemIndex
===
4
?
'#fff0df'
:
'#1d1e25'
}
">会员活动</text>
<text class="
vip
-
title
" :style="
{
color
:
itemIndex
===
4
?
'#fff0df'
:
'#1d1e25'
}
">会员活动</text>
<swiper class="
vip
-
active
-
swiper
" :indicator-dots="
vipActive
?.
length
>
1
" :autoplay="
true
" :circular="
true
"
<swiper class="
vip
-
active
-
swiper
" :indicator-dots="
vipActive
?.
length
>
1
" :autoplay="
true
" :circular="
true
"
indicator-color="
#
dfddd9
" indicator-active-color="
#
b27c1e
" :indicator-top="
32
">
indicator-color="
#
dfddd9
" indicator-active-color="
#
b27c1e
" :indicator-top="
32
"
@change="
handleVipActiveSwipe
">
<swiper-item v-for="
(
item
,
index
)
in
vipActive
" :key="
index
">
<swiper-item v-for="
(
item
,
index
)
in
vipActive
" :key="
index
">
<image class="
vip
-
active
-
img
"
<image class="
vip
-
active
-
img
"
:src="
item
?.
img
.
indexOf
(
'http'
)
!==
-
1
?
item
?.
img
:
$baseUrl
+
`${item?.img
}
`" mode="
aspectFit
"
:src="
item
?.
img
.
indexOf
(
'http'
)
!==
-
1
?
item
?.
img
:
$baseUrl
+
`${item?.img
}
`" mode="
aspectFit
"
...
@@ -365,7 +366,7 @@
...
@@ -365,7 +366,7 @@
<
view
v
-
for
=
"(tab, index) in goodsDataArr"
:
key
=
"index"
class
=
"tab-item"
:
class
=
"{
<
view
v
-
for
=
"(tab, index) in goodsDataArr"
:
key
=
"index"
class
=
"tab-item"
:
class
=
"{
active: activeIndex === index && itemIndex !== 4,
active: activeIndex === index && itemIndex !== 4,
active1: activeIndex === index && itemIndex === 4
active1: activeIndex === index && itemIndex === 4
}
"
@
click
=
"tabItemClick(index)"
>
}
"
@
click
=
"tabItemClick(index
, tab
)"
>
<
text
class
=
"tab-line1"
>
{{
tab
?.
resourcePositionName
}}
<
/text
>
<
text
class
=
"tab-line1"
>
{{
tab
?.
resourcePositionName
}}
<
/text
>
<!--
<
text
class
=
"tab-line1"
>
{{
tab
?.
line1
}}
<
/text> --
>
<!--
<
text
class
=
"tab-line1"
>
{{
tab
?.
line1
}}
<
/text> --
>
<!--
<
text
class
=
"tab-line2"
>
{{
tab
?.
line2
}}
<
/text> --
>
<!--
<
text
class
=
"tab-line2"
>
{{
tab
?.
line2
}}
<
/text> --
>
...
@@ -1759,10 +1760,42 @@ const getWeekdayLabel = (day) => {
...
@@ -1759,10 +1760,42 @@ const getWeekdayLabel = (day) => {
// 监听 scrollTop 变化
// 监听 scrollTop 变化
watch
(()
=>
props
.
scrollTop
,
(
newVal
)
=>
{
watch
(()
=>
props
.
scrollTop
,
(
newVal
)
=>
{
//
console.log('scrollTop 变化:', newVal)
console
.
log
(
'scrollTop 变化:'
,
newVal
)
// 执行相关逻辑,如曝光检测
// 执行相关逻辑,如曝光检测
if
(
newVal
>
650
)
{
if
(
newVal
>
650
&&
newVal
<
1200
)
{
if
(
mdMap
.
value
.
indexOf
(
'异业券权益'
)
==
-
1
)
{
mdMap
.
value
.
push
(
'异业券权益'
);
if
(
benefitList
.
value
.
length
>
0
)
{
md
.
sensorComponentLogTake
({
xcxComponentExposure
:
"true"
,
pageName
:
"积分服务页"
,
componentName
:
"异业券权益"
,
componentContent
:
"异业券权益"
}
);
}
}
if
(
mdMap
.
value
.
indexOf
(
'邀请记录曝光'
)
==
-
1
)
{
mdMap
.
value
.
push
(
'邀请记录曝光'
);
if
(
integralStore
.
originInviteHome
?.
data
)
{
md
.
sensorComponentLogTake
({
xcxComponentExposure
:
"true"
,
pageName
:
"积分服务页"
,
componentName
:
"邀请组件"
,
componentContent
:
"去邀请"
}
);
md
.
sensorComponentLogTake
({
xcxComponentExposure
:
"true"
,
pageName
:
"积分服务页"
,
componentName
:
"邀请组件"
,
componentContent
:
"邀请记录"
}
);
}
}
if
(
mdMap
.
value
.
indexOf
(
'积分服务页-二屏'
)
==
-
1
)
{
if
(
mdMap
.
value
.
indexOf
(
'积分服务页-二屏'
)
==
-
1
)
{
md
.
sensorLogTake
({
md
.
sensorLogTake
({
...
@@ -1772,9 +1805,20 @@ const getWeekdayLabel = (day) => {
...
@@ -1772,9 +1805,20 @@ const getWeekdayLabel = (day) => {
mdMap
.
value
.
push
(
'积分服务页-二屏'
);
mdMap
.
value
.
push
(
'积分服务页-二屏'
);
}
}
const
item
=
vipActive
.
value
[
0
];
if
(
mdMap
.
value
.
indexOf
(
item
.
title
)
==
-
1
)
{
md
.
sensorComponentLogTake
({
xcxComponentExposure
:
"true"
,
pageName
:
"积分服务页"
,
componentName
:
"会员活动"
,
componentContent
:
item
.
title
}
);
mdMap
.
value
.
push
(
item
.
title
);
}
}
}
if
(
newVal
>
1
32
8
)
{
if
(
newVal
>
1
200
&&
newVal
<
205
8
)
{
if
(
mdMap
.
value
.
indexOf
(
'积分服务页-三屏'
)
==
-
1
)
{
if
(
mdMap
.
value
.
indexOf
(
'积分服务页-三屏'
)
==
-
1
)
{
md
.
sensorLogTake
({
md
.
sensorLogTake
({
...
@@ -1784,9 +1828,20 @@ const getWeekdayLabel = (day) => {
...
@@ -1784,9 +1828,20 @@ const getWeekdayLabel = (day) => {
mdMap
.
value
.
push
(
'积分服务页-三屏'
);
mdMap
.
value
.
push
(
'积分服务页-三屏'
);
}
}
const
item1
=
goodsDataArr
.
value
[
0
];
if
(
mdMap
.
value
.
indexOf
(
item1
.
resourcePositionName
)
==
-
1
)
{
md
.
sensorComponentLogTake
({
xcxComponentExposure
:
"true"
,
pageName
:
"积分服务页"
,
componentName
:
"积分商品tab选择"
,
componentContent
:
item1
.
resourcePositionName
}
);
mdMap
.
value
.
push
(
item1
.
resourcePositionName
);
}
}
}
if
(
newVal
>
2058
)
{
if
(
newVal
>
2058
&&
newVal
<
2788
)
{
if
(
mdMap
.
value
.
indexOf
(
'积分服务页-四屏'
)
==
-
1
)
{
if
(
mdMap
.
value
.
indexOf
(
'积分服务页-四屏'
)
==
-
1
)
{
md
.
sensorLogTake
({
md
.
sensorLogTake
({
...
@@ -1869,22 +1924,23 @@ onMounted(async () => {
...
@@ -1869,22 +1924,23 @@ onMounted(async () => {
componentContent
:
"查看升级攻略"
componentContent
:
"查看升级攻略"
}
);
}
);
const
{
data
}
=
await
fetchIntegralJSON
();
const
{
data
}
=
await
fetchIntegralJSON
();
integralData
.
value
=
{
...
data
}
;
integralData
.
value
=
{
...
data
}
;
let
bannerData
=
integralData
?.
value
?.
banner
;
let
bannerData
=
integralData
?.
value
?.
banner
;
vipActive
.
value
=
[];
vipActive
.
value
=
[];
bannerData
?.
forEach
(
item
=>
{
bannerData
?.
forEach
(
item
=>
{
vipActive
.
value
.
push
({
vipActive
.
value
.
push
({
"img"
:
item
.
url
,
"img"
:
item
.
url
,
"url"
:
item
.
link
.
url
,
"url"
:
item
.
link
.
url
,
"type"
:
item
.
link
.
type
,
"type"
:
item
.
link
.
type
,
"extra"
:
item
.
link
.
extra
"extra"
:
item
.
link
.
extra
,
"title"
:
item
.
title
,
}
);
}
);
}
);
}
);
goodsDataArr
.
value
=
integralData
?.
value
?.
goodsList
;
goodsDataArr
.
value
=
integralData
?.
value
?.
goodsList
;
...
@@ -1894,7 +1950,7 @@ onMounted(async () => {
...
@@ -1894,7 +1950,7 @@ onMounted(async () => {
vipLvNameImgs
.
value
=
integralData
.
value
?.
viplv
?.
vipNameImgs
;
vipLvNameImgs
.
value
=
integralData
.
value
?.
viplv
?.
vipNameImgs
;
vipIntegral
.
value
=
integralData
.
value
?.
vipIntegral
;
vipIntegral
.
value
=
integralData
.
value
?.
vipIntegral
;
clickMore
.
value
=
integralData
.
value
?.
clickMore
;
clickMore
.
value
=
integralData
.
value
?.
clickMore
;
// vipActive.value = integralData.value?.vipActive;
// vipActive.value = integralData.value?.vipActive;
tabInfo
.
value
=
integralData
.
value
?.
goodsListData
?.
tabInfo
;
tabInfo
.
value
=
integralData
.
value
?.
goodsListData
?.
tabInfo
;
listCommon
.
value
=
integralData
.
value
?.
goodsListData
?.
listCommon
;
listCommon
.
value
=
integralData
.
value
?.
goodsListData
?.
listCommon
;
goodsData
.
value
=
integralData
.
value
?.
goodsListData
?.
goodsData
;
goodsData
.
value
=
integralData
.
value
?.
goodsListData
?.
goodsData
;
...
@@ -1909,12 +1965,12 @@ onMounted(async () => {
...
@@ -1909,12 +1965,12 @@ onMounted(async () => {
quanyitiaozhuanInfo
.
value
=
integralData
.
value
?.
quanyitiaozhuanInfo
;
quanyitiaozhuanInfo
.
value
=
integralData
.
value
?.
quanyitiaozhuanInfo
;
quanyiListIcon
.
value
=
[];
quanyiListIcon
.
value
=
[];
imgInfos
.
value
.
forEach
((
element
,
index
)
=>
{
imgInfos
.
value
.
forEach
((
element
,
index
)
=>
{
quanyiListIcon
.
value
.
push
(
element
.
img
);
quanyiListIcon
.
value
.
push
(
element
.
img
);
privilegeSizes
.
value
.
push
({
width
:
element
.
width
,
height
:
element
.
height
,
name
:
element
.
name
}
);
privilegeSizes
.
value
.
push
({
width
:
element
.
width
,
height
:
element
.
height
,
name
:
element
.
name
}
);
}
);
}
);
await
userStore
.
loadMemberInfo
();
await
userStore
.
loadMemberInfo
();
await
integralStore
.
getSigninAndTaskInfo
();
await
integralStore
.
getSigninAndTaskInfo
();
await
integralStore
.
getPointsBenefitCoupon
();
await
integralStore
.
getPointsBenefitCoupon
();
...
@@ -1922,6 +1978,16 @@ onMounted(async () => {
...
@@ -1922,6 +1978,16 @@ onMounted(async () => {
ruleTextVal
.
value
=
integralStore
.
signinAndTaskInfo
?.
data
?.
checkInTodo
?.
checkInExtra
?.
rule
;
ruleTextVal
.
value
=
integralStore
.
signinAndTaskInfo
?.
data
?.
checkInTodo
?.
checkInExtra
?.
rule
;
if
(
integralStore
?.
signinAndTaskInfo
?.
data
?.
checkInTodo
?.
checkInExtra
?.
rule
)
{
md
.
sensorComponentLogTake
({
xcxComponentExposure
:
"true"
,
pageName
:
"积分服务页"
,
componentName
:
"签到组件"
,
componentContent
:
"立即签到"
}
);
}
//初始化签掉数据
//初始化签掉数据
initSignin
();
initSignin
();
...
@@ -1986,7 +2052,7 @@ onMounted(async () => {
...
@@ -1986,7 +2052,7 @@ onMounted(async () => {
}
);
}
);
}
}
const
initSignin
=
()
=>
{
const
initSignin
=
()
=>
{
if
(
!
integralStore
?.
signinAndTaskInfo
?.
success
)
{
if
(
!
integralStore
?.
signinAndTaskInfo
?.
success
)
{
uni
.
showToast
({
uni
.
showToast
({
title
:
'获取签到信息失败,请稍后重试'
,
title
:
'获取签到信息失败,请稍后重试'
,
...
@@ -2255,7 +2321,7 @@ const initPointsBenefitCoupon = () => {
...
@@ -2255,7 +2321,7 @@ const initPointsBenefitCoupon = () => {
}
);
}
);
const
url
=
vipIntegral
.
value
.
jifenmingxi
.
url
.
replace
(
"{crmid
}
"
,
memberInfo
.
value
.
memberId
);
const
url
=
vipIntegral
.
value
.
jifenmingxi
.
url
.
replace
(
"{crmid
}
"
,
memberInfo
.
value
.
memberId
);
const
type
=
vipIntegral
.
value
.
jifenmingxi
.
type
;
const
type
=
vipIntegral
.
value
.
jifenmingxi
.
type
;
console
.
log
(
'积分明细链接:=='
,
url
)
console
.
log
(
'积分明细链接:=='
,
url
)
jump
({
jump
({
type
:
type
,
type
:
type
,
...
@@ -2263,37 +2329,52 @@ const initPointsBenefitCoupon = () => {
...
@@ -2263,37 +2329,52 @@ const initPointsBenefitCoupon = () => {
}
)
}
)
}
}
//会员活动swiper切换事件
const
handleVipActiveSwipe
=
(
e
)
=>
{
const
index
=
e
.
detail
.
current
;
const
item
=
vipActive
.
value
[
index
];
console
.
log
(
'vip-active-swiper切换:'
,
{
item
,
index
}
);
md
.
sensorComponentLogTake
({
xcxComponentExposure
:
"true"
,
pageName
:
"积分服务页"
,
componentName
:
"会员活动"
,
componentContent
:
item
.
title
}
);
}
;
//会员活动点击事件
//会员活动点击事件
const
handleVipActiveClick
=
(
index
,
item
)
=>
{
const
handleVipActiveClick
=
(
index
,
item
)
=>
{
console
.
log
(
'handleVipActiveClick==:'
,
item
);
console
.
log
(
'handleVipActiveClick==:'
,
item
);
let
buttonName
=
''
;
let
buttonName
=
''
;
switch
(
index
)
{
buttonName
=
item
?.
title
;
case
0
:
// switch (index)
{
buttonName
=
'第一张焦点图'
;
// case 0:
break
;
// buttonName = '第一张焦点图';
case
1
:
// break;
buttonName
=
'第二张焦点图'
;
// case 1:
break
;
// buttonName = '第二张焦点图';
case
2
:
// break;
buttonName
=
'第三张焦点图'
;
// case 2:
break
;
// buttonName = '第三张焦点图';
case
3
:
// break;
buttonName
=
'第四张焦点图'
;
// case 3:
break
;
// buttonName = '第四张焦点图';
case
4
:
// break;
buttonName
=
'第五张焦点图'
;
// case 4:
break
;
// buttonName = '第五张焦点图';
case
5
:
// break;
buttonName
=
'第六张焦点图'
;
// case 5:
break
;
// buttonName = '第六张焦点图';
case
6
:
// break;
buttonName
=
'第七张焦点图'
;
// case 6:
break
;
// buttonName = '第七张焦点图';
}
// break;
//
}
md
.
sensorLogTake
({
md
.
sensorLogTake
({
xcxClick
:
"积分服务页
-二屏页面点击
"
,
xcxClick
:
"积分服务页"
,
pageName
:
"
积分服务页-二屏
"
,
pageName
:
"
会员活动
"
,
buttonName
:
buttonName
,
buttonName
:
buttonName
,
}
);
}
);
...
@@ -2330,54 +2411,64 @@ const convertType = (type, url, extra = {}) => {
...
@@ -2330,54 +2411,64 @@ const convertType = (type, url, extra = {}) => {
//商品点击
//商品点击
const
handleGoodsItemClick
=
(
goodsItem
,
googidx
)
=>
{
const
handleGoodsItemClick
=
(
goodsItem
,
googidx
)
=>
{
console
.
log
(
'handleGoodsItemClick:'
,
goodsItem
,
googidx
);
console
.
log
(
'handleGoodsItemClick:'
,
goodsItem
,
googidx
);
let
buttonName0
=
''
;
const
tabname
=
goodsDataArr
[
activeIndex
.
value
].
resourcePositionName
;
let
buttonName1
=
''
;
const
buttonName
=
goodsItem
.
goodsName
;
switch
(
activeIndex
.
value
)
{
case
0
:
buttonName0
=
'品牌活动版分类1'
;
break
;
case
1
:
buttonName0
=
'品牌活动版分类2'
;
break
;
case
2
:
buttonName0
=
'品牌活动版分类3'
;
break
;
}
buttonName1
=
`-商品${googidx
}
`
;
md
.
sensorComponentLogTake
({
md
.
sensorLogTake
({
xcxComponentClick
:
"true"
,
xcxClick
:
"积分服务页-二屏页面点击
"
,
pageName
:
"积分服务页
"
,
pageName
:
"积分服务页-二三四屏
"
,
componentName
:
"积分商品
"
,
buttonName
:
buttonName0
+
buttonName1
,
componentContent
:
tabname
+
'-'
+
buttonName
}
);
}
);
//原逻辑
// let buttonName0 = '';
// let item = productIdUrl.value[goodsItem][googidx - 1];
// let buttonName1 = '';
// const url = item.url.replace('
{
productId
}
', item.productId).replace('
{
skuId
}
', item.skuId);
// switch (activeIndex.value)
{
// const type = item.type;
// case 0:
// const extra = item.extra;
// buttonName0 = '品牌活动版分类1';
// break;
// case 1:
// buttonName0 = '品牌活动版分类2';
// break;
// case 2:
// buttonName0 = '品牌活动版分类3';
// break;
//
}
// buttonName1 = `-商品$
{
googidx
}
`;
// md.sensorLogTake({
// xcxClick: "积分服务页-二屏页面点击",
// pageName: "积分服务页-二三四屏",
// buttonName: buttonName0 + buttonName1,
//
}
);
//该B端配置后
//原逻辑
const url = goodsItem.url;
// let item = productIdUrl.value[goodsItem][googidx - 1];
const type = goodsItem.urlType;
// const url = item.url.replace('{productId
}
', item.productId).replace('{skuId
}
', item.skuId);
const extra = {
// const type = item.type;
"appId": goodsItem.wxAppId,
// const extra = item.extra;
"envVersion": goodsItem.envVersion
}
;
console.log('
goodsItem
.
url
:
', url);
//该B端配置后
const url = goodsItem.url;
const type = goodsItem.urlType;
const extra = {
"appId": goodsItem.wxAppId,
"envVersion": goodsItem.envVersion
}
;
extra.embedded = true; //半屏拉起小程序
console.log('goodsItem.url:', url);
extra.embedded = true; //半屏拉起小程序
jump({
jump({
type: Number(type),
type: Number(type),
url: url,
url: url,
extra: extra
extra: extra,
}
)
}
)
}
}
...
@@ -2414,30 +2505,44 @@ const handleGoodsItemClick = (goodsItem, googidx) => {
...
@@ -2414,30 +2505,44 @@ const handleGoodsItemClick = (goodsItem, googidx) => {
}
;
}
;
const tabItemClick = (index) => {
const tabItemClick = (index
, item
) => {
activeIndex.value = index;
activeIndex.value = index;
let buttonName = '';
let buttonName = '';
switch (index) {
buttonName = item.resourcePositionName;
case 0:
// switch (index) {
buttonName = '
品牌活动版块部分
-
分类
1
';
// case 0:
break;
// buttonName = '品牌活动版块部分-分类1';
case 1:
// break;
buttonName = '
品牌活动版块部分
-
分类
2
';
// case 1:
break;
// buttonName = '品牌活动版块部分-分类2';
case 2:
// break;
buttonName = '
品牌活动版块部分
-
分类
3
';
// case 2:
break;
// buttonName = '品牌活动版块部分-分类3';
}
// break;
//
}
console.log('
buttonName
=
', buttonName);
//
console.log('buttonName=', buttonName);
md.sensorLogTake({
md.sensorComponentLogTake({
xcxClick: "积分服务页-二屏页面点击",
xcxComponentClick: "true",
pageName: "积分服务页-二屏",
pageName: "积分服务页",
buttonName: buttonName,
componentName: "积分商品tab选择",
componentContent: buttonName
}
);
}
);
md.sensorComponentLogTake({
xcxComponentExposure: "true",
pageName: "积分服务页",
componentName: "积分商品tab选择",
componentContent: buttonName
}
);
// md.sensorLogTake({
// xcxClick: "积分服务页-二屏页面点击",
// pageName: "积分服务页-二屏",
// buttonName: buttonName,
//
}
);
}
}
// 处理查看更多点击
// 处理查看更多点击
...
@@ -2733,6 +2838,13 @@ const handleHelpClick = () => {
...
@@ -2733,6 +2838,13 @@ const handleHelpClick = () => {
const handleSigninClick = async () => {
const handleSigninClick = async () => {
console.log('签到按钮点击');
console.log('签到按钮点击');
md.sensorComponentLogTake({
xcxComponentClick: "true",
pageName: "积分服务页",
componentName: "签到组件",
componentContent: "立即签到"
}
);
if (!islogin.value) {
if (!islogin.value) {
needReinit.value = true;
needReinit.value = true;
jump({
jump({
...
@@ -2742,13 +2854,6 @@ const handleSigninClick = async () => {
...
@@ -2742,13 +2854,6 @@ const handleSigninClick = async () => {
return;
return;
}
}
// 埋点统计
md.sensorLogTake({
xcxClick: "积分服务页-签到奖励页面点击",
pageName: "积分服务页-签到奖励",
buttonName: "立即签到",
}
);
const data = await integralStore.checkIn(signinInfo.value.id, );
const data = await integralStore.checkIn(signinInfo.value.id, );
console.log('datacheckIn=', data);
console.log('datacheckIn=', data);
if (data.success) {
if (data.success) {
...
@@ -2814,6 +2919,13 @@ const handleCloseGongzhonghaoPop = () => {
...
@@ -2814,6 +2919,13 @@ const handleCloseGongzhonghaoPop = () => {
const handleExchangeClick = (benefit, index) => {
const handleExchangeClick = (benefit, index) => {
console.log('兑换权益:', benefit);
console.log('兑换权益:', benefit);
md.sensorComponentLogTake({
xcxComponentClick: "true",
pageName: "积分服务页",
componentName: "异业券权益",
componentContent: benefit.goodsName
}
);
if (!islogin.value) {
if (!islogin.value) {
needReinit.value = true;
needReinit.value = true;
jump({
jump({
...
@@ -2860,13 +2972,12 @@ const handleExchangeClick = (benefit, index) => {
...
@@ -2860,13 +2972,12 @@ const handleExchangeClick = (benefit, index) => {
const handleInviteClick = () => {
const handleInviteClick = () => {
console.log('去邀请按钮点击');
console.log('去邀请按钮点击');
// 埋点统计
md.sensorComponentLogTake({
md.sensorLogTake({
xcxComponentClick: "true",
xcxClick: "积分服务页-邀请得好礼页面点击",
pageName: "积分服务页",
pageName: "积分服务页-邀请得好礼",
componentName: "邀请组件",
buttonName: "去邀请",
componentContent: "去邀请"
}
);
}
);
console.log('islogin.valuehandleInviteClick=', islogin.value);
console.log('islogin.valuehandleInviteClick=', islogin.value);
if (!islogin.value) {
if (!islogin.value) {
needReinit.value = true;
needReinit.value = true;
...
@@ -2907,6 +3018,12 @@ const handleInviteClick = () => {
...
@@ -2907,6 +3018,12 @@ const handleInviteClick = () => {
// 处理邀请记录按钮点击
// 处理邀请记录按钮点击
const handleRecordClick = () => {
const handleRecordClick = () => {
console.log('邀请记录按钮点击');
console.log('邀请记录按钮点击');
md.sensorComponentLogTake({
xcxComponentClick: "true",
pageName: "积分服务页",
componentName: "邀请组件",
componentContent: "邀请记录"
}
);
if (!islogin.value) {
if (!islogin.value) {
needReinit.value = true;
needReinit.value = true;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment