Commit b7e90c1c authored by spc's avatar spc

fixed

parent e33a0ada
......@@ -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);
}
......
......@@ -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 < requiredLevelIndex) {
if (userLevelIndex < diamondIndex) {
uni.showToast({
title: '等级不够,无法领取',
icon: 'none',
......@@ -667,7 +626,7 @@ const handleBuyClick = async (level) => {
}
// 可以购买,执行购买逻辑
if (state.buyStatus[level] === 'locked') {
if (state.buyStatus[level] === 'unlocked') {
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 < requiredLevelIndex) {
if (userLevelIndex < diamondIndex) {
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] === 'unlocked') {
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-upgrade {
background: linear-gradient(135deg, #FFA726, #FFB74D);
&.buy-btn-unlocked-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>
......@@ -52,7 +52,9 @@ const globalStore = useGlobalStore()
// 登录获取 cuk
const wxAutoLogin = async () => {
await userStore.wxAutoLogin()
await new Promise(resolve => {
userStore.wxAutoLogin(resolve)
})
}
// 接收webview消息
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment