<template>
  <view class="login-page">
	  <view class="status_bar"></view>
    <!-- 标题 -->
    <view class="login-title">账号密码登录</view>

    <!-- 手机号输入框 -->
    <view class="input-item">
      <view class="input-icon">
        <!-- <uni-icons type="phone" size="24" color="#999"></uni-icons> -->
		<image src="http://47.104.199.163:9090/images/login/phone.png" mode="" style="height: 100%;width: 100%;"></image>
      </view>
	  <uni-easyinput  class="input-content"  type="text" v-model="phoneNumber"
	   placeholder="请输入帐号" :inputBorder="false"  :placeholderStyle="placeholderStyle">
	   </uni-easyinput>
    </view>

    <!-- 密码输入框 -->
    <view class="input-item">
      <view class="input-icon">
        <!-- <uni-icons type="locked" size="24" color="#999"></uni-icons> -->
		<image src="http://47.104.199.163:9090/images/login/password.png" mode="" style="height: 100%;width: 100%;"></image>
      </view>
	  <uni-easyinput  class="input-content"  type="password" v-model="password"
	   placeholder="请输入密码" :inputBorder="false"  :placeholderStyle="placeholderStyle">
	   </uni-easyinput>

    </view>

    <!-- 协议勾选 + 忘记密码 -->
    <view class="agreement-wrap">
      <view class="agreement-item">
		  <view @click="toggleAgreement">
			 <uni-icons
			   type="checkbox-filled"
			   size="24"
			   color="#007aff"
			   v-if="agreeAgreement"
			 ></uni-icons>
			 <uni-icons
			   type="checkbox"
			   size="24"
			   color="#999"
			   v-else
			 ></uni-icons> 
		  </view>
   
        <text class="agreement-text" @click.stop="goToPrivacy">我已阅读并同意
			<text  class="agreePrivacy" >《用户隐私政策》</text>
		</text>
      </view>
      <navigator class="forget-pwd" url="/pageSubPack/loginSub/forget-pwd">忘记密码？</navigator>
    </view>

    <!-- 登录按钮 -->
    <button
      class="login-btn"
      @click="handleLogin"
    >
      登录
    </button>

    <!-- 底部链接 -->
    <view class="bottom-link">
      <navigator class="link-item" url="/pageSubPack/loginSub/login">验证码登录</navigator>
      <navigator class="link-item" url="/pageSubPack/loginSub/register-new-user">注册新用户</navigator>
    </view>
  </view>
</template>

<script setup>
import { ref, computed } from 'vue';
import {onLoad} from "@dcloudio/uni-app"
import {getLoginPassword} from '../api/api.js'

// 响应式数据
const phoneNumber = ref('');
const password = ref('');
const agreeAgreement = ref(false); // 默认勾选
const placeholderStyle = ref('font-size:24rpx')


// 计算属性：是否可登录（帐号+密码+协议都满足）
const canLogin = computed(() => {
  const phoneReg = /^[a-zA-Z0-9_-]{4,16}$/; // 4-16位
  const pwdReg = /^.{6,16}$/; // 密码6-16位
  return phoneReg.test(phoneNumber.value) && pwdReg.test(password.value) && agreeAgreement.value;
});

// 切换协议勾选
const toggleAgreement = () => {
  agreeAgreement.value = !agreeAgreement.value;
};

// 跳转隐私协议
const goToPrivacy = () => {
  uni.navigateTo({
    url:'/pageSubPack/loginSub/privacy',
  })
}

// 检查表单
const checkForm = () => {};


onLoad(() =>{
});

// 登录逻辑
const handleLogin = () => {

  if (!phoneNumber.value) {
		uni.showToast({ title: '请输入账号', icon: 'none' });
		return;
  }
  if (phoneNumber.value.length < 4 || phoneNumber.value.length > 16) {
		uni.showToast({ title: '账号长度需为 4-16 位', icon: 'none' });
		return;
  }
  if (!password.value) {
		uni.showToast({ title: '请输入密码', icon: 'none' });
		return;
  }
  if (password.value.length < 6) {
		uni.showToast({ title: '密码至少输入 6 位', icon: 'none' });
		return;
  }
  if (password.value.length > 16) {
		uni.showToast({ title: '密码不能超过 16 位', icon: 'none' });
		return;
  }
  if(!agreeAgreement.value){
	  uni.showToast({ title: '请勾选协议', icon: 'none' });
	  return;
  }
   uni.showLoading({ title: '登录中...', mask: true });
  	let params = {
  		username:phoneNumber.value,
  		password:password.value
  	}
  	getLoginPassword(params).then(res =>{
  		if(res.code === 200){
  			uni.setStorageSync('token', res.data.token);
			// 存用户ID
			if(res.data) {
				// 存当前绑定的小区ID，0 表示未绑定
				const currentVillageId = res.data.currentVillageId || 0;
				uni.setStorageSync('currentVillageId', currentVillageId);
				uni.setStorageSync('userId',res.data.userId)
			}
			uni.hideLoading();
			uni.showToast({ title: '登录成功', icon: 'success' });
			setTimeout(() =>{
				uni.switchTab({
				  url: '/pages/index/index'
				},1000);
			})
  		}else{
  			uni.showToast({ title: res.msg, icon: 'error' });
  		}

  	}).catch(err => {
		uni.showToast({
				title: err.msg || '网络异常',
				icon: 'error'
			});
	})

};
</script>

<style scoped>
.login-page {
  padding: 80rpx 40rpx 40rpx;
  /* background-color: #f8f9fa; */
  min-height: 100vh;
   background: repeating-linear-gradient(180deg, #E2F0FF, #F6FAFF );
}
 .status_bar {
	 height: 160px;
	 width: 100%;
	}
.login-title {
  font-size: 52rpx;
  font-weight: 600;
  color: #333;
  text-align: center;
  margin-bottom: 142rpx;
}

.input-item {
  display: flex;
  align-items: center;
  background-color: #fff;
  border-radius: 40rpx;
  padding: 0 30rpx;
  height: 88rpx;
  margin-bottom: 30rpx;
  box-shadow: 0 2rpx 10rpx rgba(0, 0, 0, 0.05);
}

.input-icon {
  margin-right: 20rpx;
  width: 50rpx;
  height: 50rpx;
}

.input-content {
  flex: 1;
  font-size: 28rpx;
  color: #333;
  height: 100%;
}

.agreement-wrap {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin: 70rpx 0 28rpx 0;
  padding: 0 10rpx;
}

.agreement-item {
  display: flex;
  align-items: center;
}

.agreement-text {
  font-size: 24rpx;
  color: #666;
  margin-left: 10rpx;
}
.agreePrivacy{
	color: #2F77FD;
}
/* .agreePrivacy.active{
	color: #2F77FD;
} */

.forget-pwd {
  font-size: 24rpx;
  color: #666;
  text-decoration: none;
}

.login-btn {
  width: 100%;
  height: 88rpx;
  line-height: 88rpx;
  background-color: #007aff;
  color: #fff;
  border-radius: 8rpx;
  font-size: 28rpx;
  margin-bottom: 60rpx;
}

.login-btn:disabled {
  background-color: #99c8ff;
  color: #fff;
  /* border-radius: 50px; */

}
/* 禁用按钮边框 */
button:after{
	border-radius:  8px;
}

.bottom-link {
  display: flex;
  justify-content: space-between;
  padding: 0 20rpx;
}

.link-item {
  font-size: 28rpx;
  color: #007aff;
  text-decoration: none;
}
</style>