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