import React, { useState } from 'react'; import { View, Text } from '@tarojs/components'; import { Card, Divider, Button } from '@nutui/nutui-react-taro'; import { Scan, Success, Failure, Tips } from '@nutui/icons-react-taro'; import Taro from '@tarojs/taro'; import QRLoginScanner from '@/components/QRLoginScanner'; import { useUser } from '@/hooks/useUser'; /** * 扫码登录页面 */ const QRLoginPage: React.FC = () => { const [loginHistory, setLoginHistory] = useState([]); const { getDisplayName } = useUser(); // 处理扫码成功 const handleScanSuccess = (result: any) => { console.log('扫码登录成功:', result); // 添加到登录历史 const newRecord = { id: Date.now(), time: new Date().toLocaleString(), userInfo: result.userInfo, success: true }; setLoginHistory(prev => [newRecord, ...prev.slice(0, 4)]); // 只保留最近5条记录 // 显示成功提示 Taro.showToast({ title: '登录确认成功', icon: 'success', duration: 2000 }); }; // 处理扫码失败 const handleScanError = (error: string) => { console.error('扫码登录失败:', error); // 添加到登录历史 const newRecord = { id: Date.now(), time: new Date().toLocaleString(), error, success: false }; setLoginHistory(prev => [newRecord, ...prev.slice(0, 4)]); }; // 返回上一页 // const handleBack = () => { // Taro.navigateBack(); // }; // 清除历史记录 const clearHistory = () => { setLoginHistory([]); Taro.showToast({ title: '已清除历史记录', icon: 'success' }); }; return ( {/* 导航栏 */} {/*}*/} {/* className="bg-white"*/} {/*/>*/} {/* 主要内容 */} {/* 用户信息卡片 */} {getDisplayName()} 使用小程序扫码快速登录网页端 {/* 扫码登录组件 */} {/* 使用说明 */} 使用说明 1. 在电脑或其他设备上打开网页端登录页面 2. 点击"扫码登录"按钮,显示登录二维码 3. 使用此功能扫描二维码即可快速登录 4. 扫码成功后,网页端将自动完成登录 {/* 登录历史 */} {loginHistory.length > 0 && ( 最近登录记录 {loginHistory.map((record, index) => ( {record.success ? ( ) : ( )} {record.success ? '登录成功' : '登录失败'} {record.error && ( {record.error} )} {record.time} {index < loginHistory.length - 1 && ( )} ))} )} {/* 安全提示 */} 安全提示 请确保只扫描来自官方网站的登录二维码,避免扫描来源不明的二维码,保护账户安全。 ); }; export default QRLoginPage;