<template>
	<view class="login-container">
		<!-- 背景图 -->
		<!-- <image class="bg-image" src="@/subPages/static/登录_背景图.png" mode="aspectFill"></image> -->
		
		<!-- 主要内容 -->
		<view class="content">
			<!-- Logo和标题区域 -->
			<view class="logo-section">
				<image class="logo" :src="configParamContent('login_logo')" mode="aspectFit"></image>
				<text class="title-text">{{ configParamContent('app_name') }}</text>
			</view>
			
			<!-- 登录按钮区域 -->
			<view class="login-section">
				<button class="login-btn" @click="handleLogin">
					登录
				</button>
				
				<button class="guest-btn" @click="handleGuestLogin">
					取消登录
				</button>
				
				<!-- 协议文本 -->
				<view class="agreement-text">
					<view class="agreement-content">
						<view class="checkbox-container" @click="toggleAgreement">
							<view class="checkbox" :class="{ 'checked': isAgreed }">
								<view class="checkbox-inner" v-if="isAgreed"></view>
							</view>
						</view>
						<text >我已阅读并同意
							<text class="link-text" @click="showServiceAgreement">《服务协议》</text>
							<text>和</text>
							<text class="link-text" @click="showPrivacyPolicy">《隐私政策》</text>
						</text>
					</view>
				</view>
			</view>
		</view>

		<!-- 用户协议和隐私政策弹窗 -->
    <uv-modal ref="serviceModal" title="《服务协议与隐私条款》" :show-cancel-button="false" confirm-text="我知道了" confirm-color="#06DADC" @confirm="isAgreed = true">
      <view class="privacy-content">
        <!-- 如果是富文本 -->
        <uv-parse :content="configParamContent('privacy_policy')"></uv-parse>
      </view>
    </uv-modal>

		<!-- 用户协议和隐私政策弹窗 -->
    <uv-modal ref="guideModal" title="《个人信息保护指引》" :show-cancel-button="false" confirm-text="我知道了" confirm-color="#06DADC" @confirm="isAgreed = true">
      <view class="privacy-content">
        <!-- 如果是富文本 -->
        <uv-parse :content="configParamContent('user_agreement')"></uv-parse>
      </view>
    </uv-modal>
	</view>
</template>

<script>
export default {
	name: 'Login',
	data() {
		return {
			isAgreed: false
		}
	},
	methods: {
		// 授权登录
		handleLogin() {

			if (!this.isAgreed) {
				this.$refs.serviceModal.open();
				this.$refs.guideModal.open();
				return
			}

			uni.login({
				provider: 'weixin',
				success: async (res) => {
					console.log('登录成功', res);
					const obj = { }
					if (uni.getStorageSync('inviter')){
						obj.inviter = uni.getStorageSync('inviter')
					}
					const { result: loginRes } = await this.$api.login.login({
						code: res.code,
						...obj
					})

					uni.setStorageSync('token', loginRes.token)
					
					const userInfo = loginRes.userInfo
					
					// 存储用户信息到store
					this.$store.dispatch('updateUserInfo', userInfo)
					
					if ( !userInfo.avatar || !userInfo.name || !userInfo.phone ){
						uni.navigateTo({
							url: '/subPages/login/userInfo'
						})
						return
					}else {
						uni.showToast({
							title: '登录成功',
							icon: 'success'
						})
						uni.switchTab({
							url: '/pages/index/home'
						});
					}
					// 登录成功后可以调用后端接口保存用户信息
				},
				fail: (err) => {
					console.log('登录失败', err);
				}
			})
			
		},
		
		// 游客登录
		handleGuestLogin() {
			console.log('暂不登录');
			// 跳转到主页
			uni.switchTab({
				url: '/pages/index/home'
			});
		},
		
		// 显示服务协议
		showServiceAgreement() {
			this.$refs.serviceModal.open();
			console.log('查看服务协议');
			// 这里可以跳转到协议页面或显示弹窗
		},
		
		// 显示隐私政策
		showPrivacyPolicy() {
			this.$refs.guideModal.open();
			console.log('查看隐私条款');
			// 这里可以跳转到隐私政策页面或显示弹窗
		},
		
		// 切换协议同意状态
		toggleAgreement() {
			this.isAgreed = !this.isAgreed;
		}
	}
}
</script>

<style lang="scss" scoped>
.login-container {
	position: relative;
	width: 100vw;
	height: 100vh;
	overflow: hidden;
	background: #E8FBFB;
	.bg-image {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		z-index: 1;
	}
	
	.content {
		position: relative;
		z-index: 2;
		height: 100%;
		display: flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		padding: 0 60rpx;
		
		.logo-section {
			display: flex;
			flex-direction: column;
			align-items: center;
			margin-bottom: 120rpx;
			
			.logo {
				width: 120rpx;
				height: 120rpx;
				margin-bottom: 40rpx;
			}
			
			.title-text {
				font-size: 36rpx;
				font-weight: 600;
				color: $primary-text-color;
				text-align: center;
			}
		}
		
		.login-section {
			width: 100%;
			display: flex;
			flex-direction: column;
			align-items: center;
			
			.login-btn {
				width: 630rpx;
				height: 88rpx;
				margin-bottom: 30rpx;
				background-color: $primary-color;
				border: none;
				border-radius: 44rpx;
				color: white;
				font-size: 32rpx;
				font-weight: 500;
				display: flex;
				align-items: center;
				justify-content: center;
			}
			
			.guest-btn {
				width: 630rpx;
				height: 88rpx;
				margin-bottom: 60rpx;
				border: 2rpx solid $primary-color;
				border-radius: 44rpx;
				color: $primary-color;
				font-size: 32rpx;
				font-weight: 400;
				background-color: transparent;
				display: flex;
				align-items: center;
				justify-content: center;
			}
			
			.agreement-text {
				display: flex;
				align-items: center;
				justify-content: center;
				font-size: 24rpx;
				color: $secondary-text-color;
				line-height: 1.5;
				
				.checkbox-container {
					margin-right: 12rpx;
					cursor: pointer;
					
					.checkbox {
						width: 29rpx;
						height: 29rpx;
						border: 1rpx solid $secondary-text-color;
						border-radius: 50%;
						display: flex;
						align-items: center;
						justify-content: center;
						transition: all 0.3s ease;
						
						&.checked {
							border-color: $primary-color;
							background-color: $primary-color;
						}
						
						.checkbox-inner {
							width: 16rpx;
							height: 16rpx;
							background-color: white;
							border-radius: 50%;
						}
					}
				}
				
				.agreement-content {
					flex: 1;
					text-align: left;
					display: flex;
					.link-text {
						color: $primary-color;
						// text-decoration: underline;
					}
				}
			}
		}
	}
}
</style>