- <template>
 - 	<view class="page">
 - 		<view class="beijin">
 - 			<view class="profile">
 - 				<!-- 未登录状态 -->
 - 				<view v-if="!isLogin" class="login-section">
 - 					<view class="avatar-placeholder">
 - 						<uv-icon name="account" size="80rpx" color="#ccc"></uv-icon>
 - 					</view>
 - 					<view class="login-info">
 - 						<view class="welcome-text">欢迎来到墙友社区</view>
 - 						<view class="login-desc">登录后享受更多功能</view>
 - 						<button class="login-btn" @click="$utils.toLogin">立即登录</button>
 - 					</view>
 - 				</view>
 - 				
 - 				<!-- 已登录状态 -->
 - 				<view v-else>
 - 					<view class="o">
 - 						<view class="headImage" @click="goToMyProfile">
 - 							<image
 - 							:src="userInfo.headImage"
 - 							mode="aspectFill"></image>
 - 							
 - 							<view class="vip_info"
 - 							v-if="userInfo.isPay">
 - 								<view class="title">
 - 									{{ headInfo[vipList[userInfo.isPay - 1]].keyName }}
 - 								</view>
 - 								
 - 								<!-- <view class="time">
 - 									2024-6-6到期
 - 								</view> -->
 - 							</view>
 - 						</view>
 - 						
 - 						<!-- <view class="vip_info">
 - 							<view class="title">
 - 								普通会员
 - 							</view>
 - 							
 - 							<view class="time">
 - 								2024-6-6到期
 - 							</view>
 - 						</view> -->
 - 
 - 						<view class="setUp"
 - 						@click="$utils.navigateTo('/pages_order/mine/setting')">
 - 							设置
 - 						</view>
 - 					</view>
 - 
 - 					<view class="account">
 - 						<view class="number">
 - 							{{ userInfo.nickName || '墙友1712378974678376' }}
 - 						</view>
 - 						<view class="gender">
 - 							<uv-icon 
 - 							:name="sex[userInfo.sex].name"
 - 							size="34rpx" 
 - 							:color="sex[userInfo.sex].color"></uv-icon>
 - 						</view>
 - 
 - 						<view class="authentication">
 - 							{{ auth[userInfo.idCardOpen] || '未认证' }}
 - 						</view>
 - 					</view>
 - 					<view class="Days">
 - 						<!-- 你已经成为狐友133天啦~ -->
 - 					</view>
 - 
 - 					<view class="box">
 - 						<view class="fenst"
 - 						@click="$utils.navigateTo('/pages_order/mine/promotion')">
 - 							<view class="digit">
 - 								<uv-icon
 - 								size="40rpx"
 - 								color="#black"
 - 								name="grid"></uv-icon>
 - 							</view>
 - 							<view class="fans">
 - 								二维码
 - 							</view>
 - 						</view>
 - 						
 - 						<view class="shut">
 - 							|
 - 						</view>
 - 						
 - 						<view class="fenst"
 - 						@click="$utils.navigateTo('/pages_order/mine/fans')">
 - 							<view class="digit">
 - 								{{ userInfo.intentionNum }}
 - 							</view>
 - 							<view class="fans">
 - 								粉丝
 - 							</view>
 - 						</view>
 - 						
 - 						<view class="shut">
 - 							|
 - 						</view>
 - 						
 - 						<view class="fenst"
 - 						@click="$utils.navigateTo('/pages_order/mine/runningWater?status=0')">
 - 							<view class="digit">
 - 								{{ userInfo.price }}
 - 							</view>
 - 							<view class="fans">
 - 								余额
 - 							</view>
 - 						</view>
 - 						
 - 						<view class="shut">
 - 							|
 - 						</view>
 - 						
 - 						<view class="fenst"
 - 						@click="$utils.navigateTo('/pages_order/mine/runningWater?status=1')">
 - 							<view class="digit">
 - 								{{ userInfo.integerPrice }}
 - 							</view>
 - 							<view class="fans">
 - 								积分
 - 							</view>
 - 						</view>
 - 
 - 					</view>
 - 
 - 				</view>
 - 
 - 			</view>
 - 		</view>
 - 
 - 		<!-- 只有登录后才显示内容标签页 -->
 - 		<view v-if="isLogin" class="Content">
 - 			<uv-tabs :list="tabs" @click="click"
 - 			:activeStyle="{color : '#000', fontWeight : 900}"
 - 			lineColor="#5baaff"
 - 			lineHeight="8rpx"
 - 			lineWidth="50rpx"></uv-tabs>
 - 		</view>
 - 		
 - 		<!-- 我的帖子 -->
 - 		<view v-if="isLogin && type == 0">
 - 			<dynamicItemEdit
 - 			:key="index"
 - 			@click="$utils.navigateTo('/pages_order/post/addPost?id=' + item.id)"
 - 			v-for="(item, index) in list"
 - 			:item="item"
 - 			del
 - 			@del="delDynamic(item.id)"
 - 			/>
 - 		</view>
 - 		
 - 		<!-- 我的租房 -->
 - 		<view v-if="isLogin && type == 1">
 - 			<rentingItem :key="index" v-for="(item, index) in list" :item="item"
 - 			@click="$utils.navigateTo('/pages_order/renting/addRenting?id=' + item.id)" />
 - 		</view>
 - 		
 - 		<!-- 我的招聘 -->
 - 		<view v-if="isLogin && type == 2">
 - 			<workItem :key="index" v-for="(item, index) in list" :item="item"
 - 			@click="$utils.navigateTo('/pages_order/work/addWork?id=' + item.id)" />
 - 		</view>
 - 		
 - 		<!-- 我的店铺 -->
 - 		<view v-if="isLogin && type == 3">
 - 			<gourmetItem :key="index" v-for="(item, index) in list" :item="item"
 - 			@click="$utils.navigateTo('/pages_order/gourmet/gourmetDetail?id=' + item.id)" />
 - 		</view>
 - 		
 - 		<!-- 我的同城群 -->
 - 		<view v-if="isLogin && type == 4">
 - 			<groupItem :key="index" v-for="(item, index) in list" :item="item" :edit="true"
 - 			@refresh="getData" />
 - 		</view>
 - 		
 - 		<!-- 未登录提示 -->
 - 		<view v-if="!isLogin" class="login-prompt">
 - 			<uv-empty
 - 			text="请先登录查看更多内容"
 - 			textSize="30rpx"
 - 			iconSize="200rpx"
 - 			icon="account">
 - 			</uv-empty>
 - 		</view>
 - 		
 - 		<view class="no-data"
 - 		v-if="isLogin && !tabs[type].show">
 - 			暂未开放
 - 		</view>
 - 		
 - 		<uv-empty
 - 		v-else-if="isLogin && list.length == 0"
 - 		text="空空如也"
 - 		textSize="30rpx"
 - 		iconSize="200rpx"
 - 		icon="list"></uv-empty>
 - 
 - 		<tabber select="3" />
 - 	</view>
 - </template>
 - 
 - <script>
 - 	import tabber from '@/components/base/tabbar.vue'
 - 	import dynamicItemEdit from '@/components/list/dynamic/dynamicItemEdit.vue'
 - 	import gourmetItem from '@/components/list/gourmet/gourmetItem.vue'
 -     import rentingItem from '@/components/list/renting/rentingItem.vue'
 -     import workItem from '@/components/list/work/workItem.vue'
 - 	import groupItem from '@/components/list/group/groupItem.vue'
 - 	import mixinsList from '@/mixins/list.js'
 - 	import mixinsSex from '@/mixins/sex.js'
 - 	import { mapState } from 'vuex'
 - 	export default {
 - 		mixins: [mixinsList, mixinsSex],
 - 		components: {
 - 			tabber,
 - 			gourmetItem,
 - 			rentingItem,
 - 			workItem,
 - 			groupItem,
 - 			dynamicItemEdit,
 - 		},
 - 		computed: {
 - 			...mapState(['userInfo', 'headInfo']),
 - 		},
 - 		data() {
 - 			return {
 - 				tabs: [
 - 					{
 - 						name: '帖子',
 - 						show : true,
 - 					}, 
 - 					{
 - 						name: '租房',
 - 						show : true,
 - 					},
 - 					{
 - 						name: '招聘',
 - 						show : true,
 - 					},
 - 					{
 - 						name: '店铺',
 - 						show : true,
 - 					},
 - 					{
 - 						name: '同城群',
 - 						show : true,
 - 					},
 - 				],
 - 				vipList : ['vip', 'vipBig'],
 - 				mixinsListApi : '',
 - 				apiList : [
 - 					'getMyPostPage',//查询我的帖子
 - 					'getMyRent',
 - 					'getMyJob',
 - 					'myShop',//查询我的店铺
 - 					'getMyPublishedList',//查询我发布的同城群
 - 				],
 - 				auth : ['审核中', '个人认证', '店铺认证'],
 - 				type : 0,
 - 				isLogin: false,
 - 			}
 - 		},
 - 		onShow() {
 - 			this.checkLoginStatus()
 - 		},
 - 		methods: {
 - 			// 检查登录状态
 - 			checkLoginStatus() {
 - 				// 检查是否有用户信息或token来判断登录状态
 - 				const token = uni.getStorageSync('token')
 - 				if (token) {
 -                     this.mixinsListApi = this.apiList[this.type]
 - 					this.isLogin = true
 - 					this.$store.commit('getUserInfo')
 -                     this.getData()
 - 				} else {
 - 					this.isLogin = false
 - 				}
 - 			},
 - 			click({index}) {
 - 				if (!this.isLogin) {
 - 					this.showLoginTip()
 - 					return
 - 				}
 - 				this.type = index
 - 				this.mixinsListApi = this.apiList[index]
 - 				this.list = []
 - 				this.getData()
 - 			},
 - 			// 显示登录提示
 - 			showLoginTip() {
 - 				uni.showToast({
 - 					title: '请先登录',
 - 					icon: 'none'
 - 				})
 - 			},
 - 			// 删除帖子
 - 			delDynamic(postId){
 - 				let self = this
 - 				uni.showModal({
 - 					title: '确认要删除吗?',
 - 					success(e) {
 - 						if(e.confirm){
 - 							self.$api('deletePost', {
 - 								postId
 - 							}, res => {
 - 								if(res.code == 200){
 - 									self.getData()
 - 								}
 - 							})
 - 						}
 - 					}
 - 				})
 - 			},
 - 			
 - 			// 跳转到我的个人主页
 - 			goToMyProfile() {
 - 				if (!this.isLogin) {
 - 					this.showLoginTip()
 - 					return
 - 				}
 - 				uni.navigateTo({
 - 					url: `/pages_order/profile/userProfile?userId=${this.userInfo.id}`
 - 				})
 - 			},
 - 		}
 - 	}
 - 	
 - </script>
 - 
 - <style scoped lang="scss">
 - 	.page {
 - 		.beijin {
 - 			// background: linear-gradient(to bottom, rgb(85, 94, 123), rgb(45, 51, 73));
 - 			background: linear-gradient($uni-color, #fff);
 - 			background-color: black;
 - 			color: black;
 - 			
 - 
 - 			.profile {
 - 				padding: 40rpx;
 - 				padding-top: 160rpx;
 - 				
 - 				// 未登录状态样式
 - 				.login-section {
 - 					display: flex;
 - 					flex-direction: column;
 - 					align-items: center;
 - 					padding: 40rpx 0;
 - 					
 - 					.avatar-placeholder {
 - 						width: 100px;
 - 						height: 100px;
 - 						border-radius: 50%;
 - 						background: #f5f5f5;
 - 						display: flex;
 - 						align-items: center;
 - 						justify-content: center;
 - 						margin-bottom: 30rpx;
 - 					}
 - 					
 - 					.login-info {
 - 						text-align: center;
 - 						
 - 						.welcome-text {
 - 							font-size: 32rpx;
 - 							font-weight: bold;
 - 							margin-bottom: 10rpx;
 - 						}
 - 						
 - 						.login-desc {
 - 							font-size: 24rpx;
 - 							color: #666;
 - 							margin-bottom: 40rpx;
 - 						}
 - 						
 - 						.login-btn {
 - 							background: linear-gradient(45deg, #5baaff, #4a90e2);
 - 							color: white;
 - 							border: none;
 - 							border-radius: 50rpx;
 - 							padding: 20rpx 60rpx;
 - 							font-size: 28rpx;
 - 							font-weight: bold;
 - 						}
 - 					}
 - 				}
 - 
 - 				.box {
 - 					padding: 0rpx 10rpx;
 - 					display: flex;
 - 					align-items: center;
 - 					text-align: center;
 - 
 - 					.followWithnterest {
 - 						.digit {
 - 							padding: 20rpx;
 - 						}
 - 
 - 						.close {
 - 						}
 - 
 - 					}
 - 					
 - 					.shut{
 - 						margin: 0rpx 20rpx;
 - 						
 - 					}
 - 					
 - 					.fenst {
 - 						.digit {
 - 							padding: 20rpx;
 - 						}
 - 					
 - 						.fans {
 - 						}
 - 					}
 - 				}
 - 
 - 				.account {
 - 					display: flex;
 - 					align-items: center;
 - 
 - 					.number {
 - 						letter-spacing: 2rpx;
 - 						margin-top: 10rpx;
 - 					}
 - 
 - 					.gender {
 - 
 - 						margin: 20rpx 10rpx;
 - 
 - 					}
 - 
 - 					.authentication {
 - 						font-size: 20rpx;
 - 
 - 					}
 - 				}
 - 
 - 				.Days {
 - 					margin-top: 15rpx;
 - 					font-size: 22rpx;
 - 					letter-spacing: 2rpx;
 - 				}
 - 
 - 				.o {
 - 					display: flex;
 - 					align-items: center;
 - 					justify-content: space-between;
 - 					margin-bottom: 60rpx;
 - 
 - 					.headImage {
 - 						position: relative;
 - 						height: 100px;
 - 						width: 100px;
 - 						border-radius: 50%;
 - 						image {
 - 							height: 100%;
 - 							width: 100%;
 - 							border-radius: 50%;
 - 						}
 - 						.vip_info{
 - 							--lg1Color : #ffb700;
 - 							--lg2Color : #ff3300;
 - 							display: flex;
 - 							justify-content: center;
 - 							background: linear-gradient(var(--lg1Color), var(--lg2Color));
 - 							color: #fff;
 - 							font-size: 20rpx;
 - 							padding: 15rpx 0;
 - 							border-radius: 20rpx;
 - 							margin-top: auto;
 - 							margin-right: auto;
 - 							position: absolute;
 - 							bottom: -30rpx;
 - 							left: 50%;
 - 							width: 160rpx;
 - 							transform: translate(-50%);
 - 						}
 - 					}
 - 					
 - 					// .vip_info{
 - 					// 	// display: flex;
 - 					// 	// justify-content: center;
 - 					// 	background-color: #2800ee;
 - 					// 	color: #fff;
 - 					// 	font-size: 20rpx;
 - 					// 	padding: 15rpx 30rpx;
 - 					// 	line-height: 50rpx;
 - 					// 	border-radius: 20rpx;
 - 					// 	margin-right: auto;
 - 					// 	margin-left: 20rpx;
 - 					// 	.title{
 - 					// 		font-size: 26rpx;
 - 					// 	}
 - 					// 	.time{
 - 					// 		// margin-left: 20rpx;
 - 					// 	}
 - 					// }
 - 
 - 					.setUp {
 - 					}
 - 				}
 - 			}
 - 		}
 - 
 - 		.Content {}
 - 		
 - 		.login-prompt {
 - 			padding: 100rpx 0;
 - 		}
 - 		
 - 		.no-data{
 - 			display: flex;
 - 			justify-content: center;
 - 			align-content: center;
 - 			padding: 100rpx 0;
 - 			color: #777;
 - 		}
 - 	}
 - </style>
 
 
  |