From b7ce92d35fde3704297163010c320e336a5dd681 Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期二, 13 一月 2026 10:17:16 +0800
Subject: [PATCH] 页面调整优化

---
 pages/tabbar/user/my.vue |  786 +++++++++++++++++++++++++++++++++++++++----------------
 1 files changed, 556 insertions(+), 230 deletions(-)

diff --git a/pages/tabbar/user/my.vue b/pages/tabbar/user/my.vue
index d86d2e2..90c3ead 100644
--- a/pages/tabbar/user/my.vue
+++ b/pages/tabbar/user/my.vue
@@ -1,158 +1,156 @@
 <template>
   <view class="user">
     <!-- 涓汉淇℃伅 -->
-    <view class="status_bar">
-      <!-- 杩欓噷鏄姸鎬佹爮 -->
-    </view>
-    <view class="header"  @click="userDetail">
-      <view class="head-1">
-        <image v-if="userInfo.face" :src="endpoint + '/' + userInfo.face"></image>
-        <image v-else :src="userImage"></image>
+    <view class="header-wrapper" @click="userDetail"
+      :style="{ backgroundColor: '#e9cc80', backgroundImage: `url(${base64image2.userInfoBg})` }">
+      <view class="status_bar">
+        <!-- 杩欓噷鏄姸鎬佹爮 -->
       </view>
-      <view class="head-2" v-if="userInfo.id">
-        <view class="user-name">{{ userInfo.nickName }}</view>
+      <view class="header">
+        <view class="head-1">
+          <image v-if="userInfo.face" :src="endpoint + '/' + userInfo.face"></image>
+          <image v-else :src="userImage"></image>
+        </view>
+        <view class="head-2" v-if="userInfo.id">
+          <view class="user-name">{{ userInfo.nickName }}</view>
+          <!-- <view class="member-name"> 浼氬憳鍚�: {{ userInfo.username ? userInfo.username : '鏈缃�' }}</view> -->
+        </view>
+        <view class="head-2" v-else>
+          <view class="user-name">鐧诲綍/娉ㄥ唽</view>
+        </view>
+        <u-icon style="display: flex;align-items: flex-start;" name="arrow-right"></u-icon>
       </view>
-      <view class="head-2" v-else>
-        <view class="user-name">鐧诲綍/娉ㄥ唽</view>
-      </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">
-        <u-col text-align="center" span="4" @click="navigateTo('/pages/mine/deposit/operation')">
-          <view>棰勫瓨娆�</view>
-          <view class="money">{{ walletNum | unitPrice }}</view>
-        </u-col>
 
