vue下载pdf

下载pdf的接口是后端写的,前端只需要调用接口即可

showTip: false,
files: [],

1.点击下载,生成列表

        clickExport() { //点击下载
            let obj = {
               ...
            }
            exportMaintainRecords(obj)
            .then(res => {
                this.$message({type: 'success',message: "维修维保pdf导出任务创建成功"});
                this.getFileList();  //获取生成的列表
            })
            .catch(err => {
                this.$message.error(_.get(res,'data.msg',null))
            })


        },

2.点击铃铛,显示已经生成的列表

        clickTrumpet() { //点击铃铛
            this.showFiles = !this.showFiles;
            this.getFileList();
        },

         //查询记录
        getFileList() {
            this.files.length = 0;
            let params = {
               ...
            };
            findDownloadLogs(params)
            .then((res) => {
                if (res.status == 200 && res.data.code === 0) {
                    this.files = [...res.data.data];
                    this.showTip = this.judgeShowTip(this.files);
                }else{
                   this.$message.error(_.get(res,'data.msg',null))
                }
            })
            
        },

3.点击列表里的任务

        downFile(item){  //点击铃铛里的任务
            this.readyDownFile(item.pdfName,item.ossUrl)
            this.getUpdateExportRecordStatus(item.id)
            this.getFileList();
        },

        readyDownFile(pdfName,url) {
            var x = new XMLHttpRequest()
            var pdfName = pdfName
            x.open("GET", url, true);
            x.responseType = 'blob';
            x.onload = function (e) {
                var blob = x.response;
                if ('msSaveOrOpenBlob' in navigator) {//IE导出
                window.navigator.msSaveOrOpenBlob(blob, fileName);
                }
                else {
                var app = document.createElement('a');
                app.download = pdfName;
                app.href = URL.createObjectURL(blob);
                document.body.appendChild(app);
                app.click();
                document.body.removeChild(app);
                }
            };
            x.send();
        },

        getUpdateExportRecordStatus(ids) {  //更新状态
            updateExportRecordStatus({id:ids})
            .then(res=>{
                this.getFileList();   //获取生成的列表
            })
            .catch(err=>{
                
            })
        },

        judgeShowTip(list) {
            let flag = false
            if(list.length >0) {
                flag = list.some((item)=>{
                return item.fileStatus === '1'
                })
            }
            return flag
        },

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值