import React, { useState } from 'react'; import { View, Text, Button, Image } from '@tarojs/components'; import Taro from '@tarojs/taro'; import { wechat_auth_login, save_login_state } from '../../../services/loginService'; import './index.scss'; const LoginPage: React.FC = () => { const [is_loading, set_is_loading] = useState(false); const [agree_terms, set_agree_terms] = useState(false); const [show_terms_layer, set_show_terms_layer] = useState(false); // 微信授权登录 const handle_wechat_login = async (e: any) => { if (!agree_terms) { set_show_terms_layer(true); Taro.showToast({ title: '请先同意用户协议', icon: 'none', duration: 2000 }); return; } // 检查是否获取到手机号 if (!e.detail || !e.detail.code) { Taro.showToast({ title: '获取手机号失败,请重试', icon: 'none', duration: 2000 }); return; } set_is_loading(true); try { // 传递手机号code给登录服务 const response = await wechat_auth_login(e.detail.code); if (response.success) { save_login_state(response.token!, response.user_info!); setTimeout(() => { Taro.redirectTo({ url: '/pages/list/index' }); }, 200); } else { Taro.showToast({ title: response.message, icon: 'none', duration: 2000 }); } } catch (error) { Taro.showToast({ title: '登录失败,请重试', icon: 'none', duration: 2000 }); } finally { set_is_loading(false); } }; // 手机号验证码登录 const handle_phone_login = async () => { if (!agree_terms) { set_show_terms_layer(true); Taro.showToast({ title: '请先同意用户协议', icon: 'none', duration: 2000 }); return; } // 跳转到验证码页面 Taro.navigateTo({ url: '/pages/login/verification/index' }); }; // 同意协议并关闭浮层 const handle_agree_terms = () => { set_agree_terms(true); set_show_terms_layer(false); }; // 切换协议同意状态(复选框用) const handle_toggle_terms = () => { set_agree_terms(!agree_terms); }; // 查看协议 const handle_view_terms = (type: string = 'terms') => { Taro.navigateTo({ url: `/pages/login/terms/index?type=${type}` }); }; // 点击浮层外部关闭浮层 const handle_overlay_click = () => { set_show_terms_layer(false); }; // 点击浮层内部阻止事件冒泡 const handle_layer_click = (e: any) => { e.stopPropagation(); }; return ( {/* 主要内容 */} {/* 品牌区域 */} {/* 登录按钮区域 */} {/* 微信快捷登录 */} {/* 手机号验证码登录 */} {/* 用户协议复选框 */} {agree_terms && } 我已阅读、理解并接受以下规定 handle_view_terms('terms')} > 《开场的条款和条件》 handle_view_terms('binding')} > 《开场与微信号绑定协议》 handle_view_terms('privacy')} > 《隐私权政策》 {/* 底部条款浮层遮罩 */} {show_terms_layer && ( {/* 底部条款浮层 */} {/* 浮层标题 */} 请阅读并同意以下条款 {/* 条款列表 */} handle_view_terms('terms')} > 《开场的条款和条件》 handle_view_terms('binding')} > 《开场与微信号绑定协议》 handle_view_terms('privacy')} > 《隐私权政策》 {/* 同意按钮 */} )} ); }; export default LoginPage;