div部分
<template slot-scope="scope">
<el-link type="success">
<i class="el-icon-download el-icon--right" @click="downloadRawdata(scope.$index, scope.row)"> Download</i>
</el-link>
</template>
downloadRawdata(index, row){
console.log('row : '+row.id);
const _self = this;
_self.loading = true;
this.$http.get('/DataHandlerInfo/DataInfo', {
params: {
rowId: row.id,
userId:this.userId,
}
}).then((res) => {
if (res.data["header"]["code"] == 0) {
_self.tableDataItem = res.data.value;
if(_self.tableDataItem.length>0){
var dataurl = _self.tableDataItem[0].filecontent;
if(dataurl==null){
_self.$message.error('The file does not exist in the database!');
_self.loading = false;
return;
}
if(dataurl.length < 1){
_self.$message.error('The file does not exist in the database!');
_self.loading = false;
return;
}
var arr = dataurl.split(','),
mime = arr[0].match(/:(.*?);/)[1],
bstr = atob(arr[1]),
n = bstr.length,
u8arr = new Uint8Array(n);
while (n--) {
u8arr[n] = bstr.charCodeAt(n);
}
let url = window.URL.createObjectURL(new Blob([u8arr], { type: mime }));
let link = document.createElement('a')
link.style.display = 'none'
link.href = url
if(mime==='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'){
link.setAttribute('download', _self.tableDataItem[0].filename);
}else if(mime==='application/vnd.ms-excel'){
link.setAttribute('download', _self.tableDataItem[0].filename);
}else if(mime==='application/pdf'){
link.setAttribute('download', _self.tableDataItem[0].filename);
}else{
link.setAttribute('download', 'XXXX'+row.id+'.error');
}
document.body.appendChild(link)
link.click()
}
} else {
_self.$message.error(res.data["header"]["message"]);
}
_self.loading = false;
})
.catch((error) => {
_self.$message.error(error.toString());
_self.loading = false;
});
},