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
21736cfc
Commit
21736cfc
authored
Jun 11, 2025
by
王炽
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
增加点击链接,修改攻略层级
parent
dcc32887
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
204 additions
and
134 deletions
+204
-134
package-lock.json
package-lock.json
+0
-3
Integral.vue
views/Integral.vue
+204
-131
No files found.
package-lock.json
View file @
21736cfc
...
...
@@ -4,6 +4,3 @@
"requires"
:
true
,
"packages"
:
{}
}
views/Integral.vue
View file @
21736cfc
...
...
@@ -16,7 +16,7 @@
class=
"banner-img"
:src=
"$baseUrl + `integral/1001/$
{item?.bannerImg}`"
mode="aspectFill"
@click="bannerHandler(item
?.url
)"
@click="bannerHandler(item)"
/>
</swiper-item>
</swiper>
...
...
@@ -51,7 +51,7 @@
<
view
class
=
"title-container"
>
<
text
class
=
"vip-title"
>
{{
`${item?.vipName
}
`
}}
<
/text
>
<
button
v
-
if
=
"
true ||
!islogin"
v
-
if
=
"!islogin"
type
=
"primary"
class
=
"phone-button"
open
-
type
=
"getPhoneNumber"
...
...
@@ -95,46 +95,51 @@
:
style
=
"{
background: `url(${$baseUrl
}
integral/1001/inteBarAreaBg.png) no-repeat center/contain`
}
"
@
click
=
"integralHandler"
>
<!--
第一行
-->
<
view
class
=
"header-row"
>
<
view
class
=
"integral-value"
>
<
text
class
=
"integral-text"
>
积分
<
/text
>
<
text
class
=
"integral-total"
>
{{
`(累计${recentAnnualPointsTotal
}
/${nextGradeScoreRuleMin
}
)`
}}
<
/text
>
<
image
class
=
"next-icon"
:
src
=
"$baseUrl + 'integral/1001/nextLvTips.png'"
mode
=
"aspectFit"
/>
<
view
class
=
"integralClick"
@
click
=
"integralHandler"
>
<!--
第一行
-->
<
view
class
=
"header-row"
>
<
view
class
=
"integral-value"
>
<
text
class
=
"integral-text"
>
积分
<
/text
>
<
text
class
=
"integral-total"
>
{{
`(累计${recentAnnualPointsTotal
}
/${nextGradeScoreRuleMin
}
)`
}}
<
/text
>
<
image
class
=
"next-icon"
:
src
=
"$baseUrl + 'integral/1001/nextLvTips.png'"
mode
=
"aspectFit"
/>
<
/view
>
<
/view
>
<
image
class
=
"strategy-icon"
:
src
=
"$baseUrl + `integral/1001/${vipIntegral?.gonglue?.img
}
`"
mode
=
"aspectFit"
@
click
=
"gonglueHandler"
/>
<
/view
>
<!--
第二行
-->
<
view
class
=
"progress-bar1"
>
<
image
:
src
=
"$baseUrl + `integral/1001/${vipIntegral?.progressBar?.barBgImg
}
`"
class
=
"progress-bg1"
/>
<
view
class
=
"progress-mask"
>
<!--
第二行
-->
<
view
class
=
"progress-bar1"
>
<
image
:
src
=
"$baseUrl + `integral/1001/${vipIntegral?.progressBar?.barImg
}
`"
class
=
"progress-img1"
:
style
=
"{ transform: `translateX(${(recentAnnualPointsTotal/nextGradeScoreRuleMin)*100 -100
}
%)`
}
"
:
src
=
"$baseUrl + `integral/1001/${vipIntegral?.progressBar?.barBgImg
}
`"
class
=
"progress-bg1"
/>
<
view
class
=
"progress-mask"
>
<
image
:
src
=
"$baseUrl + `integral/1001/${vipIntegral?.progressBar?.barImg
}
`"
class
=
"progress-img1"
:
style
=
"{ transform: `translateX(${(recentAnnualPointsTotal/nextGradeScoreRuleMin)*100 -100
}
%)`
}
"
/>
<
/view
>
<
/view
>
<!--
第三行
-->
<
view
class
=
"info-row"
>
<
text
class
=
"count-text"
>
{{
`当前:${points
}
`
}}
<
/text
>
<
text
class
=
"expire-text"
>
{{
`(有${willExpiredPoints ? willExpiredPoints : 0
}
积分将到期)`
}}
<
/text
>
<
/view
>
<
/view
>
<
image
class
=
"strategy-icon"
:
src
=
"$baseUrl + `integral/1001/${vipIntegral?.gonglue?.img
}
`"
mode
=
"aspectFit"
@
click
=
"gonglueHandler"
/>
<!--
第三行
-->
<
view
class
=
"info-row"
>
<
text
class
=
"count-text"
>
{{
`${recentAnnualPointsTotal
}
/${nextGradeScoreRuleMin
}
`
}}
<
/text
>
<
text
class
=
"expire-text"
>
{{
`(有${willExpiredPoints ? willExpiredPoints : 0
}
积分将到期)`
}}
<
/text
>
<
/view
>
<
/view
>
<
/view
>
...
...
@@ -145,7 +150,12 @@
<
text
class
=
"title-text"
v
-
if
=
"islogin"
>
可享
<
text
class
=
"highlight"
>
{{
vipQuanyiData
[
Math
.
abs
(
itemIndex
)].
qunyiList
.
length
}}
<
/text> 项权益会员</
text
>
<
text
class
=
"title-text"
v
-
if
=
"!islogin"
>
最高可享
<
text
class
=
"highlight"
>
10
<
/text> 项权益会员</
text
>
<
view
class
=
"rule-container"
>
<
text
class
=
"rule-text"
>
会员规则
<
/text
>
<
text
class
=
"rule-text"
@
click
=
"vipRuleHandler"
>
会员规则
<
/text
>
<
image
class
=
"rule-icon"
:
src
=
"$baseUrl + 'integral/1001/integralArrow.png'"
...
...
@@ -352,17 +362,21 @@
{
bannerImg
:
"integralBannerBg0.png"
,
url
:
"subPackages/shopMainList/topicNew/index?id=1000916"
,
type
:
0
type
:
2
,
extra
:
{
appId
:
"wx4205ec55b793245e"
}
}
,
{
bannerImg
:
"integralBannerBg1.png"
,
url
:
""
,
type
:
1
type
:
0
}
,
{
bannerImg
:
"integralBannerBg2.png"
,
url
:
""
,
type
:
2
type
:
0
}
],
viplv
:
{
...
...
@@ -376,8 +390,8 @@
}
,
vipIntegral
:
{
gonglue
:{
url
:
"https://mom.feihe.com/member/mine/
newIntegralRule
"
,
type
:
0
,
url
:
"https://mom.feihe.com/member/mine/
pointStrategy
"
,
type
:
3
,
img
:
"strategyBtn.png"
}
,
progressBar
:{
...
...
@@ -385,16 +399,28 @@
barBgImg
:
"progressBarBgIntegral.png"
}
,
excharge
:{
url
:
"subPackages/shopMainList/topicNew/index?id=1000187"
,
//1000187???
type
:
1
,
img
:
"integralExchargeBtn.png"
url
:
"subPackages/shopMainList/topicNew/index?id=1000187"
,
type
:
2
,
img
:
"integralExchargeBtn.png"
,
extra
:
{
appId
:
"wx4205ec55b793245e"
}
}
,
integralDetail
:{
url
:
"https://mom.feihe.com/member/mine/newPointDetail?crmId={crmid
}
&appCode=XMH"
,
//crmid?????????
type
:
2
url
:
"subPackages/xmhMainProcess/member/index?entrySource=xmh_wechatmp_points_recgoodsbot"
,
type
:
2
,
extra
:
{
appId
:
"wx4205ec55b793245e"
}
}
}
,
qunyiInfo
:
{
vipRule
:
{
url
:
"https://mom.feihe.com/member/mine/pointStrategy"
,
type
:
3
,
}
,
imgInfos
:
[
{
img
:
"yueyueliBtn.png"
,
...
...
@@ -544,7 +570,9 @@
const
tabInfo
=
ref
({
}
);
//tabbar信息
const
goodsData
=
ref
([]);
//商品数据
const
imgInfos
=
ref
([]);
//权益信息
const
vipRule
=
ref
({
}
);
//会员规则跳转
const
vipLvsQuanyi
=
ref
([]);
//会员不同等级权益
const
points
=
ref
(
0
);
//积分
const
activeIndex
=
ref
(
0
);
//tabbar选中项
...
...
@@ -643,12 +671,13 @@
const
nickName
=
ref
(
''
);
//banner点击事件
const
bannerHandler
=
(
url
)
=>
{
const
bannerHandler
=
(
item
)
=>
{
// const url = swiperData.value[index].url;
if
(
url
!=
""
){
if
(
item
?.
url
!=
""
){
jump
({
type
:
JumpType
.
MINI
,
url
:
url
type
:
item
.
type
,
url
:
url
,
extra
:
item
.
extra
}
)
}
console
.
log
(
'bannerHandler='
,
url
);
...
...
@@ -657,14 +686,37 @@
//攻略点击事件
const
gonglueHandler
=
()
=>
{
const
url
=
vipIntegral
.
value
.
gonglue
.
url
;
const
type
=
vipIntegral
.
value
.
gonglue
.
type
;
jump
({
type
:
type
,
url
:
url
}
)
console
.
log
(
'gonglueHandler'
)
}
//积分详情点击事件
//积分详情点击事件
---积分进度条容器
const
integralHandler
=
()
=>
{
const
url
=
vipIntegral
.
value
.
integralDetail
.
url
;
console
.
log
(
'integralHandler'
);
const
item
=
vipIntegral
.
value
.
integralDetail
;
if
(
item
.
url
==
""
){
return
;
}
jump
({
type
:
item
.
type
,
url
:
item
.
url
,
extra
:
item
.
extra
}
)
}
//会员规则
const
vipRuleHandler
=
()
=>
{
const
url
=
vipRule
.
value
.
url
;
const
type
=
vipRule
.
value
.
type
;
jump
({
type
:
type
,
url
:
url
}
)
console
.
log
(
'vipRuleHandler'
)
}
const
handleVipActiveClick
=
(
index
,
url
)
=>
{
...
...
@@ -710,12 +762,17 @@
// #endif
}
//积分兑换按钮点击事件
const
handleExchargeClick
=
()
=>
{
const
url
=
vipIntegral
.
value
.
excharge
.
url
;
const
type
=
vipIntegral
.
value
.
excharge
.
type
;
const
extra
=
vipIntegral
.
value
.
excharge
.
extra
;
jump
({
type
:
JumpType
.
INNER
,
url
:
'/pages/library/ContentLibrary'
type
:
type
,
url
:
url
,
extra
:
extra
}
)
const
url
=
vipIntegral
.
value
.
excharge
.
url
;
}
...
...
@@ -757,7 +814,7 @@
}
;
// 处理注册确认
const
handleRegisterConfirm
=
(
babyInfo
)
=>
{
const
handleRegisterConfirm
=
async
(
babyInfo
)
=>
{
console
.
log
(
"注册确认,宝宝信息:"
,
babyInfo
);
await
userStore
.
loadMemberInfo
();
showRegisterLayer
.
value
=
false
;
...
...
@@ -782,7 +839,6 @@
console
.
log
(
'onBeforeMount'
);
const
{
data
}
=
await
fetchIntegralJSON
();
integralData
.
value
=
{...
data
}
;
}
)
onMounted
(
async
()
=>
{
...
...
@@ -792,6 +848,7 @@
vipActive
.
value
=
integralData
.
value
.
vipActive
;
tabInfo
.
value
=
integralData
.
value
.
goodsListData
.
tabInfo
;
goodsData
.
value
=
integralData
.
value
.
goodsListData
.
goodsData
;
vipRule
.
value
=
integralData
.
value
.
qunyiInfo
.
vipRule
;
imgInfos
.
value
=
integralData
.
value
.
qunyiInfo
.
imgInfos
;
vipQuanyiData
.
value
=
[];
////??????
vipQuanyiData
.
value
=
integralData
.
value
.
qunyiInfo
.
vipLvsQuanyi
;
...
...
@@ -819,6 +876,8 @@
willExpiredPoints
.
value
=
memberInfo
.
value
.
willExpiredPoints
;
nextGradeScoreRuleMin
.
value
=
memberInfo
.
value
.
nextGradeScoreRuleMin
;
vipLevel
.
value
=
memberInfo
.
value
.
grade
;
points
.
value
=
memberInfo
.
value
.
points
;
if
(
memberInfo
.
value
.
memberId
==
"not_login"
){
islogin
.
value
=
false
;
}
else
{
...
...
@@ -1006,96 +1065,110 @@
}
.inte-bar-area {
position: relative;
// flex: 1;
height: 144rpx;
width: 492rpx;
// background: url('
@{
baseUrl
}
integral
/
1001
/
inteBarAreaBg
.
png
') no-repeat center/cover;
margin-left: 16rpx;
// padding: 16rpx 24rpx;
.header-row {
position: relative;
display: flex;
justify-content: space-between;
.integralClick {
height: 100%;
width: 100%;
.integral-value{
background-color: #6f6d67;
margin-left: 26rpx;
margin-top: 23rpx;
.integral-text {
font-size: 28rpx;
color: #1d1e25;
margin-right: 13rpx;
}
.integral-total{
// position: absolute;
font-size: 24rpx;
color:#1d1e25
}
.next-icon{
margin-top: -60rpx;
margin-left: -30rpx;
width: 66rpx;
height: 27rpx;
// position: absolute;
.header-row {
position: relative;
display: flex;
justify-content: space-between;
.integral-value{
background-color: #6f6d67;
margin-left: 26rpx;
margin-top: 23rpx;
.integral-text {
font-size: 28rpx;
color: #1d1e25;
margin-right: 13rpx;
}
.integral-total{
// position: absolute;
font-size: 24rpx;
color:#1d1e25
}
.next-icon{
margin-top: -60rpx;
margin-left: -30rpx;
width: 66rpx;
height: 27rpx;
// position: absolute;
}
}
}
.strategy-icon {
position: absolute;
right: 0;
top: 0rpx;
width: 96rpx;
height: 49rpx;
}
}
.progress-bar1 {
position: relative;
width: 444rpx; // 根据图片宽度设置
height: 14rpx; // 根据图片高度设置
margin: 14rpx auto 16rpx auto;
.progress-bg1 {
margin-top: 0rpx;
position: absolute;
width: 444rpx;
height: 14rpx;
top: 0rpx;
left: 0rpx;
}
.progress-mask {
position: absolute;
width: 444rpx;
height: 14rpx;
overflow: hidden;
border-radius: 7rpx;
.progress-img1 {
.progress-bar1 {
position: relative;
width: 444rpx; // 根据图片宽度设置
height: 14rpx; // 根据图片高度设置
margin: 14rpx auto 16rpx auto;
.progress-bg1 {
margin-top: 0rpx;
position: absolute;
width: 444rpx;
height: 14rpx;
display: block;
top: 0rpx;
left: 0rpx;
}
.progress-mask {
position: absolute;
width: 444rpx;
height: 14rpx;
overflow: hidden;
border-radius: 7rpx;
.progress-img1 {
position: absolute;
width: 444rpx;
height: 14rpx;
display: block;
}
}
}
}
.info-row {
display: flex;
flex-direction: row;
position: relative;
height: 26rpx;
margin-top: 0rpx;
margin-left: 26rpx;
.count-text {
font-size: 24rpx;
color: #b27c1e;
}
.expire-text {
margin-left: 15rpx;
font-size: 22rpx;
color: #6f6d67;
.info-row {
display: flex;
flex-direction: row;
position: relative;
height: 26rpx;
margin-top: -5rpx;
margin-left: 26rpx;
.count-text {
font-size: 26rpx;
color: #b27c1e;
}
.expire-text {
margin-top: 2rpx;
margin-left: 15rpx;
font-size: 22rpx;
color: #6f6d67;
}
}
}
.strategy-icon {
position: absolute;
right: 0rpx;
top: 0rpx;
width: 96rpx;
height: 49rpx;
}
}
}
...
...
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