<template>
	<view>
		<uni-nav-bar fixed statusBar left-icon="left" right-icon="gear" background-color="transparent" :border="false"
			:style="{ '--right-padding': getMenuInfoList + 'px' }" @clickLeft="back" @clickRight="tosetUp"
			title="开通会员"></uni-nav-bar>
		<view class="back"></view>
		<view class="body">
			<view class="user fa">
				<image :src="userInfo.avatar ? userInfo.avatar : '/static/images/avatar.png'" mode="aspectFill"></image>
				<view class="user_content f1">
					<view class="user_name">{{ userInfo.nickname }}</view>
					<view class="user_text">{{ userInfo.vip == 0 ? '会员未开通' : '会员已开通' }}</view>
				</view>
			</view>
			<view class="module" v-if="userInfo.vip_endtime">
				<view>到期时间： {{ formatTime(userInfo.vip_endtime) }}</view>
			</view>
			<view class="list">
				<view class="list_head fa">
					<image src="/static/images/member_logo.png" mode="widthFix"></image>
					无线畅聊+无线语音
				</view>
				<view class="list_content fa sb">
					<view class="list_member" v-for="(item, index) in memberList" :key="index"
						@click="memberClick(index, item.id)" :class="memberIndex == index ? 'list_active' : ''">
						<view class="list_first" :style="memberIndex == index ? 'color: #FF51B3;' : ''">{{ item.title }}
						</view>
						<view class="list_price fx" :style="memberIndex == index ? 'color: #FF51B3;' : ''">
							¥<text>{{ item.money }}</text></view>
						<view class="list_break" :style="memberIndex == index ? 'color: #FF51B3;' : ''">{{ item.desc }}
						</view>
						<image class="list_tag" v-if="memberIndex == index" src="/static/images/member_tag.png"></image>
					</view>
				</view>
				<view class="list_module">
					<view class="list_title">权益对比</view>
					<view class="list_detail fa sb">
						<view class="list_item">
							<view class="list_item_title faj">权益名称</view>
							<view class="list_item_title faj">聊天条数</view>
							<view class="list_item_title faj">免广告权益</view>
							<view class="list_item_title faj">语音时长</view>
							<view class="list_item_title faj">视频生成</view>
						</view>
						<view class="list_item">
							<view class="list_item_title faj">非VIP会员</view>
							<view class="list_item_title faj">聊天100次/天</view>
							<view class="list_item_title faj">不免广告</view>
							<view class="list_item_title faj">不可语音</view>
							<view class="list_item_title faj">无法生成视频</view>
						</view>
						<view class="list_items faj fc">
							<view class="list_item_titles faj">VIP</view>
							<view class="list_item_titles faj">无限聊天</view>
							<view class="list_item_titles faj">全站免广告</view>
							<view class="list_item_titles faj">无限语音</view>
							<view class="list_item_titles faj">2次/天</view>
						</view>
					</view>
				</view>
				<view class="list_btn faj" @click="toOpenMember">确认协议并开通</view>
				<view class="list_text faj">阅读并确认同意<text>《会员服务协议》</text></view>
			</view>
		</view>
	</view>
</template>