-        <u-col text-align="center" span="4" @click="navigateTo('/pages/cart/coupon/myCoupon')">
-          <view>浼樻儬鍒�</view>
-          <view>{{ couponNum || 0 }}</view>
-        </u-col>
+      <!-- 绉垎锛屼紭鎯犲埜锛屽叧娉紝 -->
+      <div class="pointBox1">
+        <view class="point">
+          <view class="point-col" @click="navigateTo('/pages/cart/coupon/myCoupon')">
+            <view class="point-item">
+              <text class="label">浼樻儬鍒�</text>
+              <text class="value">{{ couponNum || 0 }}</text>
+              <text class="label">寮�</text>
+            </view>
+          </view>
+          <view class="point-col" @click="navigateTo('/pages/mine/deposit/operation')">
+            <view class="point-item">
+              <text class="label">浣欓</text>
+              <text class="value">{{ walletNum | unitPrice }}</text>
+            </view>
+          </view>
+        </view>
+        <!-- 鎴戠殑璁㈠崟锛屼唬浠樻 -->
+        <view class="order">
+          <view class="order-header" @click="navigateTo('/pages/order/myOrder?status=0')">
+            <view class="left">鎴戠殑璁㈠崟</view>
+            <view class="right">
+              <text>鍏ㄩ儴璁㈠崟</text>
+              <u-icon name="arrow-right" size="24" color="#999"></u-icon>
+            </view>
+          </view>
+          <view class="order-content">
+            <view class="order-item" @click="navigateTo('/pages/order/myOrder?status=1')">
+              <view class="icon-box">
+                <image src="/static/tool/寰呬粯娆�.png" mode="aspectFit"></image>
+              </view>
+              <view>寰呬粯娆�</view>
+            </view>
+            <view class="order-item" @click="navigateTo('/pages/order/myOrder?status=2')">
+              <view class="icon-box">
+                <image src="/static/tool/寰呭彂璐�.png" mode="aspectFit"></image>
+              </view>
+              <view>寰呭彂璐�</view>
+            </view>
+            <view class="order-item" @click="navigateTo('/pages/order/myOrder?status=3')">
+              <view class="icon-box">
+                <image src="/static/tool/寰呮敹璐�.png" mode="aspectFit"></image>
+              </view>
+              <view>寰呮敹璐�</view>
+            </view>
+            <view class="order-item" @click="navigateTo('/pages/order/evaluate/myEvaluate')">
+              <view class="icon-box">
+                <image src="/static/tool/璇勪环涓績.png" mode="aspectFit"></image>
+              </view>
+              <view>寰呰瘎浠�</view>
+            </view>
+            <view class="order-item" @click="navigateTo('/pages/order/afterSales/afterSales')">
+              <view class="icon-box">
+                <image src="/static/tool/鎴戠殑璁㈠崟-閫�璐鍞悗.png" mode="aspectFit"></image>
+              </view>
+              <view>鍞悗</view>
+            </view>
+          </view>
+        </view>
+      </div>
+    </view>
+    <view class="member-gradient-bg" v-if="prizeActivity.enableStatus === 'ON'"
+      :style="{ backgroundImage: `url(${base64image.prizeActivityBg})` }">
+      <view class="member-gradient-bg" @click="gotoPrizeActivity">
+      </view>
+    </view>
 
-        <u-col text-align="center" span="4" @click="navigateTo('/pages/mine/myTracks')">
-          <view>瓒宠抗</view>
-          <view>{{ footNum || 0 }}</view>
-        </u-col>
-      </u-row>
-      <!-- 鎴戠殑璁㈠崟锛屼唬浠樻 -->
-      <view class="order">
-        <view class="order-item" @click="navigateTo('/pages/order/myOrder?status=1')">
-          <div class="bag bag2">
-            <u-icon name="bag-fill" size="35" color="#fff"></u-icon>
-          </div>
-          <view>寰呬粯娆�</view>
+
+    <!-- 瑙嗛鐩稿叧锛� -->
+    <!-- <div class="pointBox box" style="margin-top: 20rpx;">
+      <view class="order-content">
+        <view class="order-item" @click="jumpToVideoHome()">
+          <view class="icon-box">
+            <text class="iconfont">&#xe676;</text>
+          </view>
+          <view>鎴戠殑瑙嗛</view>
         </view>
-        <view class="order-item" @click="navigateTo('/pages/order/myOrder?status=3')">
-          <div class="bag bag3">
-            <u-icon name="car-fill" size="35" color="#fff"></u-icon>
-          </div>
-          <view>寰呮敹璐�</view>
+        <view class="order-item" @click="navigateTo('/pages/mine/myAttention')">
+          <view class="icon-box">
+            <image src="/static/mine/myfavorite.png" mode="aspectFit"></image>
+          </view>
+          <view>鎴戠殑鍏虫敞</view>
         </view>
