/**
 * 登录页面脚本
 */

// 全局刷新验证码函数（必须在 layui.use 之前定义，因为 HTML 中有 onclick 调用）
function refreshCaptcha() {
    var account = $('input[name="account"]').val() || 'default';
    var timestamp = new Date().getTime();
    $('#captchaImg').attr('src', Config.getApiUrl(Config.api.imgCode) + '/' + account + '?t=' + timestamp);
}

layui.use(['form', 'layer'], function() {
    var form = layui.form;
    var layer = layui.layer;
    
    // 初始化验证码
    refreshCaptcha();
    
    // 账号输入时刷新验证码
    $('input[name="account"]').on('blur', function() {
        var account = $(this).val();
        if (account) {
            refreshCaptcha();
        }
    });
    
    // 登录表单提交
    form.on('submit(loginSubmit)', function(data) {
        var fieldData = data.field;
        
        layer.msg('正在登录...', { icon: 16, shade: 0.3, time: 0 });
        
        $.ajax({
            url: Config.getApiUrl(Config.api.login),
            type: 'POST',
            contentType: 'application/json',
            data: JSON.stringify(fieldData),
            success: function(res) {
                layer.closeAll();
                
                // 兼容两种响应格式：
                // 1. ResultVo 包装格式: { code: 200, msg: 'success', data: { token, ... } }
                // 2. 直接返回数据格式: { token, id, account, ... }
                var responseData = res;
                var isSuccess = false;
                
                if (res.code !== undefined) {
                    // 有 code 字段，使用 ResultVo 格式
                    isSuccess = (res.code === 200 || res.code === 0);
                    responseData = res.data || {};
                } else if (res.token) {
                    // 直接返回用户数据
                    isSuccess = true;
                }
                
                if (isSuccess) {
                    // 保存token和用户信息
                    var token = responseData.token || res.token || '';
                    localStorage.setItem('token', token);
                    localStorage.setItem('userInfo', JSON.stringify(responseData));
                    
                    layer.msg('登录成功！', { icon: 1, time: 1000 }, function() {
                        location.href = 'pages/main.html';
                    });
                } else {
                    layer.msg(res.msg || res.message || '登录失败', { icon: 2 });
                    refreshCaptcha();
                }
            },
            error: function(xhr) {
                layer.closeAll();
                var msg = '请求失败，请检查网络或服务是否可用';
                if (xhr.responseJSON && xhr.responseJSON.msg) {
                    msg = xhr.responseJSON.msg;
                }
                layer.msg(msg, { icon: 2 });
                refreshCaptcha();
            }
        });
        
        return false;
    });
    
    // 回车登录
    document.onkeydown = function(e) {
        if (e.keyCode === 13) {
            $('.login-form button[type="submit"]').click();
        }
    };
});
