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
c91d890f
Commit
c91d890f
authored
Nov 17, 2025
by
spc
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' into fromfh
parents
14ee9092
397a52dc
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
89 additions
and
5 deletions
+89
-5
heliaixinTools.vue
pages/heliaixinTools/heliaixinTools.vue
+1
-1
index.vue
pages/index/index.vue
+12
-0
goodDetail.vue
v3/goodDetail/goodDetail.vue
+10
-0
Integral.vue
views/Integral.vue
+66
-4
No files found.
pages/heliaixinTools/heliaixinTools.vue
View file @
c91d890f
...
@@ -2,7 +2,7 @@
...
@@ -2,7 +2,7 @@
<view
class=
"hlaxPage"
>
<view
class=
"hlaxPage"
>
<view
class=
"hlax_bg"
></view>
<view
class=
"hlax_bg"
></view>
<image
class=
"hlax_bg"
<image
class=
"hlax_bg"
:src=
"toolCfg.link?.go_see?($baseUrl + 'heliaixinTool/hlax_bg3.jpg'):$baseUrl + 'heliaixinTool/hlax_bg4
.jp
g'"
:src=
"toolCfg.link?.go_see?($baseUrl + 'heliaixinTool/hlax_bg3.jpg'):$baseUrl + 'heliaixinTool/hlax_bg4
_1.pn
g'"
mode=
"aspectFill"
/>
mode=
"aspectFill"
/>
<image
class=
"hlax_btn"
:src=
"$baseUrl + 'heliaixinTool/btn_go_see2.png'"
v-if=
"toolCfg.link?.go_see"
<image
class=
"hlax_btn"
:src=
"$baseUrl + 'heliaixinTool/btn_go_see2.png'"
v-if=
"toolCfg.link?.go_see"
@
click=
"onTips"
/>
@
click=
"onTips"
/>
...
...
pages/index/index.vue
View file @
c91d890f
...
@@ -225,6 +225,11 @@ onMounted(async () => {
...
@@ -225,6 +225,11 @@ onMounted(async () => {
const
handleCloseTaskCompleteTips
=
async
()
=>
{
const
handleCloseTaskCompleteTips
=
async
()
=>
{
globalStore
.
isShowTaskComplete
=
false
;
globalStore
.
isShowTaskComplete
=
false
;
await
checkAndUpdateTaskResult
();
await
checkAndUpdateTaskResult
();
// 如果当前在积分权益页,通过事件通知 Integral 组件刷新数据
if
(
globalStore
.
curTabIndex
===
2
)
{
uni
.
$emit
(
'refreshIntegralData'
);
}
};
};
// 完成任务并显示完成提示
// 完成任务并显示完成提示
...
@@ -270,6 +275,11 @@ onShow(async () => {
...
@@ -270,6 +275,11 @@ onShow(async () => {
//完成了浏览任务
//完成了浏览任务
if
(
taskId
.
value
>
0
)
{
if
(
taskId
.
value
>
0
)
{
await
handleTaskComplete
(
taskId
.
value
);
await
handleTaskComplete
(
taskId
.
value
);
}
else
{
const
integralStore
=
useIntegralStore
();
await
integralStore
.
getSigninAndTaskInfo
();
await
checkAndUpdateTaskResult
()
}
}
// 页面显示时,如果已登录,刷新会员信息并检查活动入选
// 页面显示时,如果已登录,刷新会员信息并检查活动入选
...
@@ -544,6 +554,7 @@ const handleTaskClick = async (data) => {
...
@@ -544,6 +554,7 @@ const handleTaskClick = async (data) => {
// console.log('extra66666:', extra1);
// console.log('extra66666:', extra1);
break
;
break
;
case
'FirstOrder'
:
//完成首单优选消费
case
'FirstOrder'
:
//完成首单优选消费
globalStore
.
closeTaskPop
();
// 先关闭TaskPop
const
extra2
=
JSON
.
parse
(
data
?.
task
?.
taskTodoExtra
?.
extra
);
const
extra2
=
JSON
.
parse
(
data
?.
task
?.
taskTodoExtra
?.
extra
);
console
.
log
(
'extra666661111:'
,
extra2
);
console
.
log
(
'extra666661111:'
,
extra2
);
jump
({
jump
({
...
@@ -553,6 +564,7 @@ const handleTaskClick = async (data) => {
...
@@ -553,6 +564,7 @@ const handleTaskClick = async (data) => {
});
});
break
;
break
;
case
'EXCHANGE_GOODS'
:
//消费商品
case
'EXCHANGE_GOODS'
:
//消费商品
globalStore
.
closeTaskPop
();
// 先关闭TaskPop
const
extra3
=
JSON
.
parse
(
data
?.
task
?.
taskTodoExtra
?.
extra
);
const
extra3
=
JSON
.
parse
(
data
?.
task
?.
taskTodoExtra
?.
extra
);
if
(
extra3
.
length
>
0
)
{
if
(
extra3
.
length
>
0
)
{
...
...
v3/goodDetail/goodDetail.vue
View file @
c91d890f
...
@@ -784,6 +784,10 @@ export default {
...
@@ -784,6 +784,10 @@ export default {
// 已抢完:灰色背景
// 已抢完:灰色背景
classes
[
'sold-out'
]
=
true
;
classes
[
'sold-out'
]
=
true
;
break
;
break
;
case
5
:
// 已结束或未开始:灰色背景
classes
[
'disabled'
]
=
true
;
break
;
default
:
default
:
// 默认状态:金色背景
// 默认状态:金色背景
break
;
break
;
...
@@ -813,6 +817,12 @@ export default {
...
@@ -813,6 +817,12 @@ export default {
return
'已达兑换上限'
;
return
'已达兑换上限'
;
case
4
:
case
4
:
return
'已抢完'
;
return
'已抢完'
;
case
5
:
// 如果有自定义按钮文本,优先使用
if
(
this
.
goodsData
.
buttonText
&&
this
.
goodsData
.
buttonText
!==
'立即兑换'
)
{
return
this
.
goodsData
.
buttonText
;
}
return
'已结束'
;
default
:
default
:
// 如果有自定义按钮文本,优先使用
// 如果有自定义按钮文本,优先使用
if
(
this
.
goodsData
.
buttonText
&&
this
.
goodsData
.
buttonText
!==
'立即兑换'
)
{
if
(
this
.
goodsData
.
buttonText
&&
this
.
goodsData
.
buttonText
!==
'立即兑换'
)
{
...
...
views/Integral.vue
View file @
c91d890f
...
@@ -631,7 +631,7 @@
...
@@ -631,7 +631,7 @@
<
template
v
-
else
>
<
template
v
-
else
>
<
text
v
-
if
=
"Number(goodItem?.priceMarket) && Number(goodItem?.credits)"
class
=
"num0"
<
text
v
-
if
=
"Number(goodItem?.priceMarket) && Number(goodItem?.credits)"
class
=
"num0"
>
低至
{{
goodItem
?.
credits
}}
<
text
class
=
"price-text0"
>
积分
<
/tex
t
>
{{
goodItem
?.
credits
}}
<
text
class
=
"price-text0"
>
积分
<
/tex
t
><
text
class
=
"price-text1"
>+<
/text><text class="price-text0">¥</
text
><
text
class
=
"price-text1"
>+<
/text><text class="price-text0">¥</
text
>
{{
goodItem
?.
priceMarket
/
100
}}
<
/tex
t
>
{{
goodItem
?.
priceMarket
/
100
}}
<
/tex
t
>
>
...
@@ -2093,9 +2093,62 @@ watch(
...
@@ -2093,9 +2093,62 @@ watch(
console
.
log
(
'isVisible:'
,
isVisible
);
console
.
log
(
'isVisible:'
,
isVisible
);
}
,
}
,
{
immediate
:
true
}
{
immediate
:
true
}
);
);
// 刷新积分页数据的公共方法
const
refreshIntegralData
=
async
()
=>
{
try
{
const
{
data
}
=
await
fetchIntegralJSON
(
globalStore
.
getPreviewScene
(
'integral'
));
integralData
.
value
=
{
...
data
}
;
// 重新初始化相关数据
let
bannerData
=
integralData
?.
value
?.
banner
;
vipActive
.
value
=
[];
bannerData
?.
forEach
((
item
)
=>
{
vipActive
.
value
.
push
({
img
:
item
.
url
,
url
:
item
.
link
.
url
,
type
:
item
.
link
.
type
,
extra
:
item
.
link
.
extra
,
title
:
item
.
title
,
}
);
}
);
goodsDataArr
.
value
=
integralData
?.
value
?.
goodsList
;
swiperData
.
value
=
integralData
.
value
?.
swiper
;
vipLvIcons
.
value
=
integralData
.
value
?.
viplv
?.
imgs
;
vipLvIconBgs
.
value
=
integralData
.
value
?.
viplv
?.
imgBgs
;
vipLvNameImgs
.
value
=
integralData
.
value
?.
viplv
?.
vipNameImgs
;
vipIntegral
.
value
=
integralData
.
value
?.
vipIntegral
;
clickMore
.
value
=
integralData
.
value
?.
clickMore
;
tabInfo
.
value
=
integralData
.
value
?.
goodsListData
?.
tabInfo
;
listCommon
.
value
=
integralData
.
value
?.
goodsListData
?.
listCommon
;
goodsData
.
value
=
integralData
.
value
?.
goodsListData
?.
goodsData
;
productIdUrl
.
value
=
integralData
.
value
?.
goodsListData
?.
productIdUrl
;
vipRule
.
value
=
integralData
.
value
?.
qunyiInfo
?.
vipRule
;
imgInfos
.
value
=
integralData
.
value
?.
qunyiInfo
?.
imgInfos
;
vipQuanyiUrl
.
value
=
integralData
.
value
?.
qunyiInfo
?.
vipQuanyiUrl
;
vipQuanyiData
.
value
=
integralData
.
value
?.
qunyiInfo
?.
vipLvsQuanyi
;
tupianBanben
.
value
=
integralData
.
value
?.
tupianBanben
;
quanyiBgs
.
value
=
integralData
.
value
?.
qunyiInfo
?.
quanyiBgs
;
quanyitiaozhuanInfo
.
value
=
integralData
.
value
?.
quanyitiaozhuanInfo
;
quanyiListIcon
.
value
=
[];
imgInfos
.
value
?.
forEach
((
element
,
index
)
=>
{
quanyiListIcon
.
value
.
push
(
element
.
img
);
privilegeSizes
.
value
[
index
]
=
{
width
:
element
.
width
,
height
:
element
.
height
,
name
:
element
.
name
}
;
}
);
// 刷新用户积分信息
await
userStore
.
loadMemberInfo
();
initNetData
()
}
catch
(
error
)
{
console
.
error
(
'刷新积分页数据失败:'
,
error
);
}
}
;
onMounted
(
async
()
=>
{
onMounted
(
async
()
=>
{
// showSignedTips.value = true;
// showSignedTips.value = true;
showLoading
();
showLoading
();
...
@@ -2209,6 +2262,9 @@ onMounted(async () => {
...
@@ -2209,6 +2262,9 @@ onMounted(async () => {
hideLoading
();
hideLoading
();
initExposure
();
initExposure
();
// 监听刷新积分页数据事件
uni
.
$on
(
'refreshIntegralData'
,
refreshIntegralData
);
//曝光埋点累计积分
//曝光埋点累计积分
if
(
memberInfo
.
value
.
grade
==
0
&&
!
memberInfo
.
value
.
orderUpgrade
&&
points
.
value
>=
1
)
{
if
(
memberInfo
.
value
.
grade
==
0
&&
!
memberInfo
.
value
.
orderUpgrade
&&
points
.
value
>=
1
)
{
md
.
sensorComponentLogTake
({
md
.
sensorComponentLogTake
({
...
@@ -2232,6 +2288,11 @@ onMounted(async () => {
...
@@ -2232,6 +2288,11 @@ onMounted(async () => {
}
}
}
);
}
);
// 组件卸载时取消事件监听
onBeforeUnmount
(()
=>
{
uni
.
$off
(
'refreshIntegralData'
,
refreshIntegralData
);
}
);
const
initExposure
=
()
=>
{
const
initExposure
=
()
=>
{
imgInfos
.
value
?.
forEach
((
item
,
index
)
=>
{
imgInfos
.
value
?.
forEach
((
item
,
index
)
=>
{
md
.
sensorComponentLogTake
({
md
.
sensorComponentLogTake
({
...
@@ -3044,8 +3105,9 @@ const handleSigninClick = throttleTap(async () => {
...
@@ -3044,8 +3105,9 @@ const handleSigninClick = throttleTap(async () => {
}
, 1000);
}
, 1000);
// 关闭签到提示弹窗
// 关闭签到提示弹窗
const handleCloseSignedTips = () => {
const handleCloseSignedTips = async() => {
showSignedTips.value = false;
showSignedTips.value = false;
await refreshIntegralData();
}
;
}
;
// 关闭签到规则说明弹窗
// 关闭签到规则说明弹窗
...
...
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