-        <view class="order-item" @click="navigateTo('/pages/order/evaluate/myEvaluate')">
-          <div class="bag bag4">
-            <u-icon name="star-fill" size="35" color="#fff"></u-icon>
-          </div>
-          <view>寰呰瘎浠�</view>
-        </view>
-        <view class="order-item" @click="navigateTo('/pages/order/afterSales/afterSales')">
-          <div class="bag bag5">
-            <u-icon name="server-fill" size="35" color="#fff"></u-icon>
-          </div>
-          <view>鍞悗</view>
-        </view>
-        <view class="order-item" @click="navigateTo('/pages/order/myOrder?status=0')">
-          <div class="bag bag1">
-            <u-icon name="order" size="35" color="#fff"></u-icon>
-          </div>
-          <view>鎴戠殑璁㈠崟</view>
+        <view class="order-item" @click="navigateTo('/pages/mine/activity/myActivity')">
+          <view class="icon-box">
+            <image src="/static/mine/prize-activity.png" mode="aspectFit"></image>
+          </view>
+          <view>鎴戠殑娲诲姩</view>
         </view>
       </view>
-    </div>
-	
-	<!-- 瑙嗛鐩稿叧锛� -->
-	<div class="pointBox box" style="margin-top: 20rpx;">
-	  <view class="order">
-	    <view class="order-item" @click="jumpToVideoHome()">
-	      <view>
-	        <text class="iconfont">&#xe676;</text>
-	      </view>
-	      <view>瑙嗛涓婚〉</view>
-	    </view>
-	    <view class="order-item" @click="navigateTo('/pages/mine/myAttention')">
-	      <view>
-	        <text class="iconfont">&#xe66f;</text>
-	      </view>
-	      <view>鍏虫敞鍒楄〃</view>
-	    </view>
-<!-- 	    <view class="order-item" @click="navigateTo('/pages/mine/myCollect/myCollect')">
-	      <view>
-	        <text class="iconfont">&#xe608;</text>
-	      </view>
-	      <view>鏀惰棌鍒楄〃</view>
-	    </view -->
-		<view class="order-item" @click="navigateTo('/pages/mine/activity/myActivity')">
-		  <view>
-		    <text class="iconfont">&#xe635;</text>
-		  </view>
-		  <view>鎴戠殑娲诲姩</view>
-		</view>
-		<view class="order-item" @click="navigateTo('/pages/mine/myTracks')">
-		  <view>
-		    <text class="iconfont">&#xe738;</text>
-		  </view>
-		  <view>娴忚璁板綍</view>
-		</view>
-	  </view>
-	</div>
-	
+    </div> -->
+
     <!-- 甯哥敤宸ュ叿 -->
-	<view class="pointBox box" style="margin-top: 20rpx;">
-		<tool />
-	</view>
+    <view class="pointBox box" style="margin-top: 20rpx;">
+      <tool />
+    </view>
     <!-- 鎾戣捣涓嬫柟 -->
-	<view style="height:64px;">
-		
-	</view>
-  <custom-tabbar bgColor="#ffffff" selected="my"></custom-tabbar>
-  
+    <view style="height:64px;">
+
+    </view>
+    <custom-tabbar bgColor="#ffffff" selected="my"></custom-tabbar>
+
   </view>
 </template>
 <script>
 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'
+import { getSessionId, userAction } from "@/api/userAction.js";
+import { getONPrizeActivity } from "@/api/prize-activity";
+import UIcon from "../../subComponents/uview-components/uview-ui/components/u-icon/u-icon.vue";
+import base64image from '@/static/mine/base64image.js';
+import base64image2 from '@/static/mine/base64image2.js';
 export default {
   components: {
+    UIcon,
     tool
   },
   data() {
     return {
-	  endpoint: '',
+      base64image,
+      base64image2,
+      prizeActivity: {},
+      endpoint: '',
       configs,
-      userImage:configs.defaultUserPhoto,
+      userImage: configs.defaultUserPhoto,
       coverTransform: "translateY(0px)",
       coverTransition: "0s",
       moving: false,
@@ -160,12 +158,83 @@
       couponNum: "",
       footNum: "",
       walletNum: "",
+      pageSessionNo: "",
+      actionParam: {
+        sessionId: '',
+        actionType: "PAGE",
+        joinType: "SELF",
+        pageCode: "TBA_BAR_MY",
+        pageParams: "{}",
+        pageStatus: "JOIN",
+        pageType: "DETAIL"
+      }
     };
   },
-  onLoad() {
-	  this.initCOS()
+  onLoad(option) {
+    this.actionParam.pageParams = JSON.stringify(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);
+      }
+    }
+    this.initCOS()
   },
