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
4c149dff
Commit
4c149dff
authored
Oct 13, 2025
by
劳琪峰
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
chore: 修改1015活动页测试入口
parent
eeec8ba5
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
208 additions
and
194 deletions
+208
-194
home.vue
activities/1015/home.vue
+0
-4
ruleModal.vue
activities/1015/lottery/components/ruleModal/ruleModal.vue
+54
-47
rulemodal.less
activities/1015/lottery/components/ruleModal/rulemodal.less
+4
-0
config.js
activities/1015/lottery/config.js
+2
-1
Integral.vue
views/Integral.vue
+148
-142
No files found.
activities/1015/home.vue
View file @
4c149dff
...
...
@@ -22,9 +22,6 @@
:debug-mode=
"true"
/>
</
template
>
<GotPrizeModal
:visible=
"showGotPrizeModal"
:award-name=
"currentAwardName"
:award-image-url=
"currentAwardImageUrl"
@
close=
"handleGotPrizeModalClose"
@
happy-get=
"handleHappyGet"
/>
</view>
</template>
...
...
@@ -34,7 +31,6 @@ import {ref, onMounted, computed, getCurrentInstance, provide} from 'vue'
import
{
fetchPageConfig
}
from
'./api.ts'
import
{
useHomeStore
}
from
'@/stores/home'
;
// Assuming homeStore path
import
{
useUserStore
}
from
'@/stores/user'
;
// Import userStore
import
GotPrizeModal
from
'./components/GotPrizeModal.vue'
;
// Import GotPrizeModal if needed
import
ClickArea
from
"./components/ClickArea.vue"
;
import
ImageSwiper
from
"./components/ImageSwiper.vue"
;
import
InviteTask
from
"./components/InviteTask.vue"
;
...
...
activities/1015/lottery/components/ruleModal/ruleModal.vue
View file @
4c149dff
<
template
>
<view
class=
"rulemodal"
v-if=
"visible"
>
<!-- 蒙层 -->
<view
class=
"rulemodal-mask"
@
click=
"handleCloseClick"
></view>
<!-- 弹窗内容 -->
<view
class=
"rulemodal-content"
>
<view
class=
"rulemodal"
v-if=
"visible"
>
<!-- 蒙层 -->
<view
class=
"rulemodal-mask"
@
click=
"handleCloseClick"
></view>
<!-- 弹窗内容 -->
<view
class=
"rulemodal-content"
>
<p
class=
"rulemodal-title"
>
活动规则
</p>
<!-- 规则内容区域 - 支持滚动 -->
<view
class=
"rulemodal-text-container"
>
<image
class=
"rulemodaltextimg"
:src=
"`$
{$baseUrl}${getRuleImgUrl()}`"
mode="widthFix"
@load="console.log('规则图片加载成功')"
@error="console.log('规则图片加载失败')">
</image>
</view>
<!-- 规则内容区域 - 支持滚动 -->
<view
class=
"rulemodal-text-container"
>
<!--
<image
class=
"rulemodaltextimg"
:src=
"`$
{$baseUrl}${getRuleImgUrl()}`"
mode="widthFix"
@load="console.log('规则图片加载成功')"
@error="console.log('规则图片加载失败')">
</image>
-->
<view
class=
"rulemodal-text"
>
<p
v-for=
"(item, index) in ruleLines"
:key=
"index"
>
{{
item
}}
</p>
</view>
</view>
<span
class=
"rulemodalclosebtn"
:style=
"
{ backgroundImage: `url(${getImageUrl(config.images.closeBtn)})` }"
@click="handleCloseClick">
</span>
</view>
</view>
<span
class=
"rulemodalclosebtn"
:style=
"
{ backgroundImage: `url(${getImageUrl(config.images.closeBtn)})` }"
@click="handleCloseClick">
</span>
</view>
</view>
</
template
>
<
script
setup
>
import
{
act1015RuleModalConfig
,
getImageUrl
}
from
'./config.js'
import
{
getCurrentInstance
}
from
'vue'
import
{
act1015RuleModalConfig
,
getImageUrl
}
from
'./config.js'
import
{
getCurrentInstance
,
computed
}
from
'vue'
// 组件名称
defineOptions
({
name
:
'RuleModal'
name
:
'RuleModal'
})
// 获取全局属性
const
{
proxy
}
=
getCurrentInstance
()
const
{
proxy
}
=
getCurrentInstance
()
const
$baseUrl
=
proxy
.
$baseUrl
// Props
const
props
=
defineProps
({
visible
:
{
type
:
Boolean
,
default
:
false
},
rules
:
{
type
:
String
,
default
:
''
},
config
:
{
type
:
Object
,
default
:
()
=>
({})
}
visible
:
{
type
:
Boolean
,
default
:
false
},
rules
:
{
type
:
String
,
default
:
''
},
config
:
{
type
:
Object
,
default
:
()
=>
({})
}
})
// Emits
const
emit
=
defineEmits
([
'close'
])
const
ruleLines
=
computed
(()
=>
{
return
props
.
rules
.
split
(
'
\
n'
)
})
// 配置对象
const
config
=
act1015RuleModalConfig
// 获取规则图片URL
const
getRuleImgUrl
=
()
=>
{
// 优先使用接口返回的 ruleImg
if
(
props
.
config
&&
props
.
config
.
ruleImg
)
{
console
.
log
(
'使用接口返回的 ruleImg:'
,
props
.
config
.
ruleImg
)
return
props
.
config
.
ruleImg
}
// 回退到默认配置
console
.
log
(
'使用默认配置的 textImg:'
,
config
.
images
.
textImg
)
const
defaultUrl
=
getImageUrl
(
config
.
images
.
textImg
)
console
.
log
(
'默认图片URL:'
,
defaultUrl
)
return
defaultUrl
// 优先使用接口返回的 ruleImg
if
(
props
.
config
&&
props
.
config
.
ruleImg
)
{
console
.
log
(
'使用接口返回的 ruleImg:'
,
props
.
config
.
ruleImg
)
return
props
.
config
.
ruleImg
}
// 回退到默认配置
console
.
log
(
'使用默认配置的 textImg:'
,
config
.
images
.
textImg
)
const
defaultUrl
=
getImageUrl
(
config
.
images
.
textImg
)
console
.
log
(
'默认图片URL:'
,
defaultUrl
)
return
defaultUrl
}
// 关闭按钮点击处理
const
handleCloseClick
=
()
=>
{
console
.
log
(
'关闭规则弹窗'
)
emit
(
'close'
)
console
.
log
(
'关闭规则弹窗'
)
emit
(
'close'
)
}
</
script
>
...
...
activities/1015/lottery/components/ruleModal/rulemodal.less
View file @
4c149dff
...
...
@@ -81,6 +81,10 @@
object-fit: contain;
display: block;
}
.rulemodal-text{
padding: 40rpx;
}
}
.rulemodalclosebtn {
...
...
activities/1015/lottery/config.js
View file @
4c149dff
const
version
=
'v1'
const
baseUrl
=
'http://127.0.0.1:8080/activity/1015'
//const baseUrl = 'http://127.0.0.1:8080/activity/1015'
const
baseUrl
=
'https://course.feihe.com/momclub-picture/activity/1015'
function
getCdnUrl
(
path
){
return
`
${
baseUrl
}
/
${
version
}
/
${
path
}
`
...
...
views/Integral.vue
View file @
4c149dff
...
...
@@ -64,7 +64,7 @@
<button
v-if=
"!islogin"
type=
"primary"
type=
"primary"
class=
"phone-button"
open-type=
"getPhoneNumber"
@
getphonenumber=
"getRealtimePhoneNumber"
...
...
@@ -74,7 +74,7 @@
<view
class=
"saoma-tips"
@
click=
"integralHandler"
v-if=
"memberInfo.grade == 0 && !memberInfo.orderUpgrade && points >= 1"
>
<text
class=
"saoma-tips-text"
:style=
"
{ color: getColor('saomaTips')[index]?.textColor }"
>扫罐内码或下单有机会升级至
<text
class=
"saoma-tips-text-lv"
:style=
"
{ color: getColor('saomaTips')[index]?.jifenColor }"
...
...
@@ -90,7 +90,7 @@
:style=
"
{ color: getColor('saomaTips')[index]?.textColor }"
>/
{{
getHuangjinMaxVal
()[
index
]
}}
</text>
</text>
</view>
<view
class=
"jifen-progressbar"
v-if=
"getHuangjinMaxVal()[index] != -1 && !(memberInfo.grade == 0 && !memberInfo.orderUpgrade && points >= 1)"
...
...
@@ -109,11 +109,11 @@
:style=
"
{ color: getColor('jifen')[index]?.totalPoints }">
{{
getHuangjinMaxVal
()[
index
]
}}
</text>
</text>
</view>
<!-- 进度条 -->
<view
class=
"progress-bar-container"
>
<!-- 进度条背景图片 -->
<image
<image
:src=
"$baseUrl + `integral/$
{tupianBanben}/barBgVip${index}.png`"
class="progress-bar-bg"
mode="aspectFit"
...
...
@@ -139,7 +139,7 @@
>
查看升级攻略
</text>
<!--
<view
class=
"vip-info"
>
<text
class=
"vip-name"
:style=
"
{
...
...
@@ -155,15 +155,15 @@
:
src
=
"$baseUrl + `integral/${tupianBanben
}
/${item?.vipNameImg
}
`"
mode
=
"aspectFit"
/>
<
image
<
image
v
-
if
=
"!islogin"
class
=
"rule-icon"
:
src
=
"$baseUrl + `integral/${tupianBanben
}
/integralArrow.png`"
mode
=
"aspectFit"
/>
<
/view
>
<
/view> --
>
<
/swiper-item
>
<
/swiper
>
...
...
@@ -171,25 +171,25 @@
<
image
class
=
"vipCardArrowLeft"
v
-
if
=
"itemIndex != 0"
:
src
=
"$baseUrl + `integral/${tupianBanben
}
/vipCardArrowLeft.png`"
mode
=
"aspectFit"
><
/image
>
<!--
新增积分详情容器
-->
<
view
<
view
class
=
"integral-detail"
v
-
if
=
"false"
>
<
image
<
image
class
=
"excharge-btn"
:
src
=
"$baseUrl + `integral/${tupianBanben
}
/${vipIntegral?.excharge?.img
}
`"
mode
=
"aspectFit"
@
click
=
"handleExchargeClick"
/>
<
view
<
view
class
=
"inte-bar-area"
:
style
=
"{
background: `url(${$baseUrl
}
integral/${tupianBanben
}
/inteBarAreaBg.png) no-repeat center/contain`
}
"
>
<
view
class
=
"integralClick"
<
view
class
=
"integralClick"
@
click
=
"integralHandler"
>
<!--
第一行
-->
...
...
@@ -210,7 +210,7 @@
<
text
class
=
"upLvTxt1"
>
{{
upLvTxts
[
vipLevel
]?.
split
(
'/'
)[
0
]
}}
<
text
class
=
"upLvTxt2"
>
{{
upLvTxts
[
vipLevel
]?.
split
(
'/'
)[
1
]
}}
<
/text></
text
>
<!--
<
image
预留进度条代码
:
src
=
"$baseUrl + `integral/${tupianBanben
}
/${vipIntegral?.progressBar?.barBgImg
}
`"
:
src
=
"$baseUrl + `integral/${tupianBanben
}
/${vipIntegral?.progressBar?.barBgImg
}
`"
class
=
"progress-bg1"
/>
<
view
class
=
"progress-mask"
>
...
...
@@ -221,8 +221,8 @@
/>
<
/view> --
>
<
/view
>
<
/view
>
<
image
...
...
@@ -233,7 +233,7 @@
/>
<!--
第三行
-->
<
view
class
=
"info-row-container"
>
<
view
<
view
class
=
"info-row"
@
click
=
"integralDetailHandler"
>
...
...
@@ -247,11 +247,11 @@
mode
=
"aspectFit"
/>
<
/view
>
<
/view
>
<
/view
>
<
/view
>
<!--
积分权益
-->
<
view
class
=
"privilege-container"
>
<!--
第一行
-->
...
...
@@ -267,13 +267,13 @@
<!--
<
view
class
=
"rule-container"
>
<
text
<
text
class
=
"rule-text"
@
click
=
"vipRuleHandler"
>
会员规则
<
/text
>
<
image
<
image
class
=
"rule-icon"
:
src
=
"$baseUrl + `integral/${tupianBanben
}
/integralArrow.png`"
mode
=
"aspectFit"
...
...
@@ -283,12 +283,12 @@
<!--
vipQuanyiData
[
Math
.
abs
(
itemIndex
)].
qunyiList
" -->
<!-- 第二行 -->
<view class="
privilege
-
grid
">
<view
class="
privilege
-
item
"
v-for="
(
item
,
index
)
in
imgInfos
"
<view
class="
privilege
-
item
"
v-for="
(
item
,
index
)
in
imgInfos
"
:key="
index
"
>
<image
<image
class="
itemBg
"
:src="
$baseUrl
+
`integral/${tupianBanben
}
/${index === selectIdx ? quanyiBgs[itemIndex]['selectImg'] : (index < quanyiBgs[itemIndex].quanyiNum ? quanyiBgs[itemIndex]['unlockImg'] : quanyiBgs[itemIndex]['lockImg'])
}
`"
:style="
{
width
:
item
.
width
,
height
:
item
.
height
}
"
...
...
@@ -301,7 +301,7 @@
mode="
aspectFit
"
@click="
handlePrivilegeClick
(
item
,
index
)
"
/>
<!-- <image
<!-- <image
v-if="
vipQuanyiData
[
Math
.
abs
(
itemIndex
)].
isNewArr
.
includes
(
item
)
&&
itemIndex
>=
vipLevel
"
class="
new
-
tip
"
:src="
$baseUrl
+
`integral/${tupianBanben
}
/newTip.png`"
...
...
@@ -309,7 +309,7 @@
/> -->
<text class="
quanyi
-
text
" :style="
{
color
:
getColor
(
'quanyiNameColor'
)[
itemIndex
]
}
">{{ item.name
}}
</text>
<image
<image
class="
quanyi
-
text
-
img
"
v-if="
index
>=
quanyiBgs
[
itemIndex
].
quanyiNum
&&
index
<
9
"
:src="
$baseUrl
+
`integral/${tupianBanben
}
/quanyiLockIcon${itemIndex
}
.png`"
...
...
@@ -318,7 +318,7 @@
<button
v-if="
!
islogin
"
type="
primary
"
type="
primary
"
class="
phone
-
button
-
qyIcon
"
open-type="
getPhoneNumber
"
:style="
{
width
:
item
.
width
,
height
:
item
.
height
}
"
...
...
@@ -331,30 +331,30 @@
<view class="
quanyi
-
detail
-
area
" v-if="
isshowQuanyiDetail
">
<!-- MonthGift 组件 -->
<MonthGift
v-if="
Number
(
selectIdx
)
===
0
"
:current-level="
itemIndex
"
<MonthGift
v-if="
Number
(
selectIdx
)
===
0
"
:current-level="
itemIndex
"
:userLevel="
memberInfo
?.
grade
"
ref="
monthGiftRef
"
ref="
monthGiftRef
"
/>
<!-- YearGift 组件 -->
<YearGift
v-if="
Number
(
selectIdx
)
===
5
"
:current-level="
itemIndex
"
<YearGift
v-if="
Number
(
selectIdx
)
===
5
"
:current-level="
itemIndex
"
:userLevel="
memberInfo
?.
grade
"
ref="
yearGiftRef
"
ref="
yearGiftRef
"
/>
<!-- BabyClass 组件 -->
<BabyClass
v-if="
Number
(
selectIdx
)
===
1
"
:current-level="
itemIndex
"
<BabyClass
v-if="
Number
(
selectIdx
)
===
1
"
:current-level="
itemIndex
"
:userLevel="
memberInfo
?.
grade
"
ref="
babyClassRef
"
ref="
babyClassRef
"
/>
<!-- <xinrenli
<!-- <xinrenli
:index="
itemIndex
"
@go-to-shop="
handleGoToShop
"
v-if="
Number
(
selectIdx
)
===
2
"
...
...
@@ -399,14 +399,14 @@
@upgrade="
handleGoToShop_suyuanyou
"
/>
<!-- <xinrenliPopup
<!-- <xinrenliPopup
:index="
itemIndex
"
@coupon-click="
handleCouponClick
"
@go-to-shop="
handleGoToShop
"
/> -->
</view>
<view class="
zhankai
-
quanyi
" @click="
handleZhankaiClick
" v-if="
selectIdx
!=
-
1
">
<image
<image
v-if="
isshowShouqi
"
class="
shouqi
-
quanyi
-
img
"
:src="
$baseUrl
+
`integral/${tupianBanben
}
/shouqiBtn${itemIndex
}
.png`"
...
...
@@ -492,11 +492,11 @@
<view class="
goods
-
container
" v-if="
goodsDataArr
?.
length
>
0
">
<!-- 页签栏 -->
<view class="
custom
-
tabs
">
<view
v-for="
(
tab
,
index
)
in
goodsDataArr
"
<view
v-for="
(
tab
,
index
)
in
goodsDataArr
"
:key="
index
"
class="
tab
-
item
"
:class="
{
:class="
{
active
:
activeIndex
===
index
&&
itemIndex
!==
4
,
active1
:
activeIndex
===
index
&&
itemIndex
===
4
}
"
...
...
@@ -509,12 +509,12 @@
</view>
<view class="
goods
-
content
" v-for="
(
goodItemList
,
index
)
in
goodsDataArr
" :key="
index
">
<view
class="
goods
-
list
"
<view
class="
goods
-
list
"
v-if="
activeIndex
===
index
"
>
<view
class="
goods
-
item
"
<view
class="
goods
-
item
"
v-for="
(
goodItem
,
i
)
in
goodItemList
?.
resourcePositionGoods
"
:key="
i
"
...
...
@@ -523,7 +523,7 @@
}
"
>
<view class="
goods
-
item
-
container
" @click="
handleGoodsItemClick
(
goodItem
,
i
)
">
<image
<image
class="
goods
-
img
"
:src="
goodItem
?.
goodsIcon
.
indexOf
(
'http'
)
!==
-
1
?
goodItem
?.
goodsIcon
:
$baseUrl
+
`${goodItem?.goodsIcon
}
`"
mode="
aspectFit
"
...
...
@@ -535,20 +535,20 @@
<text v-else-if="
Number
(
goodItem
?.
priceSale
)
" class="
price
-
text
"><text class="
num
">¥{{ goodItem?.priceSale
}}
</text></text>
<text v-else-if="
Number
(
goodItem
?.
credits
)
" class="
price
-
text
"><text class="
num
">{{ goodItem?.credits
}}
</text>积分</text>
</view>
</view>
</view>
</view>
<!-- 商品内容 -->
<!-- <view class="
goods
-
content
">
<view
class="
goods
-
list
"
<view
class="
goods
-
list
"
v-if="
activeIndex
===
0
"
>
<view
class="
goods
-
item
"
v-for="
i
in
goodsData
[
0
]?.
titles
?.
length
"
<view
class="
goods
-
item
"
v-for="
i
in
goodsData
[
0
]?.
titles
?.
length
"
:key="
i
"
:style="
{
...
...
@@ -556,7 +556,7 @@
}
"
>
<view class="
goods
-
item
-
container
" @click="
handleGoodsItemClick
(
'xingpin'
,
i
)
">
<image
<image
class="
goods
-
img
"
:src="
$baseUrl
+
`integral/${tupianBanben
}
/${goodsData[0]?.goodsImgs[i-1]
}
`"
mode="
aspectFit
"
...
...
@@ -566,17 +566,17 @@
</view>
<text class="
num0
">{{ goodsData[0]?.prices[i-1].split("
积分
+
¥
")[0]
}}
<text class="
price
-
text0
">积分</text><text class="
price
-
text1
">+</text><text class="
price
-
text0
">¥</text>{{ goodsData[0]?.prices[i-1].split("
积分
+
¥
")[1]
}}
</text>
</view>
</view>
</view>
<view
class="
goods
-
list
"
<view
class="
goods
-
list
"
v-if="
activeIndex
===
1
"
>
<view
class="
goods
-
item
"
v-for="
i
in
goodsData
[
1
]?.
titles
?.
length
"
<view
class="
goods
-
item
"
v-for="
i
in
goodsData
[
1
]?.
titles
?.
length
"
:key="
i
"
:style="
{
background
:
`url(${$baseUrl
}
integral/1022/listItemImgBg${itemIndex
}
.png) no-repeat center/contain`
...
...
@@ -584,7 +584,7 @@
>
<view class="
goods
-
item
-
container
" @click="
handleGoodsItemClick
(
'lingyuan'
,
i
)
">
<image
<image
class="
goods
-
img
"
:src="
$baseUrl
+
`integral/${tupianBanben
}
/${goodsData[1]?.goodsImgs[i-1]
}
`"
mode="
aspectFit
"
...
...
@@ -597,20 +597,20 @@
</view>
</view>
<view
class="
goods
-
list
"
<view
class="
goods
-
list
"
v-if="
activeIndex
===
2
"
>
<view
class="
goods
-
item
"
v-for="
i
in
goodsData
[
2
]?.
titles
?.
length
"
<view
class="
goods
-
item
"
v-for="
i
in
goodsData
[
2
]?.
titles
?.
length
"
:key="
i
"
:style="
{
background
:
`url(${$baseUrl
}
integral/1022/listItemImgBg${itemIndex
}
.png) no-repeat center/contain`
}
"
>
<view class="
goods
-
item
-
container
" @click="
handleGoodsItemClick
(
'beiwei'
,
i
)
">
<image
<image
class="
goods
-
img
"
:src="
$baseUrl
+
`integral/${tupianBanben
}
/${goodsData[2]?.goodsImgs[i-1]
}
`"
mode="
aspectFit
"
...
...
@@ -619,9 +619,9 @@
<text class="
title
-
text1
">{{ goodsData[2]?.titles[i-1]
}}
</text>
</view>
<text class="
price
-
text
"><text class="
num
">{{ goodsData[2]?.prices[i-1]
}}
</text>积分</text>
</view>
</view>
</view>
</view> -->
...
...
@@ -630,7 +630,7 @@
<!-- 查看更多容器 -->
<view class="
more
-
container
" v-if="
goodsDataArr
?.
length
>
0
" @click="
handleMoreClick
">
<text class="
more
-
text
">点击查看更多</text>
<image
<image
class="
more
-
arrow
"
:src="
$baseUrl
+
`integral/${tupianBanben
}
/integralArrow.png`"
mode="
aspectFit
"
...
...
@@ -648,13 +648,13 @@
<text class="
debug
-
text
">注册层状态: {{ showRegisterLayer ? '显示' : '隐藏'
}}
</text>
<text class="
debug
-
text
">用户昵称: {{ nickName
}}
</text>
</view> -->
<!-- 积分底部填充位置 -->
<view class="
content
">
</view>
<RegisterLayer
v-model="
showRegisterLayer
"
<RegisterLayer
v-model="
showRegisterLayer
"
@confirm="
handleRegisterConfirm
"
@cancel="
handleRegisterCancel
"
/>
...
...
@@ -664,28 +664,28 @@
v-if="
showPopupShengri
"
@close="
showPopupShengri
=
false
"
/>
<ShengriliTipPanel
:bgIndex="
itemIndex
"
v-if="
showShengriliTipPanel
"
@close="
showShengriliTipPanel
=
false
"
<ShengriliTipPanel
:bgIndex="
itemIndex
"
v-if="
showShengriliTipPanel
"
@close="
showShengriliTipPanel
=
false
"
@add="
gotoAddBaby
"
/>
<!-- 签到提示弹窗 -->
<SignedTips
<SignedTips
:visible="
showSignedTips
"
:points="
earnedPoints
"
@close="
handleCloseSignedTips
"
/>
<!-- 签到规则说明弹窗 -->
<SignRuleDes
<SignRuleDes
:visible="
showSignRuleDes
"
@close="
handleCloseSignRuleDes
"
/>
<!-- 任务弹窗 -->
<TaskPop
<TaskPop
:visible="
showTaskPop
"
@close="
handleCloseTaskPop
"
@taskClick="
handleTaskClick
"
...
...
@@ -1553,7 +1553,7 @@
}
);
const
goodsDataArr
=
ref
([]);
//商品数据,包括tab内容
// const integralData = ref(
{
}
);
// const integralData = ref(
{
}
);
const
showShengriliTipPanel
=
ref
(
false
);
const
quanyitiaozhuanInfo
=
ref
({
}
);
const
selectIdx
=
ref
(
-
1
);
//权益选中id
...
...
@@ -1597,7 +1597,7 @@
const
vipQuanyiData
=
ref
(
integralData
.
value
?.
qunyiInfo
?.
vipLvsQuanyi
);
const
quanyiBgs
=
ref
(
integralData
.
value
?.
qunyiInfo
?.
quanyiBgs
);
const
recentAnnualPointsTotal
=
ref
(
0
);
const
nextGradeScoreRuleMin
=
ref
(
0
);
const
upLevelExp
=
ref
([
1000
,
2000
,
3000
,
4000
,
5000
]);
...
...
@@ -1641,29 +1641,29 @@
const
mdMap
=
ref
([]);
const
showPopupShengri
=
ref
(
false
);
// 签到状态数组,控制每天是否已签到
const
signinStatus
=
ref
([
true
,
false
,
false
,
false
,
false
,
false
,
false
]);
// 示例:第1天已签到,其他未签到
// 奖励标签显示状态数组,控制每天是否显示奖励标签
const
bonusTagStatus
=
ref
([
false
,
false
,
false
,
false
,
false
,
false
,
true
]);
// 示例:只有第7天显示标签
// 奖励标签文本数组,控制每天标签的文本内容
const
bonusTagText
=
ref
([
''
,
''
,
''
,
''
,
''
,
''
,
'5倍'
]);
// 示例:第7天显示"5倍"
// 签到提示弹窗相关
const
showSignedTips
=
ref
(
false
);
const
earnedPoints
=
ref
(
0
);
// 签到规则说明弹窗相关
const
showSignRuleDes
=
ref
(
false
);
// 任务弹窗相关
const
showTaskPop
=
ref
(
false
);
//今天已经签到过
const
todaySigned
=
ref
(
true
);
// Props 定义
const
props
=
defineProps
({
scrollTop
:
{
...
...
@@ -1703,10 +1703,10 @@
}
else
{
navigateTo
(
"/pages/person/person?type=add"
);
}
}
}
}
//isshowShouqi 为true 时,展示收起按详情,为false 时,展示查看详情
const
handleZhankaiClick
=
()
=>
{
...
...
@@ -1816,7 +1816,7 @@
];
break
;
}
return
colors
;
}
...
...
@@ -1860,9 +1860,9 @@
mdMap
.
value
.
push
(
'积分服务页-四屏'
);
}
}
}
)
const
getHuangjinMaxVal
=
()
=>
{
let
maxVal
=
[];
...
...
@@ -1892,11 +1892,11 @@
}
onBeforeMount
(
async
()
=>
{
console
.
log
(
'onBeforeMount'
);
}
)
onMounted
(
async
()
=>
{
showLoading
();
...
...
@@ -1913,7 +1913,7 @@
mdMap
.
value
.
push
(
'积分服务页-首屏'
);
}
md
.
sensorComponentLogTake
({
xcxComponentExposure
:
"true"
,
pageName
:
"积分服务页"
,
...
...
@@ -1964,7 +1964,7 @@
quanyiListIcon
.
value
.
push
(
element
.
img
);
privilegeSizes
.
value
.
push
({
width
:
element
.
width
,
height
:
element
.
height
,
name
:
element
.
name
}
);
}
);
await
userStore
.
loadMemberInfo
();
initNetData
();
...
...
@@ -2014,7 +2014,7 @@
const
initNetData
=
()
=>
{
console
.
log
(
'initNetData'
);
memberInfo
.
value
=
userStore
.
memberInfo
;
// memberInfo.value =
{
"grade"
:
null
,
"gradeList"
:
null
,
"gradeName"
:
null
,
"maxGrade"
:
false
,
"memberId"
:
"not_login"
,
"memberName"
:
null
,
"mobile"
:
null
,
"nextGradeScoreRuleMin"
:
null
,
"orderUpgrade"
:
null
,
"points"
:
null
,
"recentAnnualPointsTotal"
:
null
,
"willExpiredPoints"
:
null
}
;
// memberInfo.value =
{
...
...
@@ -2068,7 +2068,7 @@
nextGradeScoreRuleMin
.
value
=
memberInfo
.
value
.
nextGradeScoreRuleMin
;
vipLevel
.
value
=
memberInfo
.
value
.
grade
;
// points.value = memberInfo.value.points;
points
.
value
=
memberInfo
.
value
.
recentAnnualPointsTotal
;
gradeList
.
value
=
memberInfo
.
value
.
gradeList
;
...
...
@@ -2081,11 +2081,11 @@
if
(
islogin
.
value
){
vipCardMd
(
vipLevel
.
value
);
nickName
.
value
=
memberInfo
.
value
.
memberName
;
nickName
.
value
=
memberInfo
.
value
.
memberName
;
// 清空之前的数据
// vipLvDatas.value = [];//??????????
// vipLvDatas.value = integralData.value.vipLvInfo;
// memberInfo.value?.gradeList.forEach((element, index) =>
{
// vipLvDatas.value.push(
{
// "vipName" : element.gradeName,
...
...
@@ -2097,7 +2097,7 @@
// vipLvDatas.value[index].nickNameColor = nickNameColors.value[index];
// vipLvDatas.value[index].dangqianColor = dangqianColors.value[index];
//
}
);
}
else
{
nickName
.
value
=
'未登录'
;
vipLvDatas
.
value
=
[{
...
...
@@ -2177,7 +2177,7 @@
if
(
item
?.
url
!=
""
){
jump
({
type
:
item
.
type
,
url
:
item
.
url
,
url
:
item
.
url
,
extra
:
item
.
extra
}
)
}
...
...
@@ -2263,7 +2263,7 @@
const
url
=
vipIntegral
.
value
.
jifenmingxi
.
url
.
replace
(
"{crmid
}
"
,
memberInfo
.
value
.
memberId
);
const
type
=
vipIntegral
.
value
.
jifenmingxi
.
type
;
console
.
log
(
'积分明细链接:=='
,
url
)
jump
({
type
:
type
,
url
:
url
...
...
@@ -2303,13 +2303,13 @@
buttonName
:
buttonName
,
}
);
const
url
=
item
?.
url
;
const
url
=
item
?.
url
;
const
type
=
item
?.
type
;
const
extra
=
item
?.
extra
;
jump
({
type
,
url
,
extra
}
);
}
//转换跳转类型
...
...
@@ -2392,9 +2392,9 @@
componentName: "等级卡牌",
componentContent: "等级卡牌切换"
}
);
vipCardMd(currentIndex);
// 获取当前滚动位置
// const scrollLeft = e.detail.scrollLeft;
// const directionVal = ref(0.3);
...
...
@@ -2404,19 +2404,19 @@
// directionVal.value = -0.3;
//
}
// lastScrollLeft.value = scrollLeft;
// itemIndex.value = Math.round(scrollLeft / itemWidth + directionVal.value);
}
//滚动结束时更新数据
const scrollToIndex = (index) => {
}
;
const tabItemClick = (index) => {
activeIndex.value = index;
let buttonName = '';
...
...
@@ -2462,8 +2462,8 @@
pageName: "积分服务页-首屏",
buttonName: "积分兑换",
}
);
const url = vipIntegral.value.excharge.url;
const url = vipIntegral.value.excharge.url;
const type = vipIntegral.value.excharge.type;
const extra = vipIntegral.value.excharge.extra;
...
...
@@ -2491,7 +2491,7 @@
if(!isshowQuanyiDetail.value){
isshowQuanyiDetail.value = true;
}
md.sensorLogTake({
xcxClick: "积分服务页-首屏页面点击",
pageName: "积分服务页-首屏",
...
...
@@ -2504,8 +2504,8 @@
componentContent: "会员权益-" + item.name
}
);
console.log('
selectIdx
.
value
=
', selectIdx.value);
// const url = vipQuanyiUrl.value.url;
// const url = vipQuanyiUrl.value.url;
// const type = vipQuanyiUrl.value.type;
// const extra = vipQuanyiUrl.value.extra;
...
...
@@ -2515,7 +2515,7 @@
// extra:extra
//
}
)
}
const getRealtimePhoneNumber = async (e) => {
console.log("获取手机号码", e);
...
...
@@ -2527,13 +2527,13 @@
}
);
return;
}
showRegisterLayer.value = true;
await userStore.phoneCallback(e.detail);
// try {
// await userStore.phoneCallback(e.detail);
// await userStore.loadMemberInfo();
// initNetData();
...
...
@@ -2612,7 +2612,7 @@
}
,
}
);
}
;
const handleGoToShop_aibenxinrenli = (data) => {
if(Number(data.index) === 0){
...
...
@@ -2724,10 +2724,10 @@
if(item.url== ""){
return;
}
jump({
type: item.type,
url: item.url,
url: item.url,
extra: item.extra
}
)
// if(islogin.value){
...
...
@@ -2745,7 +2745,7 @@
// 签到按钮点击事件
const handleSigninClick = () => {
console.log('
签到按钮点击
');
// 埋点统计
md.sensorLogTake({
xcxClick: "积分服务页-签到奖励页面点击",
...
...
@@ -2755,14 +2755,14 @@
// 找到下一个未签到的天数
const nextUnsignedDay = signinStatus.value.findIndex(status => !status);
if (nextUnsignedDay !== -1) {
// 标记该天为已签到
signinStatus.value[nextUnsignedDay] = true;
// 设置获得的积分数
earnedPoints.value = nextUnsignedDay === 6 ? 100 : 20; // 第7天100积分,其他天20积分
// 显示签到提示弹窗
showSignedTips.value = true;
}
else {
...
...
@@ -2787,7 +2787,13 @@
// 任务按钮点击事件
const handleTaskButtonClick = () => {
console.log('
任务按钮点击
');
jump({
type: JumpType.INNER,
url: '
/
activities
/
1015
/
home
'
}
)
return
console.log('
任务按钮点击
');
showTaskPop.value = true;
}
...
...
@@ -2807,7 +2813,7 @@
//
}
);
}
// 手动显示注册层(用于测试)
// const showRegisterDialog = () => {
...
...
@@ -2824,7 +2830,7 @@
//
}
);
//
}
, { immediate: true
}
);
</script>
...
...
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