From 8e6f68fd85fa1051d7f0a6460d22ea6e55962329 Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期五, 24 十月 2025 15:16:02 +0800
Subject: [PATCH] 抽奖活动
---
pages/tabbar/user/my.vue | 153 ++++++++++++++++++++++++++++++++++++++++++++++-----
pages/ActivityPopup/ActivityPopup.vue | 13 +++
pages/tabbar/index/home.vue | 7 --
3 files changed, 149 insertions(+), 24 deletions(-)
diff --git a/pages/ActivityPopup/ActivityPopup.vue b/pages/ActivityPopup/ActivityPopup.vue
index 96211e0..ab6db3a 100644
--- a/pages/ActivityPopup/ActivityPopup.vue
+++ b/pages/ActivityPopup/ActivityPopup.vue
@@ -75,7 +75,7 @@
</template>
<script>
-import {getPopupAcitivty} from '@/api/popup.js'
+import {getPopupAcitivty,hideActivityPopupToday} from '@/api/popup.js'
export default {
name: 'ActivityPopup',
props: {
@@ -274,11 +274,20 @@
// 鍏抽棴寮圭獥
onClose() {
+ console.log("鐐瑰嚮鍏抽棴鎸夐挳")
+ this.hideActivityPopupToday();
this.$emit('close');
},
-
+ hideActivityPopupToday(){
+ //寮圭獥鍏抽棴
+ console.log("淇敼浠婃棩涓嶆樉绀哄脊绐�")
+ hideActivityPopupToday().then(res =>{
+
+ })
+ },
// 鐐瑰嚮閬僵灞傚叧闂�
onMaskClick() {
+ console.log("鐐瑰嚮閬僵灞傚叧闂�")
this.$emit('close');
},
diff --git a/pages/tabbar/index/home.vue b/pages/tabbar/index/home.vue
index 88cfd7e..33b6085 100644
--- a/pages/tabbar/index/home.vue
+++ b/pages/tabbar/index/home.vue
@@ -568,11 +568,6 @@
});
},
methods: {
- hideActivityPopupToday(){
- //寮圭獥鍏抽棴
- hideActivityPopupToday().then(res =>{
- })
- },
async openActivityPopup() {
await getPopupAcitivty().then(res => {
if (res.statusCode === 200) {
@@ -604,8 +599,6 @@
onClosePopup() {
- //
- this.hideActivityPopupToday()
this.hideActivityPopup()
},
replyClick(reply) {
diff --git a/pages/tabbar/user/my.vue b/pages/tabbar/user/my.vue
index 7e56634..ceb11d3 100644
--- a/pages/tabbar/user/my.vue
+++ b/pages/tabbar/user/my.vue
@@ -18,21 +18,26 @@
<u-icon style="display: flex;align-items: flex-start;" name="arrow-right"></u-icon>
</view>
<!-- <button type="default" @click="goTOSuccess">绔嬪嵆鏌ョ湅</button> -->
- <view class="member-gradient-bg">
- <view class="member-content">
- <view class="vip-icon">
- <image src="/static/tabbar/vip.png" mode="widthFix"></image>
- </view>
- <view class="vip-info">
- <p class="vip-level">缁挎弧绛愪細鍛�</p>
- <p class="vip-validity">闀挎湡鏈夋晥</p>
- </view>
-
- <!-- 浼氬憳鏍囪瘑瑁呴グ -->
- <view class="vip-badge">
- <text class="badge-text">灏婁韩鐗规潈</text>
- </view>
- </view>
+ <view class="member-gradient-bg" v-if="prizeActivity.enableStatus === 'ON'">
+ <view class="member-gradient-bg" @click="gotoPrizeActivity" >
+ <view class="activity-content">
+ <!-- 娲诲姩鍥炬爣锛堜娇鐢ㄦ帴鍙h繑鍥炵殑 activityCoverUrl锛� -->
+ <view class="activity-icon">
+ <image :src="prizeActivity.activityCoverUrl" mode="widthFix"></image>
+ </view>
+ <!-- 娲诲姩淇℃伅锛堝悕绉般�佹弿杩般�佸�掕鏃讹級 -->
+ <view class="activity-info">
+ <p class="activity-name">{{ prizeActivity.activityName }}</p>
+ <p class="activity-desc">{{ prizeActivity.activityDes }}</p>
+ <p class="activity-desc">{{ formatDate(prizeActivity.beginTime) }} - {{ formatDate(prizeActivity.endTime)}}</p>
+ </view>
+ <!-- 绔嬪嵆鍙備笌鍏ュ彛 -->
+ <view class="activity-enter">
+ <text class="enter-text">绔嬪嵆鍙備笌</text>
+ <u-icon name="arrow-right"></u-icon>
+ </view>
+ </view>
+ </view>
</view>
<!-- 绉垎锛屼紭鎯犲埜锛屽叧娉紝 -->
@@ -145,12 +150,15 @@
import configs from '@/config/config'
import storage from '@/utils/storage.js'
import { getSessionId, userAction } from "@/api/userAction.js";
+import {getONPrizeActivity} from "@/api/prize-activity";
+
export default {
components: {
tool
},
data() {
return {
+ prizeActivity: {},
endpoint: '',
configs,
userImage:configs.defaultUserPhoto,
@@ -227,6 +235,7 @@
// this.initCOS()
// },
onShow() {
+ this.getONPrizeActivity();
getSessionId().then(res=>{
this.pageSessionNo = res.data.data
this.actionParam.sessionId = res.data.data
@@ -259,6 +268,7 @@
onPullDownRefresh() {
this.getUserOrderNum();
this.userInfo = this.$options.filters.isLogin();
+ this.getONPrizeActivity(); // 涓嬫媺鍒锋柊鍚屾鏈�鏂版椿鍔ㄧ姸鎬�
},
// #ifndef MP
onNavigationBarButtonTap(e) {
@@ -271,6 +281,31 @@
mounted() { },
methods: {
+ formatDate(isoTime) {
+ if (!isoTime) return '';
+ const date = new Date(isoTime);
+ const year = date.getFullYear();
+ const month = String(date.getMonth() + 1).padStart(2, '0');
+ const day = String(date.getDate()).padStart(2, '0');
+ return `${year}骞�${month}鏈�${day}鏃; // 杞崲涓轰腑鏂囨牸寮�
+ },
+ getONPrizeActivity(){
+ getONPrizeActivity().then(res =>{
+ if(res.statusCode=== 200){
+ //鍚庣娌℃煡鍒板紑鍚殑鎶藉娲诲姩 res.data.data.id鍊间负null
+ this.prizeActivity = res.data.data; // 瀛樺偍瀹屾暣娲诲姩鏁版嵁
+ if (this.prizeActivity.endTime) {
+ }else {
+ this.prizeActivity = {}; // 鏃犳椿鍔ㄦ椂娓呯┖
+ }
+ }
+ })
+ },
+ gotoPrizeActivity(){
+ uni.navigateTo({
+ url:'/pages/prize/PrizeDetail/PrizeDetail?id=' + this.prizeActivity.id,
+ });
+ },
// 瑙f瀽URL鍙傛暟
parseUrlParams(url) {
const params = {};
@@ -379,7 +414,95 @@
&:active {
transform: scale(0.98);
}
+ cursor: pointer; // 澧炲姞鐐瑰嚮鎸囬拡鏍峰紡
+ overflow: hidden; // 闃叉鍐呭婧㈠嚭
+ .activity-content {
+ width: 100%;
+ height: 100%;
+ display: flex;
+ align-items: center;
+ padding: 0 40rpx;
+ box-sizing: border-box;
+ }
+
+ // 娲诲姩鍥炬爣
+ .activity-icon {
+ width: 130rpx;
+ height: 130rpx;
+ margin-right: 24rpx;
+ border-radius: 16rpx;
+ overflow: hidden;
+ background: rgba(255,255,255,0.2);
+ image {
+ width: 100%;
+ height: 100%;
+ object-fit: cover;
+ }
+ }
+
+ // 娲诲姩淇℃伅鍖哄煙
+ .activity-info {
+ flex: 1;
+ .activity-name {
+ font-size: 32rpx;
+ font-weight: bold;
+ color: #fff;
+ margin: 0 0 8rpx 0;
+ text-shadow: 0 2rpx 4rpx rgba(0,0,0,0.1);
+ }
+ .activity-desc {
+ font-size: 22rpx;
+ color: rgba(255,255,255,0.9);
+ margin: 0;
+ }
+ }
+
+ // 鍊掕鏃舵牱寮�
+ .activity-countdown {
+ display: flex;
+ align-items: center;
+ margin-top: 12rpx;
+ .countdown-label {
+ font-size: 20rpx;
+ color: rgba(255,255,255,0.8);
+ margin-right: 8rpx;
+ }
+ .countdown-box {
+ display: flex;
+ align-items: center;
+ }
+ .countdown-item {
+ display: inline-block;
+ width: 36rpx;
+ height: 36rpx;
+ line-height: 36rpx;
+ background: rgba(255,255,255,0.3);
+ border-radius: 8rpx;
+ color: #fff;
+ font-size: 20rpx;
+ text-align: center;
+ margin: 0 4rpx;
+ }
+ .countdown-sep {
+ color: #fff;
+ font-size: 22rpx;
+ margin: 0 4rpx;
+ }
+ }
+
+ // 绔嬪嵆鍙備笌鍏ュ彛
+ .activity-enter {
+ display: flex;
+ align-items: center;
+ .enter-text {
+ font-size: 24rpx;
+ color: #fff;
+ margin-right: 8rpx;
+ font-weight: 500;
+ }
+ }
}
+
/* 鍐呭鍖哄煙 */
.member-content {
width: 100%;
--
Gitblit v1.8.0