Browse Source

Merge branch 'master' of http://150.158.33.144:3000/lalalashen/MoeNovaClient

# Conflicts:
#	pages/login/login.vue
ck@123911.net 1 week ago
parent
commit
5273426395

+ 20 - 2
App.vue

@@ -261,12 +261,30 @@ export default {
     let that = this;
     uni.$on("check_login", function (callback) {
       let skeyLogin = uni.getStorageSync("is_login");
-      console.log("skeylogin", skeyLogin);
+ 
       // callback();
       if (skeyLogin == null || skeyLogin == undefined || skeyLogin == "") {
         uni.removeStorageSync("wapptoken");
-        uni.redirectTo({
+        var currentPage = getCurrentPages()[getCurrentPages().length - 1];
+        var redirectUrl = currentPage.route;
+        var options = currentPage.options;
+        var queryString = '';
+        
+        // 将options对象转换为查询字符串
+        if (options && Object.keys(options).length > 0) {
+          queryString = '?' + Object.keys(options)
+            .map(key => `${key}=${encodeURIComponent(options[key])}`)
+            .join('&');
+        }
+        
+        uni.navigateTo({
           url: "/pages/login/login",
+          success: function(res) { 
+            // 通过 eventChannel 向被打开页面传送数据
+            res.eventChannel.emit('acceptDataFromOpener', { 
+              redirectUrl: redirectUrl + queryString
+            });
+          }
         });
       } else if (typeof callback === "function") {
         callback(); // 登录状态有效时执行回调

+ 2 - 2
components/SharePopup/SharePopup.vue

@@ -81,9 +81,9 @@ export default {
     }
   },
   created() {
-    uni.$emit('check_login', () => {
+    // uni.$emit('check_login', () => {
       this.from_id = getApp().globalData.user_id
-    })
+    // })
   },
   methods: {
     handleClose() {

+ 1 - 2
components/card/card.vue

@@ -161,12 +161,11 @@ export default {
 			});
 		},
 		goWork(item) {
+			console.log("跳转");
 			var url = "/pages/index/workDetail?id=";
 			if (this.goLink) {
 				url = this.goLink;
 			}
-			console.log("goWork", this.goLink);
-			console.log(item, 888888888);
 			if (item.type == 'crowdfund') {
 				url = "/pages/crowdFunding/crowdfundingDetailsDesign?id="
 			}

+ 42 - 31
components/cc-comment/cc-comment.vue

@@ -40,7 +40,7 @@
 		</view>
 		<!-- 评论弹窗 -->
 		<uni-popup ref="cPopupRef" type="bottom" @change="popChange" style="z-index: 100;">
-			<view class="c_popup_box" >
+			<view class="c_popup_box">
 				<view class="reply_text">
 					<template v-if="Object.keys(replyTemp).length">
 						<span class="text_aid">回复给</span>
@@ -88,13 +88,13 @@
 import CommonComp from "./componets/common";
 import { getStorage, setStorage, removeStorage } from "@/common/util.js";
 
-import { mapState,mapMutations ,mapGetters} from 'vuex';
+import { mapState, mapMutations, mapGetters } from 'vuex';
 export default {
 	components: {
 		CommonComp
 	},
 	computed: {
-		...mapState('rightsManagement',['teenageMode'])
+		...mapState('rightsManagement', ['teenageMode'])
 	},
 	props: {
 		/** 登陆用户信息
@@ -119,7 +119,7 @@ export default {
 			type: Object,
 			default: () => { },
 		},
-		
+
 		/** 评论列表
 		 *    id: number // 评论id
 		 *    parent_id: number // 父级评论id
@@ -187,8 +187,8 @@ export default {
 			let map = {};
 
 			newData.forEach((item, i) => {
-				console.log(this.myInfo,this.userInfo,"---------");
-				
+				console.log(this.myInfo, this.userInfo, "---------");
+
 				item.owner = item.user_id === this.myInfo.user_id; // 是否为当前登陆用户
 				item.author = item.user_id === this.userInfo.user_id; // 是否为作者
 				map[item.id] = item;
@@ -268,33 +268,36 @@ export default {
 		},
 		// 发起新评论
 		newCommentFun() {
-			let isContentRecommendation
-			if (this.teenageMode != 1) {
-				isContentRecommendation = true;
-			} else {
-				isContentRecommendation = false;
-			}
+			uni.$emit('check_login', () => {
+				let isContentRecommendation
+				if (this.teenageMode != 1) {
+					isContentRecommendation = true;
+				} else {
+					isContentRecommendation = false;
+				}
 
-			if (!isContentRecommendation) {
-				uni.showToast({
-					title: '当前无法评论',
-					icon: 'none'
-				});
-				return;
-			}
+				if (!isContentRecommendation) {
+					uni.showToast({
+						title: '当前无法评论',
+						icon: 'none'
+					});
+					return;
+				}
 
-			if (this.isComment == 0) {
-				uni.showToast({
-					title: '暂无评论权限',
-					icon: 'none'
-				})
-				return
-			}
-			this.isNewComment = true;
-			this.$refs["cPopupRef"].open();
+				if (this.isComment == 0) {
+					uni.showToast({
+						title: '暂无评论权限',
+						icon: 'none'
+					})
+					return
+				}
+				this.isNewComment = true;
+				this.$refs["cPopupRef"].open();
+			})
 		},
 		// 评论弹窗
 		popChange(e) {
+			uni.$emit('check_login', () => {
 			// 关闭弹窗
 			if (!e.show) {
 				this.commentValue = ""; // 清空输入框值
@@ -303,6 +306,7 @@ export default {
 				this.showEmojiPanel = false; // 隐藏表情面板
 			}
 			this.focus = e.show;
+			})
 		},
 		// 切换表情面板显示状态
 		toggleEmojiPanel() {
@@ -324,6 +328,7 @@ export default {
 			item2,
 			index2
 		} = this.replyTemp) {
+			uni.$emit('check_login', () => {
 			let item = item2 || item1;
 			let params = {};
 			// 新评论
@@ -368,7 +373,7 @@ export default {
 					...params,
 					id: res.id,
 					user_name: res.user_name,
-					user_avatar:res.user_avatar
+					user_avatar: res.user_avatar
 				};
 				// 新评论
 				if (this.isNewComment) {
@@ -386,6 +391,7 @@ export default {
 				this.$emit("update:tableTotal", this.tableTotal + 1);
 				this.$refs["cPopupRef"].close();
 			});
+			})
 		},
 		//删除
 		deleteClick({
@@ -394,6 +400,7 @@ export default {
 			item2,
 			index2
 		}) {
+			uni.$emit('check_login', () => {
 			this.delTemp = JSON.parse(JSON.stringify({
 				item1,
 				index1,
@@ -412,6 +419,7 @@ export default {
 			}).catch(() => {
 				this.delCloseFun()
 			})
+			})
 		},
 		// 关闭删除弹窗
 		delCloseFun() {
@@ -541,7 +549,7 @@ export default {
 			);
 		},
 		handleKeydown(event) { // 新增方法
-			console.log(event.key, event.shiftKey); 
+			console.log(event.key, event.shiftKey);
 			if (event.key === 'Enter' && !event.shiftKey) {
 				event.preventDefault();
 				this.sendClick();
@@ -609,17 +617,20 @@ export default {
 		padding: 6rpx 0rpx 6rpx 0rpx;
 		margin-top: 10rpx;
 		margin-left: 96rpx;
+
 		// background-color: $uni-bg-color-grey;
-		::v-deep.user_avatar{
+		::v-deep.user_avatar {
 			width: 44rpx;
 			height: 44rpx;
 		}
+
 		.expand_reply,
 		.shrink_reply {
 			margin-top: 10rpx;
 			margin-left: 65rpx;
 			display: inline-flex;
 			align-items: center;
+
 			.txt {
 				font-weight: 500;
 				color: $uni-color-primary;

+ 1 - 1
components/w-waterfall/w-waterfall.vue

@@ -19,7 +19,7 @@ export default {
 	props: {
 		sideGap: {
 			type: Number,
-			default: 20
+			default: 5
 		},
 		itemGap: {
 			type: Number,

+ 6 - 4
manifest.json

@@ -83,7 +83,9 @@
                     "appleiap" : {}
                 },
                 "speech" : {},
-                "oauth" : {},
+                "oauth" : {
+                    "univerify" : {}
+                },
                 "push" : {
                     "unipush" : {
                         "version" : "2",
@@ -108,9 +110,9 @@
                 "iosStyle" : "common",
                 "ios" : {},
                 "android" : {
-                    "xxhdpi" : "/static/image/1080x1882.9.png",
-                    "xhdpi" : "/static/image/1080x1882.9.png",
-                    "hdpi" : "/static/image/1080x1882.9.png"
+                    "xxhdpi" : "static/image/1082x1884.9.png",
+                    "xhdpi" : "static/image/1082x1884.9.png",
+                    "hdpi" : "static/image/1082x1884.9.png"
                 }
             },
             "icons" : {

+ 20 - 5
pages/crowdFunding/crowdfundingDetails.vue

@@ -7,7 +7,7 @@
 			<view class="navbar-center one-omit" style="max-width: 70vw; " :style="{ opacity: navBgOpacity }">
 				{{ detail.title }}
 			</view>
-			<view class="navbar-right scale-tap" @click="showShare = true">
+			<view class="navbar-right scale-tap" @click="openShare()">
 				<image src="@/static/crowdFunding/share.png" mode="widthFix"></image>
 			</view>
 		</view>
@@ -125,7 +125,7 @@
 						</div>
 					</view>
 					<view class="initiator-service-btn  blick-btn-animation"
-						@click="goPage('/pages/crowdFunding/customerService?id=' + detail.creator_id + '&zc_id=' + detail.id)">
+						@click="goPages('/pages/crowdFunding/customerService?id=' + detail.creator_id + '&zc_id=' + detail.id)">
 						<image class="service-icon" src="@/static/crowdFunding/service.png" />
 						<text>客服</text>
 					</view>
@@ -233,6 +233,11 @@ export default {
 		}
 	},
 	methods: {
+		openShare() {
+			uni.$emit("check_login", () => {
+				this.showShare = true;
+			});
+		},
 		// 返回上一页
 		goBack() {
 			uni.navigateBack({
@@ -286,6 +291,13 @@ export default {
 				url: url
 			});
 		},
+		goPages(url) {
+			uni.$emit("check_login", () => {
+				uni.navigateTo({
+					url: url
+				});
+			});
+		},
 		onSpecConfirm(selectedSpec) {
 			uni.navigateTo({
 				url: '/pages/crowdFunding/orderConfirm',
@@ -296,9 +308,12 @@ export default {
 			});
 		},
 		specificationsOpen() {
-			this.$refs.specSheet.show();
+			uni.$emit("check_login", () => {
+				this.$refs.specSheet.show();
+			});
 		},
 		toggleFavorite() {
+			uni.$emit("check_login", () => {
 			if (!this.projectId) {
 
 				return;
@@ -329,8 +344,8 @@ export default {
 				fail: () => {
 					uni.showToast({ title: '网络错误', icon: 'none' });
 				}
-			});
-
+				});
+			})
 		},
 		getDetail() {
 			if (!this.projectId) return;

+ 8 - 1
pages/crowdFunding/crowdfundingDetailsDesign.vue

@@ -7,7 +7,7 @@
 			<view class="navbar-center one-omit" style="max-width: 70vw; " :style="{ opacity: navBgOpacity }">
 				{{ detail.title }}
 			</view>
-			<view class="navbar-right scale-tap" @click="showShare = true">
+			<view class="navbar-right scale-tap" @click="openShare()">
 				<image src="@/static/crowdFunding/share.png" mode="widthFix"></image>
 			</view>
 		</view>
@@ -223,6 +223,11 @@ export default {
 		}
 	},
 	methods: {
+		openShare() {
+			uni.$emit("check_login", () => {
+				this.showShare = true;
+			});
+		},
 		// 返回上一页
 		goBack() {
 			uni.navigateBack({
@@ -279,6 +284,7 @@ export default {
 			});
 		},
 		specificationsOpen() {
+			uni.$emit("check_login", () => {
 			uni.request({
 				url: this.$apiHost + '/Article/like',
 				data: {
@@ -318,6 +324,7 @@ export default {
 					}
 				}
 			});
+			})
 		},
 		toggleFavorite() {
 			if (!this.projectId) {

+ 1 - 1
pages/crowdFunding/discussionArea.vue

@@ -4,7 +4,7 @@
 
 
 		<!-- 项目卡片 -->
-		<view class="project-card">
+		<view class="project-card" @click="goPages('/pages/crowdFunding/crowdfundingDetails?id=' + articleInfo.id)">
 			<image class="project-img" :src="articleInfo.main_image" />
 			<view class="project-info">
 				<view class="project-title two-omit">{{ articleInfo.title }}</view>

+ 6 - 1
pages/crowdFunding/projectUpdateDetails.vue

@@ -7,7 +7,7 @@
       <view class="navbar-center one-omit" style="max-width: 70vw" :style="{ opacity: navBgOpacity }">
         {{ datails.title }}
       </view>
-      <view class="navbar-right scale-tap" @click="showShare = true">
+      <view class="navbar-right scale-tap" @click="openShare">
         <image src="@/static/crowdFunding/share.png" mode="widthFix"></image>
       </view>
     </view>
@@ -61,6 +61,11 @@ export default {
     this.getDetails()
   },
   methods: {
+    openShare() {
+      uni.$emit("check_login", () => {
+        this.showShare = true;
+      });
+    },
     goBack() {
       uni.navigateBack();
     },

+ 1 - 1
pages/index/index.scss

@@ -417,7 +417,7 @@
   }
 }
 .waterfall-list-container {
-  background: #fff;
+  background: #fff; 
 }
 .navCenter {
 }

+ 20 - 13
pages/index/index.vue

@@ -66,7 +66,7 @@
 						<view class="classModel-box">
 							<image @click="goPage('/pages/my/job')" src="@/static/home/task.png"
 								class="benner-iconBom scale-tap" mode=""></image>
-							<image @click="goPage('/pages/crowdFunding/crowdFunding')"
+							<image @click="goPages('/pages/crowdFunding/crowdFunding')"
 								src="@/static/home/crowdFunding.png" class="benner-icontop scale-tap" mode=""></image>
 						</view>
 					</template>
@@ -365,18 +365,18 @@ export default {
 		console.log('teenageMode', this.teenageMode);
 		console.log('iscontentRecommendation', this.iscontentRecommendation);
 		console.log('isContent', this.isContent);
-		if (!this.isContent) {
-			this.tabs = ["关注"];
-			this.currentTab = 0;
-			this.queryList();
-		} else {
-			this.tabs = ["关注", "探索"];
-			// this.currentTab = 1;
-			// 如果数据为空,加载初始数据
-			if (this.followList.length === 0) {
-				this.initialLoad();
-			}
-		}
+		// if (!this.isContent) {
+		// 	this.tabs = ["关注"];
+		// 	this.currentTab = 0;
+		// 	this.queryList();
+		// } else {
+		// 	this.tabs = ["关注", "探索"];
+		// 	// this.currentTab = 1;
+		// 	// 如果数据为空,加载初始数据
+		// 	if (this.followList.length === 0) {
+		// 		this.initialLoad();
+		// 	}
+		// }
 		uni.$emit('check_update');
 	},
 	// 修改触底加载方法
@@ -759,6 +759,13 @@ export default {
 				});
 			});
 		},
+		goPages(page) {
+			// uni.$emit("check_login", () => {
+				uni.navigateTo({
+					url: page,
+				});
+			// });
+		},
 		// 修改下拉刷新方法
 		onRefresh() {
 			console.log('下拉刷新开始');

+ 1103 - 724
pages/my/userHomepage.vue

@@ -1,731 +1,1110 @@
 <template>
-  <view class="page">
-    <view class="topBody">
-      <view class="header">
-        <view class="reserveASeat"></view>
-        <view class="card-box">
-          <view class="card-top">
-            <view class="top-box">
-              <view class="hello-box" @click="goBack">
-                <text class="fa fa-angle-left" style="color: #000; font-size: 55rpx;"></text>
-              </view>
-              <view class="settingBtn-box">
-                <image @click="clickShare()" src="@/static/me/wd_icon_fenxian.png" mode=""></image>
-              </view>
-            </view>
-            <view class="userinfo-box">
-              <view class="userinfo-left">
-                <CircleAvatar class="avator" :src="myinfo.avator"></CircleAvatar>
-              </view>
-              <view class="userinfo-right">
-                <view class="nickname">
-                  <text class="one-omit">{{ myinfo.nickname }}</text>
-                  <image src="../../static/icon/wd_icon_nan.png" mode="widthFix" v-if="myinfo.sex_id == 1"></image>
-                  <image src="../../static/icon/wd_icon_nv.png" mode="widthFix" v-else-if="myinfo.sex_id == 2"></image>
-                  <view class="level">Lv{{ myinfo.my_level }}</view>
-                </view>
-                <view class="label">
-                  <view v-for="(item, index) in aihao_tags" :key="index + item">
-                    {{ item }}
-                  </view>
-                </view>
-              </view>
-            </view>
-            <view class="intro_row">
-              <block v-if="myinfo.content == ''">
-                <text class="intro_text two-omit">简介</text>
-              </block>
-              <uv-text v-else  :text="myinfo.content" class="intro_text two-omit">
-          
-              </uv-text>
-            </view>
-            <view class="line"></view>
-            <view class="bom">
-              <view class="follow_info">
-                <view class="follow-box">
-                  <view class="num">{{ myinfo.num_attention }}</view>
-                  <view class="label">关注</view>
-                </view>
-                <view class="separator"></view>
-                <view class="follow-box">
-                  <view class="num">{{ myinfo.num_fans }}</view>
-                  <view class="label">粉丝</view>
-                </view>
-                <view class="separator"></view>
-                <view class="follow-box">
-                  <view class="num">{{ myinfo.num_like }}</view>
-                  <view class="label">获赞</view>
-                </view>
-              </view>
-              <view class="points-box">
-                <text class="followTheAuthor followTheAuthor1" v-if="!myinfo.is_attention"
-                  @click="followTheAuthor(1)">+关注</text>
-                <text class="followTheAuthor followTheAuthor0" v-else @click="followTheAuthor(0)">已关注</text>
-              </view>
-            </view>
-          </view>
-        </view>
-      </view>
-
-      <view class="myinfo"  >
-        <!-- 作品列表 -->
-        <view class="numlist" >
-          <WorkItem v-for="(item, index) in worksList" :subtitle="true" :key="index" :item="item"
-            @click="goWork(item)" />
-          <view v-if="isDataLoaded && worksList.length === 0" class="empty-state">
-            <image src="@/static/icon/xx_img_zanwuxiaoxi.png" mode="aspectFit" class="empty-image">
-            </image>
-            <text class="empty-text">暂无作品</text>
-            <text class="empty-subtext">他还没有开始创作作品~</text>
-          </view>
-        </view>
-      </view>
-    </view>
-
-    <!-- 确认框 -->
-    <CustomConfirm ref="customConfirm"></CustomConfirm>
-    <!-- 提示框 -->
-    <DialogBox ref="DialogBox"></DialogBox>
-
-    <!-- SharePopup组件 -->
-    <SharePopup :visible="showShare" :userId="userId" :share-title="shareTitle" :share-desc="shareDesc" :share-img="shareImg" view="userHomepage"
-      @close="showShare = false" />
-  </view>
+	<view class="page">
+		<view class="topBody">
+			<view class="header"
+				:style="{ backgroundImage: `url(${bgImage || '../../static/me/theme3.jpg'})`, marginBottom: labelBoxHeight < 45 ? '-80rpx' : '-40rpx' }">
+				<view class="header-box" :style="headerBoxStyle">
+					<view class="reserveASeat"></view>
+					<view class="benner-box">
+						<view class="setUp-box">
+							<view class="my-box">
+								<image :src="`../../static/crowdFunding/back.png`" mode="widthFix" class="level-icon" />
+							</view>
+							<view class="settingBtn-box">
+
+							</view>
+						</view>
+						<view class="profilePicture-box">
+							<CircleAvatar class="avator" @click="goPage('/pages/my/editInfo')" :src="myinfo.avator">
+							</CircleAvatar>
+							<view class="profilePicture-box-right" @click="goPage('/pages/my/creativeExpert')">
+								<view class="one-omit">{{ myinfo.nickname }}</view>
+								<image v-if="myinfo.my_level || myinfo.my_level == 0"
+									:src="`../../static/icon/level_${myinfo.my_level}.png`" mode="widthFix"
+									class="level-icon" />
+							</view>
+						</view>
+
+						<view class="intro_row" @click="goPage('/pages/my/editInfo')">
+							<block v-if="myinfo.content == ''">
+								<text class="intro_text two-omit">添加简介</text>
+								<image src="@/static/me/xiugai.png" mode="widthFix" class="add_icon">
+								</image>
+							</block>
+							<uv-text color="#fff" v-else :text="formatText(myinfo.content)" class="intro_text two-omit">
+							</uv-text>
+						</view>
+
+
+						<view class="label-box" id="labelBox">
+							<view class="label-item sex-item">
+
+								<image src="../../static/icon/wd_icon_nv.png" mode="widthFix" v-if="myinfo.sex_id == 2">
+								</image>
+								<image src="../../static/icon/wd_icon_nan.png" mode="widthFix" v-else></image>
+							</view>
+							<view class="label-item" v-for="(item, index) in aihao_tags" :key="index + item">
+								{{ item }}
+							</view>
+						</view>
+
+						<view class="follow_info">
+							<view class="follow-box">
+								<view class="num">{{ scientificCounting(myinfo.num_attention) }}</view>
+								<view class="label">关注</view>
+							</view>
+							<!-- <view class="separator"></view> -->
+							<view class="follow-box">
+								<view class="num">{{ scientificCounting(myinfo.num_fans) }}</view>
+								<view class="label">粉丝</view>
+							</view>
+							<!-- <view class="separator"></view> -->
+							<view class="follow-box">
+								<view class="num">{{ scientificCounting(myinfo.num_like) }}</view>
+								<view class="label">获赞</view>
+							</view>
+						</view>
+
+					</view>
+
+					<view class="card-box" v-if="false">
+						<view class="card-top">
+							<view class="top-box">
+								1
+							</view>
+							<view class="userinfo-box" @click="goPage('/pages/my/editInfo')">
+								<view class="userinfo-left">
+									<CircleAvatar class="avator" :src="myinfo.avator"></CircleAvatar>
+								</view>
+								<view class="userinfo-right">
+									<view class="nickname">
+										<text class="one-omit">{{ myinfo.nickname }}</text>
+
+										<view class="level">Lv{{ myinfo.my_level }}</view>
+									</view>
+									<view class="label">
+
+									</view>
+								</view>
+							</view>
+
+							<view class="line"></view>
+							<view class="bom">
+
+								<view class="points-box">
+									<view class="points" @click="isRecharge ? goPage('/pages/vip/M_purchase') : ''">
+										<image src="@/static/icon/wd_icon_coin.png" mode=""></image>
+										<text>{{ myinfo.num_gmm | formatNumberToK }}</text>
+										<image class="money-add" v-if="isRecharge" src="/static/icon/coin_add.png"
+											mode="aspectFit"></image>
+									</view>
+									<view class="points"
+										@click="isRecharge ? goPage('/pages/my/job?type=recharge') : ''">
+										<image src="@/static/icon/coin_cd.png" mode=""></image>
+										<text>{{ myinfo.num_gmd | formatNumberToK }}</text>
+										<image class="money-add" v-if="isRecharge" src="/static/icon/coin_add.png"
+											mode="aspectFit"></image>
+									</view>
+								</view>
+							</view>
+						</view>
+						<!-- <view class="card-bom" v-if="isRecharge" @click="goPage('/pages/vip/index')"> -->
+
+					</view>
+				</view>
+			</view>
+
+
+			<view class="myinfo">
+				<view class="tablist">
+					<view class="item" :class="{ active: firstLevelNavActive === 0 }"
+						@click="firstLevelNavActiveSwitch(0)">作品
+						<view class="indicator-triangle"> </view>
+					</view>
+					<view class="item" :class="{ active: firstLevelNavActive === 1 }"
+						@click="firstLevelNavActiveSwitch(1)">帖子
+						<view class="indicator-triangle"> </view>
+					</view>
+				</view>
+				<!-- 作品列表 -->
+				<view class="numlist">
+					<WorkItem v-for="(item, index) in worksList" :subtitle="true" :key="index" :item="item"
+						@click="goWork(item)" />
+
+					<view class="item" v-for="(item2, index2) in worksList0" :key="index2"
+						style="margin-bottom: 28rpx;">
+						<view class="num" @click="goWork(item2)">
+							<WorkItem :item="item2" style="margin-bottom: 12rpx" />
+
+							<view class="maskLayer"></view>
+							<!-- 当activeTab为1时显示队列状态 -->
+
+							<view class="name one-omit" style="
+					  font-family: 'PingFang SC-Medium';
+					  font-weight: 500;
+					  font-size: 28rpx;
+					  color: #1a4d2e;
+										max-width: 40vw;
+					">
+								{{ item2.title || item2.description || "作品" + index }}
+							</view>
+
+						</view>
+					</view>
+
+
+					<view v-if="isDataLoaded && worksList.length === 0" class="empty-state">
+						<image src="@/static/icon/xx_img_zanwuxiaoxi.png" mode="aspectFit" class="empty-image">
+						</image>
+						<text class="empty-text">暂无作品</text>
+						<text class="empty-subtext">他还没有开始创作作品~</text>
+					</view>
+				</view>
+			</view>
+		</view>
+
+		<!-- 确认框 -->
+		<CustomConfirm ref="customConfirm"></CustomConfirm>
+		<!-- 提示框 -->
+		<DialogBox ref="DialogBox"></DialogBox>
+
+		<!-- SharePopup组件 -->
+		<SharePopup :visible="showShare" :userId="userId" :share-title="shareTitle" :share-desc="shareDesc"
+			:share-img="shareImg" view="userHomepage" @close="showShare = false" />
+	</view>
 </template>
 
 <script>
-import tabbar from "@/mixins/tabbar";
-import CustomConfirm from "@/components/custome-confirm/customeConfirm.vue";
-import CircleAvatar from "@/components/CircleAvatar/CircleAvatar.vue";
-import WorkItem from "@/components/WorkItem/WorkItem.vue";
-import SharePopup from "@/components/SharePopup/SharePopup.vue";
-import DialogBox from "@/components/DialogBox/DialogBox.vue";
-
-export default {
-  components: {
-    CustomConfirm,
-    CircleAvatar,
-    WorkItem,
-    SharePopup,
-    DialogBox
-  },
-  mixins: [tabbar],
-  data() {
-    return {
-      firstLevelNavActive: 0,
-      myinfo: {
-        avator: "../../static/logo.png",
-        nickname: "",
-        content: "",
-        sex_id: 1,
-        my_level: 1,
-        num_attention: 0,
-        num_fans: 0,
-        num_like: 0,
-        wxkf: ""
-      },
-      aihao_tags: [],
-      activeTab: 0,
-      offset: 0,
-      hasMore: true,
-      isLoading: false,
-      worksList: [],
-      showShare: false,
-      shareTitle: "",
-      shareDesc: "",
-      shareImg: "",
-      userId: 0,
-      id: 0,
-      isDataLoaded: false,
-    };
-  },
-  onLoad(e) {
-    if (e.id) {
-      this.id = e.id
-    }
-  },
-  onShow() {
-    uni.$emit("check_login", () => { });
-    this.offset = 0;
-    this.hasMore = true;
-    this.worksList = [];
-    this.loadInfo();
-    this.loadWorksList();
-  },
-  onReachBottom() {
-    if (this.hasMore && !this.isLoading) {
-      this.loadMoreWorks();
-    }
-  },
-  methods: {
-    // 关注作者
-    followTheAuthor(n) {
-      uni.request({
-        url: this.$apiHost + "/Member/attention",
-        data: {
-          uuid: getApp().globalData.uuid,
-          id: this.id,
-        },
-        header: {
-          "content-type": "application/json",
-          sign: getApp().globalData.headerSign,
-        },
-        success: (res) => {
-          console.log("点赞结果:", res.data);
-          uni.showToast({
-            title: res.data.str,
-            icon: "none",
-          });
-          this.loadInfo();
-        },
-        fail: (e) => {
-          console.log("关注失败:", e);
-          uni.showToast({
-            title: "网络请求失败",
-            icon: "none",
-          });
-        },
-      });
-    },
-    goBack() {
-      uni.navigateBack({
-        delta: 1,
-      });
-    },
-    clickShare(item) {
-      this.showShare = true;
-    },
-    goPage(page) {
-      if (page == "kefu") {
-        let that = this;
-        // #ifdef APP-PLUS
-        plus.share.getServices((res) => {
-          const wechat = res.find((i) => i.id === "weixin");
-          if (wechat) {
-            wechat.openCustomerServiceChat(
-              {
-                corpid: "wwbc06aa8311b6ac08",
-                url: that.myinfo.wxkf,
-              },
-              (src) => {
-                console.log("success:");
-              },
-              (err) => {
-                console.log("error:");
-              }
-            );
-          } else {
-            uni.showToast({
-              title: "没有检测到微信,请先安装",
-              icon: "error",
-            });
-          }
-        });
-        // #endif
-      } else if (page != "") {
-        uni.navigateTo({
-          url: page,
-        });
-      }
-    },
-    loadInfo() {
-      console.log({
-        uuid: getApp().globalData.uuid,
-        skey: getApp().globalData.skey,
-      });
-      uni.request({
-        url: this.$apiHost + "/Member/getHomeInfo",
-
-        data: {
-          uuid: getApp().globalData.uuid,
-          skey: getApp().globalData.skey,
-          user_id: this.id,
-        },
-        header: {
-          "content-type": "application/json",
-          sign: getApp().globalData.headerSign,
-        },
-        success: (res) => {
-          console.log("----:", JSON.parse(JSON.stringify(res.data)));
-          this.shareTitle = res.data.nickname
-          this.shareDesc = res.data.content
-          this.shareImg = res.data.avator
-          this.userId = res.data.user_id
-          if (res.data.need_login == "yes") {
-            uni.removeStorageSync("wapptoken");
-            uni.redirectTo({
-              url: "/pages/login/login",
-            });
-            return;
-          }
-          if (res.data.aihao) {
-            this.aihao_tags = res.data.aihao.split(",");
-          }
-          this.myinfo = res.data;
-        },
-        complete: (com) => {
-          // uni.hideLoading();
-        },
-        fail: (e) => {
-          console.log("----e:", e);
-        },
-      });
-    },
-    switchTab(index) {
-      this.activeTab = index;
-      this.offset = 0;
-      this.hasMore = true;
-      this.worksList = [];
-      this.loadWorksList();
-    },
-    loadWorksList() {
-      if (this.isLoading) return;
-      this.isLoading = true;
-      this.isDataLoaded = false;
-
-      uni.request({
-        url: this.$apiHost + '/Work/getlist',
-        data: {
-          uuid: getApp().globalData.uuid,
-          skey: getApp().globalData.skey,
-          type: "other", // 固定为my,表示获取自己的作品
-          offset: this.offset,
-          user_id: this.id
-        },
-        header: {
-          "content-type": "application/json",
-          sign: getApp().globalData.headerSign,
-        },
-        success: (res) => {
-          console.log("列表数据:", JSON.parse(JSON.stringify(res.data)));
-          if (res.data.success == "yes" && res.data.list) {
-            if (res.data.list.length > 0) {
-              this.worksList = [...this.worksList, ...res.data.list];
-              this.offset += res.data.list.length;
-            }
-
-            if (res.data.list.length < 20) {
-              this.hasMore = false;
-            }
-          } else {
-            this.hasMore = false;
-            this.worksList = [];
-          }
-        },
-        complete: () => {
-          this.isLoading = false;
-          this.isDataLoaded = true;
-        },
-        fail: (e) => {
-          console.log("请求列表失败:", e);
-          this.isLoading = false;
-          this.isDataLoaded = true;
-          this.worksList = [];
-        },
-      });
-    },
-    firstLevelNavActiveSwitch(n) {
-      this.firstLevelNavActive = n;
-      this.offset = 0;
-      this.hasMore = true;
-      this.worksList = [];
-      if (this.firstLevelNavActive == 0) {
-        this.activeTab = 0;
-      }
-      this.loadWorksList();
-    },
-
-    loadMoreWorks() {
-      if (this.hasMore && !this.isLoading) {
-        this.loadWorksList();
-      }
-    },
-    updateDataList() {
-      this.data_list = this.worksList.map((item) => {
-        return {
-          url:
-            item.images || item.img_url || item.url || "../../static/logo.png",
-          title: item.title || item.description || "作品",
-          id: item.id,
-        };
-      });
-    },
-    goWork(item) {
-      uni.$emit("check_login", () => { });
-
-      uni.navigateTo({
-        url: "/pages/index/workDetail?id=" + item.id,
-      });
-    },
-    navigateToFollow() {
-      uni.navigateTo({
-        url: "/pages/my/follow",
-      });
-    },
-  },
-};
+	import tabbar from "@/mixins/tabbar";
+	import CustomConfirm from "@/components/custome-confirm/customeConfirm.vue";
+	import CircleAvatar from "@/components/CircleAvatar/CircleAvatar.vue";
+	import WorkItem from "@/components/WorkItem/WorkItem.vue";
+	import SharePopup from "@/components/SharePopup/SharePopup.vue";
+	import DialogBox from "@/components/DialogBox/DialogBox.vue";
+
+	export default {
+		components: {
+			CustomConfirm,
+			CircleAvatar,
+			WorkItem,
+			SharePopup,
+			DialogBox
+		},
+		mixins: [tabbar],
+		data() {
+			return {
+				bgImage: '',
+				title: "",
+				sel: 1,
+				firstLevelNavActive: 0,
+				labelBoxHeight: 0,
+				myinfo: {
+					avator: "../../static/logo.png",
+					nickname: "",
+					content: "",
+					sex_id: 1,
+					my_level: 1,
+					num_attention: 0,
+					num_fans: 0,
+					num_like: 0,
+					wxkf: ""
+				},
+				aihao_tags: [],
+				activeTab: 0,
+				offset: 0,
+				hasMore: true,
+				isLoading: false,
+				worksList0: [],
+				worksList: [],
+				showShare: false,
+				shareTitle: "",
+				shareDesc: "",
+				shareImg: "",
+				userId: 0,
+				id: 0,
+				isDataLoaded: false,
+				headerBoxStyle: {
+					background: 'linear-gradient(to bottom,transparent, rgba(0, 0, 0, .8))'
+				},
+			};
+		},
+		onLoad(e) {
+			if (e.id) {
+				this.id = e.id
+			} else {
+				this.id = 1;
+			}
+		},
+		onShow() {
+			uni.$emit("check_login", () => {});
+			this.offset = 0;
+			this.hasMore = true;
+			this.worksList = [];
+			this.loadInfo();
+			this.loadWorksList();
+		},
+		onReachBottom() {
+			if (this.hasMore && !this.isLoading) {
+				this.loadMoreWorks();
+			}
+		},
+		methods: {
+			// 关注作者
+			followTheAuthor(n) {
+				uni.request({
+					url: this.$apiHost + "/Member/attention",
+					data: {
+						uuid: getApp().globalData.uuid,
+						id: this.id,
+					},
+					header: {
+						"content-type": "application/json",
+						sign: getApp().globalData.headerSign,
+					},
+					success: (res) => {
+						console.log("点赞结果:", res.data);
+						uni.showToast({
+							title: res.data.str,
+							icon: "none",
+						});
+						this.loadInfo();
+					},
+					fail: (e) => {
+						console.log("关注失败:", e);
+						uni.showToast({
+							title: "网络请求失败",
+							icon: "none",
+						});
+					},
+				});
+			},
+			goBack() {
+				uni.navigateBack({
+					delta: 1,
+				});
+			},
+			clickShare(item) {
+				this.showShare = true;
+			},
+			goPage(page) {
+				if (page == "kefu") {
+					let that = this;
+					// #ifdef APP-PLUS
+					plus.share.getServices((res) => {
+						const wechat = res.find((i) => i.id === "weixin");
+						if (wechat) {
+							wechat.openCustomerServiceChat({
+									corpid: "wwbc06aa8311b6ac08",
+									url: that.myinfo.wxkf,
+								},
+								(src) => {
+									console.log("success:");
+								},
+								(err) => {
+									console.log("error:");
+								}
+							);
+						} else {
+							uni.showToast({
+								title: "没有检测到微信,请先安装",
+								icon: "error",
+							});
+						}
+					});
+					// #endif
+				} else if (page != "") {
+					uni.navigateTo({
+						url: page,
+					});
+				}
+			},
+			loadInfo() {
+				console.log({
+					uuid: getApp().globalData.uuid,
+					skey: getApp().globalData.skey,
+				});
+				uni.request({
+					url: this.$apiHost + "/Member/getHomeInfo",
+
+					data: {
+						uuid: getApp().globalData.uuid,
+						skey: getApp().globalData.skey,
+						user_id: this.id,
+					},
+					header: {
+						"content-type": "application/json",
+						sign: getApp().globalData.headerSign,
+					},
+					success: (res) => {
+						console.log("----:", JSON.parse(JSON.stringify(res.data)));
+						this.shareTitle = res.data.nickname
+						this.shareDesc = res.data.content
+						this.shareImg = res.data.avator
+						this.userId = res.data.user_id
+						if (res.data.need_login == "yes") {
+							uni.removeStorageSync("wapptoken");
+							uni.redirectTo({
+								url: "/pages/login/login",
+							});
+							return;
+						}
+						if (res.data.aihao) {
+							this.aihao_tags = res.data.aihao.split(",");
+						}
+						this.myinfo = res.data;
+						if (res.data.bgimg) {
+							this.bgImage = res.data.bgimg;
+						}
+					},
+					complete: (com) => {
+						// uni.hideLoading();
+					},
+					fail: (e) => {
+						console.log("----e:", e);
+					},
+				});
+			},
+			switchTab(index) {
+				this.activeTab = index;
+				this.offset = 0;
+				this.hasMore = true;
+				this.worksList = [];
+				this.loadWorksList();
+			},
+			loadWorksList() {
+				if (this.isLoading) return;
+				this.isLoading = true;
+				this.isDataLoaded = false;
+
+				// 根据activeTab选择不同的API
+				let apiUrl = "";
+				if (this.firstLevelNavActive == 0) {
+					apiUrl = "/Work/getlist";
+				} else if (this.firstLevelNavActive == 1) {
+					apiUrl = "/Article/getlist";
+				}
+				uni.request({
+					url: this.$apiHost + apiUrl,
+					data: {
+						uuid: getApp().globalData.uuid,
+						skey: getApp().globalData.skey,
+						type: "other", // 固定为my,表示获取自己的作品
+						offset: this.offset,
+						user_id: this.id
+					},
+					header: {
+						"content-type": "application/json",
+						sign: getApp().globalData.headerSign,
+					},
+					success: (res) => {
+						console.log("列表数据:", JSON.parse(JSON.stringify(res.data)));
+						if (res.data.success == "yes" && res.data.list) {
+							if (res.data.list.length > 0) {
+								this.worksList = [...this.worksList, ...res.data.list];
+								this.offset += res.data.list.length;
+							}
+
+							if (res.data.list.length < 20) {
+								this.hasMore = false;
+							}
+						} else {
+							this.hasMore = false;
+							this.worksList = [];
+						}
+					},
+					complete: () => {
+						this.isLoading = false;
+						this.isDataLoaded = true;
+					},
+					fail: (e) => {
+						console.log("请求列表失败:", e);
+						this.isLoading = false;
+						this.isDataLoaded = true;
+						this.worksList = [];
+					},
+				});
+			},
+			firstLevelNavActiveSwitch(n) {
+				this.firstLevelNavActive = n;
+				this.offset = 0;
+				this.hasMore = true;
+				this.worksList = [];
+				if (this.firstLevelNavActive == 0) {
+					this.activeTab = 0;
+				}
+				this.loadWorksList();
+			},
+
+			loadMoreWorks() {
+				if (this.hasMore && !this.isLoading) {
+					this.loadWorksList();
+				}
+			},
+			updateDataList() {
+				this.data_list = this.worksList.map((item) => {
+					return {
+						url: item.images || item.img_url || item.url || "../../static/logo.png",
+						title: item.title || item.description || "作品",
+						id: item.id,
+					};
+				});
+			},
+			goWork(item) {
+				uni.$emit("check_login", () => {});
+				if (this.firstLevelNavActive == 0) {
+					uni.navigateTo({
+						url: "/pages/index/workDetail?id=" + item.id,
+					});
+				} else {
+					uni.navigateTo({
+						url: "/pages/index/articleDetail?id=" + item.id,
+					});
+
+				}
+			},
+			navigateToFollow() {
+				uni.navigateTo({
+					url: "/pages/my/follow",
+				});
+			},
+			getLabelBoxHeight() {
+				setTimeout(() => {
+					const query = uni.createSelectorQuery();
+					query.select('#labelBox').boundingClientRect(data => {
+						if (data) {
+							this.labelBoxHeight = data.height;
+							console.log('label-box高度:', this.labelBoxHeight);
+						}
+					}).exec();
+				}, 100);
+			},
+			formatText(text) {
+				if (!text) return '';
+				return text.length > 20 ? text.substring(0, 20) + '...' : text;
+			},
+			scientificCounting(num) {
+				if (!num) {
+					return 0;
+				}
+				if (num < 1000) {
+					return num;
+				} else if (num < 1000000) {
+					return (num / 1000).toFixed(1) + 'k';
+				} else if (num < 1000000000) {
+					return (num / 1000000).toFixed(1) + 'M';
+				} else {
+					return (num / 1000000000).toFixed(1) + 'B';
+				}
+			},
+		},
+	};
 </script>
 
-<style scoped lang="scss"> 
- page {
-  background-color: #fff;
-}
-.page {
-  background-color: #fff;
-  width: 100%;
-  min-height: 100vh;
-}
-.reserveASeat {
-  width: 100%;
-  height: calc(var(--status-bar-height));
-}
-.topBody {
-  width: 750rpx;
-  background: transparent;
-}
- 
-
-.header {
-  padding: 20rpx;
-  padding-top: 48rpx;
-  background: linear-gradient(225deg, #cdff9f 0%, #acff5f 30%, #d0ffa5 100%);
-  min-height: calc(520rpx + var(--status-bar-height));
-  margin-bottom: calc(-40rpx );
- 
-  .card-box {
-    width: 100%;
-    min-height: 410rpx;
-    position: relative;
-    left: 0;
-    top: 0%;
-    overflow: hidden;
-    .card-top {
-      height: 410rpx;
-      width: 100%;
-      background: url("../../static/me/my-card-bg.png") top center / 100% auto,
-        #fff;
-      position: absolute;
-      top: 0%;
-      left: 0;
-      z-index: 5;
-      padding: 24rpx 0;
-      padding-top: 16rpx;
-      box-sizing: border-box;
-      border-radius: 25rpx;
-      .top-box {
-        display: flex;
-        justify-content: space-between;
-        align-items: center;
-        // padding-top: 8rpx;
-        background: url("../../static/me/car-top-bg-center.png") top center/
-          146rpx 50rpx no-repeat;
-          padding-right: 24rpx;
-          padding-left: 24rpx;
-        .hello-box {
-          font-family: "CustomFont" !important;
-          font-size: 36rpx;
-          font-weight: 700;
-        }
-        .settingBtn-box {
-          width: 148rpx;
-          display: flex;
-          align-items: center;
-          justify-content: flex-end;
-
-          image {
-            width: 64rpx;
-            height: 64rpx;
-          }
-        }
-      }
-      .userinfo-box {
-        min-height: 120rpx;
-        width: 100%;
-        display: flex;
-        padding-right: 24rpx;
-        padding-left: 24rpx;
-        padding-top: 18rpx;
-        .avator {
-          width: 120rpx;
-          height: 120rpx;
-          margin-right: 16rpx;
-        }
-        .userinfo-right {
-          .nickname {
-            font-weight: bold;
-            margin-bottom: 0rpx;
-            display: flex;
-            flex-direction: row;
-            justify-content: flex-start;
-            align-items: center;
-            display: flex;
-            padding-bottom: 12rpx;
-            > text {
-              max-width: 380rpx;
-              font-family: "PingFang SC-Bold";
-              font-weight: 400;
-              font-size: 36rpx;
-            }
-            image {
-              width: 36rpx;
-              margin-left: 8rpx;
-              margin-right: 10rpx;
-            }
-            .level {
-              font-weight: 400;
-              font-size: 22rpx;
-              font-family: "PingFang SC-Bold";
-              background: linear-gradient(360deg, #acf934 0%, #ffe439 100%);
-              border-radius: 8rpx;
-              padding: 2rpx 8rpx;
-            }
-          }
-          .label {
-            height: 40rpx;
-            // height: 110rpx;
-            overflow: hidden;
-            > view {
-              color: #acf934;
-              font-family: "PingFang SC-Medium";
-              font-weight: 400;
-              font-size: 24rpx;
-              background: #1f1f1f;
-              border-radius: 6px 6px 6px 6px;
-              display: inline-block;
-              margin-right: 10rpx;
-              margin-bottom: 10rpx;
-              padding: 6rpx 16rpx;
-            }
-          }
-        }
-      }
-      .intro_row {
-        width: 100%; 
-        display: flex;
-        align-items: center;
-        padding-right: 24rpx;
-        padding-left: 24rpx;
-        padding-top: 12rpx;
-        padding-bottom: 12rpx;
-        .intro_text {
-          color: #1f1f1f;
-          font-size: 24rpx;
-          font-family: "PingFang SC-Bold";
-          font-weight: 400;
-          padding-right: 0rpx;
-          ::v-deep.uv-text__value{
-            font-size: 26rpx !important;
-          }
-        }
-        .add_icon {
-          width: 28rpx;
-          margin-left: 10rpx;
-        }
-      }
-      .line{
-        width: 100%;
-        height: 2rpx;
-        background-color: #F2F6F2;
-        margin:10rpx 0;
-        margin-bottom: 20rpx;
-        
-        
-      }
-      .bom {
-        display: flex;
-        align-items: center;
-        justify-content: space-between;
-        padding-right: 24rpx;
-        padding-left: 24rpx;
-        .follow_info {
-          display: flex;
-          align-items: center;
-          justify-content: space-between;
-          max-width: 300rpx;
-          .follow-box {
-            display: flex;
-            flex-direction: column;
-            align-items: center;
-            justify-content: center;
-            text-align: center;
-          }
-          .num {
-            width: 100%;
-            font-size: 36rpx;
-            font-weight: bold;
-            color: #333;
-          }
-          .label {
-            width: 100%;
-            font-size: 24rpx;
-            color: #999;
-          }
-          .separator {
-            width: 2rpx;
-            height: 24rpx;
-            background-color: #e5e5e5;
-            margin: 0 30rpx;
-          }
-        }
-    
-        .points-box {
-          display: flex;
-          justify-content: space-between;
-
-          .followTheAuthor {
-            padding: 6rpx 40rpx 8rpx 35rpx;
-            border-radius: 26rpx;
-            margin-right: 16rpx;
-            transition: all 0.6s;
-            border: 2rpx solid transparent;
-
-            &.followTheAuthor1 {
-              color: #acf934;
-              background: #1f1f1f;
-            }
-
-            &.followTheAuthor0 {
-              border: 2rpx solid #1f1f1f;
-              background: #fff;
-            }
-          }
-        }
-        
-      }
-
-      .follow_info {
-        // display: none;
-      }
-    } 
-  }
-}
-.thread {
-  height: 210rpx;
-  padding: 50rpx;
-  font-size: 52rpx;
-  color: #6e6a6a;
-  padding-top: 80rpx;
-}
-.myinfo {
-  width: 100%;
-  display: flex;
-  flex-direction: column;
-  border-radius: 28rpx 28rpx 0 0;
-  padding: 24rpx 20rpx;
-  padding-top: 14rpx;
-  justify-content: flex-start;
-  box-sizing: border-box;
-  background: #fff;
-  overflow: hidden;
-  .line {
-    width: 100%;
-    height: 2rpx;
-    background: #f2f6f2;
-    margin-bottom: 8rpx;
-    margin-top: 32rpx;
-  }
-  .subtitle {
-    display: flex;
-    .item {
-      padding: 0 43rpx;
-      font-weight: 400;
-      font-size: 28rpx;
-      color: #999999;
-      font-family: "PingFang SC-Medium";
-      &.active {
-        font-family: "PingFang SC-Bold";
-        font-weight: 400;
-        font-size: 28rpx;
-        color: #1f1f1f;
-      }
-    }
-  }
-  .tablist {
-    display: flex;
-    justify-content: flex-start;
-    box-sizing: border-box;
-    background: #ffffff;
-    .item {
-      padding: 15rpx 38rpx;
-      color: #1f1f1f;
-      font-size: 28rpx;
-      background: #f2f6f2;
-      margin-right: 20rpx;
-      border-radius: 30rpx;
-      position: relative;
-      left: 0;
-      top: 0; 
-      line-height: 1;
-      transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
-      // box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.05);
-      
-      &:active {
-        transform: scale(0.95);
-        // box-shadow: 0 1rpx 4rpx rgba(0, 0, 0, 0.05);
-      }
-
-      .indicator-triangle {
-        position: absolute;
-        bottom: -10rpx;
-        left: 50%;
-        transform: translateX(-50%);
-        width: 0;
-        height: 0;
-        border-left: 10rpx solid transparent;
-        border-right: 10rpx solid transparent;
-        border-top: 10rpx solid #acf934;
-        display: none;
-        transition: all 0.3s ease;
-      }
-      &.active {
-        background: #acf934;
-        font-family: "CustomFont" !important;
-        box-shadow: 0 4rpx 12rpx rgba(172, 249, 52, 0.3);
-        
-        .indicator-triangle {
-          display: block;
-          transform: translateX(-50%) scale(1.2);
-        }
-      }
-    }
-  }
-
- 
-  .numlist  {
-    display: grid;
-    grid-template-columns: repeat(2, 1fr);
-    margin-top: 30rpx
-  }
- 
-}
- 
-.empty-state {
-  display: flex;
-  flex-direction: column;
-  align-items: center;
-  justify-content: center;
-  padding: 60rpx 0;
-  margin-top: 40rpx;
-  background: #FFFFFF;
-  border-radius: 20rpx;
-  width: 710rpx;
-
-  .empty-image {
-    width: 240rpx;
-    height: 240rpx;
-    margin-bottom: 30rpx;
-  }
-
-  .empty-text {
-    font-size: 32rpx;
-    color: #333333;
-    margin-bottom: 16rpx;
-    font-weight: 500;
-  }
-
-  .empty-subtext {
-    font-size: 28rpx;
-    color: #999999;
-  }
-}
+<style scoped lang="scss">
+	page {
+		background-color: #fff;
+	}
+
+	.page {
+		background-color: #fff;
+		width: 100%;
+		min-height: 100vh;
+	}
+
+	.reserveASeat {
+		width: 100%;
+		height: calc(var(--status-bar-height));
+	}
+
+	.topBody {
+		width: 750rpx;
+		background: transparent;
+	}
+
+
+	.header {
+		background-position: center;
+		background-size: auto 100%;
+		min-height: calc(700rpx + var(--status-bar-height));
+
+		// margin-bottom:-80rpx ;
+		.header-box {
+			width: 100%;
+			height: 100%;
+			min-height: calc(700rpx + var(--status-bar-height));
+			padding: 20rpx;
+			padding-top: 48rpx;
+			background-position: center bottom;
+			background-size: 100% auto;
+		}
+
+		.card-box {
+			width: 100%;
+			min-height: 490rpx;
+			position: relative;
+			left: 0;
+			top: 0%;
+			overflow: hidden;
+
+			.card-top {
+				height: 410rpx;
+				width: 100%;
+				background: url("../../static/me/my-card-bg.png") top center / 100% auto,
+					#fff;
+				position: absolute;
+				top: 0%;
+				left: 0;
+				z-index: 5;
+				padding: 24rpx 0;
+				padding-top: 16rpx;
+				box-sizing: border-box;
+				border-radius: 25rpx;
+
+				.top-box {
+					display: flex;
+					justify-content: space-between;
+					align-items: center;
+					// padding-top: 8rpx;
+					background: url("../../static/me/car-top-bg-center.png") top center/ 146rpx 50rpx no-repeat;
+					padding-right: 24rpx;
+					padding-left: 24rpx;
+
+					.hello-box {
+						font-family: "CustomFont" !important;
+						font-size: 36rpx;
+						font-weight: 700;
+					}
+
+					.settingBtn-box {
+						width: 148rpx;
+						display: flex;
+						align-items: center;
+						justify-content: space-between;
+
+						image {
+							width: 64rpx;
+							height: 64rpx;
+						}
+					}
+				}
+
+				.userinfo-box {
+					min-height: 120rpx;
+					width: 100%;
+					display: flex;
+					padding-right: 24rpx;
+					padding-left: 24rpx;
+					padding-top: 18rpx;
+
+					.avator {
+						width: 120rpx;
+						height: 120rpx;
+						margin-right: 16rpx;
+					}
+
+					.userinfo-right {
+						.nickname {
+							font-weight: bold;
+							margin-bottom: 0rpx;
+							display: flex;
+							flex-direction: row;
+							justify-content: flex-start;
+							align-items: center;
+							display: flex;
+							padding-bottom: 12rpx;
+
+							>text {
+								max-width: 380rpx;
+								font-family: "PingFang SC-Bold";
+								font-weight: 400;
+								font-size: 36rpx;
+							}
+
+							image {
+								width: 36rpx;
+								margin-left: 8rpx;
+								margin-right: 10rpx;
+							}
+
+							.level {
+								font-weight: 400;
+								font-size: 22rpx;
+								font-family: "PingFang SC-Bold";
+								background: linear-gradient(360deg, #acf934 0%, #ffe439 100%);
+								border-radius: 8rpx;
+								padding: 2rpx 8rpx;
+							}
+						}
+
+						.label {
+							height: 40rpx;
+							// height: 110rpx;
+							overflow: hidden;
+
+							>view {
+								color: #acf934;
+								font-family: "PingFang SC-Medium";
+								font-weight: 400;
+								font-size: 24rpx;
+								background: #1f1f1f;
+								border-radius: 6px 6px 6px 6px;
+								display: inline-block;
+								margin-right: 10rpx;
+								margin-bottom: 10rpx;
+								padding: 6rpx 16rpx;
+							}
+						}
+					}
+				}
+
+				.intro_row {
+					width: 100%;
+					display: flex;
+					align-items: center;
+					padding-right: 24rpx;
+					padding-left: 24rpx;
+					padding-top: 12rpx;
+					padding-bottom: 12rpx;
+
+					.intro_text {
+						color: #1f1f1f;
+						font-size: 24rpx;
+						font-family: "PingFang SC-Bold";
+						font-weight: 400;
+						padding-right: 0rpx;
+
+						::v-deep.uv-text__value {
+							font-size: 26rpx !important;
+						}
+					}
+
+					.add_icon {
+						width: 28rpx;
+						margin-left: 10rpx;
+					}
+				}
+
+				.line {
+					width: 100%;
+					height: 2rpx;
+					background-color: #f2f6f2;
+					margin: 10rpx 0;
+					margin-bottom: 20rpx;
+				}
+
+				.bom {
+					display: flex;
+					align-items: center;
+					justify-content: space-between;
+					padding-right: 24rpx;
+					padding-left: 24rpx;
+
+					.follow_info {
+						display: flex;
+						align-items: center;
+						justify-content: space-between;
+						max-width: 300rpx;
+
+						.follow-box {
+							display: flex;
+							flex-direction: column;
+							align-items: center;
+							justify-content: center;
+							text-align: center;
+						}
+
+						.num {
+							width: 100%;
+							font-size: 36rpx;
+							font-weight: bold;
+							color: #333;
+						}
+
+						.label {
+							width: 100%;
+							font-size: 24rpx;
+							color: #999;
+						}
+
+						.separator {
+							width: 2rpx;
+							height: 24rpx;
+							background-color: #e5e5e5;
+							margin: 0 30rpx;
+						}
+					}
+
+					.points-box {
+						display: flex;
+						justify-content: space-between;
+
+						.points {
+							display: flex;
+							align-items: center;
+							background: #f2f6f2;
+							border-radius: 30rpx;
+							padding: 6rpx 12rpx 6rpx 8rpx;
+
+							&:first-child {
+								margin-right: 18rpx;
+							}
+
+							image {
+								width: 40rpx;
+								height: 40rpx;
+							}
+
+							text {
+								display: inline-block;
+								padding-left: 4rpx;
+								line-height: 0;
+							}
+						}
+					}
+				}
+
+				.follow_info {
+					// display: none;
+				}
+			}
+		}
+
+		.benner-box {
+			.setUp-box {
+				display: flex;
+				align-items: center;
+				justify-content: space-between;
+
+				.my-box {
+					font-family: "CustomFont" !important;
+					font-size: 36rpx;
+					font-weight: 700;
+					color: #fff;
+
+					image {
+						width: 64rpx;
+						height: 64rpx;
+					}
+				}
+
+				.settingBtn-box {
+					width: 148rpx;
+					display: flex;
+					align-items: center;
+					justify-content: space-between;
+
+					image {
+						width: 64rpx;
+						height: 64rpx;
+					}
+				}
+			}
+
+			.profilePicture-box {
+				display: flex;
+				align-items: center;
+				justify-content: flex-start;
+				padding-top: 60rpx;
+				padding-bottom: 28rpx;
+
+				.avator {
+					width: 156rpx;
+					height: 156rpx;
+					margin-right: 16rpx;
+				}
+
+				.one-omit {
+					max-width: 400rpx;
+					font-size: 40rpx;
+					font-family: "PingFang SC-Bold";
+					font-weight: 400;
+					color: #fff;
+				}
+
+				.profilePicture-box-right {
+					image {
+						width: 80rpx;
+						height: 38rpx;
+						margin-top: 10rpx;
+					}
+				}
+			}
+
+			.intro_row {
+				width: 100%;
+				display: flex;
+				align-items: center;
+				padding-right: 24rpx;
+				padding-left: 24rpx;
+				padding-top: 12rpx;
+				padding-bottom: 12rpx;
+				color: #fff;
+
+				.intro_text {
+					color: #fff;
+					font-size: 24rpx;
+					font-family: "PingFang SC-Bold";
+					font-weight: 400;
+					padding-right: 0rpx;
+
+					::v-deep.uv-text__value {
+						font-size: 26rpx !important;
+					}
+				}
+
+				.add_icon {
+					width: 28rpx;
+					margin-left: 10rpx;
+				}
+			}
+
+			.label-box {
+				display: flex;
+				flex-wrap: wrap;
+				align-items: center;
+				// height: 55rpx;
+				width: 100%;
+
+				// overflow: hidden;
+				.label-item {
+					background: rgba(255, 255, 255, 0.1);
+					border-radius: 12rpx;
+					border: 2rpx solid rgba(255, 255, 255, 0.1);
+					display: inline-block;
+					color: #fff;
+					font-size: 24rpx;
+					font-family: "PingFang SC-Bold";
+					font-weight: 400;
+					padding: 6rpx 16rpx;
+					margin-right: 10rpx;
+					margin-bottom: 10rpx;
+
+					image {
+						width: 30rpx;
+					}
+
+					&.sex-item {
+						border-radius: 50%;
+						width: 40rpx;
+						height: 40rpx;
+						display: inline-flex;
+						align-items: center;
+						justify-content: center;
+						padding: 0;
+						margin-right: 0;
+						margin-bottom: 0;
+						margin-right: 10rpx;
+					}
+				}
+			}
+
+			.follow_info {
+				display: flex;
+				align-items: center;
+				justify-content: space-between;
+				max-width: 300rpx;
+				padding-bottom: 28rpx;
+				padding-top: 28rpx;
+
+				.follow-box {
+					display: flex;
+					flex-direction: column;
+					align-items: center;
+					justify-content: center;
+					text-align: center;
+				}
+
+				.num {
+					width: 100%;
+					font-size: 36rpx;
+					font-weight: bold;
+					color: #fff;
+				}
+
+				.label {
+					width: 100%;
+					font-size: 24rpx;
+					color: rgba(255, 255, 255, 0.5);
+				}
+
+				.separator {
+					width: 2rpx;
+					height: 24rpx;
+					background-color: #e5e5e5;
+					margin: 0 30rpx;
+				}
+			}
+
+			.bom-box {
+				display: flex;
+				align-items: center;
+				justify-content: space-between;
+
+				.bom-item {
+					width: 218rpx;
+					height: 96rpx;
+					border-radius: 16rpx;
+					border: 2rpx solid rgba(255, 255, 255, 0.1);
+					padding: 10rpx 18rpx;
+					background: url("../../static/me/box-bg-1.png") center center / 100% 100%;
+
+					&.bom-item2 {
+						background: url("../../static/me/box-bg-2.png") center center / 100% 100%;
+					}
+
+					&.bom-item3 {
+						background: url("../../static/me/box-bg-3.png") center center / 100% 100%;
+					}
+
+					.bom-item-title {
+						font-size: 24rpx;
+						color: #fff;
+					}
+
+					.bom-item-subtitle {
+						font-size: 20rpx;
+						color: rgba(255, 255, 255, 0.5);
+					}
+				}
+			}
+		}
+	}
+
+	.thread {
+		height: 210rpx;
+		padding: 50rpx;
+		font-size: 52rpx;
+		color: #6e6a6a;
+		padding-top: 80rpx;
+	}
+
+	.myinfo {
+		width: 100%;
+		display: flex;
+		flex-direction: column;
+		border-radius: 28rpx 28rpx 0 0;
+		padding: 24rpx 20rpx;
+		padding-top: 14rpx;
+		justify-content: flex-start;
+		box-sizing: border-box;
+		background: #fff;
+		overflow: hidden;
+
+		.line {
+			width: 100%;
+			height: 2rpx;
+			background: #f2f6f2;
+			margin-bottom: 8rpx;
+			margin-top: 32rpx;
+		}
+
+		.subtitle {
+			display: flex;
+
+			.item {
+				padding: 0 43rpx;
+				font-weight: 400;
+				font-size: 28rpx;
+				color: #999999;
+				font-family: "PingFang SC-Medium";
+
+				&.active {
+					font-family: "PingFang SC-Bold";
+					font-weight: 400;
+					font-size: 28rpx;
+					color: #1f1f1f;
+				}
+			}
+		}
+
+		.tablist {
+			display: flex;
+			justify-content: flex-start;
+			box-sizing: border-box;
+			background: #ffffff;
+
+			.item {
+				padding: 15rpx 38rpx;
+				color: #1f1f1f;
+				font-size: 28rpx;
+				background: #f2f6f2;
+				margin-right: 20rpx;
+				border-radius: 30rpx;
+				position: relative;
+				left: 0;
+				top: 0;
+				line-height: 1;
+				transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
+				// box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.05);
+
+				&:active {
+					transform: scale(0.95);
+					// box-shadow: 0 1rpx 4rpx rgba(0, 0, 0, 0.05);
+				}
+
+				.indicator-triangle {
+					position: absolute;
+					bottom: -10rpx;
+					left: 50%;
+					transform: translateX(-50%);
+					width: 0;
+					height: 0;
+					border-left: 10rpx solid transparent;
+					border-right: 10rpx solid transparent;
+					border-top: 10rpx solid #acf934;
+					display: none;
+					transition: all 0.3s ease;
+				}
+
+				&.active {
+					background: #acf934;
+					font-family: "CustomFont" !important;
+					box-shadow: 0 4rpx 12rpx rgba(172, 249, 52, 0.3);
+
+					.indicator-triangle {
+						display: block;
+						transform: translateX(-50%) scale(1.2);
+					}
+				}
+			}
+		}
+
+
+		.numlist {
+			display: grid;
+			grid-template-columns: repeat(2, 1fr);
+			margin-top: 30rpx
+		}
+
+	}
+
+	.empty-state {
+		display: flex;
+		flex-direction: column;
+		align-items: center;
+		justify-content: center;
+		padding: 60rpx 0;
+		margin-top: 40rpx;
+		background: #FFFFFF;
+		border-radius: 20rpx;
+		width: 710rpx;
+
+		.empty-image {
+			width: 240rpx;
+			height: 240rpx;
+			margin-bottom: 30rpx;
+		}
+
+		.empty-text {
+			font-size: 32rpx;
+			color: #333333;
+			margin-bottom: 16rpx;
+			font-weight: 500;
+		}
+
+		.empty-subtext {
+			font-size: 28rpx;
+			color: #999999;
+		}
+	}
 </style>