+  onUnload() {
+    let param = Object.assign({}, this.actionParam);
+    if (this.sendOnShow) return
+    param.pageStatus = "LEAVE"
+    userAction(param)
+  },
+  onHide() {
+    this.startHidenTime = Date.now()
+    let param = Object.assign({}, this.actionParam);
+    this.sendOnShow = true;
+    param.pageStatus = "LEAVE"
+    userAction(param)
+  },
+  // onLoad(options) {
+  //
+  //   this.initCOS()
+  // },
   onShow() {
+    this.getONPrizeActivity();
+    getSessionId().then(res => {
+      this.pageSessionNo = res.data.data
+      this.actionParam.sessionId = res.data.data
+      if (this.pageSessionNo) {
+        let param = Object.assign({}, this.actionParam);
+        param.sessionId = this.pageSessionNo
+        userAction(param)
+      }
+    })
+
     this.userInfo = this.$options.filters.isLogin() || {};
     if (this.$options.filters.isLogin("auth")) {
       this.getUserOrderNum();
@@ -174,10 +243,21 @@
       this.couponNum = 0;
       this.footNum = 0;
     }
+
+    let shareStoreId = uni.getStorageSync('shareStoreId');
+    let shareTime = uni.getStorageSync('shareTime');
+    console.log('浠庣紦瀛樿鍙栧弬鏁�:', { shareStoreId, shareTime });
+    if (shareStoreId && shareTime) {
+      console.log('妫�娴嬪埌鏈夋晥鍙傛暟锛岃皟鐢ㄥ悗绔帴鍙�');
+      this.bindMemberAndStore(shareStoreId, shareTime);
+    } else {
+      console.log('鏃犳湁鏁堝弬鏁帮紝鎵ц姝e父閫昏緫');
+    }
   },
   onPullDownRefresh() {
     this.getUserOrderNum();
     this.userInfo = this.$options.filters.isLogin();
+    this.getONPrizeActivity(); // 涓嬫媺鍒锋柊鍚屾鏈�鏂版椿鍔ㄧ姸鎬�
   },
   // #ifndef MP
   onNavigationBarButtonTap(e) {
@@ -190,26 +270,89 @@
 
   mounted() { },
   methods: {
-	  // goTOSuccess(){
-	  // 		 uni.redirectTo({
-	  // 		    url:"/pages/cart/payment/success?paymentMethod=WECHAT" +
-	  // 		             "&payPrice=" +
-	  // 		             10,
-	  // 		         });
-	  // },
-	  // 鍒濆鍖栬吘璁簯cos瀹㈡埛绔�
-	  initCOS() {
-		  // 璋冪敤鍚庣鑾峰彇sts涓存椂璁块棶鍑瘉
-		  getSTSToken().then(res => {
-			   this.endpoint = res.data.data.endpoint
-		  })
-	  },
-	  // 璺宠浆瑙嗛涓婚〉
-	  jumpToVideoHome() {
-		  uni.navigateTo({
-		    url: '/pages/video/home-page?authorId=' + storage.getUserInfo().id
-		  });
-	  },
+    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 = {};
+      // 澶勭悊鍙兘瀛樺湪鐨刪ash锛堝鏋滄湁鐨勮瘽锛�
+      const cleanUrl = url.split('#')[0];
+      const queryStr = cleanUrl.split('?')[1] || '';
+
+      queryStr.split('&').forEach(pair => {
+        const [key, value] = pair.split('=');
+        if (key) {
+          // 濡傛灉鍊煎瓨鍦紝鍒欒В鐮侊紝鍚﹀垯璁句负绌哄瓧绗︿覆
+          params[key] = value ? decodeURIComponent(value) : '';
+        }
+      });
+
+      return params;
+    },
+    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涓存椂璁块棶鍑瘉
+      getSTSToken().then(res => {
+        this.endpoint = res.data.data.endpoint
+      })
+    },
+    // 璺宠浆瑙嗛涓婚〉
+    jumpToVideoHome() {
+      uni.navigateTo({
+        url: '/pages/video/home-page?authorId=' + storage.getUserInfo().id
+      });
+    },
     /**
      * 缁熶竴璺宠浆鎺ュ彛,鎷︽埅鏈櫥褰曡矾鐢�
      * navigator鏍囩鐜板湪榛樿娌℃湁杞満鍔ㄧ敾锛屾墍浠ョ敤view
@@ -242,24 +385,150 @@
 </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);
-	  }
+
+.floating-btn-content {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  justify-content: center;
+  z-index: 1;
+  position: relative;
 }
+
+.floating-btn-icon {
+  font-size: 75rpx;
+  color: white;
+  filter: drop-shadow(0 2rpx 4rpx rgba(0, 0, 0, 0.2));
+  margin-bottom: 5rpx;
+}
+
+.floating-btn-text {
+  font-size: 20rpx;
+  color: white;
+  z-index: 1;
+  position: relative;
+  text-shadow: 0 1rpx 3rpx rgba(0, 0, 0, 0.2);
+  white-space: nowrap;
+}
+
+.member-gradient-bg {
+  width: 98%;
+  height: 250rpx;
+  margin: 1% 1%;
+  border-radius: 24rpx;
+  box-shadow: 0 8rpx 30rpx rgba(255, 82, 82, 0.3);
+  transition: all 0.3s ease;
+  background-size: cover;
+  background-position: center;
+  background-repeat: no-repeat;
+
+  &: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;
+
+    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%;
@@ -269,9 +538,11 @@
   padding: 0 40rpx;
   box-sizing: border-box;
 }
+
 /* 浼氬憳淇℃伅 */
 .vip-info {
   flex: 1;
+
   .vip-level {
     font-size: 40rpx;
     font-weight: bold;
@@ -280,7 +551,7 @@
     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);
@@ -304,6 +575,7 @@
   width: 60rpx;
   height: 60rpx;
 }
