codernew-api-frontend/src/pages/login/index.tsx
gaoziman 6d96c5b947 feat(登录页): 重新设计登录页面
- 采用居中卡片布局设计
- 左侧展示品牌区域和认证动画
- 右侧提供登录表单
- 使用灰白色背景提升视觉体验
- 添加响应式设计支持移动端
- 优化表单交互和动画效果
2025-11-06 00:42:53 +08:00

62 lines
2.0 KiB
TypeScript

import React, { useEffect } from 'react';
import LoginForm from './form';
import styles from './style/index.module.less';
function Login() {
useEffect(() => {
document.body.setAttribute('arco-theme', 'light');
}, []);
return (
<div className={styles.container}>
<div className={styles['login-card-wrapper']}>
{/* 左侧插画区域 */}
<div className={styles.banner}>
<div className={styles['banner-inner']}>
{/* Logo */}
<div className={styles.logo}>
<span className={styles['logo-text']}>Coder Admin</span>
</div>
{/* 插画区域 */}
<div className={styles['illustration-wrapper']}>
<div className={styles.illustration}>
{/* 认证卡片 */}
<div className={styles['auth-card']}>
<div className={styles['auth-card-header']}>
<div className={styles['scan-line']}></div>
</div>
<div className={styles['auth-card-avatar']}>
<div className={styles['avatar-circle']}></div>
</div>
<div className={styles['auth-card-info']}>
<div className={styles['info-line']}></div>
<div className={styles['info-line-short']}></div>
</div>
<div className={styles['check-icon']}></div>
</div>
{/* 人物剪影 */}
<div className={styles['person-silhouette']}></div>
</div>
</div>
</div>
</div>
{/* 右侧登录表单区域 */}
<div className={styles.content}>
<div className={styles['content-wrapper']}>
<LoginForm />
<div className={styles.footer}>
Copyright © 2024 Coder Admin. All Rights Reserved.
</div>
</div>
</div>
</div>
</div>
);
}
Login.displayName = 'LoginPage';
export default Login;