From 354b1317aab21617881057c40f8c0580b8f28139 Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期五, 26 九月 2025 18:46:45 +0800
Subject: [PATCH] 用户绑定商店

---
 pages/tabbar/user/my.vue |  210 +++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 188 insertions(+), 22 deletions(-)

diff --git a/pages/tabbar/user/my.vue b/pages/tabbar/user/my.vue
index b1327ef..48bf11a 100644
--- a/pages/tabbar/user/my.vue
+++ b/pages/tabbar/user/my.vue
@@ -17,6 +17,24 @@
       </view>
       <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>
     <!-- 绉垎锛屼紭鎯犲埜锛屽叧娉紝 -->
     <div class="pointBox box">
       <u-row text-align="center" gutter="16" class="point">
@@ -85,12 +103,12 @@
 	      </view>
 	      <view>鍏虫敞鍒楄〃</view>
 	    </view>
-	    <view class="order-item" @click="navigateTo('/pages/mine/myCollect/myCollect')">
+<!-- 	    <view class="order-item" @click="navigateTo('/pages/mine/myCollect/myCollect')">
 	      <view>
 	        <text class="iconfont">&#xe608;</text>
 	      </view>
 	      <view>鏀惰棌鍒楄〃</view>
-	    </view>
+	    </view -->
 		<view class="order-item" @click="navigateTo('/pages/mine/activity/myActivity')">
 		  <view>
 		    <text class="iconfont">&#xe635;</text>
@@ -110,16 +128,19 @@
 	<view class="pointBox box" style="margin-top: 20rpx;">
 		<tool />
 	</view>
-    
-	
+    <!-- 鎾戣捣涓嬫柟 -->
+	<view style="height:64px;">
+		
+	</view>
   <custom-tabbar bgColor="#ffffff" selected="my"></custom-tabbar>
+  
   </view>
 </template>
 <script>
-import '@/components/uview-components/uview-ui';
+import '@/pages/subComponents/uview-components/uview-ui';
 import tool from "@/pages/tabbar/user/utils/tool.vue";
 import { getSTSToken } from "@/api/common.js";
-import { getCouponsNum, getFootprintNum } from "@/api/members.js";
+import { getCouponsNum, getFootprintNum,bindMemberAndStore } from "@/api/members.js";
 import { getUserWallet } from "@/api/members";
 import configs from '@/config/config'
 import storage from '@/utils/storage.js'
@@ -141,8 +162,51 @@
       walletNum: "",
     };
   },