+
 /* 鐗规潈鏍囪瘑 */
 .vip-badge {
   padding: 8rpx 20rpx;
@@ -325,34 +597,37 @@
 }
 
 .user {
-	background: #e7e7e7;
+  background: #e7e7e7;
+
+  .header-wrapper {
+    background-size: 100% auto;
+    background-repeat: no-repeat;
+    background-position: bottom;
+  }
+
   .header {
     max-width: 100%;
-    padding: calc(50rpx + var(--status-bar-height)) 30rpx 0 6%;
-    height: calc(360rpx);
-    background-size: cover;
-    border-bottom-left-radius: 30rpx;
-    border-bottom-right-radius: 30rpx;
-    background-image: url("/pages/subComponents/static/img/main-bg.png");
-    background-position: bottom;
-    background-repeat: no-repeat;
-    color: #ffffff;
+    padding: 100rpx 30rpx 0 5%;
     display: flex;
     justify-content: space-between;
+    box-sizing: border-box;
+    position: relative;
+    overflow: hidden;
 
     .head-1 {
       text-align: center;
-      width: 152rpx;
+      width: 140rpx;
       position: relative;
       display: flex;
       align-items: center;
+      margin-top: 20rpx;
 
       image {
-        width: 152rpx;
-        height: 144rpx;
+        width: 140rpx;
+        height: 140rpx;
         border-radius: 50%;
-        margin-bottom: 30rpx;
         border: 3px solid #fff;
+        box-sizing: border-box;
       }
 
       .edti-head {
@@ -385,30 +660,52 @@
   }
 
   .point {
-    text-align: center;
-    height: 160rpx;
+    width: 100%;
+    height: 120rpx;
+    display: flex;
+    align-items: center;
 
-    font-size: $font-sm;
-    // #ifdef MP-WEIXIN
-    padding: 24rpx;
+    .point-col {
+      flex: 1;
+      position: relative;
+      display: flex;
+      justify-content: center;
+      align-items: center;
 
-    // #endif
-    .u-col {
-      view {
-        color: $u-main-color;
-        font-size: 28rpx;
+      &:not(:last-child)::after {
+        content: "";
+        position: absolute;
+        left: 100%;
+        top: 50%;
+        transform: translate(-50%, -50%);
+        height: 40rpx;
+        width: 1rpx;
+        background-color: #ccc;
       }
 
-      view:last-child {
-        margin-top: 8rpx;
-        color: $main-color;
-        font-size: $font-lg;
+      .point-item {
+        display: flex;
+        flex-direction: row;
+        justify-content: center;
+        align-items: baseline;
+
+        .value {
+          color: #1f1b13;
+          font-size: 34rpx;
+          font-weight: bold;
+          margin: 0 20rpx 0 20rpx;
+        }
+
+        .label {
+          color: #999;
+          font-size: 24rpx;
+        }
       }
     }
   }
 
-  .order {
-    height: 140rpx;
+  .order-content {
+    height: 160rpx;
     text-align: center;
     font-size: $font-sm;
     display: flex;
@@ -416,62 +713,91 @@
     align-items: center;
     padding: 0 3%;
     color: #666;
+
+    .order-item {
+      position: relative;
+      line-height: 1.5;
+      display: flex;
+      flex-direction: column;
+      align-items: center;
+      justify-content: center;
+
+      .icon-box {
+        width: 60rpx;
+        height: 60rpx;
+        margin-bottom: 10rpx;
+        display: flex;
+        align-items: center;
+        justify-content: center;
+
+        image {
+          width: 100%;
+          height: 100%;
+        }
+      }
+    }
+  }
+
+  .order {
     background: #fff;
     border-radius: 20rpx;
     box-shadow: 0 4rpx 24rpx 0 #f6f6f6;
     margin: 0 20rpx;
-	
-    .order-item {
-      position: relative;
-      line-height: 2em;
-      width: 96rpx;
+    padding-bottom: 20rpx;
 
-      :first-child {
-        font-size: 48rpx;
-        margin-bottom: 12rpx;
+    .order-header {
+      display: flex;
+      justify-content: space-between;
+      align-items: center;
+      padding: 30rpx 30rpx 10rpx 30rpx;
+
+      .left {
+        font-size: 32rpx;
+        font-weight: bold;
         color: #333;
+      }
+
+      .right {
+        display: flex;
+        align-items: center;
+        font-size: 24rpx;
+        color: #999;
+
+        text {
+          margin-right: 4rpx;
+        }
       }
     }
   }
 
 }
 
+.pointBox1 {
+  position: relative;
+  z-index: 10;
+  background: #f5f5f5;
+  border-radius: 40rpx 40rpx 0 0;
+  box-shadow: 0 -4rpx 24rpx 0 rgba(0, 0, 0, 0.05);
+  margin-top: 40rpx;
+}
+
 .box {
-	width: 95%;
-	margin: auto;
-	background: #fff;
-	border-radius: 20rpx;
-	box-shadow: 0 4rpx 24rpx 0 #f6f6f6;
+  width: 95%;
+  margin: auto;
+  background: #fff;
+  border-radius: 20rpx;
+  box-shadow: 0 4rpx 24rpx 0 #f6f6f6;
 }
 
 .user-name {
   font-size: 34rpx;
+  font-weight: bolder;
+  color: #1f1b13;
 }
 
-.bag {
-  width: 56rpx;
-  height: 56rpx;
-  border-radius: 50%;
-  margin: 0 auto;
-}
-
-.bag1 {
-  background: #ff4a48;
-}
-
-.bag2 {
-  background: #ff992f;
-}
-
-.bag3 {
-  background: #009ee0;
-}
-
-.bag4 {
-  background: #00d5d5;
-}
-
-.bag5 {
-  background: #28ccb0;
+.member-name {
+  margin-top: 25rpx;
+  font-size: 28rpx;
+  color: #8d867a;
 }
 </style>

--
Gitblit v1.8.0