该代码使用 jQuery 实现了一个下载 Excel 文件的功能,包括以下步骤:

  1. 绑定点击事件: 当用户点击 #btnDownload 按钮时,触发下载流程。
  2. 设置进度: 使用 util.trigger('lay-on', 'setPercent') 设置进度条为 50%。
  3. 模拟下载: 通过创建隐藏的 iframe,并设置其 src 属性为下载链接 ../download,模拟下载过程。
  4. 模拟下载完成: 使用 setTimeout 函数,在 5 秒后触发 downloadExcel 函数,并模拟加载状态。
  5. 下载 Excel 函数:
    • 获取用户输入的开始日期、结束日期和邮件号码。
    • 使用 $.post../download 发送请求,将用户输入的数据作为请求参数。
    • 处理服务器返回的结果,如果成功,则关闭所有弹窗,并将用户重定向到下载链接;如果失败,则显示错误信息。
  6. 错误处理: 如果网络错误,则显示网络错误提示。
  7. 按钮状态管理: 在请求完成后,启用 #btnSearch 按钮。

该代码示例仅供参考,具体实现可能需要根据实际需求进行调整。

$(function() {
    $('#btnDownload').click(function(e) {
        util.trigger('lay-on', 'setPercent'); // 设置进度为50%

        // 模拟下载过程
        var downloadUrl = '../download';
        var downloadIframe = $('<iframe style='display:none;'></iframe>').attr('src', downloadUrl);
        $('body').append(downloadIframe);

        // 模拟下载完成后的操作
        setTimeout(function() {
            util.trigger('lay-on', 'loading', $('#btnDownload')); // 模拟loading
            // TODO: 下载完成后的操作
            downloadExcel(); // 调用下载Excel函数
        }, 5000);
    });

    function downloadExcel() {
        var url = '../download';
        var data = {
            startDate: $('#startDate').val(),
            endDate: $('#endDate').val(),
            mailNumber: $('#mailNumber').val()
        };
        popAlert('提示', '正在下载文件,请稍等…');
        $.post(url, data, null, 'json').done(function(re) {
            if (re.result == 'success') {
                layer.closeAll();
                window.location.href = '../download?filename=' + (re.data + '');
            } else {
                popAlert('提示', re.msg);
            }
        }).fail(function(e) {
            popAlert('提示', '网络错误,请重试');
        }).always(function() {
            enableBtn('#btnSearch');
        });
    };
});

代码说明:

  • util.trigger 是一个自定义的函数,用于触发页面上的其他操作,例如设置进度条或显示加载状态。
  • popAlert 是一个自定义的函数,用于显示弹窗提示。
  • enableBtn 是一个自定义的函数,用于启用按钮。

需要注意的是,该代码只是模拟了下载过程,实际下载文件需要根据后端接口进行实现。

jQuery 下载 Excel 文件代码示例

原文地址: https://www.cveoy.top/t/topic/pk8R 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录