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
b7e90c1c
Commit
b7e90c1c
authored
Aug 18, 2025
by
spc
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fixed
parent
e33a0ada
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
394 additions
and
256 deletions
+394
-256
babyClass.vue
components/pointRightsCom/babyClass.vue
+20
-15
monthGift.vue
components/pointRightsCom/monthGift.vue
+371
-240
syWebview.vue
pages/syWebview/syWebview.vue
+3
-1
No files found.
components/pointRightsCom/babyClass.vue
View file @
b7e90c1c
...
...
@@ -14,7 +14,8 @@
<image
class=
"diamondips4"
:src=
"`$
{$baseUrl}${BABY_CLASS_IMAGES.DIAMOND.IPS4}`" mode="aspectFit">
</image>
</view>
<image
class=
"diamondbtn"
:src=
"`$
{$baseUrl}${BABY_CLASS_IMAGES.DIAMOND.BTN}`" mode="aspectFit" @click="jump('diamond')">
</image>
<image
class=
"diamondbtn"
:src=
"`$
{$baseUrl}${BABY_CLASS_IMAGES.DIAMOND.BTN}`" mode="aspectFit"
@click="jump('diamond')">
</image>
<image
class=
"diamonddesc"
:src=
"`$
{$baseUrl}${BABY_CLASS_IMAGES.DIAMOND.DESC}`" mode="aspectFit">
</image>
</view>
...
...
@@ -32,7 +33,8 @@
<image
class=
"starshineips4"
:src=
"`$
{$baseUrl}${BABY_CLASS_IMAGES.STARSHINE.IPS4}`" mode="aspectFit">
</image>
</view>
<image
class=
"starshinebtn"
:src=
"`$
{$baseUrl}${BABY_CLASS_IMAGES.STARSHINE.BTN}`" mode="aspectFit" @click="jump('starshine')">
</image>
<image
class=
"starshinebtn"
:src=
"`$
{$baseUrl}${BABY_CLASS_IMAGES.STARSHINE.BTN}`" mode="aspectFit"
@click="jump('starshine')">
</image>
<image
class=
"starshinedesc"
:src=
"`$
{$baseUrl}${BABY_CLASS_IMAGES.STARSHINE.DESC}`" mode="aspectFit">
</image>
</view>
...
...
@@ -51,7 +53,8 @@
<image
class=
"starlightips4"
:src=
"`$
{$baseUrl}${BABY_CLASS_IMAGES.STARLIGHT.IPS4}`" mode="aspectFit">
</image>
</view>
<image
class=
"starlightbtn"
:src=
"`$
{$baseUrl}${BABY_CLASS_IMAGES.STARLIGHT.BTN}`" mode="aspectFit" @click="jump('starlight')">
</image>
<image
class=
"starlightbtn"
:src=
"`$
{$baseUrl}${BABY_CLASS_IMAGES.STARLIGHT.BTN}`" mode="aspectFit"
@click="jump('starlight')">
</image>
<image
class=
"starlightdesc"
:src=
"`$
{$baseUrl}${BABY_CLASS_IMAGES.STARLIGHT.DESC}`" mode="aspectFit">
</image>
</view>
...
...
@@ -65,7 +68,8 @@
<image
class=
"goldips3"
:src=
"`$
{$baseUrl}${BABY_CLASS_IMAGES.GOLD.IPS3}`" mode="aspectFit">
</image>
<image
class=
"goldips4"
:src=
"`$
{$baseUrl}${BABY_CLASS_IMAGES.GOLD.IPS4}`" mode="aspectFit">
</image>
</view>
<image
class=
"goldbtn"
:src=
"`$
{$baseUrl}${BABY_CLASS_IMAGES.GOLD.BTN}`" mode="aspectFit" @click="jump('gold')">
</image>
<image
class=
"goldbtn"
:src=
"`$
{$baseUrl}${BABY_CLASS_IMAGES.GOLD.BTN}`" mode="aspectFit"
@click="jump('gold')">
</image>
<image
class=
"golddesc"
:src=
"`$
{$baseUrl}${BABY_CLASS_IMAGES.GOLD.DESC}`" mode="aspectFit">
</image>
</view>
...
...
@@ -83,7 +87,8 @@
<image
class=
"platinumips4"
:src=
"`$
{$baseUrl}${BABY_CLASS_IMAGES.PLATINUM.IPS4}`" mode="aspectFit">
</image>
</view>
<image
class=
"platinumbtn"
:src=
"`$
{$baseUrl}${BABY_CLASS_IMAGES.PLATINUM.BTN}`" mode="aspectFit" @click="jump('platinum')">
</image>
<image
class=
"platinumbtn"
:src=
"`$
{$baseUrl}${BABY_CLASS_IMAGES.PLATINUM.BTN}`" mode="aspectFit"
@click="jump('platinum')">
</image>
<image
class=
"platinumdesc"
:src=
"`$
{$baseUrl}${BABY_CLASS_IMAGES.PLATINUM.DESC}`" mode="aspectFit">
</image>
</view>
...
...
@@ -116,7 +121,7 @@ const props = defineProps({
// 等级映射常量
const
LEVEL_MAP
=
{
0
:
'gold'
,
1
:
'platinum'
,
1
:
'platinum'
,
2
:
'diamond'
,
3
:
'starlight'
,
4
:
'starshine'
...
...
@@ -131,12 +136,12 @@ const userLevelName = computed(() => LEVEL_MAP[props.userLevel])
// 跳转方法
const
jump
=
(
level
)
=>
{
console
.
log
(
`跳转到
${
level
}
等级页面`
)
// 检查用户等级是否符合要求
const
levelOrder
=
[
0
,
1
,
2
,
3
,
4
];
// gold, platinum, diamond, starlight, starshine
const
userLevelIndex
=
levelOrder
.
indexOf
(
props
.
userLevel
);
const
requiredLevelIndex
=
levelOrder
.
indexOf
(
props
.
currentLevel
);
if
(
userLevelIndex
<
requiredLevelIndex
)
{
uni
.
showToast
({
title
:
'等级不够,无法访问'
,
...
...
@@ -145,11 +150,11 @@ const jump = (level) => {
})
return
;
}
// 跳转到 H5 页面,地址暂时默认 https://www.baidu.com
// 可以根据不同等级跳转到不同的地址
const
url
=
'https://member.feihe.com/memberH5/#/courses'
// 使用 uni.navigateTo 跳转到 webview 页面
uni
.
navigateTo
({
url
:
`/pages/webview/webview?url=
${
encodeURIComponent
(
url
)}
&title=
${
level
}
等级页面`
...
...
@@ -239,7 +244,7 @@ const jump = (level) => {
position: absolute;
cursor: pointer;
transition: transform 0.2s ease;
&:active {
transform: scale(0.95);
}
...
...
@@ -326,7 +331,7 @@ const jump = (level) => {
position: absolute;
cursor: pointer;
transition: transform 0.2s ease;
&:active {
transform: scale(0.95);
}
...
...
@@ -413,7 +418,7 @@ const jump = (level) => {
position: absolute;
cursor: pointer;
transition: transform 0.2s ease;
&:active {
transform: scale(0.95);
}
...
...
@@ -500,7 +505,7 @@ const jump = (level) => {
position: absolute;
cursor: pointer;
transition: transform 0.2s ease;
&:active {
transform: scale(0.95);
}
...
...
@@ -587,7 +592,7 @@ const jump = (level) => {
position: absolute;
cursor: pointer;
transition: transform 0.2s ease;
&:active {
transform: scale(0.95);
}
...
...
components/pointRightsCom/monthGift.vue
View file @
b7e90c1c
...
...
@@ -22,8 +22,7 @@
</view>
<!-- 精选好券按钮 -->
<view
class=
"coupon-button-container"
>
<button
class=
"coupon-btn"
:class=
"getCouponButtonClass('diamond')"
@
click=
"handleCouponClick('diamond')"
>
<button
class=
"coupon-btn"
:class=
"getCouponButtonClass()"
@
click=
"handleCouponClick('diamond')"
>
{{
getCouponButtonText
(
'diamond'
)
}}
</button>
</view>
...
...
@@ -44,28 +43,32 @@
<image
class=
"diamond1buycomtime1text"
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.DIAMOND.BUY_COM.TIME1.TEXT}`" mode="aspectFit">
</image>
<image
class=
"diamond1buycomtime1status"
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.DIAMOND.BUY_COM.TIME1.STATUS}`" mode="aspectFit">
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.DIAMOND.BUY_COM.TIME1.STATUS}`" mode="aspectFit"
v-if="!isLevelSufficient()">
</image>
</view>
<view
class=
"diamond1buycomtime2"
@
click=
"switchTimeSlot(1)"
:class=
"getTimeSlotClass(1)"
>
<image
class=
"diamond1buycomtime2text"
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.DIAMOND.BUY_COM.TIME2.TEXT}`" mode="aspectFit">
</image>
<image
class=
"diamond1buycomtime2status"
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.DIAMOND.BUY_COM.TIME2.STATUS}`" mode="aspectFit">
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.DIAMOND.BUY_COM.TIME2.STATUS}`" mode="aspectFit"
v-if="!isLevelSufficient()">
</image>
</view>
<view
class=
"diamond1buycomtime3"
@
click=
"switchTimeSlot(2)"
:class=
"getTimeSlotClass(2)"
>
<image
class=
"diamond1buycomtime3text"
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.DIAMOND.BUY_COM.TIME3.TEXT}`" mode="aspectFit">
</image>
<image
class=
"diamond1buycomtime3status"
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.DIAMOND.BUY_COM.TIME3.STATUS}`" mode="aspectFit">
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.DIAMOND.BUY_COM.TIME3.STATUS}`" mode="aspectFit"
v-if="!isLevelSufficient()">
</image>
</view>
<view
class=
"diamond1buycomtime4"
@
click=
"switchTimeSlot(3)"
:class=
"getTimeSlotClass(3)"
>
<image
class=
"diamond1buycomtime4text"
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.DIAMOND.BUY_COM.TIME4.TEXT}`" mode="aspectFit">
</image>
<image
class=
"diamond1buycomtime4status"
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.DIAMOND.BUY_COM.TIME4.STATUS}`" mode="aspectFit">
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.DIAMOND.BUY_COM.TIME4.STATUS}`" mode="aspectFit"
v-if="!isLevelSufficient()">
</image>
</view>
<view
class=
"diamond1buycomgoods"
>
...
...
@@ -83,8 +86,8 @@
mode="aspectFit">
</image>
<image
class=
"diamond1buycomdesc"
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.DIAMOND.BUY_COM.DESC}`"
mode="aspectFit">
</image>
<image
class=
"diamond1buycomstatus"
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.DIAMOND.BUY_COM.STATUS}`"
mode="aspectFit">
</image>
<
!--
<
image
class=
"diamond1buycomstatus"
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.DIAMOND.BUY_COM.STATUS}`"
mode="aspectFit">
</image>
-->
</view>
</view>
...
...
@@ -114,8 +117,7 @@
</view>
<!-- 精选好券按钮 -->
<view
class=
"coupon-button-container"
>
<button
class=
"coupon-btn"
:class=
"getCouponButtonClass('starshine')"
@
click=
"handleCouponClick('starshine')"
>
<button
class=
"coupon-btn"
:class=
"getCouponButtonClass()"
@
click=
"handleCouponClick('starshine')"
>
{{
getCouponButtonText
(
'starshine'
)
}}
</button>
</view>
...
...
@@ -136,14 +138,16 @@
<image
class=
"starshine1buycomtime1text"
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.STARSHINE.BUY_COM.TIME1.TEXT}`" mode="aspectFit">
</image>
<image
class=
"starshine1buycomtime1status"
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.STARSHINE.BUY_COM.TIME1.STATUS}`" mode="aspectFit">
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.STARSHINE.BUY_COM.TIME1.STATUS}`" mode="aspectFit"
v-if="!isLevelSufficient()">
</image>
</view>
<view
class=
"starshine1buycomtime2"
@
click=
"switchTimeSlot(1)"
:class=
"getTimeSlotClass(1)"
>
<image
class=
"starshine1buycomtime2text"
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.STARSHINE.BUY_COM.TIME2.TEXT}`" mode="aspectFit">
</image>
<image
class=
"starshine1buycomtime2status"
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.STARSHINE.BUY_COM.TIME2.STATUS}`" mode="aspectFit">
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.STARSHINE.BUY_COM.TIME2.STATUS}`" mode="aspectFit"
v-if="!isLevelSufficient()">
</image>
</view>
<view
class=
"starshine1buycomtime3"
@
click=
"switchTimeSlot(2)"
:class=
"getTimeSlotClass(2)"
>
...
...
@@ -151,13 +155,14 @@
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.STARSHINE.BUY_COM.TIME3.TEXT}`" mode="aspectFit">
</image>
<image
class=
"starshine1buycomtime3status"
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.STARSHINE.BUY_COM.TIME3.STATUS}`" mode="aspectFit"
v-if="!isLevelSufficient(
props.currentLevel
)">
</image>
v-if="!isLevelSufficient()">
</image>
</view>
<view
class=
"starshine1buycomtime4"
@
click=
"switchTimeSlot(3)"
:class=
"getTimeSlotClass(3)"
>
<image
class=
"starshine1buycomtime4text"
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.STARSHINE.BUY_COM.TIME4.TEXT}`" mode="aspectFit">
</image>
<image
class=
"starshine1buycomtime4status"
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.STARSHINE.BUY_COM.TIME4.STATUS}`" mode="aspectFit">
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.STARSHINE.BUY_COM.TIME4.STATUS}`" mode="aspectFit"
v-if="!isLevelSufficient()">
</image>
</view>
<view
class=
"starshine1buycomgoods"
>
...
...
@@ -171,8 +176,8 @@
</button>
</view>
</view>
<image
class=
"starshine1buycomstatus"
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.STARSHINE.BUY_COM.STATUS}`"
mode="aspectFit">
</image>
<
!--
<
image
class=
"starshine1buycomstatus"
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.STARSHINE.BUY_COM.STATUS}`"
mode="aspectFit">
</image>
-->
<image
class=
"starshine1buycomtitle"
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.STARSHINE.BUY_COM.TITLE}`"
mode="aspectFit">
</image>
<image
class=
"starshine1buycomdesc"
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.STARSHINE.BUY_COM.DESC}`"
...
...
@@ -206,8 +211,7 @@
</view>
<!-- 精选好券按钮 -->
<view
class=
"coupon-button-container"
>
<button
class=
"coupon-btn"
:class=
"getCouponButtonClass('starlight')"
@
click=
"handleCouponClick('starlight')"
>
<button
class=
"coupon-btn"
:class=
"getCouponButtonClass()"
@
click=
"handleCouponClick('starlight')"
>
{{
getCouponButtonText
(
'starlight'
)
}}
</button>
</view>
...
...
@@ -228,14 +232,16 @@
<image
class=
"startlight1buycomtime1text"
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.STARLIGHT.BUY_COM.TIME1.TEXT}`" mode="aspectFit">
</image>
<image
class=
"startlight1buycomtime1status"
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.STARLIGHT.BUY_COM.TIME1.STATUS}`" mode="aspectFit">
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.STARLIGHT.BUY_COM.TIME1.STATUS}`" mode="aspectFit"
v-if="!isLevelSufficient()">
</image>
</view>
<view
class=
"startlight1buycomtime2"
@
click=
"switchTimeSlot(1)"
:class=
"getTimeSlotClass(1)"
>
<image
class=
"startlight1buycomtime2text"
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.STARLIGHT.BUY_COM.TIME2.TEXT}`" mode="aspectFit">
</image>
<image
class=
"startlight1buycomtime2status"
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.STARLIGHT.BUY_COM.TIME2.STATUS}`" mode="aspectFit">
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.STARLIGHT.BUY_COM.TIME2.STATUS}`" mode="aspectFit"
v-if="!isLevelSufficient()">
</image>
</view>
<view
class=
"startlight1buycomtime3"
@
click=
"switchTimeSlot(2)"
:class=
"getTimeSlotClass(2)"
>
...
...
@@ -243,13 +249,14 @@
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.STARLIGHT.BUY_COM.TIME3.TEXT}`" mode="aspectFit">
</image>
<image
class=
"startlight1buycomtime3status"
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.STARLIGHT.BUY_COM.TIME3.STATUS}`" mode="aspectFit"
v-if="!isLevelSufficient(
props.currentLevel
)">
</image>
v-if="!isLevelSufficient()">
</image>
</view>
<view
class=
"startlight1buycomtime4"
@
click=
"switchTimeSlot(3)"
:class=
"getTimeSlotClass(3)"
>
<image
class=
"startlight1buycomtime4text"
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.STARLIGHT.BUY_COM.TIME4.TEXT}`" mode="aspectFit">
</image>
<image
class=
"startlight1buycomtime4status"
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.STARLIGHT.BUY_COM.TIME4.STATUS}`" mode="aspectFit">
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.STARLIGHT.BUY_COM.TIME4.STATUS}`" mode="aspectFit"
v-if="!isLevelSufficient()">
</image>
</view>
<view
class=
"startlight1buycomgoods"
>
...
...
@@ -267,8 +274,8 @@
mode="aspectFit">
</image>
<image
class=
"startlight1buycomdesc"
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.STARLIGHT.BUY_COM.DESC}`"
mode="aspectFit">
</image>
<image
class=
"startlight1buycomstatus"
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.STARLIGHT.BUY_COM.STATUS}`"
mode="aspectFit">
</image>
<
!--
<
image
class=
"startlight1buycomstatus"
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.STARLIGHT.BUY_COM.STATUS}`"
mode="aspectFit">
</image>
-->
</view>
</view>
...
...
@@ -293,7 +300,7 @@
</view>
<!-- 精选好券按钮 -->
<view
class=
"coupon-button-container"
>
<button
class=
"coupon-btn"
:class=
"getCouponButtonClass(
'gold'
)"
@
click=
"handleCouponClick('gold')"
>
<button
class=
"coupon-btn"
:class=
"getCouponButtonClass()"
@
click=
"handleCouponClick('gold')"
>
{{
getCouponButtonText
(
'gold'
)
}}
</button>
</view>
...
...
@@ -303,8 +310,8 @@
mode="aspectFit">
</image>
<image
class=
"gold1buycomdesc"
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.GOLD.BUY_COM.DESC}`"
mode="aspectFit">
</image>
<image
class=
"gold1buycomstatus"
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.GOLD.BUY_COM.STATUS}`"
mode="aspectFit">
</image>
<
!--
<
image
class=
"gold1buycomstatus"
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.GOLD.BUY_COM.STATUS}`"
mode="aspectFit">
</image>
-->
<!-- 时间段背景图片 - 根据选中状态动态显示 -->
<image
v-if=
"state.selectedTimeSlot === 3"
class=
"gold1buycomsel4"
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.GOLD.BUY_COM.SEL4}`" mode="aspectFit">
</image>
...
...
@@ -320,26 +327,32 @@
<image
class=
"gold1buycomtime1text"
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.GOLD.BUY_COM.TIME1.TEXT}`"
mode="aspectFit">
</image>
<image
class=
"gold1buycomtime1status"
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.GOLD.BUY_COM.TIME1.STATUS}`" mode="aspectFit">
</image>
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.GOLD.BUY_COM.TIME1.STATUS}`" mode="aspectFit"
v-if="!isLevelSufficient()">
</image>
</view>
<view
class=
"gold1buycomtime2"
@
click=
"switchTimeSlot(1)"
:class=
"getTimeSlotClass(1)"
>
<image
class=
"gold1buycomtime2text"
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.GOLD.BUY_COM.TIME2.TEXT}`"
mode="aspectFit">
</image>
<image
class=
"gold1buycomtime2status"
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.GOLD.BUY_COM.TIME2.STATUS}`" mode="aspectFit">
</image>
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.GOLD.BUY_COM.TIME2.STATUS}`" mode="aspectFit"
v-if="!isLevelSufficient()">
</image>
</view>
<view
class=
"gold1buycomtime3"
@
click=
"switchTimeSlot(2)"
:class=
"getTimeSlotClass(2)"
>
<image
class=
"gold1buycomtime3text"
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.GOLD.BUY_COM.TIME3.TEXT}`"
mode="aspectFit">
</image>
<image
class=
"gold1buycomtime3status"
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.GOLD.BUY_COM.TIME3.STATUS}`" mode="aspectFit"
v-if="!isLevelSufficient(
props.currentLevel
)">
</image>
v-if="!isLevelSufficient()">
</image>
</view>
<view
class=
"gold1buycomtime4"
@
click=
"switchTimeSlot(3)"
:class=
"getTimeSlotClass(3)"
>
<image
class=
"gold1buycomtime4text"
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.GOLD.BUY_COM.TIME4.TEXT}`"
mode="aspectFit">
</image>
<image
class=
"gold1buycomtime4status"
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.GOLD.BUY_COM.TIME4.STATUS}`" mode="aspectFit">
</image>
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.GOLD.BUY_COM.TIME4.STATUS}`" mode="aspectFit"
v-if="!isLevelSufficient()">
</image>
</view>
<view
class=
"gold1buycomgoods"
>
<image
class=
"gold1buycomgoodsbg"
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.GOLD.BUY_COM.GOODS.BG}`"
...
...
@@ -376,8 +389,7 @@
</view>
<!-- 精选好券按钮 -->
<view
class=
"coupon-button-container"
>
<button
class=
"coupon-btn"
:class=
"getCouponButtonClass('platinum')"
@
click=
"handleCouponClick('platinum')"
>
<button
class=
"coupon-btn"
:class=
"getCouponButtonClass()"
@
click=
"handleCouponClick('platinum')"
>
{{
getCouponButtonText
(
'platinum'
)
}}
</button>
</view>
...
...
@@ -387,8 +399,8 @@
mode="aspectFit">
</image>
<image
class=
"platinum1buycomdesc"
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.PLATINUM.BUY_COM.DESC}`"
mode="aspectFit">
</image>
<image
class=
"platinum1buycomstatus"
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.PLATINUM.BUY_COM.STATUS}`"
mode="aspectFit">
</image>
<
!--
<
image
class=
"platinum1buycomstatus"
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.PLATINUM.BUY_COM.STATUS}`"
mode="aspectFit">
</image>
-->
<!-- 时间段背景图片 - 根据选中状态动态显示 -->
<image
v-if=
"state.selectedTimeSlot === 3"
class=
"platinum1buycomsel4"
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.PLATINUM.BUY_COM.SEL4}`" mode="aspectFit">
</image>
...
...
@@ -403,26 +415,32 @@
<image
class=
"platinum1buycomtime1text"
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.PLATINUM.BUY_COM.TIME1.TEXT}`" mode="aspectFit">
</image>
<image
class=
"platinum1buycomtime1status"
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.PLATINUM.BUY_COM.TIME1.STATUS}`" mode="aspectFit">
</image>
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.PLATINUM.BUY_COM.TIME1.STATUS}`" mode="aspectFit"
v-if="!isLevelSufficient()">
</image>
</view>
<view
class=
"platinum1buycomtime2"
@
click=
"switchTimeSlot(1)"
:class=
"getTimeSlotClass(1)"
>
<image
class=
"platinum1buycomtime2text"
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.PLATINUM.BUY_COM.TIME2.TEXT}`" mode="aspectFit">
</image>
<image
class=
"platinum1buycomtime2status"
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.PLATINUM.BUY_COM.TIME2.STATUS}`" mode="aspectFit">
</image>
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.PLATINUM.BUY_COM.TIME2.STATUS}`" mode="aspectFit"
v-if="!isLevelSufficient()">
</image>
</view>
<view
class=
"platinum1buycomtime3"
@
click=
"switchTimeSlot(2)"
:class=
"getTimeSlotClass(2)"
>
<image
class=
"platinum1buycomtime3text"
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.PLATINUM.BUY_COM.TIME3.TEXT}`" mode="aspectFit">
</image>
<image
class=
"platinum1buycomtime3status"
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.PLATINUM.BUY_COM.TIME3.STATUS}`" mode="aspectFit"
v-if="!isLevelSufficient(
props.currentLevel
)">
</image>
v-if="!isLevelSufficient()">
</image>
</view>
<view
class=
"platinum1buycomtime4"
@
click=
"switchTimeSlot(3)"
:class=
"getTimeSlotClass(3)"
>
<image
class=
"platinum1buycomtime4text"
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.PLATINUM.BUY_COM.TIME4.TEXT}`" mode="aspectFit">
</image>
<image
class=
"platinum1buycomtime4status"
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.PLATINUM.BUY_COM.TIME4.STATUS}`" mode="aspectFit">
</image>
:src=
"`$
{$baseUrl}${MONTH_GIFT_IMAGES.PLATINUM.BUY_COM.TIME4.STATUS}`" mode="aspectFit"
v-if="!isLevelSufficient()">
</image>
</view>
<view
class=
"platinum1buycomgoods"
>
<image
class=
"platinum1buycomgoodsbg"
...
...
@@ -549,97 +567,42 @@ const LEVEL_MAP = {
const
currentLevelName
=
computed
(()
=>
LEVEL_MAP
[
props
.
currentLevel
])
// 计算属性:是否可以访问限时1分购
const
canAccessBuy
=
computed
(()
=>
{
// 钻石以上等级可以访问限时1分购
const
levelOrder
=
[
0
,
1
,
2
,
3
,
4
]
// gold, platinum, diamond, starlight, starshine
const
userLevelIndex
=
levelOrder
.
indexOf
(
props
.
userLevel
)
const
diamondIndex
=
levelOrder
.
indexOf
(
2
)
// diamond
return
userLevelIndex
>=
diamondIndex
})
// 方法
const
handleCouponClick
=
async
(
level
)
=>
{
console
.
log
(
`Clicked coupon for
${
level
}
`
)
// 检查用户等级是否符合领取条件
const
levelOrder
=
[
0
,
1
,
2
,
3
,
4
]
// gold, platinum, diamond, starlight, starshine
const
userLevelIndex
=
levelOrder
.
indexOf
(
props
.
userLevel
)
const
requiredLevelIndex
=
levelOrder
.
indexOf
(
level
)
console
.
log
(
"state.couponStatus"
,
state
.
couponStatus
,
level
)
// 如果用户等级不够,显示提示
if
(
userLevelIndex
<
requiredLevelIndex
)
{
uni
.
showToast
({
title
:
'等级不够,无法领取'
,
icon
:
'none'
,
duration
:
2000
if
(
state
.
couponStatus
[
level
]
===
'used'
)
{
uni
.
navigateTo
({
url
:
'/pages/webview/webview?url=https://member.feihe.com/memberH5/#/coupon'
})
return
}
if
(
state
.
couponStatus
[
level
]
===
'unlocked'
)
{
try
{
// 从 equityCouponList 中找到对应等级的优惠券
const
coupon
=
state
.
equityCouponList
.
find
(
c
=>
{
// 这里需要根据实际业务逻辑来判断优惠券属于哪个等级
// 可能需要根据 couponName、equityIcon 或其他字段来判断
return
getLevelFromCoupon
(
c
)
===
level
})
if
(
!
coupon
)
{
uni
.
showToast
({
title
:
'未找到对应优惠券'
,
icon
:
'none'
,
duration
:
2000
})
return
}
// 从 batchCoupon.stockBatchList 中获取 stockBatchId
let
stockBatchId
=
'default'
if
(
state
.
batchCoupon
&&
state
.
batchCoupon
.
stockBatchList
&&
state
.
batchCoupon
.
stockBatchList
.
length
>
0
)
{
// 使用第一个批次的 stockBatchId,或者根据实际业务逻辑选择
stockBatchId
=
state
.
batchCoupon
.
stockBatchList
[
0
].
stockBatchId
}
// 调用API领取优惠券,使用 stockBatchId 和 equityCouponInfoId
const
result
=
await
monthlyGiftDrawAll
({
try
{
const
result
=
await
monthlyGiftDrawAll
()
console
.
log
(
'Coupon draw result:'
,
result
)
if
(
result
.
code
===
'000000'
)
{
state
.
couponStatus
=
'purchased'
uni
.
showToast
({
title
:
'领取成功'
,
icon
:
'success'
,
duration
:
2000
})
if
(
result
.
success
)
{
// 领取成功
uni
.
showToast
({
title
:
'领取成功!'
,
icon
:
'success'
,
duration
:
2000
})
// 更新状态
state
.
couponStatus
[
level
]
=
'used'
// 更新 equityCouponList 中的状态
coupon
.
receiveStatus
=
1
coupon
.
receiveTime
=
new
Date
().
toISOString
()
}
else
{
uni
.
showToast
({
title
:
result
.
message
||
'领取失败'
,
icon
:
'none'
,
duration
:
2000
})
}
}
catch
(
error
)
{
console
.
error
(
'领取优惠券失败:'
,
error
)
}
else
{
uni
.
showToast
({
title
:
'网络错误,请重试
'
,
title
:
result
.
message
||
'领取失败
'
,
icon
:
'none'
,
duration
:
2000
})
}
}
else
if
(
state
.
couponStatus
[
level
]
===
'used'
)
{
// 跳转到优惠券使用页面
uni
.
navigateTo
({
url
:
'/pages/coupon/couponList'
}
catch
(
error
)
{
console
.
error
(
'Error drawing coupon:'
,
error
)
uni
.
showToast
({
title
:
'领取失败: '
+
error
.
message
,
icon
:
'none'
,
duration
:
2000
})
}
}
...
...
@@ -647,17 +610,13 @@ const handleCouponClick = async (level) => {
const
handleBuyClick
=
async
(
level
)
=>
{
console
.
log
(
`Clicked buy for
${
level
}
`
)
// 检查用户等级是否符合领取条件
const
levelOrder
=
[
0
,
1
,
2
,
3
,
4
]
// gold, platinum, diamond, starlight, starshine
const
levelOrder
=
[
0
,
1
,
2
,
3
,
4
]
;
// gold, platinum, diamond, starlight, starshine
const
userLevelIndex
=
levelOrder
.
indexOf
(
props
.
userLevel
)
const
requiredLevelIndex
=
levelOrder
.
indexOf
(
level
)
const
diamondIndex
=
levelOrder
.
indexOf
(
2
);
// Diamond level is 2
// 如果用户等级不够,显示提示
if
(
userLevelIndex
<
requiredLevel
Index
)
{
if
(
userLevelIndex
<
diamond
Index
)
{
uni
.
showToast
({
title
:
'等级不够,无法领取'
,
icon
:
'none'
,
...
...
@@ -667,7 +626,7 @@ const handleBuyClick = async (level) => {
}
// 可以购买,执行购买逻辑
if
(
state
.
buyStatus
[
level
]
===
'locked'
)
{
if
(
state
.
buyStatus
[
level
]
===
'
un
locked'
)
{
try
{
// 调用API领取限时1分购,不需要传递参数
const
result
=
await
monthlyGiftDrawOne
()
...
...
@@ -710,48 +669,43 @@ const switchTimeSlot = (index) => {
// 获取精选好券按钮文本
const
getCouponButtonText
=
(
level
)
=>
{
// 检查用户等级是否符合领取条件
const
levelOrder
=
[
0
,
1
,
2
,
3
,
4
]
// gold, platinum, diamond, starlight, starshine
if
(
state
.
couponStatus
[
level
]
===
'used'
)
{
return
'去使用'
}
const
levelOrder
=
[
0
,
1
,
2
,
3
,
4
];
const
userLevelIndex
=
levelOrder
.
indexOf
(
props
.
userLevel
)
const
requiredLevelIndex
=
levelOrder
.
indexOf
(
level
)
// 如果用户等级不够,显示"待解锁"
if
(
userLevelIndex
<
requiredLevelIndex
)
{
const
goldIndex
=
levelOrder
.
indexOf
(
0
)
// Gold level is 0
if
(
userLevelIndex
<
goldIndex
)
{
return
'待解锁'
}
// 检查是否有未领取的优惠券
const
hasUnclaimedCoupon
=
state
.
equityCouponList
.
some
(
coupon
=>
{
const
couponLevel
=
getLevelFromCoupon
(
coupon
)
return
couponLevel
===
level
&&
coupon
.
receiveStatus
===
0
})
if
(
hasUnclaimedCoupon
)
{
return
'立即领取'
}
else
{
return
'去使用'
}
return
'立即领取'
}
// 获取精选好券按钮样式类
const
getCouponButtonClass
=
(
level
)
=>
{
if
(
state
.
couponStatus
[
level
]
===
'unlocked'
)
{
return
'coupon-btn-unlocked'
}
else
if
(
state
.
couponStatus
[
level
]
===
'used'
)
{
return
'coupon-btn-
used'
const
getCouponButtonClass
=
()
=>
{
const
levelName
=
currentLevelName
.
value
console
.
warn
(
"levelName"
,
levelName
,
state
)
if
(
state
.
couponStatus
[
levelName
]
===
'used'
)
{
return
'coupon-btn-
purchased-'
+
levelName
}
return
'coupon-btn-locked'
const
levelOrder
=
[
0
,
1
,
2
,
3
,
4
];
const
userLevelIndex
=
levelOrder
.
indexOf
(
props
.
userLevel
)
const
goldIndex
=
levelOrder
.
indexOf
(
0
)
// Gold level is 0
if
(
userLevelIndex
<
goldIndex
)
{
return
'coupon-btn-locked'
}
return
'coupon-btn-unlocked-'
+
levelName
}
// 获取限时1分购按钮文本
const
getBuyButtonText
=
(
level
)
=>
{
// 检查用户等级是否符合领取条件
const
levelOrder
=
[
0
,
1
,
2
,
3
,
4
]
// gold, platinum, diamond, starlight, starshine
const
levelOrder
=
[
0
,
1
,
2
,
3
,
4
]
;
// gold, platinum, diamond, starlight, starshine
const
userLevelIndex
=
levelOrder
.
indexOf
(
props
.
userLevel
)
const
requiredLevelIndex
=
levelOrder
.
indexOf
(
level
)
const
diamondIndex
=
levelOrder
.
indexOf
(
2
)
// Diamond level is 2
// 如果用户等级不够,显示"待解锁"
if
(
userLevelIndex
<
requiredLevel
Index
)
{
if
(
userLevelIndex
<
diamond
Index
)
{
return
'待解锁'
}
...
...
@@ -769,17 +723,22 @@ const getBuyButtonText = (level) => {
// 获取限时1分购按钮样式类
const
getBuyButtonClass
=
(
level
)
=>
{
if
(
!
canAccessBuy
.
value
)
{
return
'buy-btn-upgrade'
const
levelName
=
currentLevelName
.
value
const
levelOrder
=
[
0
,
1
,
2
,
3
,
4
];
// gold, platinum, diamond, starlight, starshine
const
userLevelIndex
=
levelOrder
.
indexOf
(
props
.
userLevel
)
const
diamondIndex
=
levelOrder
.
indexOf
(
2
);
// Diamond level is 2
if
(
userLevelIndex
<
diamondIndex
)
{
return
'buy-btn-upgrade-'
+
levelName
}
if
(
state
.
buyStatus
[
level
]
===
'locked'
)
{
return
'buy-btn-unlocked
'
if
(
state
.
buyStatus
[
level
]
===
'
un
locked'
)
{
return
'buy-btn-unlocked
-'
+
levelName
}
else
if
(
state
.
buyStatus
[
level
]
===
'purchased'
)
{
return
'buy-btn-purchased
'
return
'buy-btn-purchased
-'
+
levelName
}
return
'buy-btn-locked
'
return
'buy-btn-locked
-'
+
levelName
}
...
...
@@ -857,14 +816,26 @@ const updateCouponStatus = (equityCouponList) => {
state
.
couponStatus
[
level
]
=
'locked'
})
if
(
equityCouponList
.
length
==
0
)
{
Object
.
keys
(
state
.
couponStatus
).
forEach
(
level
=>
{
state
.
couponStatus
[
level
]
=
'used'
})
return
}
let
hasNoReceive
=
true
equityCouponList
.
forEach
(
coupon
=>
{
// 根据优惠券信息判断等级
const
level
=
getLevelFromCoupon
(
coupon
)
if
(
level
&&
state
.
couponStatus
.
hasOwnProperty
(
level
))
{
// receiveStatus: 0-未领取, 1-已领取
state
.
couponStatus
[
level
]
=
coupon
.
receiveStatus
===
1
?
'used'
:
'unlocked'
if
(
coupon
.
receiveStatus
==
0
)
{
hasNoReceive
=
false
}
})
if
(
hasNoReceive
)
{
Object
.
keys
(
state
.
couponStatus
).
forEach
(
level
=>
{
state
.
couponStatus
[
level
]
=
'unlocked'
})
}
}
// 根据 batchCoupon 更新限时1分购状态和时间段状态
...
...
@@ -978,29 +949,7 @@ const updateBuyStatusAndTimeSlots = (batchCouponArray) => {
console
.
log
(
'Updated buyStatus:'
,
state
.
buyStatus
)
}
// 根据优惠券信息判断等级(需要根据实际业务逻辑实现)
const
getLevelFromCoupon
=
(
coupon
)
=>
{
// 这里需要根据实际的业务逻辑来判断优惠券属于哪个等级
// 可能需要根据 couponName、equityIcon 或其他字段来判断
// 暂时返回 null,需要根据实际业务逻辑完善
// 示例:如果 couponName 包含 '钻石',则返回 'diamond'
if
(
coupon
.
couponName
&&
coupon
.
couponName
.
includes
(
'钻石'
))
{
return
'diamond'
}
if
(
coupon
.
couponName
&&
coupon
.
couponName
.
includes
(
'星耀'
))
{
return
'starshine'
}
if
(
coupon
.
couponName
&&
coupon
.
couponName
.
includes
(
'星光'
))
{
return
'starlight'
}
if
(
coupon
.
couponName
&&
coupon
.
couponName
.
includes
(
'黄金'
))
{
return
'gold'
}
if
(
coupon
.
couponName
&&
coupon
.
couponName
.
includes
(
'铂金'
))
{
return
'platinum'
}
return
currentLevelName
.
value
// 默认返回当前展示等级,或者根据实际情况处理
}
// 获取批次状态的辅助函数
const
getBatchStatus
=
(
status
)
=>
{
...
...
@@ -1037,11 +986,10 @@ const getDefaultTimeText = (index) => {
}
// 检查用户等级是否足够
const
isLevelSufficient
=
(
requiredLevel
)
=>
{
const
levelOrder
=
[
0
,
1
,
2
,
3
,
4
];
// gold, platinum, diamond, starlight, starshine
const
isLevelSufficient
=
()
=>
{
const
levelOrder
=
[
2
,
3
,
4
];
// gold, platinum, diamond, starlight, starshine
const
userLevelIndex
=
levelOrder
.
indexOf
(
props
.
userLevel
);
const
requiredLevelIndex
=
levelOrder
.
indexOf
(
requiredLevel
);
return
userLevelIndex
>=
requiredLevelIndex
;
return
userLevelIndex
>=
0
;
}
// 监听 userLevel 变化
...
...
@@ -1329,13 +1277,13 @@ const getTimeSlotStatusText = (index) => {
position: absolute;
}
.diamond1buycomstatus {
width: 163rpx;
height: 73rpx;
left: 452rpx;
top: 0rpx;
position: absolute;
}
//
.diamond1buycomstatus {
//
width: 163rpx;
//
height: 73rpx;
//
left: 452rpx;
//
top: 0rpx;
//
position: absolute;
//
}
}
}
...
...
@@ -1603,13 +1551,13 @@ const getTimeSlotStatusText = (index) => {
}
}
.starshine1buycomstatus {
width: 163rpx;
height: 73rpx;
left: 452rpx;
top: 0rpx;
position: absolute;
}
//
.starshine1buycomstatus {
//
width: 163rpx;
//
height: 73rpx;
//
left: 452rpx;
//
top: 0rpx;
//
position: absolute;
//
}
.starshine1buycomtitle {
width: 137rpx;
...
...
@@ -1909,13 +1857,13 @@ const getTimeSlotStatusText = (index) => {
position: absolute;
}
.startlight1buycomstatus {
width: 163rpx;
height: 73rpx;
left: 452rpx;
top: 0rpx;
position: absolute;
}
//
.startlight1buycomstatus {
//
width: 163rpx;
//
height: 73rpx;
//
left: 452rpx;
//
top: 0rpx;
//
position: absolute;
//
}
}
}
...
...
@@ -2039,13 +1987,13 @@ const getTimeSlotStatusText = (index) => {
position: absolute;
}
.gold1buycomstatus {
width: 163rpx;
height: 73rpx;
left: 452rpx;
top: 0rpx;
position: absolute;
}
//
.gold1buycomstatus {
//
width: 163rpx;
//
height: 73rpx;
//
left: 452rpx;
//
top: 0rpx;
//
position: absolute;
//
}
.gold1buycomsel4 {
width: 640rpx;
...
...
@@ -2337,13 +2285,13 @@ const getTimeSlotStatusText = (index) => {
position: absolute;
}
.platinum1buycomstatus {
width: 163rpx;
height: 73rpx;
left: 452rpx;
top: 0rpx;
position: absolute;
}
//
.platinum1buycomstatus {
//
width: 163rpx;
//
height: 73rpx;
//
left: 452rpx;
//
top: 0rpx;
//
position: absolute;
//
}
.platinum1buycomsel4 {
width: 640rpx;
...
...
@@ -2596,46 +2544,152 @@ const getTimeSlotStatusText = (index) => {
border: none;
border-radius: 26rpx;
font-size: 24rpx;
font-weight: bold;
//
font-weight: bold;
display: flex;
white-space: nowrap;
align-items: center;
justify-content: center;
transition: all 0.3s ease;
&.buy-btn-unlocked {
background: linear-gradient(135deg, #
FF6B6B, #FF8E8E
);
&.buy-btn-unlocked
-gold
{
background: linear-gradient(135deg, #
503404, #6a4505
);
color: #fff;
box-shadow: 0 2rpx 8rpx rgba(
255, 107, 107
, 0.3);
box-shadow: 0 2rpx 8rpx rgba(
80, 52, 4
, 0.3);
&:active {
transform: scale(0.95);
box-shadow: 0 1rpx 6rpx rgba(
255, 107, 107
, 0.4);
box-shadow: 0 1rpx 6rpx rgba(
80, 52, 4
, 0.4);
}
}
&.buy-btn-
purchased
{
background: linear-gradient(135deg, #
4ECDC4, #44A08D
);
&.buy-btn-
unlocked-platinum
{
background: linear-gradient(135deg, #
284a6c, #3a5e80
);
color: #fff;
box-shadow: 0 2rpx 8rpx rgba(78, 205, 196, 0.3);
box-shadow: 0 2rpx 8rpx rgba(40, 74, 108, 0.3);
&:active {
transform: scale(0.95);
box-shadow: 0 1rpx 6rpx rgba(40, 74, 108, 0.4);
}
}
&.buy-btn-disabled {
background: #E0E0E0;
color: #999;
cursor: not-allowed;
&.buy-btn-unlocked-diamond {
background: linear-gradient(135deg, #503404, #6a4505);
color: #fff;
box-shadow: 0 2rpx 8rpx rgba(80, 52, 4, 0.3);
&:active {
transform: scale(0.95);
box-shadow: 0 1rpx 6rpx rgba(80, 52, 4, 0.4);
}
}
&.buy-btn-u
pgrade
{
background: linear-gradient(135deg, #
FFA726, #FFB74D
);
&.buy-btn-u
nlocked-starlight
{
background: linear-gradient(135deg, #
503404, #6a4505
);
color: #fff;
box-shadow: 0 2rpx 8rpx rgba(
255, 167, 38
, 0.3);
box-shadow: 0 2rpx 8rpx rgba(
80, 52, 4
, 0.3);
&:active {
transform: scale(0.95);
box-shadow: 0 1rpx 6rpx rgba(
255, 167, 38
, 0.4);
box-shadow: 0 1rpx 6rpx rgba(
80, 52, 4
, 0.4);
}
}
&.buy-btn-unlocked-starshine {
background: linear-gradient(135deg, #f7d1a0, #f9dca8);
color: #000;
box-shadow: 0 2rpx 8rpx rgba(247, 209, 160, 0.3);
&:active {
transform: scale(0.95);
box-shadow: 0 1rpx 6rpx rgba(247, 209, 160, 0.4);
}
}
&.buy-btn-purchased-gold {
background: linear-gradient(135deg, #503404, #6a4505);
color: #fff;
box-shadow: 0 2rpx 8rpx rgba(80, 52, 4, 0.3);
opacity: 0.7;
}
&.buy-btn-purchased-platinum {
background: linear-gradient(135deg, #284a6c, #3a5e80);
color: #fff;
box-shadow: 0 2rpx 8rpx rgba(40, 74, 108, 0.3);
opacity: 0.7;
}
&.buy-btn-purchased-diamond {
background: linear-gradient(135deg, #503404, #6a4505);
color: #fff;
box-shadow: 0 2rpx 8rpx rgba(80, 52, 4, 0.3);
opacity: 0.7;
}
&.buy-btn-purchased-starlight {
background: linear-gradient(135deg, #503404, #6a4505);
color: #fff;
box-shadow: 0 2rpx 8rpx rgba(80, 52, 4, 0.3);
opacity: 0.7;
}
&.buy-btn-purchased-starshine {
background: linear-gradient(135deg, #f7d1a0, #f9dca8);
color: #000;
box-shadow: 0 2rpx 8rpx rgba(247, 209, 160, 0.3);
opacity: 0.7;
}
&.buy-btn-locked-gold {
background: linear-gradient(135deg, #503404, #6a4505);
color: #99662e;
}
&.buy-btn-locked-platinum {
background: linear-gradient(135deg, #284a6c, #3a5e80);
color: #284a6c;
}
&.buy-btn-locked-diamond {
background: linear-gradient(135deg, #503404, #6a4505);
color: #503404;
}
&.buy-btn-locked-starlight {
background: linear-gradient(135deg, #503404, #6a4505);
color: #503404;
}
&.buy-btn-locked-starshine {
background: linear-gradient(135deg, #f7d1a0, #f9dca8);
color: #241b15;
}
&.buy-btn-upgrade-gold {
background: linear-gradient(135deg, #f5ece1, #f5ece1);
color: #99662e;
}
&.buy-btn-upgrade-platinum {
background: linear-gradient(135deg, #e1ecf5, #e1ecf5);
color: #284a6c;
}
&.buy-btn-upgrade-diamond {
background: linear-gradient(135deg, #f5ece1, #f5ece1);
color: #503404;
}
&.buy-btn-upgrade-starlight {
background: linear-gradient(135deg, #f5ece1, #f5ece1);
color: #503404;
}
&.buy-btn-upgrade-starshine {
background: linear-gradient(135deg, #f5ece1, #f5ece1);
color: #241b15;
}
}
}
...
...
@@ -2712,4 +2766,81 @@ const getTimeSlotStatusText = (index) => {
position: absolute;
}
}
/* 精选好券按钮样式 */
.coupon-btn {
width: 160rpx;
height: 60rpx;
border-radius: 30rpx;
font-size: 28rpx;
font-weight: bold;
display: flex;
align-items: center;
justify-content: center;
border: none;
outline: none;
padding: 0;
margin: 0;
line-height: 1;
}
.coupon-btn-locked {
background: linear-gradient(to right, #b0b0b0, #d0d0d0);
color: #ffffff;
}
.coupon-btn-purchased {
background: linear-gradient(to right, #b0b0b0, #d0d0d0);
color: #ffffff;
}
.coupon-btn-purchased-gold {
background: linear-gradient(to right, #906632, #ab7a44);
color: #ffffff;
}
.coupon-btn-purchased-platinum {
background: linear-gradient(to right, #5189c0, #6fa2d5);
color: #ffffff;
}
.coupon-btn-purchased-diamond {
background: linear-gradient(to right, #7253a5, #997acc);
color: #ffffff;
}
.coupon-btn-purchased-starlight {
background: linear-gradient(to right, #cda36b, #e0b97d);
color: #ffffff;
}
.coupon-btn-purchased-starshine {
background: linear-gradient(to right, #000000, #2c1600);
color: #ffffff;
}
.coupon-btn-unlocked-gold {
background: linear-gradient(to right, #906632, #ab7a44);
color: #ffffff;
}
.coupon-btn-unlocked-platinum {
background: linear-gradient(to right, #5189c0, #6fa2d5);
color: #ffffff;
}
.coupon-btn-unlocked-diamond {
background: linear-gradient(to right, #7253a5, #997acc);
color: #ffffff;
}
.coupon-btn-unlocked-starlight {
background: linear-gradient(to right, #cda36b, #e0b97d);
color: #ffffff;
}
.coupon-btn-unlocked-starshine {
background: linear-gradient(to right, #000000, #2c1600);
color: #ffffff;
}
</
style
>
pages/syWebview/syWebview.vue
View file @
b7e90c1c
...
...
@@ -52,7 +52,9 @@ const globalStore = useGlobalStore()
// 登录获取 cuk
const
wxAutoLogin
=
async
()
=>
{
await
userStore
.
wxAutoLogin
()
await
new
Promise
(
resolve
=>
{
userStore
.
wxAutoLogin
(
resolve
)
})
}
// 接收webview消息
...
...
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