<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>