// 登录页面JavaScript

// 页面加载时检查是否已登录
window.addEventListener('DOMContentLoaded', () => {
    const token = localStorage.getItem(STORAGE_KEYS.TOKEN);
    if (token) {
        const user = utils.getCurrentUser();
        if (user) {
            redirectToDashboard(user.role);
        }
    }

    // 回车键登录
    document.getElementById('password').addEventListener('keypress', (e) => {
        if (e.key === 'Enter') {
            handleLogin();
        }
    });
});

// 处理登录
async function handleLogin() {
    const username = document.getElementById('username').value.trim();
    const password = document.getElementById('password').value.trim();
    const role = document.getElementById('role').value;

    // 验证输入
    if (!username) {
        utils.showError('请输入用户名');
        return;
    }

    if (!password) {
        utils.showError('请输入密码');
        return;
    }

    // 禁用登录按钮
    const loginBtn = document.querySelector('.btn-login');
    const originalText = loginBtn.textContent;
    loginBtn.disabled = true;
    loginBtn.textContent = '登录中...';

    try {
        // 调用登录API
        const response = await api.post(API_ENDPOINTS.LOGIN, {
            username: username,
            password: password
        });

        if (response.code === 200) {
            const { token, userInfo } = response.data;

            // 验证角色
            if (userInfo.role !== role) {
                utils.showError('登录角色不匹配，请选择正确的角色');
                loginBtn.disabled = false;
                loginBtn.textContent = originalText;
                return;
            }

            // 保存登录信息
            localStorage.setItem(STORAGE_KEYS.TOKEN, token);
            localStorage.setItem(STORAGE_KEYS.USER_INFO, JSON.stringify(userInfo));

            utils.showSuccess('登录成功！');

            // 延迟跳转以显示成功消息
            setTimeout(() => {
                redirectToDashboard(userInfo.role);
            }, 500);

        } else {
            utils.showError(response.message || '登录失败');
            loginBtn.disabled = false;
            loginBtn.textContent = originalText;
        }

    } catch (error) {
        console.error('登录错误:', error);
        utils.showError('登录失败，请检查网络连接');
        loginBtn.disabled = false;
        loginBtn.textContent = originalText;
    }
}

// 根据角色跳转到对应的仪表板
function redirectToDashboard(role) {
    switch (role) {
        case 'admin':
            window.location.href = 'admin/dashboard.html';
            break;
        case 'staff':
            window.location.href = 'staff/dashboard.html';
            break;
        case 'customer':
            window.location.href = 'customer/dashboard.html';
            break;
        default:
            utils.showError('未知的用户角色');
    }
}
