js下载文件

this.$ajax({
                                                        method:"get",
                                                        url:‘’,
                                                        params:{"batchnumber":exportIndex},
                                                        responseType:"blob",
                                                        transformRequest: [function (data) {
                                                            that.$Spin.show({
                                                                render: (h) => {
                                                                    return h('div', [
                                                                        h('Icon', {
                                                                            'class': 'demo-spin-icon-load',
                                                                            props: {
                                                                                type: 'load-c',
                                                                                size: 18
                                                                            }
                                                                        }),
                                                                        h('div', 'Loading')
                                                                    ])
                                                                }
                                                            });
                                                        }],
                                                    }).then(function(res){
                                                        this.$Spin.hide();
                                                        console.log(res);
                                                    if(res.data.type.toLowerCase().indexOf('application/octet-stream')>-1){
                                                        if (!!window.ActiveXObject || "ActiveXObject" in window){
                                                                var a = document.createElement('a');
                                                                a.href = "/secret/offline/export?batchnumber="+exportIndex;
                                                                $("body").append(a);
                                                                a.click();
                                                                $(a).remove();
                                                            }else{
                                                                var reader = new FileReader()
                                                                reader.readAsDataURL(res.data)     
                                                                reader.onload = function (e) {
                                                                    var a = document.createElement('a');
                                                                   var d = new Date()
                                                                   var d1 = d.getFullYear().toString();
                                                                   var d2 = (d.getMonth()+1).toString();
                                                                   var d3 = d.getDate().toString();
                                                                   var d4 = d.getHours().toString();
                                                                   var d5 = d.getMinutes().toString();
                                                                   var d6 = d.getSeconds().toString();
                                                                   var dd = d1+d2+d3+d4+d5+d6
                                                                    a.download = '导出新号码_'+dd+'.xls';
                                                                    a.href = e.target.result;
                                                                    $("body").append(a);  // 修复firefox中无法触发click
                                                                    a.click();
                                                                    $(a).remove();
                                                                } 
                                                            }
                                                        }else{
                                                            var blob = res.data
                                                            var reader = new FileReader();
                                                            reader.readAsText(blob);
                                                            reader.onload = function(e){
                                                                var data= e.target.result;
                                                                var newdata = JSON.parse(data)
                                                                this.msg = newdata.msg
                                                                // console.log(this.msg); 
                                                            }
                                                            this.$Modal.error({
                                                                title: "错误提示",
                                                                content: "数据为空,没有需要导出的数据"
                                                            });
                                                        }                                                        
                                                    }.bind(this))
                                                    .catch(function(error){
                                                            console.log(error)
                                                        }
                                                    )

posted @ 2019-06-11 16:24  诺克萨斯小刀  阅读(180)  评论(1编辑  收藏  举报