<script>
import {
	VipPackageApi,
	CreateVipOrderApi,
	VipPayApi,
} from '@/utils/api.js'
import notHave from '@/components/not-have.vue';
import topSafety from '@/components/top-safety.vue';
import tabBar from '@/components/tab-bar.vue';
export default {
	components: {
		notHave,
		topSafety,
		tabBar,
	},
	data() {
		return {
			memberList: [
				{
					id: 0,
					name: '首次包月',
					price: '14',
					text: '首月享7折',
				},
				{
					id: 1,
					name: '首次包季',
					price: '36',
					text: '首季享7折',
				},
				{
					id: 2,
					name: '首次包年',
					price: '120',
					text: '首年享7折',
				},
			],
			memberIndex: 0,
			userInfo: uni.getStorageSync('userinfo'),
			vip_package_id: '',
			avatar: '',
			nickname: '',
			getMenuInfoList: '',
		}
	},
	onShow() {
		this.getRechargePackage()
	    // #ifdef MP-WEIXIN
		this.getMenuInfo()
		// #endif
	},
	methods: {
		//充值套餐列表
		getRechargePackage() {
			VipPackageApi({}).then(res => {
				if (res.code == 1) {
					this.memberList = res.data
					this.vip_package_id = res.data[0].id
				}
			})
		},
		memberClick(index, id) {
			this.memberIndex = index
			this.vip_package_id = id
		},
		toOpenMember() {
			CreateVipOrderApi({
				vip_package_id: this.vip_package_id,
				pay_type: 'miniWechat'
			}).then(res => {
				if (res.code == 1) {
					VipPayApi({
						out_trade_no: res.data.out_trade_no
					}).then(res => {
						if (res.code == 1) {
							uni.showModal({
								title: '提示',
								content: '会员开通成功！',
								showCancel: false,
								success: () => {
									uni.navigateBack({
										delta: 1
									});
								}
							});
						}
					})
				}
			})



		},
		formatTime(timestamp) {
			// 检查是否为时间戳（数字）
			if (typeof timestamp === 'number') {
				// 时间戳转为日期格式
				const date = new Date(timestamp * 1000); // 注意：JavaScript需要毫秒，所以可能需要 * 1000
				return this.formatDate(date);
			}
			// 如果已经是字符串格式，直接返回
			return timestamp;
		},

		formatDate(date) {
			const year = date.getFullYear();
			const month = String(date.getMonth() + 1).padStart(2, '0');
			const day = String(date.getDate()).padStart(2, '0');
			const hours = String(date.getHours()).padStart(2, '0');
			const minutes = String(date.getMinutes()).padStart(2, '0');
			const seconds = String(date.getSeconds()).padStart(2, '0');

			return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`;
		},
		back() {
			uni.navigateBack({
				delta: 1,
			});
		},
		tosetUp() {
			uni.navigateTo({
				url: '/pages/mine/setUp'
			})
		},
		getMenuInfo() {
			const menuButtonInfo = uni.getMenuButtonBoundingClientRect();
			const systemInfo = uni.getSystemInfoSync();

			console.log('胶囊信息:', menuButtonInfo);

			// 胶囊宽度
			const capsuleWidth = menuButtonInfo.width;

			// 胶囊距离右侧的距离 = 屏幕宽度 - 胶囊右边界的x坐标
			const distanceFromRight = systemInfo.windowWidth - menuButtonInfo.right;

			console.log('胶囊宽度:', capsuleWidth);
			console.log('胶囊距离右侧的距离:', distanceFromRight);

			this.getMenuInfoList = capsuleWidth + distanceFromRight;

			return {
				width: capsuleWidth,
				distanceFromRight: distanceFromRight,
				menuButtonInfo: menuButtonInfo
			};
		},
	}
}
</script>

<style>
page {
	background: #F7F7F7;
}
</style>
<style>
.body {
	position: relative;
	padding: 30rpx 0 0 0;
}

.back {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 596rpx;
	background: linear-gradient(180deg, #FFE3E9 0%, #F7F7F7 100%);
}

.user {
	position: relative;
	padding: 0 40rpx;
}

.user image {
	width: 120rpx;
	height: 120rpx;
	display: block;
	border-radius: 100rpx;
	flex-shrink: 0;
}

.user_content {
	position: relative;
	margin: 0 0 0 30rpx;
}

.user_name {
	font-weight: 500;
	font-size: 36rpx;
	color: #000000;
	line-height: 50rpx;
}

.user_text {
	font-weight: 400;
	font-size: 28rpx;
	color: #9E9E9E;
	line-height: 50rpx;
}

.module {
	position: relative;
	margin: 40rpx 40rpx 0 40rpx;
	padding: 44rpx 40rpx;
	background: #FFFFFF;
	border-radius: 32rpx;
}

.list {
	position: relative;
	margin: 40rpx 0 0 0;
	padding: 44rpx 40rpx;
	background: #FFFFFF;
	border-radius: 32rpx 32rpx 0 0;
}

.list_head {
	position: relative;
	margin: 0 0 0 20rpx;
	font-weight: 400;
	font-size: 28rpx;
	color: #9E9E9E;
	line-height: 50rpx;
}

.list_head image {
	margin: 0 26rpx 0 0;
	width: 102rpx;
	height: 50rpx;
	display: block;
}

.list_content {
	position: relative;
	margin: 38rpx 0 0 0;
}

.list_member {
	position: relative;
	padding: 20rpx 40rpx;
	background: #FFFFFF;
	box-shadow: 0rpx 8rpx 20rpx 0rpx rgba(194, 194, 194, 0.3);
	border-radius: 26rpx;
	border: 2rpx solid #FFFFFF;
}

.list_active {
	color: #FF51B3 !important;
	background: #FFEBF6;
	box-shadow: 0rpx 8rpx 20rpx 0rpx rgba(194, 194, 194, 0.3);
	border: 2rpx solid #FF51B3;
}

.list_first {
	font-weight: 400;
	font-size: 28rpx;
	color: #333333;
	line-height: 50rpx;
}

.list_price {
	margin: 10rpx 0 0 0;
	font-weight: 700;
	font-size: 28rpx;
	color: #222222;
	line-height: 50rpx;
}

.list_price text {
	font-size: 52rpx;
	line-height: 30rpx;
}

.list_break {
	margin: 12rpx 0 0 0;
	font-weight: 400;
	font-size: 24rpx;
	color: #9E9E9E;
	line-height: 50rpx;
}

.list_tag {
	position: absolute;
	left: -2rpx;
	top: -11rpx;
	width: 48rpx;
	height: 50rpx;
	display: block;
}

.list_module {
	position: relative;
	margin: 40rpx 0 0 0;
}

.list_title {
	font-weight: 500;
	font-size: 32rpx;
	color: #222222;
	line-height: 50rpx;
}

.list_detail {
	position: relative;
	margin: 46rpx 0 0 0;
}

.list_item {
	position: relative;
}

.list_item_title {
	padding: 20rpx 100rpx 18rpx 48rpx;
	font-weight: 500;
	font-size: 30rpx;
	color: #9E9E9E;
	line-height: 50rpx;
	background: #FAFAFA;
	border-radius: 12rpx 12rpx 0rpx 0rpx;
}

.list_item:nth-child(2) .list_item_title {
	padding: 20rpx 28rpx 18rpx 100rpx;
}

.list_item:nth-child(1) .list_item_title:nth-child(2n) {
	background: #FFFFFF;
}

.list_item:nth-child(2) .list_item_title:nth-child(2n) {
	background: #FFFFFF;
}

.list_items {
	position: absolute;
	left: 0;
	right: 0;
	top: -25rpx;
	margin: auto 0;
}

.list_item_titles {
	padding: 20rpx 18rpx;
	font-weight: 500;
	font-size: 30rpx;
	color: #FF51B3;
	line-height: 50rpx;
	background: #FFEBF6;
	width: 150rpx;
}

.list_items .list_item_titles:nth-child(1) {
	padding: 45rpx 18rpx 20rpx 18rpx;
	border-radius: 12rpx 12rpx 0rpx 0rpx;
}

.list_items .list_item_titles:nth-child(5) {
	padding: 15rpx 18rpx 35rpx 18rpx;
	border-radius: 0rpx 0rpx 12rpx 12rpx;
}

.list_btn {
	margin: 76rpx 0 0 0;
	padding: 24rpx 0;
	font-weight: 400;
	font-size: 32rpx;
	color: #FFFFFF;
	line-height: 50rpx;
	background: linear-gradient(135deg, #9F47FF 0%, #FF51B3 100%);
	border-radius: 12rpx;
}

.list_text {
	position: relative;
	margin: 50rpx 0 0 0;
	font-weight: 400;
	font-size: 28rpx;
	color: #9E9E9E;
	line-height: 50rpx;
}

.list_text text {
	color: #8449FE;
}

.uni-navbar__header-btns {
	padding-right: var(--right-padding, 0);
}

.uni-navbar__header-btns-right.data-v-26544265 {
	width: 60rpx !important;
}
</style>