import { defineComponent, reactive, ref } from 'vue'; import { Button, Checkbox, Form, FormItem, Input, message } from 'ant-design-vue'; import { UserOutlined, LockOutlined } from '@ant-design/icons-vue'; import { auth } from '@/hooks/useAuth'; import { useEffect } from '@/hooks/useEffect'; import { useUserStore } from '@/stores/userStore'; import styles from './index.module.less'; interface LoginForm { username: string; password: string; } export default defineComponent({ name: 'LoginPage', setup() { const loading = ref(false); const rememberMe = ref(false); const form = reactive({ username: '', password: '', }); useEffect(() => { const saved = localStorage.getItem('cpms_login_remember'); if (saved) { try { const data = JSON.parse(saved); form.username = data.username || ''; form.password = data.password || ''; rememberMe.value = true; } catch { localStorage.removeItem('cpms_login_remember'); } } }, []); const rules = { username: [{ required: true, message: '请输入用户名' }], password: [{ required: true, message: '请输入密码' }], }; const handleSubmit = async () => { if (!form.username || !form.password) { message.warning('请输入用户名和密码'); return; } loading.value = true; try { await new Promise((r) => setTimeout(r, 600)); const token = 'mock_token_' + Date.now(); // 写入账号信息到 userStore const { setUser } = useUserStore(); setUser({ phone: form.username, nickname: form.username, token }); await auth.login(token); message.success('登录成功'); if (rememberMe.value) { localStorage.setItem( 'cpms_login_remember', JSON.stringify({ username: form.username, password: form.password, }), ); } else { localStorage.removeItem('cpms_login_remember'); } } catch (err) { message.error('登录失败,请重试'); } finally { loading.value = false; } }; const particles = [ { top: '8%', left: '15%', delay: '0s', duration: '8s' }, { top: '22%', left: '65%', delay: '1.5s', duration: '7s' }, { top: '45%', left: '25%', delay: '0.8s', duration: '9s' }, { top: '60%', left: '75%', delay: '2s', duration: '6.5s' }, { top: '75%', left: '40%', delay: '3s', duration: '8.5s' }, { top: '15%', left: '80%', delay: '1s', duration: '7.5s' }, { top: '35%', left: '50%', delay: '2.5s', duration: '6s' }, { top: '85%', left: '20%', delay: '0.5s', duration: '9.5s' }, { top: '50%', left: '90%', delay: '3.5s', duration: '8s' }, { top: '92%', left: '55%', delay: '1.2s', duration: '7s' }, ]; return () => (
{particles.map((p, i) => (
))}
6
羽友赛事

六个羽友赛事运营平台

专业的赛事管理、报名运营与数据分析一站式解决方案,助力每一场精彩赛事

1,200+ 累计赛事场次
50,000+ 参赛选手
100% 运营满意度
📋
赛事管理
创建发布、赛事审核、赛程编排全流程在线化
🏆
对阵分组
智能分组算法、自动生成对阵表与淘汰树
📊
数据看板
参赛统计、实时进度、成绩排名可视化呈现
创建赛事
赛事审核
分组对阵
成绩录入
数据复盘
六个羽友赛事运营平台 ©{new Date().getFullYear()}

欢迎回来

登录六个羽友赛事运营平台

}} /> }} /> {/* 记住密码 */}
记住密码
六个羽友赛事运营平台 ©{new Date().getFullYear()}
); }, });