-  onLoad() {
-	  this.initCOS()
+  onLoad(option) {
+    console.log('-----------鍒嗕韩鍑虹殑鏁版嵁---------->', option)
+    let shareStoreId = null;
+    let shareTime = null;
+    // 妫�鏌ユ槸鍚﹀瓨鍦╭鍙傛暟
+    if (option.q) {
+      // 鍙岄噸瑙g爜锛氬井淇″URL杩涜浜嗕袱娆$紪鐮�
+      const decodedUrl = decodeURIComponent(decodeURIComponent(option.q));
+      console.log('鍘熷URL:', decodedUrl);
+
+      // 瑙f瀽URL涓殑鏌ヨ鍙傛暟
+      const params = this.parseUrlParams(decodedUrl);
+      shareStoreId = params.shareStoreId;
+      try {
+        // 灏嗘暟鎹瓨鍌ㄥ埌鏈湴缂撳瓨
+        uni.setStorageSync('shareStoreId', shareStoreId);
+        //鍒涘缓涓�涓壂鐮佺殑鏃堕棿
+        // 鑾峰彇褰撳墠鏃堕棿骞舵牸寮忓寲涓� yyyy-MM-dd HH:mm:ss
+        const now = new Date();
+        const year = now.getFullYear();
+        const month = String(now.getMonth() + 1).padStart(2, '0'); // 鏈堜唤浠�0寮�濮嬶紝闇�瑕�+1
+        const day = String(now.getDate()).padStart(2, '0');
+        const hours = String(now.getHours()).padStart(2, '0');
+        const minutes = String(now.getMinutes()).padStart(2, '0');
+        const seconds = String(now.getSeconds()).padStart(2, '0');
+
+        shareTime = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
+        uni.setStorageSync('shareTime', shareTime);
+        console.log('鏁版嵁瀛樺偍鎴愬姛');
+      } catch (e) {
+        console.error('瀛樺偍澶辫触锛�', e);
+      }
+    }else{
+      shareStoreId = uni.getStorageSync('shareStoreId');
+      shareStoreId = uni.getStorageSync('shareTime');
+      console.log('浠庣紦瀛樿鍙栧弬鏁�:', { shareStoreId, shareTime });
+      // this.bindMemberAndStore(shareStoreId, shareTime)
+      if (shareStoreId && shareTime) {
+        console.log('妫�娴嬪埌鏈夋晥鍙傛暟锛岃皟鐢ㄥ悗绔帴鍙�');
+        this.bindMemberAndStore(shareStoreId, shareTime);
+      } else {
+        console.log('鏃犳湁鏁堝弬鏁帮紝鎵ц姝e父閫昏緫');
+      }
+    }
+    this.initCOS()
   },
   onShow() {
     this.userInfo = this.$options.filters.isLogin() || {};
@@ -169,6 +233,34 @@
 
   mounted() { },
   methods: {
+    async bindMemberAndStore(shareStoreId, shareTime){
+      let form ={
+        shareStoreId: shareStoreId,
+        shareTime: shareTime
+      }
+      // let form ={
+      // 			  shareStoreId: "1376433565247471616",
+      // 			  shareTime: "2025-09-26 16:18:00"
+      // }
+      try {
+        const res = await bindMemberAndStore(form);
+        if(res.statusCode === 200){
+          //娓呴櫎缂撳瓨
+          uni.removeStorageSync('shareStoreId');
+          uni.removeStorageSync('shareTime');
+        }
+      }
+      catch(error) {
+        console.error('鍑洪敊:', error);
+      };
+    },
+	  // goTOSuccess(){
+	  // 		 uni.redirectTo({
+	  // 		    url:"/pages/cart/payment/success?paymentMethod=WECHAT" +
+	  // 		             "&payPrice=" +
+	  // 		             10,
+	  // 		         });
+	  // },
 	  // 鍒濆鍖栬吘璁簯cos瀹㈡埛绔�
 	  initCOS() {
 		  // 璋冪敤鍚庣鑾峰彇sts涓存椂璁块棶鍑瘉
@@ -214,19 +306,91 @@
 </script>
 
 <style lang="scss" scoped>
+	@import url("/pages/subComponents/static/bgStyle.css");
 html,
 body {
   overflow: auto;
 }
+  
+.member-gradient-bg {
+	width: 98%;
+	height: 250rpx;
+	margin: 1% 1%;
+	background: linear-gradient(135deg, #FF7A45 0%, #FF5252 100%);
+	 border-radius: 24rpx;
+	  box-shadow: 0 8rpx 30rpx rgba(255, 82, 82, 0.3);
+	  transition: all 0.3s ease;
+	  
+	  &:active {
+	    transform: scale(0.98);
+	  }
+}
+/* 鍐呭鍖哄煙 */
+.member-content {
+  width: 100%;
+  height: 100%;
+  display: flex;
+  align-items: center;
+  padding: 0 40rpx;
+  box-sizing: border-box;
+}
+/* 浼氬憳淇℃伅 */
+.vip-info {
+  flex: 1;
+  .vip-level {
+    font-size: 40rpx;
+    font-weight: bold;
+    color: #FFFFFF;
+    margin: 0;
+    line-height: 1;
+    text-shadow: 0 2rpx 4rpx rgba(0, 0, 0, 0.1);
+  }
+  
+  .vip-validity {
+    font-size: 26rpx;
+    color: rgba(255, 255, 255, 0.9);
+    margin: 10rpx 0 0 0;
+  }
+}
+
+/* 浼氬憳鍥炬爣 */
+.vip-icon {
+  width: 100rpx;
+  height: 100rpx;
+  margin-right: 30rpx;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  background-color: rgba(255, 255, 255, 0.2);
+  border-radius: 50%;
+}
+
+.vip-icon image {
+  width: 60rpx;
+  height: 60rpx;
+}
+/* 鐗规潈鏍囪瘑 */
+.vip-badge {
+  padding: 8rpx 20rpx;
+  background-color: rgba(255, 215, 0, 0.9);
+  border-radius: 30rpx;
+  box-shadow: 0 3rpx 6rpx rgba(0, 0, 0, 0.1);
+}
+
+.badge-text {
+  font-size: 24rpx;
+  color: #E63946;
+  font-weight: 600;
+}
 
 .money {
   overflow: hidden;
-
   text-overflow: ellipsis;
   white-space: nowrap;
 }
 
 .user {
+	background: #e7e7e7;
   .header {
     max-width: 100%;
     padding: calc(50rpx + var(--status-bar-height)) 30rpx 0 6%;
@@ -234,7 +398,7 @@
     background-size: cover;
     border-bottom-left-radius: 30rpx;
     border-bottom-right-radius: 30rpx;
-    background-image: url("/static/img/main-bg.png");
+    background-image: var(--main-bg);
     background-position: bottom;
     background-repeat: no-repeat;
     color: #ffffff;
@@ -285,14 +449,6 @@
     }
   }
 
-  .pointBox {
-    width: 94%;
-    margin: 0 3%;
-    background: #fff;
-    border-radius: 20rpx;
-    box-shadow: 0 4rpx 24rpx 0 rgba($color: #f6f6f6, $alpha: 1);
-  }
-
   .point {
     text-align: center;
     height: 160rpx;
@@ -324,8 +480,12 @@
     justify-content: space-around;
     align-items: center;
     padding: 0 3%;
-    color: #999;
-
+    color: #666;
+    background: #fff;
+    border-radius: 20rpx;
+    box-shadow: 0 4rpx 24rpx 0 #f6f6f6;
+    margin: 0 20rpx;
+	
     .order-item {
       position: relative;
       line-height: 2em;
@@ -333,14 +493,20 @@
 
       :first-child {
         font-size: 48rpx;
-        margin-bottom: 10rpx;
+        margin-bottom: 12rpx;
+        color: #333;
       }
     }
   }
+
 }
 
 .box {
-  transform: translateY(-30rpx);
+	width: 95%;
+	margin: auto;
+	background: #fff;
+	border-radius: 20rpx;
+	box-shadow: 0 4rpx 24rpx 0 #f6f6f6;
 }
 
 .user-name {

--
Gitblit v1.8.0