feat: 登录界面优化与API代理配置

- 移除登录页面的登录/注册切换,只保留登录功能
- 添加API代理配置支持远程访问
- 添加favicon.ico
- 后端CORS配置支持前端访问

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Developer
2026-03-18 10:54:18 +08:00
co-authored by Claude Opus 4.6
parent a89d4f2402
commit 02f48927a3
5 changed files with 34 additions and 37 deletions
+5 -34
View File
@@ -8,7 +8,6 @@ import { useToast } from '../components/ToastProvider';
export default function Login() {
const router = useRouter();
const { showToast } = useToast();
const [isLoginMode, setIsLoginMode] = useState(true);
const [username, setUsername] = useState('');
const [password, setPassword] = useState('');
const [error, setError] = useState('');
@@ -26,13 +25,8 @@ export default function Login() {
setLoading(true);
try {
if (isLoginMode) {
await login(username, password);
showToast('登录成功', { tone: 'success' });
} else {
await register(username, password);
showToast('注册成功', { tone: 'success' });
}
await login(username, password);
showToast('登录成功', { tone: 'success' });
router.push('/');
} catch (err) {
setError(err.message);
@@ -50,31 +44,8 @@ export default function Login() {
<div className="auth-logo__mark" aria-hidden="true">
<Icon name="chart" size={24} />
</div>
<h1>{isLoginMode ? '欢迎回来' : '创建账户'}</h1>
<p>{isLoginMode ? '登录后继续记录每一笔收支' : '注册后即可开始管理你的账本'}</p>
</div>
<div className="auth-switch" role="tablist" aria-label="登录或注册">
<button
type="button"
className={isLoginMode ? 'is-active' : ''}
onClick={() => {
setIsLoginMode(true);
setError('');
}}
>
登录
</button>
<button
type="button"
className={!isLoginMode ? 'is-active' : ''}
onClick={() => {
setIsLoginMode(false);
setError('');
}}
>
注册
</button>
<h1>欢迎回来</h1>
<p>登录后继续记录每一笔收支</p>
</div>
{error && <div className="error-msg">{error}</div>}
@@ -110,7 +81,7 @@ export default function Login() {
<Icon name="spinner" size={16} className="is-spinning" />
处理中...
</span>
) : isLoginMode ? '登录' : '注册'}
) : '登录'}
</button>
</form>
</div>